BearND has uploaded a new change for review.
https://gerrit.wikimedia.org/r/215924
Change subject: Fix backstack and editing issues introduced in experimental
page content service patch
......................................................................
Fix backstack and editing issues introduced in experimental page content
service patch
Issue was caused by my earlier patch Ibf571c12f6d462f63cac1db52e30ad17a7215a59.
The backstack was not retained since it got moved to JsonPageLoadStrategy,
which was recreated during onActivityCreated.
Editing was busted since the previous patch did not call setEditHandler often
enough.
The HtmlPageLoadStrategy still needs to use EditHandler.
Change-Id: I7f0b96e41486e6c225b925b8b32be1f3a9bcadee
---
M wikipedia/src/main/java/org/wikipedia/page/HtmlPageLoadStrategy.java
M wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
M wikipedia/src/main/java/org/wikipedia/page/PageLoadStrategy.java
M wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
4 files changed, 34 insertions(+), 10 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/24/215924/1
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/HtmlPageLoadStrategy.java
b/wikipedia/src/main/java/org/wikipedia/page/HtmlPageLoadStrategy.java
index 47ce4a2..20007ba 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/HtmlPageLoadStrategy.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/HtmlPageLoadStrategy.java
@@ -1,6 +1,7 @@
package org.wikipedia.page;
import org.wikipedia.bridge.CommunicationBridge;
+import org.wikipedia.editing.EditHandler;
import org.wikipedia.page.leadimages.LeadImagesHandler;
import org.wikipedia.search.SearchBarHideHandler;
import org.wikipedia.views.ObservableWebView;
@@ -258,4 +259,9 @@
return false;
}
}
+
+ @Override
+ public void setEditHandler(EditHandler editHandler) {
+ // TODO: use editHandler in this class
+ }
}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
b/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
index 8a62fdd..ecb1412 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
@@ -4,6 +4,7 @@
import org.wikipedia.Utils;
import org.wikipedia.WikipediaApp;
import org.wikipedia.bridge.CommunicationBridge;
+import org.wikipedia.editing.EditHandler;
import org.wikipedia.editing.EditSectionActivity;
import org.wikipedia.history.HistoryEntry;
import org.wikipedia.page.bottomcontent.BottomContentHandler;
@@ -96,6 +97,7 @@
private WikipediaApp app;
private LeadImagesHandler leadImagesHandler;
private SearchBarHideHandler searchBarHideHandler;
+ private EditHandler editHandler;
private BottomContentInterface bottomContentHandler;
@@ -265,7 +267,7 @@
new RestSectionsFetchTask(pageSequenceNum).execute();
break;
case STATE_COMPLETE_FETCH:
-// editHandler.setPage(model.getPage());
+ editHandler.setPage(model.getPage());
// kick off the lead image layout
leadImagesHandler.beginLayout(new
LeadImagesHandler.OnLeadImageLayoutListener() {
@Override
@@ -414,7 +416,7 @@
new SaveHistoryTask(model.getCurEntry(), app).execute();
model.setPage(result);
-// editHandler.setPage(model.getPage());
+ editHandler.setPage(model.getPage());
// kick off the lead image layout
leadImagesHandler.beginLayout(new
LeadImagesHandler.OnLeadImageLayoutListener() {
@Override
@@ -629,7 +631,7 @@
final PageTitle title = model.getTitle();
model.setPage(new Page(title, (ArrayList<Section>) result,
pageProperties));
-// editHandler.setPage(model.getPage());
+ editHandler.setPage(model.getPage());
// kick off the lead image layout
leadImagesHandler.beginLayout(new
LeadImagesHandler.OnLeadImageLayoutListener() {
@@ -731,4 +733,9 @@
}
return false;
}
+
+ @Override
+ public void setEditHandler(EditHandler editHandler) {
+ this.editHandler = editHandler;
+ }
}
diff --git a/wikipedia/src/main/java/org/wikipedia/page/PageLoadStrategy.java
b/wikipedia/src/main/java/org/wikipedia/page/PageLoadStrategy.java
index c284f9a..7b95ac4 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/PageLoadStrategy.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageLoadStrategy.java
@@ -1,6 +1,7 @@
package org.wikipedia.page;
import org.wikipedia.bridge.CommunicationBridge;
+import org.wikipedia.editing.EditHandler;
import org.wikipedia.page.leadimages.LeadImagesHandler;
import org.wikipedia.search.SearchBarHideHandler;
import org.wikipedia.views.ObservableWebView;
@@ -36,4 +37,6 @@
void onHidePageContent();
boolean onBackPressed();
+
+ void setEditHandler(EditHandler editHandler);
}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
index 912d328..692439f 100755
--- a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
@@ -133,6 +133,18 @@
public PageViewFragmentInternal() {
}
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ app = (WikipediaApp) getActivity().getApplicationContext();
+ model = new PageViewModel();
+ if (Prefs.isUsingExperimentalPageLoad(app)) {
+ pageLoadStrategy = new HtmlPageLoadStrategy();
+ } else {
+ pageLoadStrategy = new JsonPageLoadStrategy();
+ }
+ }
+
public View onCreateView(LayoutInflater inflater, ViewGroup container,
final Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_page, container,
false);
@@ -185,7 +197,6 @@
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
- app = (WikipediaApp) getActivity().getApplicationContext();
connectionIssueFunnel = new ConnectionIssueFunnel(app);
updateFontSize();
@@ -255,12 +266,7 @@
}
};
- model = new PageViewModel();
-
- if (Prefs.isUsingExperimentalPageLoad(app)) {
- pageLoadStrategy = new HtmlPageLoadStrategy();
- } else {
- pageLoadStrategy = new JsonPageLoadStrategy();
+ if (!Prefs.isUsingExperimentalPageLoad(app)) {
bridge.injectStyleBundle(StyleBundle.getAvailableBundle(StyleBundle.BUNDLE_PAGEVIEW));
}
@@ -284,6 +290,8 @@
});
editHandler = new EditHandler(this, bridge);
+ pageLoadStrategy.setEditHandler(editHandler);
+
tocHandler = new ToCHandler(((PageActivity) getActivity()), tocDrawer,
bridge);
imagesContainer = (ViewGroup)
getView().findViewById(R.id.page_images_container);
--
To view, visit https://gerrit.wikimedia.org/r/215924
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7f0b96e41486e6c225b925b8b32be1f3a9bcadee
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits