Yuvipanda has uploaded a new change for review.
https://gerrit.wikimedia.org/r/106716
Change subject: Refresh page when an edit successfully completes
......................................................................
Refresh page when an edit successfully completes
Change-Id: I3b9799a3914b866ff4400b0c80a88456fb91330b
---
M wikipedia/src/main/java/org/wikipedia/editing/EditHandler.java
M wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
M wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
3 files changed, 33 insertions(+), 8 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/16/106716/1
diff --git a/wikipedia/src/main/java/org/wikipedia/editing/EditHandler.java
b/wikipedia/src/main/java/org/wikipedia/editing/EditHandler.java
index 4324ebf..f99b82d 100644
--- a/wikipedia/src/main/java/org/wikipedia/editing/EditHandler.java
+++ b/wikipedia/src/main/java/org/wikipedia/editing/EditHandler.java
@@ -1,7 +1,9 @@
package org.wikipedia.editing;
+import android.app.Activity;
import android.content.Context;
import android.content.Intent;
+import android.support.v4.app.Fragment;
import org.json.JSONObject;
import org.wikipedia.CommunicationBridge;
import org.wikipedia.WikipediaApp;
@@ -11,12 +13,15 @@
import java.util.List;
public class EditHandler implements CommunicationBridge.JSEventListener {
- private final Context context;
+ public static final int REQUEST_EDIT_SECTION = 1;
+ public static final int RESULT_REFRESH_PAGE = 1;
+
+ private final Fragment fragment;
private final CommunicationBridge bridge;
private final Page currentPage;
- public EditHandler(Context context, CommunicationBridge bridge, Page
currentPage) {
- this.context = context;
+ public EditHandler(Fragment fragment, CommunicationBridge bridge, Page
currentPage) {
+ this.fragment = fragment;
this.bridge = bridge;
this.currentPage = currentPage;
@@ -28,11 +33,11 @@
if (messageType.equals("editSectionClicked")) {
int id = Integer.valueOf(messagePayload.optInt("sectionID"));
Section section =
Section.findSectionForID(currentPage.getSections(), id);
- Intent intent = new Intent(context, EditSectionActivity.class);
+ Intent intent = new Intent(fragment.getActivity(),
EditSectionActivity.class);
intent.setAction(EditSectionActivity.ACTION_EDIT_SECTION);
intent.putExtra(EditSectionActivity.EXTRA_SECTION, section);
intent.putExtra(EditSectionActivity.EXTRA_TITLE,
currentPage.getTitle());
- context.startActivity(intent);
+ fragment.startActivityForResult(intent, REQUEST_EDIT_SECTION);
}
return null;
}
diff --git
a/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
b/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
index 6e1b5c2..cec3baa 100644
--- a/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
+++ b/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
@@ -12,6 +12,7 @@
import org.wikipedia.PageTitle;
import org.wikipedia.R;
import org.wikipedia.Utils;
+import org.wikipedia.WikipediaApp;
import org.wikipedia.page.Section;
public class EditSectionActivity extends Activity {
@@ -80,6 +81,7 @@
@Override
public void onFinish(String result) {
dialog.hide();
+ setResult(EditHandler.RESULT_REFRESH_PAGE);
finish();
}
}.execute();
diff --git a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
index 6d91fe2..252eec8 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
@@ -1,11 +1,13 @@
package org.wikipedia.page;
+import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.webkit.WebView;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
import android.widget.Toast;
@@ -113,7 +115,7 @@
}
wrapper.putOpt("sectionHeadings", allSectionsPayload);
bridge.sendMessage("displaySectionsList", wrapper);
- editHandler = new EditHandler(getActivity(), bridge, page);
+ editHandler = new EditHandler(this, bridge, page);
} catch (JSONException e) {
throw new RuntimeException(e);
}
@@ -157,9 +159,8 @@
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
- bridge = new CommunicationBridge(webView,
"file:///android_asset/index.html");
+ setupBridge();
linkHandler = new LinkHandler(getActivity(), bridge, title.getSite());
- Utils.addUtilityMethodsToBridge(getActivity(), bridge);
app = (WikipediaApp)getActivity().getApplicationContext();
api =
((WikipediaApp)getActivity().getApplicationContext()).getAPIForSite(title.getSite());
@@ -183,6 +184,23 @@
return parentView;
}
+ // This also resets everything on the page
+ // FIXME: Also save scroll position
+ private void setupBridge() {
+ bridge = new CommunicationBridge(webView,
"file:///android_asset/index.html");
+ Utils.addUtilityMethodsToBridge(getActivity(), bridge);
+ }
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data)
{
+ super.onActivityResult(requestCode, resultCode, data);
+ if (resultCode == EditHandler.RESULT_REFRESH_PAGE) {
+ Utils.crossFade(webView, loadProgress);
+ setState(STATE_NO_FETCH);
+ performActionForState(state);
+ }
+ }
+
private void performActionForState(int state) {
switch (state) {
case STATE_NO_FETCH:
--
To view, visit https://gerrit.wikimedia.org/r/106716
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3b9799a3914b866ff4400b0c80a88456fb91330b
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