Dbrant has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/295604

Change subject: Whoops: Fix possible fragment duplication.
......................................................................

Whoops: Fix possible fragment duplication.

Also fix options menu behavior when switching between fragments.

Change-Id: If83dd623b657f4b7be1689f0f3fff1f8998fd6d1
---
M app/src/main/java/org/wikipedia/MainActivity.java
M app/src/main/java/org/wikipedia/MainActivityToolbarCoordinator.java
M app/src/main/java/org/wikipedia/page/PageFragment.java
3 files changed, 13 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/04/295604/1

diff --git a/app/src/main/java/org/wikipedia/MainActivity.java 
b/app/src/main/java/org/wikipedia/MainActivity.java
index 7e4812a..ec48b51 100644
--- a/app/src/main/java/org/wikipedia/MainActivity.java
+++ b/app/src/main/java/org/wikipedia/MainActivity.java
@@ -579,14 +579,16 @@
         }
 
         resetFragmentsToFeedOrPage();
-        FragmentTransaction trans = 
getSupportFragmentManager().beginTransaction();
-        trans.setCustomAnimations(R.anim.fade_in, R.anim.fade_out, 
R.anim.fade_in, R.anim.fade_out);
-        trans.add(R.id.content_fragment_container, f);
-        trans.addToBackStack(null);
-        if (allowStateLoss) {
-            trans.commitAllowingStateLoss();
-        } else {
-            trans.commit();
+        if (getTopFragment() == null || (getTopFragment().getClass() != 
f.getClass())) {
+            FragmentTransaction trans = 
getSupportFragmentManager().beginTransaction();
+            trans.setCustomAnimations(R.anim.fade_in, R.anim.fade_out, 
R.anim.fade_in, R.anim.fade_out);
+            trans.add(R.id.content_fragment_container, f);
+            trans.addToBackStack(null);
+            if (allowStateLoss) {
+                trans.commitAllowingStateLoss();
+            } else {
+                trans.commit();
+            }
         }
         afterFragmentChanged();
     }
diff --git 
a/app/src/main/java/org/wikipedia/MainActivityToolbarCoordinator.java 
b/app/src/main/java/org/wikipedia/MainActivityToolbarCoordinator.java
index 78e6303..1162bcb 100644
--- a/app/src/main/java/org/wikipedia/MainActivityToolbarCoordinator.java
+++ b/app/src/main/java/org/wikipedia/MainActivityToolbarCoordinator.java
@@ -23,6 +23,7 @@
 
     public void setOverrideToolbar(@NonNull Toolbar toolbar) {
         overrideToolbar = toolbar;
+        defaultToolbar.getMenu().clear();
         toolbarContainerView.setVisibility(View.GONE);
         setActivityToolbar(overrideToolbar);
     }
diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java 
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index 7457550..c0df2ec 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -635,7 +635,8 @@
     @Override
     public void onPrepareOptionsMenu(Menu menu) {
         super.onPrepareOptionsMenu(menu);
-        if (!isAdded() || getMainActivity().isSearching()) {
+        if (!isAdded() || getMainActivity().isSearching()
+                || !(getMainActivity().getTopFragment() instanceof 
PageFragment)) {
             return;
         }
 
@@ -646,14 +647,6 @@
         MenuItem contentIssues = menu.findItem(R.id.menu_page_content_issues);
         MenuItem similarTitles = menu.findItem(R.id.menu_page_similar_titles);
         MenuItem themeChooserItem = 
menu.findItem(R.id.menu_page_font_and_theme);
-
-        if (otherLangItem == null) {
-            // On API <= 19, it looks like onPrepareOptionsMenu can be called 
before the menu
-            // is actually inflated.
-            // TODO: remove when this is better understood.
-            L.logRemoteErrorIfProd(new RuntimeException("onPrepareOptionsMenu 
called with empty menu."));
-            return;
-        }
 
         if (pageLoadStrategy.isLoading() || errorState) {
             otherLangItem.setEnabled(false);

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If83dd623b657f4b7be1689f0f3fff1f8998fd6d1
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <dbr...@wikimedia.org>

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

Reply via email to