Yuvipanda has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/102818


Change subject: Clear bridge listeners when they are no longer used
......................................................................

Clear bridge listeners when they are no longer used

Change-Id: I6a288f268898c6dc855f57aad4cdac3340e6348d
---
M wikipedia/src/main/java/org/wikimedia/wikipedia/CommunicationBridge.java
M wikipedia/src/main/java/org/wikimedia/wikipedia/savedpages/SavePageTask.java
2 files changed, 20 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/18/102818/1

diff --git 
a/wikipedia/src/main/java/org/wikimedia/wikipedia/CommunicationBridge.java 
b/wikipedia/src/main/java/org/wikimedia/wikipedia/CommunicationBridge.java
index 5af3c90..a8821fe 100644
--- a/wikipedia/src/main/java/org/wikimedia/wikipedia/CommunicationBridge.java
+++ b/wikipedia/src/main/java/org/wikimedia/wikipedia/CommunicationBridge.java
@@ -57,6 +57,10 @@
         }
     }
 
+    public void clearAllListeners(String type) {
+        eventListeners.remove(type);
+    }
+
     public void sendMessage(String messageName, JSONObject messageData) {
         String messagePointer =  marshaller.putPayload(messageData.toString());
 
diff --git 
a/wikipedia/src/main/java/org/wikimedia/wikipedia/savedpages/SavePageTask.java 
b/wikipedia/src/main/java/org/wikimedia/wikipedia/savedpages/SavePageTask.java
index 19731ac..6c2fb6d 100644
--- 
a/wikipedia/src/main/java/org/wikimedia/wikipedia/savedpages/SavePageTask.java
+++ 
b/wikipedia/src/main/java/org/wikimedia/wikipedia/savedpages/SavePageTask.java
@@ -20,6 +20,8 @@
     private final Page page;
     private final CommunicationBridge bridge;
 
+    private final static int MESSAGE_START_SAVING = 1;
+    private final static int MESSAGE_SAVING_DONE = 2;
     /**
      * Latch that opens when the imagesDownloadedLatch has been initialized.
      * This is needed because the count of the imagesDownloadedLatch needs to
@@ -73,17 +75,27 @@
             // This also runs on the main thread - you can access the bridge 
only from the Main thread
             @Override
             public boolean handleMessage(Message msg) {
-                bridge.addListener("imagesListResponse", processImages);
-                bridge.sendMessage("requestImagesList", new JSONObject());
-                return true;
+                switch (msg.what) {
+                    case MESSAGE_START_SAVING:
+                        bridge.addListener("imagesListResponse", 
processImages);
+                        bridge.sendMessage("requestImagesList", new 
JSONObject());
+                        return true;
+                    case MESSAGE_SAVING_DONE:
+                        bridge.clearAllListeners("imagesListResponse");
+                        return true;
+                    default:
+                        throw new RuntimeException("Unknown WHAT! passed");
+                }
             }
         });
 
-        mainThreadHandler.sendEmptyMessage(0);
+        mainThreadHandler.sendEmptyMessage(MESSAGE_START_SAVING);
 
         imagesDownloadLatchInitialized.await();
         imagesDownloadedLatch.await();
 
+        mainThreadHandler.sendEmptyMessage(MESSAGE_SAVING_DONE);
+
         SavedPage savedPage = new SavedPage(page.getTitle());
 
         persister.upsert(savedPage);

-- 
To view, visit https://gerrit.wikimedia.org/r/102818
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6a288f268898c6dc855f57aad4cdac3340e6348d
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to