From 2ed32162b7fa71cd1522cd331b5e447075f51394 Mon Sep 17 00:00:00 2001 From: Yash Khare Date: Wed, 6 Nov 2019 16:58:45 +0530 Subject: [PATCH] Disabled review buttons while an image is being loaded (#3185) * Disabled review buttons while an image is being loaded * Added javadocs for the new methods --- .../nrw/commons/review/ReviewActivity.java | 7 ++++- .../commons/review/ReviewImageFragment.java | 26 +++++++++++++++++++ .../commons/review/ReviewPagerAdapter.java | 20 ++++++++++++++ .../main/res/layout/fragment_review_image.xml | 4 +++ 4 files changed, 56 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java index 3a17ad21e..643d74013 100644 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java @@ -132,7 +132,10 @@ public class ReviewActivity extends AuthenticatedActivity { runRandomizer(); //Run randomizer whenever everything is ready so that a first random image will be added } - btnSkipImage.setOnClickListener(view -> runRandomizer()); + btnSkipImage.setOnClickListener(view -> { + reviewPagerAdapter.disableButtons(); + runRandomizer(); + }); btnSkipImage.setOnTouchListener((view, event) -> { if (event.getAction() == MotionEvent.ACTION_UP && event.getRawX() >= ( @@ -154,6 +157,7 @@ public class ReviewActivity extends AuthenticatedActivity { .observeOn(AndroidSchedulers.mainThread()) .subscribe(media -> { if (media != null) { + reviewPagerAdapter.disableButtons(); updateImage(media); } })); @@ -181,6 +185,7 @@ public class ReviewActivity extends AuthenticatedActivity { String caption = String.format(getString(R.string.review_is_uploaded_by), fileName, revision.getUser()); imageCaption.setText(caption); progressBar.setVisibility(View.GONE); + reviewPagerAdapter.enableButtons(); })); reviewPager.setCurrentItem(0); } diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewImageFragment.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewImageFragment.java index 5952956ed..d19c23ff6 100644 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewImageFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/review/ReviewImageFragment.java @@ -81,6 +81,7 @@ public class ReviewImageFragment extends CommonsDaggerSupportFragment { .reviewController.reportSpam(requireActivity(), getReviewCallback())); break; case COPYRIGHT: + enableButtons(); question = getString(R.string.review_copyright); explanation = getString(R.string.review_copyright_explanation); yesButtonText = getString(R.string.review_copyright_yes_button_text); @@ -90,6 +91,7 @@ public class ReviewImageFragment extends CommonsDaggerSupportFragment { .reportPossibleCopyRightViolation(requireActivity(), getReviewCallback())); break; case CATEGORY: + enableButtons(); question = getString(R.string.review_category); explanation = updateCategoriesQuestion(); yesButtonText = getString(R.string.review_category_yes_button_text); @@ -102,6 +104,7 @@ public class ReviewImageFragment extends CommonsDaggerSupportFragment { }); break; case THANKS: + enableButtons(); question = getString(R.string.review_thanks); explanation = getString(R.string.review_thanks_explanation, getReviewActivity().reviewController.firstRevision.getUser()); yesButtonText = getString(R.string.review_thanks_yes_button_text); @@ -114,6 +117,7 @@ public class ReviewImageFragment extends CommonsDaggerSupportFragment { }); break; default: + enableButtons(); question = "How did we get here?"; explanation = "No idea."; yesButtonText = "yes"; @@ -142,6 +146,28 @@ public class ReviewImageFragment extends CommonsDaggerSupportFragment { }; } + /** + * This function is called when an image has + * been loaded to enable the review buttons. + */ + public void enableButtons() { + yesButton.setEnabled(true); + yesButton.setAlpha(1); + noButton.setEnabled(true); + noButton.setAlpha(1); + } + + /** + * This function is called when an image is being loaded + * to disable the review buttons + */ + public void disableButtons() { + yesButton.setEnabled(false); + yesButton.setAlpha(0.5f); + noButton.setEnabled(false); + noButton.setAlpha(0.5f); + } + @OnClick(R.id.button_no) void onNoButtonClicked() { getReviewActivity().swipeToNext(); diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewPagerAdapter.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewPagerAdapter.java index 000fb8374..695fa3157 100644 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewPagerAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/review/ReviewPagerAdapter.java @@ -34,6 +34,26 @@ public class ReviewPagerAdapter extends FragmentStatePagerAdapter { } } + /** + * This function is called when an image has + * been loaded to enable the review buttons. + */ + public void enableButtons() { + if (reviewImageFragments != null){ + reviewImageFragments[0].enableButtons(); + } + } + + /** + * This function is called when an image is being loaded + * to disable the review buttons + */ + public void disableButtons() { + if (reviewImageFragments != null){ + reviewImageFragments[0].disableButtons(); + } + } + @Override public Fragment getItem(int position) { Bundle bundle = new Bundle(); diff --git a/app/src/main/res/layout/fragment_review_image.xml b/app/src/main/res/layout/fragment_review_image.xml index 6e9bb9e84..5972ac76f 100644 --- a/app/src/main/res/layout/fragment_review_image.xml +++ b/app/src/main/res/layout/fragment_review_image.xml @@ -58,6 +58,8 @@ android:layout_margin="@dimen/activity_margin_horizontal" android:background="@android:color/transparent" android:text="@string/yes" + android:enabled="false" + android:alpha="0.5" android:textAllCaps="true" android:textAlignment="center" android:textColor="@color/yes_button_color"/> @@ -68,6 +70,8 @@ android:layout_width="0dp" android:layout_height="48dp" android:layout_weight="1" + android:enabled="false" + android:alpha="0.5" android:layout_margin="@dimen/activity_margin_horizontal" android:background="@android:color/transparent" android:text="@string/no"