Bug 1454686 - Part 2 - Add MmaDelegate methods to allow stopping LeanPlum draft
authorPetru Lingurar <petru.lingurar@softvision.ro>
Mon, 07 May 2018 16:27:57 +0300
changeset 792036 c3a54a3842ae144e4c96d3fd89001e8249f893f6
parent 792034 bfed4f78b18906ad12f1b7180808f71a70d08db1
child 792038 fba2858f87f560295ec1b0434156c38d463ebbba
push id108961
push userplingurar@mozilla.com
push dateMon, 07 May 2018 13:28:48 +0000
bugs1454686
milestone61.0a1
Bug 1454686 - Part 2 - Add MmaDelegate methods to allow stopping LeanPlum This will allow stopping LeanPlum and also the entire process of events reporting or message displaying inside the app. Renamed MmaInterface.stop() to better express what that method does. MozReview-Commit-ID: Ke3HGAyCqVA
mobile/android/base/java/org/mozilla/gecko/mma/MmaDelegate.java
mobile/android/base/java/org/mozilla/gecko/mma/MmaInterface.java
mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java
mobile/android/base/java/org/mozilla/gecko/mma/MmaStubImp.java
--- a/mobile/android/base/java/org/mozilla/gecko/mma/MmaDelegate.java
+++ b/mobile/android/base/java/org/mozilla/gecko/mma/MmaDelegate.java
@@ -89,18 +89,26 @@ public class MmaDelegate {
 
         if (!isDefaultBrowser(activity)) {
             mmaHelper.event(MmaDelegate.LAUNCH_BUT_NOT_DEFAULT_BROWSER);
         }
         mmaHelper.event(MmaDelegate.LAUNCH_BROWSER);
 
     }
 
-    public static void stop() {
-        mmaHelper.stop();
+    public static void stopReportingEvents() {
+        mmaHelper.stopEventsReporting();
+    }
+
+    public static void stopShowingSessionMessages() {
+        mmaHelper.stopShowingSessionMessages();
+    }
+
+    public static void allowRestartInCurrentAppSession() {
+        mmaHelper.allowRestartInCurrentAppSession();
     }
 
     /* This method must be called at background thread to avoid performance issues in some API level */
     @NonNull
     private static Map<String, Object> gatherUserAttributes(final Context context) {
 
         final Map<String, Object> attributes = new HashMap<>();
 
--- a/mobile/android/base/java/org/mozilla/gecko/mma/MmaInterface.java
+++ b/mobile/android/base/java/org/mozilla/gecko/mma/MmaInterface.java
@@ -23,14 +23,18 @@ public interface MmaInterface {
     void setCustomIcon(@DrawableRes int iconResId);
 
     void start(Context context);
 
     void event(String mmaEvent);
 
     void event(String mmaEvent, double value);
 
-    void stop();
+    void stopEventsReporting();
+
+    void stopShowingSessionMessages();
+
+    void allowRestartInCurrentAppSession();
 
     @CheckResult boolean handleGcmMessage(Context context, String from, Bundle bundle);
 
     void setDeviceId(@NonNull String deviceId);
 }
--- a/mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java
@@ -15,16 +15,18 @@ import android.support.annotation.Drawab
 import android.support.annotation.NonNull;
 import android.support.v4.app.NotificationCompat;
 
 import com.leanplum.Leanplum;
 import com.leanplum.LeanplumActivityHelper;
 import com.leanplum.LeanplumPushNotificationCustomizer;
 import com.leanplum.LeanplumPushService;
 import com.leanplum.internal.Constants;
+import com.leanplum.internal.LeanplumInternal;
+import com.leanplum.internal.VarCache;
 
 import org.mozilla.gecko.AppConstants;
 import org.mozilla.gecko.MmaConstants;
 
 import java.util.Map;
 import java.util.UUID;
 
 
@@ -96,21 +98,32 @@ public class MmaLeanplumImp implements M
 
     @Override
     public void event(String leanplumEvent, double value) {
         Leanplum.track(leanplumEvent, value);
 
     }
 
     @Override
-    public void stop() {
+    public void stopEventsReporting() {
         Leanplum.stop();
     }
 
     @Override
+    public void stopShowingSessionMessages() {
+        VarCache.reset();
+    }
+
+    @Override
+    public void allowRestartInCurrentAppSession() {
+        LeanplumInternal.setCalledStart(false);
+        LeanplumInternal.setHasStarted(false);
+    }
+
+    @Override
     public boolean handleGcmMessage(Context context, String from, Bundle bundle) {
         if (from != null && from.equals(MmaConstants.MOZ_MMA_SENDER_ID) && bundle.containsKey(Constants.Keys.PUSH_MESSAGE_TEXT)) {
             LeanplumPushService.handleNotification(context, bundle);
             return true;
         }
         return false;
     }
 
--- a/mobile/android/base/java/org/mozilla/gecko/mma/MmaStubImp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/mma/MmaStubImp.java
@@ -37,17 +37,27 @@ public class MmaStubImp implements MmaIn
     }
 
     @Override
     public void event(String leanplumEvent, double value) {
 
     }
 
     @Override
-    public void stop() {
+    public void stopEventsReporting() {
+
+    }
+
+    @Override
+    public void stopShowingSessionMessages() {
+
+    }
+
+    @Override
+    public void allowRestartInCurrentAppSession() {
 
     }
 
     @Override
     public boolean handleGcmMessage(Context context, String from, Bundle bundle) {
         return false;
     }