From 2eaf16e97fcc77bdf3f782fb8c7ec9836087bbb5 Mon Sep 17 00:00:00 2001 From: vanshikaarora Date: Fri, 22 Mar 2019 21:29:16 +0530 Subject: [PATCH 1/2] resolves image reloading issue --- .../nrw/commons/review/ReviewActivity.java | 63 ++++++++------- .../commons/review/ReviewImageFragment.java | 39 +-------- .../commons/review/ReviewPagerAdapter.java | 14 ++-- app/src/main/res/layout/activity_review.xml | 61 +++++++++++--- .../main/res/layout/fragment_review_image.xml | 81 ++++--------------- 5 files changed, 111 insertions(+), 147 deletions(-) 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 f8e8985b4a..c5b27e9883 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 @@ -1,12 +1,15 @@ package fr.free.nrw.commons.review; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; +import android.widget.TextView; +import com.facebook.drawee.view.SimpleDraweeView; import com.google.android.material.navigation.NavigationView; import com.viewpagerindicator.CirclePageIndicator; @@ -21,6 +24,7 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.auth.AuthenticatedActivity; import fr.free.nrw.commons.mwapi.MediaResult; import fr.free.nrw.commons.mwapi.MediaWikiApi; @@ -33,28 +37,39 @@ public class ReviewActivity extends AuthenticatedActivity { + public ReviewPagerAdapter reviewPagerAdapter; + public ReviewController reviewController; + @BindView(R.id.reviewPagerIndicator) + public CirclePageIndicator pagerIndicator; @BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.navigation_view) NavigationView navigationView; @BindView(R.id.drawer_layout) DrawerLayout drawerLayout; - @BindView(R.id.reviewPager) ReviewViewPager reviewPager; - @BindView(R.id.skip_image) Button skip_image_button; + @BindView(R.id.imageView) + SimpleDraweeView simpleDraweeView; + @BindView(R.id.progressBar) + ProgressBar progressBar; + @BindView(R.id.imageCaption) + TextView imageCaption; + @Inject + MediaWikiApi mwApi; - @Inject MediaWikiApi mwApi; - - public ReviewPagerAdapter reviewPagerAdapter; - - public ReviewController reviewController; - - @BindView(R.id.reviewPagerIndicator) - public CirclePageIndicator pagerIndicator; - + /** + * Consumers should be simply using this method to use this activity. + * + * @param context + * @param title Page title + */ + public static void startYourself(Context context, String title) { + Intent reviewActivity = new Intent(context, ReviewActivity.class); + context.startActivity(reviewActivity); + } @Override protected void onAuthCookieAcquired(String authCookie) { @@ -78,20 +93,16 @@ protected void onCreate(Bundle savedInstanceState) { reviewPager.setAdapter(reviewPagerAdapter); reviewPagerAdapter.getItem(0); pagerIndicator.setViewPager(reviewPager); + progressBar.setVisibility(View.VISIBLE); runRandomizer(); //Run randomizer whenever everything is ready so that a first random image will be added skip_image_button.setOnClickListener(view -> runRandomizer()); } - - + @SuppressLint("CheckResult") public boolean runRandomizer() { - ProgressBar progressBar = reviewPagerAdapter.reviewImageFragments[reviewPager.getCurrentItem()].progressBar; - if (progressBar != null) { - progressBar.setVisibility(View.VISIBLE); - } - + progressBar.setVisibility(View.VISIBLE); reviewPager.setCurrentItem(0); Observable.fromCallable(() -> { String result = ""; @@ -111,18 +122,22 @@ public boolean runRandomizer() { return true; } + @SuppressLint("CheckResult") private void updateImage(String fileName) { if (fileName.length() == 0) { ViewUtil.showShortSnackbar(drawerLayout, R.string.error_review); return; } + simpleDraweeView.setImageURI(Utils.makeThumbBaseUrl(fileName)); reviewController.onImageRefreshed(fileName); //file name is updated mwApi.firstRevisionOfFile("File:" + fileName) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(revision -> { reviewController.firstRevision = revision; - reviewPagerAdapter.updateFileInformation(fileName, revision); + reviewPagerAdapter.updateFileInformation(fileName); + ((TextView) imageCaption).setText(fileName + " is uploaded by: " + revision); + progressBar.setVisibility(View.GONE); }); reviewPager.setCurrentItem(0); Observable.fromCallable(() -> { @@ -153,14 +168,4 @@ private void updateCategories(ArrayList categories) { public void onDestroy() { super.onDestroy(); } - - /** - * Consumers should be simply using this method to use this activity. - * @param context - * @param title Page title - */ - public static void startYourself(Context context, String title) { - Intent reviewActivity = new Intent(context, ReviewActivity.class); - context.startActivity(reviewActivity); - } } 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 d230e5c84f..a6817806f1 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 @@ -8,15 +8,10 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; -import android.widget.ProgressBar; import android.widget.TextView; -import com.facebook.drawee.view.SimpleDraweeView; - import fr.free.nrw.commons.R; -import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; -import fr.free.nrw.commons.mwapi.Revision; public class ReviewImageFragment extends CommonsDaggerSupportFragment { @@ -30,28 +25,16 @@ public class ReviewImageFragment extends CommonsDaggerSupportFragment { private String catString; private View textViewQuestionContext; - private View imageCaption; private View textViewQuestion; - private SimpleDraweeView simpleDraweeView; private Button yesButton; private Button noButton; - public ProgressBar progressBar; - private Revision revision; - - public void update(int position, String fileName, Revision revision) { + public void update(int position, String fileName) { this.position = position; this.fileName = fileName; - this.revision = revision; - - fillImageCaption(); - if (simpleDraweeView != null) { - simpleDraweeView.setImageURI(Utils.makeThumbBaseUrl(fileName)); - progressBar.setVisibility(View.GONE); - } } public void updateCategories(Iterable categories) { @@ -78,15 +61,11 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, position = getArguments().getInt("position"); View layoutView = inflater.inflate(R.layout.fragment_review_image, container, false); - progressBar = layoutView.findViewById(R.id.progressBar); textViewQuestion = layoutView.findViewById(R.id.reviewQuestion); textViewQuestionContext = layoutView.findViewById(R.id.reviewQuestionContext); - imageCaption = layoutView.findViewById(R.id.imageCaption); yesButton = layoutView.findViewById(R.id.yesButton); noButton = layoutView.findViewById(R.id.noButton); - fillImageCaption(); - String question, explanation, yesButtonText, noButtonText; switch (position) { case COPYRIGHT: @@ -127,7 +106,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, ((ReviewActivity) getActivity()).reviewController.sendThanks(); }); break; - default : + default: question = "How did we get here?"; explanation = "No idea."; yesButtonText = "yes"; @@ -143,22 +122,10 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, yesButton.setText(yesButtonText); noButton.setText(noButtonText); - if(position==CATEGORY){ + if (position == CATEGORY) { updateCategories(ReviewController.categories); } - simpleDraweeView = layoutView.findViewById(R.id.imageView); - - if (fileName != null) { - simpleDraweeView.setImageURI(Utils.makeThumbBaseUrl(fileName)); - progressBar.setVisibility(View.GONE); - } return layoutView; } - - private void fillImageCaption() { - if (imageCaption != null && fileName != null && revision != null) { - ((TextView) imageCaption).setText(fileName + " is uploaded by: " + revision.username); - } - } } 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 660a0a0b03..ddbaddbe0f 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 @@ -13,11 +13,11 @@ public class ReviewPagerAdapter extends FragmentStatePagerAdapter { public ReviewPagerAdapter(FragmentManager fm) { super(fm); - reviewImageFragments = new ReviewImageFragment[] { - new ReviewImageFragment(), - new ReviewImageFragment(), - new ReviewImageFragment(), - new ReviewImageFragment() + reviewImageFragments = new ReviewImageFragment[]{ + new ReviewImageFragment(), + new ReviewImageFragment(), + new ReviewImageFragment(), + new ReviewImageFragment() }; } @@ -26,10 +26,10 @@ public int getCount() { return reviewImageFragments.length; } - public void updateFileInformation(String fileName, Revision revision) { + public void updateFileInformation(String fileName) { for (int i = 0; i < getCount(); i++) { ReviewImageFragment fragment = reviewImageFragments[i]; - fragment.update(i, fileName, revision); + fragment.update(i, fileName); } } diff --git a/app/src/main/res/layout/activity_review.xml b/app/src/main/res/layout/activity_review.xml index 4fc647f6c3..0776f9ac4b 100644 --- a/app/src/main/res/layout/activity_review.xml +++ b/app/src/main/res/layout/activity_review.xml @@ -13,7 +13,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + + android:textStyle="bold" /> + + + + + + + + + + + + + + + android:layout_weight="13.5" + android:fadingEdge="none" /> + android:background="?attr/colorPrimaryDark" + android:elevation="1dp" + android:foregroundGravity="center_vertical" /> diff --git a/app/src/main/res/layout/fragment_review_image.xml b/app/src/main/res/layout/fragment_review_image.xml index ef998ceb0e..9110a7a20b 100644 --- a/app/src/main/res/layout/fragment_review_image.xml +++ b/app/src/main/res/layout/fragment_review_image.xml @@ -1,12 +1,10 @@ - - - - - - - - - - - - - - - + android:textAlignment="center" + android:textColor="?attr/reviewHeading" + android:textSize="32sp" /> + + android:textAlignment="center" + android:textSize="22sp" /> + android:orientation="horizontal" + android:weightSum="2">