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

Change subject: Dynamically update status of save&share button in Randomizer 
page
......................................................................

Dynamically update status of save&share button in Randomizer page

 - Default => disable button
 - When card has been loaded => enable button
 - Add status into list

Bug: T184869
Change-Id: I4930582bff28331b5b1a002e1b5a0166e1ce769c
---
M app/src/main/java/org/wikipedia/random/RandomFragment.java
M app/src/main/java/org/wikipedia/random/RandomItemFragment.java
2 files changed, 23 insertions(+), 1 deletion(-)


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

diff --git a/app/src/main/java/org/wikipedia/random/RandomFragment.java 
b/app/src/main/java/org/wikipedia/random/RandomFragment.java
index 29e2c2e..47e101d 100644
--- a/app/src/main/java/org/wikipedia/random/RandomFragment.java
+++ b/app/src/main/java/org/wikipedia/random/RandomFragment.java
@@ -31,6 +31,8 @@
 import org.wikipedia.util.DimenUtil;
 import org.wikipedia.util.FeedbackUtil;
 
+import java.util.ArrayList;
+
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
@@ -44,6 +46,7 @@
     private Unbinder unbinder;
     private ExclusiveBottomSheetPresenter bottomSheetPresenter = new 
ExclusiveBottomSheetPresenter();
     private boolean saveButtonState;
+    private ArrayList<Boolean> loadStatusList = new ArrayList<>();
     private ViewPagerListener viewPagerListener = new ViewPagerListener();
     @Nullable private RandomizerFunnel funnel;
 
@@ -65,6 +68,7 @@
         randomPager.setPageTransformer(true, new RandomPagerTransformer());
         randomPager.addOnPageChangeListener(viewPagerListener);
 
+        enableSaveShareButton(false);
         updateBackButton(0);
         if (savedInstanceState != null && randomPager.getCurrentItem() == 0 && 
getTopTitle() != null) {
             updateSaveShareButton(getTopTitle());
@@ -144,6 +148,10 @@
                         (DialogInterface dialogInterface) -> 
updateSaveShareButton(title)));
     }
 
+    public ArrayList<Boolean> getLoadStatusList() {
+        return loadStatusList;
+    }
+
     @SuppressWarnings("magicnumber")
     private void updateBackButton(int pagerPosition) {
         backButton.setClickable(pagerPosition != 0);
@@ -159,6 +167,11 @@
                         ? R.drawable.ic_bookmark_white_24dp : 
R.drawable.ic_bookmark_border_white_24dp);
             }
         });
+    }
+
+    public void enableSaveShareButton(boolean enable) {
+        saveButton.setClickable(enable);
+        saveButton.setAlpha(enable ? 1f : 0.5f);
     }
 
     @Nullable private PageTitle getTopTitle() {
@@ -247,6 +260,8 @@
             }
             nextPageSelectedAutomatic = false;
             prevPosition = position;
+
+            enableSaveShareButton(loadStatusList.get(position));
         }
 
         @Override
diff --git a/app/src/main/java/org/wikipedia/random/RandomItemFragment.java 
b/app/src/main/java/org/wikipedia/random/RandomItemFragment.java
index 5aa5360..b6835c4 100644
--- a/app/src/main/java/org/wikipedia/random/RandomItemFragment.java
+++ b/app/src/main/java/org/wikipedia/random/RandomItemFragment.java
@@ -80,7 +80,8 @@
     }
 
     private void getRandomPage() {
-
+        parent().getLoadStatusList().add(false);
+        final int getLoadStatusListIndex = parent().getLoadStatusList().size() 
- 1;
         new 
RandomSummaryClient().request(WikipediaApp.getInstance().getWikiSite(), new 
RandomSummaryClient.Callback() {
             @Override
             public void onSuccess(@NonNull Call<RbPageSummary> call, @NonNull 
RbPageSummary pageSummary) {
@@ -88,6 +89,12 @@
                     return;
                 }
                 setContents(pageSummary);
+
+                parent().getLoadStatusList().set(getLoadStatusListIndex, true);
+                // if in pager position == current position
+                if (getPagerPosition() == 
parent().randomPager.getCurrentItem()) {
+                    parent().enableSaveShareButton(true);
+                }
             }
 
             @Override

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4930582bff28331b5b1a002e1b5a0166e1ce769c
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Cooltey <cf...@wikimedia.org>

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

Reply via email to