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