Bug 1351585 - Part 4. Use Switchboard to limit Leanplum startup/init r?sebastian,maliu draft
authorcnevinc <cnevinc@livemail.tw>
Thu, 11 May 2017 21:46:31 -0700
changeset 577593 e2e90f0f9bd2b0f8539a40106eeba8fa066b5cc6
parent 577592 6a5058ba6e79b6459001dd626587de9b43ae293d
child 577594 6f0f4dd642d34548fc4ce13a33b7b295bc0b25b7
push id58727
push userbmo:cnevinchen@gmail.com
push dateMon, 15 May 2017 02:46:37 +0000
reviewerssebastian, maliu
bugs1351585
milestone55.0a1
Bug 1351585 - Part 4. Use Switchboard to limit Leanplum startup/init r?sebastian,maliu MozReview-Commit-ID: VPptFlK8Bk
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
mobile/android/base/java/org/mozilla/gecko/Experiments.java
--- 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);