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">
+ android:textColor="@color/yes_button_color"
+ android:textSize="18sp" />
+ android:textColor="@color/no_button_color"
+ android:textSize="18sp" />
From 7b06c1642cef5a3094a4e7fd4909f453d4105f25 Mon Sep 17 00:00:00 2001
From: vanshikaarora
Date: Sat, 23 Mar 2019 23:08:52 +0530
Subject: [PATCH 2/2] minor ui changes
---
.../main/java/fr/free/nrw/commons/review/ReviewActivity.java | 2 +-
app/src/main/res/layout/activity_review.xml | 3 ++-
app/src/main/res/layout/fragment_review_image.xml | 1 +
3 files changed, 4 insertions(+), 2 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 0016d7ca10..3b751202e8 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
@@ -130,7 +130,7 @@ private void updateImage(String fileName) {
.subscribe(revision -> {
reviewController.firstRevision = revision;
reviewPagerAdapter.updateFileInformation(fileName);
- ((TextView) imageCaption).setText(fileName + " is uploaded by: " + revision);
+ ((TextView) imageCaption).setText(fileName + " is uploaded by: " + revision.getUser());
progressBar.setVisibility(View.GONE);
}));
reviewPager.setCurrentItem(0);
diff --git a/app/src/main/res/layout/activity_review.xml b/app/src/main/res/layout/activity_review.xml
index 0776f9ac4b..f42c80f2a4 100644
--- a/app/src/main/res/layout/activity_review.xml
+++ b/app/src/main/res/layout/activity_review.xml
@@ -34,7 +34,8 @@
+ android:layout_height="300dp"
+ android:layout_marginTop="5dp">