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