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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits