Brion VIBBER has submitted this change and it was merged.
Change subject: Refresh page when an edit successfully completes
......................................................................
Refresh page when an edit successfully completes
Change-Id: I3b9799a3914b866ff4400b0c80a88456fb91330b
---
M wikipedia/assets/main.js
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
4 files changed, 29 insertions(+), 7 deletions(-)
Approvals:
Brion VIBBER: Verified; Looks good to me, approved
diff --git a/wikipedia/assets/main.js b/wikipedia/assets/main.js
index e1b0b36..fe3e732 100644
--- a/wikipedia/assets/main.js
+++ b/wikipedia/assets/main.js
@@ -6,6 +6,9 @@
}
bridge.registerListener( "displayLeadSection", function( payload ) {
+ // This might be a refresh! Clear out all contents!
+ document.getElementById( "content" ).innerHTML = "";
+
var title = document.createElement( "h1" );
title.textContent = payload.title;
document.getElementById( "content" ).appendChild( title );
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..6c74b9a 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);
}
@@ -158,8 +160,8 @@
webView.getSettings().setDisplayZoomControls(false);
bridge = new CommunicationBridge(webView,
"file:///android_asset/index.html");
- linkHandler = new LinkHandler(getActivity(), bridge, title.getSite());
Utils.addUtilityMethodsToBridge(getActivity(), bridge);
+ linkHandler = new LinkHandler(getActivity(), bridge, title.getSite());
app = (WikipediaApp)getActivity().getApplicationContext();
api =
((WikipediaApp)getActivity().getApplicationContext()).getAPIForSite(title.getSite());
@@ -183,6 +185,16 @@
return parentView;
}
+ @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: merged
Gerrit-Change-Id: I3b9799a3914b866ff4400b0c80a88456fb91330b
Gerrit-PatchSet: 3
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits