Bug 1351581 - Use Switchboard to limit Leanplum startup/init r?sebastian,maliu draft
authorcnevinc <cnevinc@livemail.tw>
Thu, 11 May 2017 21:46:31 -0700
changeset 576736 5864d02edca03050038820b38657c85258d53d56
parent 576689 ad45e59c7683a1354c8b73566f653d515f8d9a42
child 576913 189ac9027f442df88c7852a9d2bff62759547202
child 576917 4973fd783055fcefb3c25f0905d5828d476c33e7
child 576972 d73e8e44ff5788ebc20f7e3f3a0e9af8f027ddf3
push id58459
push userbmo:cnevinchen@gmail.com
push dateFri, 12 May 2017 04:47:35 +0000
reviewerssebastian, maliu
bugs1351581
milestone55.0a1
Bug 1351581 - 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);