Dbrant has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/404805 )

Change subject: Follow-up: simplify enabling/disabling of Randomizer save 
button.
......................................................................

Follow-up: simplify enabling/disabling of Randomizer save button.

There's no need for a SparseBooleanArray.

Change-Id: I022a69851e281dc28e2085b5b78eef8885c42bff
---
M app/src/main/java/org/wikipedia/random/RandomFragment.java
M app/src/main/java/org/wikipedia/random/RandomItemFragment.java
2 files changed, 16 insertions(+), 27 deletions(-)


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

diff --git a/app/src/main/java/org/wikipedia/random/RandomFragment.java 
b/app/src/main/java/org/wikipedia/random/RandomFragment.java
index 6bb1356..5a6f95b 100644
--- a/app/src/main/java/org/wikipedia/random/RandomFragment.java
+++ b/app/src/main/java/org/wikipedia/random/RandomFragment.java
@@ -11,7 +11,6 @@
 import android.support.v4.app.FragmentPagerAdapter;
 import android.support.v4.view.ViewPager;
 import android.support.v7.app.AppCompatActivity;
-import android.util.SparseBooleanArray;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -45,13 +44,8 @@
     private Unbinder unbinder;
     private ExclusiveBottomSheetPresenter bottomSheetPresenter = new 
ExclusiveBottomSheetPresenter();
     private boolean saveButtonState;
-    private SparseBooleanArray loadSatusMap = new SparseBooleanArray();
     private ViewPagerListener viewPagerListener = new ViewPagerListener();
     @Nullable private RandomizerFunnel funnel;
-
-    interface Callback {
-        void onChildLoaded();
-    }
 
     @NonNull
     public static RandomFragment newInstance() {
@@ -71,7 +65,7 @@
         randomPager.setPageTransformer(true, new RandomPagerTransformer());
         randomPager.addOnPageChangeListener(viewPagerListener);
 
-        enableSaveShareButton(false);
+        updateSaveShareButton();
         updateBackButton(0);
         if (savedInstanceState != null && randomPager.getCurrentItem() == 0 && 
getTopTitle() != null) {
             updateSaveShareButton(getTopTitle());
@@ -169,17 +163,28 @@
     }
 
     @SuppressWarnings("magicnumber")
-    public void enableSaveShareButton(boolean enable) {
+    public void updateSaveShareButton() {
+        RandomItemFragment f = getTopChild();
+        boolean enable = f != null && f.isLoadComplete();
         saveButton.setClickable(enable);
         saveButton.setAlpha(enable ? 1f : 0.5f);
     }
 
+    public void onChildLoaded() {
+        updateSaveShareButton();
+    }
+
     @Nullable private PageTitle getTopTitle() {
+        RandomItemFragment f = getTopChild();
+        return f == null ? null : f.getTitle();
+    }
+
+    @Nullable private RandomItemFragment getTopChild() {
         FragmentManager fm = getFragmentManager();
         for (Fragment f : fm.getFragments()) {
             if (f instanceof RandomItemFragment
                     && ((RandomItemFragment) f).getPagerPosition() == 
randomPager.getCurrentItem()) {
-                return ((RandomItemFragment) f).getTitle();
+                return ((RandomItemFragment) f);
             }
         }
         return null;
@@ -198,17 +203,8 @@
 
         @Override
         public Fragment getItem(int position) {
-
-            loadSatusMap.append(position, false);
             RandomItemFragment f = RandomItemFragment.newInstance();
             f.setPagerPosition(position);
-            f.setCallback(() -> {
-                if (randomPager != null && randomPager.getCurrentItem() == 
position) {
-                    enableSaveShareButton(f.isLoadComplete());
-                }
-                loadSatusMap.append(position, f.isLoadComplete());
-            });
-
             return f;
         }
     }
@@ -270,8 +266,7 @@
             }
             nextPageSelectedAutomatic = false;
             prevPosition = position;
-
-            enableSaveShareButton(loadSatusMap.get(position));
+            updateSaveShareButton();
         }
 
         @Override
diff --git a/app/src/main/java/org/wikipedia/random/RandomItemFragment.java 
b/app/src/main/java/org/wikipedia/random/RandomItemFragment.java
index 619fc74..0efa0c2 100644
--- a/app/src/main/java/org/wikipedia/random/RandomItemFragment.java
+++ b/app/src/main/java/org/wikipedia/random/RandomItemFragment.java
@@ -40,15 +40,10 @@
     private int pagerPosition = -1;
     private View view;
     private boolean loadComplete;
-    private RandomFragment.Callback callback;
 
     @NonNull
     public static RandomItemFragment newInstance() {
         return new RandomItemFragment();
-    }
-
-    public void setCallback(RandomFragment.Callback cb) {
-        callback = cb;
     }
 
     public void setPagerPosition(int position) {
@@ -93,9 +88,8 @@
         new 
RandomSummaryClient().request(WikipediaApp.getInstance().getWikiSite(), new 
RandomSummaryClient.Callback() {
             @Override
             public void onSuccess(@NonNull Call<RbPageSummary> call, @NonNull 
RbPageSummary pageSummary) {
-
                 loadComplete = true;
-                callback.onChildLoaded();
+                parent().onChildLoaded();
 
                 if (!isAdded()) {
                     return;

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I022a69851e281dc28e2085b5b78eef8885c42bff
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to