Skip to content

Commit 3be184e

Browse files
ejeggmaskara
authored and
maskara
committed
Re-use same class for all review fragments (commons-app#1537)
And try to add pager indicator
1 parent e5db79e commit 3be184e

12 files changed

+79
-298
lines changed

app/src/main/java/fr/free/nrw/commons/di/FragmentBuilderModule.java

+2-11
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@
1717
import fr.free.nrw.commons.nearby.NearbyListFragment;
1818
import fr.free.nrw.commons.nearby.NearbyMapFragment;
1919
import fr.free.nrw.commons.nearby.NoPermissionsFragment;
20-
import fr.free.nrw.commons.review.ReviewCategoryMissuseFragment;
21-
import fr.free.nrw.commons.review.ReviewLicenceViolationFragment;
22-
import fr.free.nrw.commons.review.ReviewOutOfContextFragment;
20+
import fr.free.nrw.commons.review.ReviewImageFragment;
2321
import fr.free.nrw.commons.settings.SettingsFragment;
2422

2523
@Module
@@ -72,13 +70,6 @@ public abstract class FragmentBuilderModule {
7270
abstract BookmarkLocationsFragment bindBookmarkLocationListFragment();
7371

7472
@ContributesAndroidInjector
75-
abstract ReviewOutOfContextFragment bindReviewOutOfContextFragment();
76-
77-
@ContributesAndroidInjector
78-
abstract ReviewLicenceViolationFragment bindReviewLicenceViolationFragment();
79-
80-
81-
@ContributesAndroidInjector
82-
abstract ReviewCategoryMissuseFragment bindReviewCategoryMissuseFragment();
73+
abstract ReviewImageFragment bindReviewOutOfContextFragment();
8374

8475
}

app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import android.view.MenuItem;
1616
import android.view.View;
1717

18+
import com.viewpagerindicator.CirclePageIndicator;
19+
1820
import java.io.IOException;
1921
import java.util.List;
2022

@@ -55,6 +57,9 @@ public class ReviewActivity extends AuthenticatedActivity {
5557
//private ReviewCallback reviewCallback;
5658
private ReviewController reviewController;
5759

60+
@BindView(R.id.reviewPagerIndicator)
61+
public CirclePageIndicator pagerIndicator;
62+
5863
@Override
5964
protected void onAuthCookieAcquired(String authCookie) {
6065

@@ -78,6 +83,7 @@ protected void onCreate(Bundle savedInstanceState) {
7883
reviewPagerAdapter = new ReviewPagerAdapter(getSupportFragmentManager());
7984
pager.setAdapter(reviewPagerAdapter);
8085
reviewPagerAdapter.getItem(0);
86+
pagerIndicator.setViewPager(pager);
8187
}
8288

8389
@Override
@@ -116,9 +122,9 @@ public boolean onOptionsItemSelected(MenuItem item) {
116122
}
117123

118124
private void updateImage(Media result) {
119-
120125
reviewController.onImageRefreshed(result.getFilename()); //file name is updated
121-
reviewPagerAdapter.getItem(0); //new fragment with this new filename created
126+
reviewPagerAdapter.updateFilename();
127+
pager.setCurrentItem(0);
122128
}
123129

124130

app/src/main/java/fr/free/nrw/commons/review/ReviewCategoryMissuseFragment.java

-59
This file was deleted.

app/src/main/java/fr/free/nrw/commons/review/ReviewController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class ReviewController implements ReviewActivity.ReviewCallback {
99

1010
@Override
1111
public void onImageRefreshed(String fileName) {
12-
this.fileName = fileName;
12+
ReviewController.fileName = fileName;
1313
}
1414

1515
@Override

app/src/main/java/fr/free/nrw/commons/review/ReviewOutOfContextFragment.java renamed to app/src/main/java/fr/free/nrw/commons/review/ReviewImageFragment.java

+23-13
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package fr.free.nrw.commons.review;
22

33
import android.os.Bundle;
4-
import android.util.Log;
54
import android.view.LayoutInflater;
65
import android.view.View;
76
import android.view.ViewGroup;
@@ -17,7 +16,11 @@
1716
* Created by root on 19.05.2018.
1817
*/
1918

20-
public class ReviewOutOfContextFragment extends CommonsDaggerSupportFragment {
19+
public class ReviewImageFragment extends CommonsDaggerSupportFragment {
20+
21+
public static final int SPAM = 0;
22+
public static final int COPYRIGHT = 1;
23+
public static final int CATEGORY = 2;
2124

2225
private int position;
2326
private String fileName;
@@ -36,24 +39,31 @@ public void update(int position, String fileName) {
3639
@Override
3740
public void onCreate(Bundle savedInstanceState) {
3841
super.onCreate(savedInstanceState);
39-
//position = getArguments() != null ? getArguments().getInt("val") : 1;
40-
//fileName = getArguments() != null ? getArguments().getString("fileName") : " ";
4142
}
4243

4344
@Override
4445
public View onCreateView(LayoutInflater inflater, ViewGroup container,
4546
Bundle savedInstanceState) {
46-
View layoutView = inflater.inflate(R.layout.review_out_of_context, container,
47+
position = getArguments().getInt("position");
48+
View layoutView = inflater.inflate(R.layout.fragment_review_image, container,
4749
false);
48-
textView = layoutView.findViewById(R.id.testingText);
49-
50-
simpleDraweeView = layoutView.findViewById(R.id.imageView);
51-
if (fileName!= null) {
52-
simpleDraweeView.setImageURI(Utils.makeThumbBaseUrl(fileName));
50+
textView = layoutView.findViewById(R.id.reviewQuestion);
51+
String question;
52+
switch(position) {
53+
case COPYRIGHT:
54+
question = getString(R.string.review_copyright);
55+
break;
56+
case CATEGORY:
57+
question = getString(R.string.review_category);
58+
break;
59+
case SPAM:
60+
question = getString(R.string.review_spam);
61+
break;
62+
default:
63+
question = "How did we get here?";
5364
}
54-
55-
((TextView) textView).setText("Fragment #" + position);
56-
Log.d("deneme","Fragment #" + position);
65+
((TextView) textView).setText(question);
66+
simpleDraweeView = layoutView.findViewById(R.id.imageView);
5767
return layoutView;
5868
}
5969

app/src/main/java/fr/free/nrw/commons/review/ReviewLicenceViolationFragment.java

-59
This file was deleted.

app/src/main/java/fr/free/nrw/commons/review/ReviewPagerAdapter.java

+17-20
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,36 @@
1111

1212
public class ReviewPagerAdapter extends FragmentStatePagerAdapter {
1313
private int currentPosition;
14-
ReviewOutOfContextFragment reviewOutOfContextFragment;
15-
ReviewLicenceViolationFragment reviewLicenceViolationFragment;
16-
ReviewCategoryMissuseFragment reviewCategoryMissuseFragment;
14+
ReviewImageFragment[] reviewImageFragments;
1715

1816

1917
public ReviewPagerAdapter(FragmentManager fm) {
2018
super(fm);
21-
reviewOutOfContextFragment = new ReviewOutOfContextFragment();
22-
reviewLicenceViolationFragment = new ReviewLicenceViolationFragment();
23-
reviewCategoryMissuseFragment = new ReviewCategoryMissuseFragment();
19+
reviewImageFragments = new ReviewImageFragment[] {
20+
new ReviewImageFragment(),
21+
new ReviewImageFragment(),
22+
new ReviewImageFragment()
23+
};
2424
}
2525

2626
@Override
2727
public int getCount() {
2828
return 3;
2929
}
3030

31+
public void updateFilename() {
32+
for (int i = 0; i < getCount(); i++) {
33+
ReviewImageFragment fragment = reviewImageFragments[i];
34+
fragment.update(i, ReviewController.fileName);
35+
}
36+
}
37+
3138
@Override
3239
public Fragment getItem(int position) {
33-
switch (position) {
34-
case 0: // Fragment # 0 - This will show image
35-
currentPosition = 0;
36-
reviewOutOfContextFragment.update(currentPosition, ReviewController.fileName);
37-
return reviewOutOfContextFragment;
38-
case 1: // Fragment # 1 - This will show image
39-
currentPosition = 1;
40-
reviewLicenceViolationFragment.update(currentPosition, ReviewController.fileName);
41-
return reviewLicenceViolationFragment;
42-
default:// Fragment # 2-9 - Will show list
43-
currentPosition = 2;
44-
reviewCategoryMissuseFragment.update(currentPosition, ReviewController.fileName);
45-
return reviewCategoryMissuseFragment;
46-
}
40+
Bundle bundle = new Bundle();
41+
bundle.putInt("position", position);
42+
reviewImageFragments[position].setArguments(bundle);
43+
return reviewImageFragments[position];
4744
}
4845

4946
}

app/src/main/res/layout/activity_review.xml

+14-3
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,29 @@
2323

2424
</include>
2525

26-
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
26+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2727
android:layout_width="match_parent"
2828
android:layout_height="match_parent"
2929
android:layout_below="@id/toolbar"
30-
android:background="@color/primaryColor">
30+
android:background="@color/primaryColor"
31+
android:orientation="vertical">
3132

3233
<android.support.v4.view.ViewPager
3334
android:id="@+id/reviewPager"
3435
android:layout_width="match_parent"
3536
android:layout_height="match_parent"
3637
android:fadingEdge="none" />
37-
</FrameLayout>
38+
39+
40+
<com.viewpagerindicator.CirclePageIndicator
41+
android:id="@+id/reviewPagerIndicator"
42+
android:layout_height="@dimen/half_standard_height"
43+
android:layout_width="match_parent"
44+
android:layout_gravity="bottom"
45+
android:padding="5dp"
46+
/>
47+
48+
</LinearLayout>
3849

3950

4051

0 commit comments

Comments
 (0)