Bug 1351581 - Use Switchboard to limit Leanplum startup/init r?sebastian,maliu
MozReview-Commit-ID: VPptFlK8Bk
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -872,17 +872,27 @@ public class BrowserApp extends GeckoApp
return;
} else if (!AppConstants.MOZ_SWITCHBOARD) {
Log.d(LOGTAG, "Switchboard compile-time disabled");
return;
}
final String serverExtra = intent.getStringExtra(INTENT_KEY_SWITCHBOARD_SERVER);
final String serverUrl = TextUtils.isEmpty(serverExtra) ? SWITCHBOARD_SERVER : serverExtra;
- new AsyncConfigLoader(context, serverUrl).execute();
+ new AsyncConfigLoader(context, serverUrl) {
+ @Override
+ protected Void doInBackground(Void... params) {
+ super.doInBackground(params);
+ if (SwitchBoard.isInExperiment(context, Experiments.LEANPLUM) &&
+ GeckoPreferences.getBooleanPref(context, GeckoPreferences.PREFS_HEALTHREPORT_UPLOAD_ENABLED, true)) {
+ // Do LeanPlum start/init here
+ }
+ return null;
+ }
+ }.execute();
}
private static void initTelemetryUploader(final boolean isInAutomation) {
TelemetryUploadService.setDisabled(isInAutomation);
}
private void showUpdaterPermissionSnackbar() {
SnackbarBuilder.SnackbarCallback allowCallback = new SnackbarBuilder.SnackbarCallback() {
--- a/mobile/android/base/java/org/mozilla/gecko/Experiments.java
+++ b/mobile/android/base/java/org/mozilla/gecko/Experiments.java
@@ -66,16 +66,19 @@ public class Experiments {
public static final String ACTIVITY_STREAM_OPT_OUT = "activity-stream-opt-out";
// Tabs tray: Arrange tabs in two columns in portrait mode
public static final String COMPACT_TABS = "compact-tabs";
// Enable full bookmark management(full-page dialog, bookmark/folder modification, etc.)
public static final String FULL_BOOKMARK_MANAGEMENT = "full-bookmark-management";
+ // Enable Leanplum SDK
+ public static final String LEANPLUM = "leanplum-start";
+
/**
* Returns if a user is in certain local experiment.
* @param experiment Name of experiment to look up
* @return returns value for experiment or false if experiment does not exist.
*/
public static boolean isInExperimentLocal(Context context, String experiment) {
if (SwitchBoard.isInBucket(context, 0, 20)) {
return Experiments.ONBOARDING3_A.equals(experiment);