Yuvipanda has submitted this change and it was merged.
Change subject: Only add event handler once; after edit we may reload multiple
times
..
Only add event handler once; after edit we may reload multiple times
This was causing multiple calls to section request/display.
Change-Id: Ie73e0cbe991691613138955d39e0908b6048db84
---
M wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
1 file changed, 21 insertions(+), 17 deletions(-)
Approvals:
Yuvipanda: Verified; Looks good to me, approved
diff --git a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
index 8c5e16a..6bc8a34 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
@@ -95,22 +95,6 @@
}
private void populateNonLeadSections(final Page page) {
-bridge.addListener("requestSection", new
CommunicationBridge.JSEventListener() {
-@Override
-public void onMessage(String messageType, JSONObject
messagePayload) {
-try {
-int index = messagePayload.optInt("index");
-JSONObject wrapper = new JSONObject();
-wrapper.put("section",
page.getSections().get(index).toJSON());
-wrapper.put("index", index);
-wrapper.put("isLast", index == page.getSections().size() -
1);
-bridge.sendMessage("displaySection", wrapper);
-} catch (JSONException e) {
-// Won't happen
-throw new RuntimeException(e);
-}
-}
-});
editHandler = new EditHandler(this, bridge, page);
bridge.sendMessage("startSectionsDisplay", new JSONObject());
}
@@ -160,7 +144,7 @@
webView.getSettings().setDisplayZoomControls(false);
bridge = new CommunicationBridge(webView,
"file:///android_asset/index.html");
-Utils.addUtilityMethodsToBridge(getActivity(), bridge);
+setupMessageHandlers();
linkHandler = new LinkHandler(getActivity(), bridge, title.getSite());
app = (WikipediaApp)getActivity().getApplicationContext();
api =
((WikipediaApp)getActivity().getApplicationContext()).getAPIForSite(title.getSite());
@@ -183,6 +167,26 @@
new QuickReturnHandler(webView, quickReturnBar);
}
+private void setupMessageHandlers() {
+Utils.addUtilityMethodsToBridge(getActivity(), bridge);
+bridge.addListener("requestSection", new
CommunicationBridge.JSEventListener() {
+@Override
+public void onMessage(String messageType, JSONObject
messagePayload) {
+try {
+int index = messagePayload.optInt("index");
+JSONObject wrapper = new JSONObject();
+wrapper.put("section",
page.getSections().get(index).toJSON());
+wrapper.put("index", index);
+wrapper.put("isLast", index == page.getSections().size() -
1);
+bridge.sendMessage("displaySection", wrapper);
+} catch (JSONException e) {
+// Won't happen
+throw new RuntimeException(e);
+}
+}
+});
+}
+
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
--
To view, visit https://gerrit.wikimedia.org/r/115321
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie73e0cbe991691613138955d39e0908b6048db84
Gerrit-PatchSet: 2
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Brion VIBBER
Gerrit-Reviewer: Yuvipanda
___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits