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
--- 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;
}