Преглед изворни кода

Do not queue trigger or clear events

Sebastián Katzer пре 7 година
родитељ
комит
55a367e85c

+ 5 - 1
src/android/ClearReceiver.java

@@ -26,6 +26,8 @@ import android.os.Bundle;
 import de.appplant.cordova.plugin.notification.Notification;
 import de.appplant.cordova.plugin.notification.receiver.AbstractClearReceiver;
 
+import static de.appplant.cordova.plugin.localnotification.LocalNotification.fireEvent;
+import static de.appplant.cordova.plugin.localnotification.LocalNotification.isAppRunning;
 import static de.appplant.cordova.plugin.notification.Request.EXTRA_LAST;
 
 /**
@@ -51,7 +53,9 @@ public class ClearReceiver extends AbstractClearReceiver {
             notification.clear();
         }
 
-        LocalNotification.fireEvent("clear", notification);
+        if (isAppRunning()) {
+            fireEvent("clear", notification);
+        }
     }
 
 }

+ 2 - 1
src/android/ClickReceiver.java

@@ -30,6 +30,7 @@ import org.json.JSONObject;
 import de.appplant.cordova.plugin.notification.Notification;
 import de.appplant.cordova.plugin.notification.receiver.AbstractClickReceiver;
 
+import static de.appplant.cordova.plugin.localnotification.LocalNotification.fireEvent;
 import static de.appplant.cordova.plugin.notification.Options.EXTRA_LAUNCH;
 import static de.appplant.cordova.plugin.notification.Request.EXTRA_LAST;
 
@@ -54,7 +55,7 @@ public class ClickReceiver extends AbstractClickReceiver {
         setTextInput(action, data);
         launchAppIf();
 
-        LocalNotification.fireEvent(action, notification, data);
+        fireEvent(action, notification, data);
 
         if (notification.getOptions().isSticky())
             return;

+ 7 - 0
src/android/LocalNotification.java

@@ -582,6 +582,13 @@ public class LocalNotification extends CordovaPlugin {
         return view.getView().getWindowVisibility() == View.VISIBLE;
     }
 
+    /**
+     * If the app is running.
+     */
+    static boolean isAppRunning() {
+        return webView != null;
+    }
+
     /**
      * Convert JSON array of integers to List.
      *

+ 4 - 2
src/android/TriggerReceiver.java

@@ -37,6 +37,8 @@ import de.appplant.cordova.plugin.notification.receiver.AbstractTriggerReceiver;
 import static android.content.Context.POWER_SERVICE;
 import static android.os.Build.VERSION.SDK_INT;
 import static android.os.Build.VERSION_CODES.LOLLIPOP;
+import static de.appplant.cordova.plugin.localnotification.LocalNotification.fireEvent;
+import static de.appplant.cordova.plugin.localnotification.LocalNotification.isAppRunning;
 import static java.util.Calendar.MINUTE;
 
 /**
@@ -72,8 +74,8 @@ public class TriggerReceiver extends AbstractTriggerReceiver {
 
         notification.show();
 
-        if (!isUpdate) {
-            LocalNotification.fireEvent("trigger", notification);
+        if (!isUpdate && isAppRunning()) {
+            fireEvent("trigger", notification);
         }
 
         if (!options.isInfiniteTrigger())