From b817e836437bd47007e147c4f22d0c01dc0babee Mon Sep 17 00:00:00 2001 From: Martin Kofoed <42993803+kofoeddk@users.noreply.github.com> Date: Thu, 6 Feb 2020 19:48:45 +0100 Subject: [PATCH] fix(android): plugin retained events not being retained if listeners were empty (#2408) --- android/capacitor/src/main/java/com/getcapacitor/Plugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/capacitor/src/main/java/com/getcapacitor/Plugin.java b/android/capacitor/src/main/java/com/getcapacitor/Plugin.java index cedd7c7b96..3caeaed09d 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/Plugin.java +++ b/android/capacitor/src/main/java/com/getcapacitor/Plugin.java @@ -300,7 +300,7 @@ public void pluginRequestPermission(String permission, int requestCode) { */ private void addEventListener(String eventName, PluginCall call) { List listeners = eventListeners.get(eventName); - if (listeners == null) { + if (listeners == null || listeners.isEmpty()) { listeners = new ArrayList(); eventListeners.put(eventName, listeners); @@ -335,7 +335,7 @@ private void removeEventListener(String eventName, PluginCall call) { protected void notifyListeners(String eventName, JSObject data, boolean retainUntilConsumed) { Log.v(getLogTag(), "Notifying listeners for event " + eventName); List listeners = eventListeners.get(eventName); - if (listeners == null) { + if (listeners == null || listeners.isEmpty()) { Log.d(getLogTag(), "No listeners found for event " + eventName); if (retainUntilConsumed) { retainedEventArguments.put(eventName, data);