diff --git a/Branch-SDK-TestBed/src/main/assets/branch.json b/Branch-SDK-TestBed/src/main/assets/branch.json new file mode 100644 index 000000000..7a73a41bf --- /dev/null +++ b/Branch-SDK-TestBed/src/main/assets/branch.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/Branch-SDK-TestBed/src/main/java/io/branch/branchandroidtestbed/MainActivity.java b/Branch-SDK-TestBed/src/main/java/io/branch/branchandroidtestbed/MainActivity.java index d2d0d3f1d..cc7d1a4d2 100644 --- a/Branch-SDK-TestBed/src/main/java/io/branch/branchandroidtestbed/MainActivity.java +++ b/Branch-SDK-TestBed/src/main/java/io/branch/branchandroidtestbed/MainActivity.java @@ -653,7 +653,7 @@ protected void onStart() { Branch.getInstance().addFacebookPartnerParameterWithName("ph", getHashedValue("6516006060")); Log.d("BranchSDK_Tester", "initSession"); - initSessionsWithTests(); + //initSessionsWithTests(); // Branch integration validation: Validate Branch integration with your app // NOTE : The below method will run few checks for verifying correctness of the Branch integration. diff --git a/Branch-SDK/src/main/java/io/branch/referral/Branch.java b/Branch-SDK/src/main/java/io/branch/referral/Branch.java index 153f11e7c..1713cb89e 100644 --- a/Branch-SDK/src/main/java/io/branch/referral/Branch.java +++ b/Branch-SDK/src/main/java/io/branch/referral/Branch.java @@ -377,6 +377,8 @@ synchronized public static Branch getAutoInstance(@NonNull Context context) { // Should only be set in json config deferInitForPluginRuntime(BranchUtil.getDeferInitForPluginRuntimeConfig(context)); + BranchUtil.setAPIBaseUrlFromConfig(context); + BranchUtil.setTestMode(BranchUtil.checkTestMode(context)); branchReferral_ = initBranchSDK(context, BranchUtil.readBranchKey(context)); getPreinstallSystemData(branchReferral_, context); @@ -404,6 +406,8 @@ public static Branch getAutoInstance(@NonNull Context context, @NonNull String b // Should only be set in json config deferInitForPluginRuntime(BranchUtil.getDeferInitForPluginRuntimeConfig(context)); + BranchUtil.setAPIBaseUrlFromConfig(context); + BranchUtil.setTestMode(BranchUtil.checkTestMode(context)); // If a Branch key is passed already use it. Else read the key if (!isValidBranchKey(branchKey)) { @@ -503,7 +507,16 @@ public static void expectDelayedSessionInitialization(boolean expectDelayedInit) * @param url The {@link String} URL base URL that the Branch API uses. */ public static void setAPIUrl(String url) { - PrefHelper.setAPIUrl(url); + if (!TextUtils.isEmpty(url)) { + if (!url.endsWith("/")) { + url = url + "/"; + } + + PrefHelper.setAPIUrl(url); + BranchLogger.v("setAPIUrl: Branch API URL was set to " + url); + } else { + BranchLogger.w("setAPIUrl: URL cannot be empty or null"); + } } /** *

Sets a custom CDN base URL.

diff --git a/Branch-SDK/src/main/java/io/branch/referral/BranchJsonConfig.java b/Branch-SDK/src/main/java/io/branch/referral/BranchJsonConfig.java index 51b2e6364..2d1eabbdb 100644 --- a/Branch-SDK/src/main/java/io/branch/referral/BranchJsonConfig.java +++ b/Branch-SDK/src/main/java/io/branch/referral/BranchJsonConfig.java @@ -29,7 +29,8 @@ public enum BranchJsonKey { liveKey, useTestInstance, enableLogging, - deferInitForPluginRuntime + deferInitForPluginRuntime, + apiUrl } /* @@ -44,7 +45,8 @@ public enum BranchJsonKey { "liveKey":"key_live_hcnegAumkH7Kv18M8AOHhfgiohpXq5tB", "useTestInstance": true, "enableLogging": true, - "deferInitForPluginRuntime": true + "deferInitForPluginRuntime": true, + "apiUrl": "https://api2.branch.io" } */ @@ -167,8 +169,8 @@ private String getTestKey() { if (mConfiguration == null) return null; try { - if (!mConfiguration.has("testKey")) return null; - return mConfiguration.getString("testKey"); + if (!mConfiguration.has(BranchJsonKey.testKey.toString())) return null; + return mConfiguration.getString(BranchJsonKey.testKey.toString()); } catch (JSONException exception) { Log.e(TAG, "Error parsing branch.json: " + exception.getMessage()); @@ -186,4 +188,18 @@ private String getTestKey() { return false; } } + + @Nullable + public String getAPIUrl() { + if (mConfiguration == null) return null; + + try { + if (!mConfiguration.has(BranchJsonKey.apiUrl.toString())) return null; + return mConfiguration.getString(BranchJsonKey.apiUrl.toString()); + } + catch (JSONException exception) { + Log.e(TAG, "Error parsing branch.json: " + exception.getMessage()); + return null; + } + } } diff --git a/Branch-SDK/src/main/java/io/branch/referral/BranchUtil.java b/Branch-SDK/src/main/java/io/branch/referral/BranchUtil.java index 812c06edf..e45ff4ff1 100644 --- a/Branch-SDK/src/main/java/io/branch/referral/BranchUtil.java +++ b/Branch-SDK/src/main/java/io/branch/referral/BranchUtil.java @@ -10,6 +10,7 @@ import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; +import android.text.TextUtils; import android.util.DisplayMetrics; import org.json.JSONArray; @@ -139,6 +140,12 @@ public static boolean getDeferInitForPluginRuntimeConfig(Context context){ return deferInitForPluginRuntime; } + public static void setAPIBaseUrlFromConfig(Context context) { + BranchJsonConfig jsonConfig = BranchJsonConfig.getInstance(context); + String apiUrl = jsonConfig.getAPIUrl(); + Branch.setAPIUrl(apiUrl); + } + /** * Get the value of "io.branch.sdk.TestMode" entry in application manifest or from String res. * This value can be overridden via. {@link Branch#enableTestMode()}