jenkins-bot has submitted this change and it was merged.

Change subject: Decouple JsonPageLoadStrategy from MainActivity.
......................................................................


Decouple JsonPageLoadStrategy from MainActivity.

...so that we can plug PageFragment into a clean new Activity (to come).

Bug: T141131
Change-Id: I57b5e05c2efeff0b70af50b567e40dd1dddcf828
---
M app/src/main/java/org/wikipedia/MainActivity.java
M app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
M app/src/main/java/org/wikipedia/page/PageFragment.java
3 files changed, 28 insertions(+), 12 deletions(-)

Approvals:
  BearND: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/app/src/main/java/org/wikipedia/MainActivity.java 
b/app/src/main/java/org/wikipedia/MainActivity.java
index b445a5e..7a769ee 100644
--- a/app/src/main/java/org/wikipedia/MainActivity.java
+++ b/app/src/main/java/org/wikipedia/MainActivity.java
@@ -1063,6 +1063,11 @@
     }
 
     @Override
+    public void onPageInvalidateOptionsMenu() {
+        supportInvalidateOptionsMenu();
+    }
+
+    @Override
     public void onSearchSelectPage(@NonNull HistoryEntry entry, boolean 
inNewTab) {
         loadPage(entry.getTitle(), entry, inNewTab ? 
TabsProvider.TabPosition.NEW_TAB_BACKGROUND
                 : TabsProvider.TabPosition.CURRENT_TAB, false);
diff --git a/app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java 
b/app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
index 7315720..49fe1ce 100644
--- a/app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
+++ b/app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
@@ -104,7 +104,6 @@
     private PageViewModel model;
     private PageFragment fragment;
     private CommunicationBridge bridge;
-    private MainActivity activity;
     private ObservableWebView webView;
     private SwipeRefreshLayoutWithScroll refreshView;
     @NonNull private final WikipediaApp app = WikipediaApp.getInstance();
@@ -126,7 +125,6 @@
                       @NonNull List<PageBackStackItem> backStack) {
         this.model = model;
         this.fragment = fragment;
-        activity = (MainActivity) fragment.getActivity();
         this.refreshView = refreshView;
         this.webView = webView;
         this.bridge = bridge;
@@ -298,7 +296,9 @@
         networkErrorCallback = null;
         cacheOnComplete = false;
         state = STATE_COMPLETE_FETCH;
-        activity.supportInvalidateOptionsMenu();
+        if (fragment.callback() != null) {
+            fragment.callback().onPageInvalidateOptionsMenu();
+        }
         if (!sequenceNumber.inSync(startSequenceNum)) {
             return;
         }
@@ -363,7 +363,9 @@
             @Override
             public void onMessage(JSONObject payload) {
                 // Do any other stuff that should happen upon page load 
completion...
-                activity.updateProgressBar(false, true, 0);
+                if (fragment.callback() != null) {
+                    fragment.callback().onPageUpdateProgressBar(false, true, 
0);
+                }
 
                 // trigger layout of the bottom content
                 // Check to see if the page title has changed (e.g. due to 
following a redirect),
@@ -391,7 +393,9 @@
         }
         switch (forState) {
             case STATE_NO_FETCH:
-                activity.updateProgressBar(true, true, 0);
+                if (fragment.callback() != null) {
+                    fragment.callback().onPageUpdateProgressBar(true, true, 0);
+                }
                 loadLeadSection(sequenceNumber.get());
                 break;
             case STATE_INITIAL_FETCH:
@@ -416,7 +420,9 @@
             return;
         }
         this.state = state;
-        activity.supportInvalidateOptionsMenu();
+        if (fragment.callback() != null) {
+            fragment.callback().onPageInvalidateOptionsMenu();
+        }
 
         // FIXME: Move this out into a PageComplete event of sorts
         if (state == STATE_COMPLETE_FETCH) {
@@ -585,7 +591,9 @@
         }
 
         refreshView.setRefreshing(false);
-        activity.updateProgressBar(true, true, 0);
+        if (fragment.callback() != null) {
+            fragment.callback().onPageUpdateProgressBar(true, true, 0);
+        }
 
         leadImagesHandler.updateNavigate(page.getPageProperties().getGeo());
     }
@@ -640,7 +648,7 @@
 
     private SparseArray<String> localizedStrings(Page page) {
         return getStringsForArticleLanguage(page.getTitle(),
-                ResourceUtil.getIdArray(activity, 
R.array.page_localized_string_ids));
+                ResourceUtil.getIdArray(fragment.getContext(), 
R.array.page_localized_string_ids));
     }
 
 
@@ -682,9 +690,11 @@
     }
 
     private void displayNonLeadSection(int index, boolean savedPage) {
-        activity.updateProgressBar(true, false,
-                MainActivity.PROGRESS_BAR_MAX_VALUE / model.getPage()
-                        .getSections().size() * index);
+        if (fragment.callback() != null) {
+            fragment.callback().onPageUpdateProgressBar(true, false,
+                    MainActivity.PROGRESS_BAR_MAX_VALUE / model.getPage()
+                            .getSections().size() * index);
+        }
         try {
             final Page page = model.getPage();
             JSONObject wrapper = new JSONObject();
@@ -822,7 +832,7 @@
     }
 
     private Resources getResources() {
-        return activity.getResources();
+        return fragment.getResources();
     }
 
     private class LeadImageLayoutListener implements 
LeadImagesHandler.OnLeadImageLayoutListener {
diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java 
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index f95461e..804c24e 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -117,6 +117,7 @@
         void onPagePopFragment();
         @Nullable AppCompatActivity getActivity();
         void onPageUpdateNavDrawerSelection(@NonNull Fragment fragment);
+        void onPageInvalidateOptionsMenu();
     }
 
     public static final int TOC_ACTION_SHOW = 0;

-- 
To view, visit https://gerrit.wikimedia.org/r/304294
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I57b5e05c2efeff0b70af50b567e40dd1dddcf828
Gerrit-PatchSet: 3
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: BearND <bsitzm...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Mholloway <mhollo...@wikimedia.org>
Gerrit-Reviewer: Niedzielski <sniedziel...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to