11
11
import android .view .MenuItem ;
12
12
import android .view .MotionEvent ;
13
13
import android .view .View ;
14
- import android .widget .Button ;
15
- import android .widget .FrameLayout ;
16
- import android .widget .LinearLayout ;
17
- import android .widget .ProgressBar ;
18
- import android .widget .TextView ;
19
- import androidx .appcompat .widget .Toolbar ;
20
- import androidx .drawerlayout .widget .DrawerLayout ;
21
14
import androidx .fragment .app .Fragment ;
22
15
import androidx .fragment .app .FragmentManager ;
23
- import butterknife .BindView ;
24
- import butterknife .ButterKnife ;
25
- import com .facebook .drawee .view .SimpleDraweeView ;
26
- import com .viewpagerindicator .CirclePageIndicator ;
27
16
import fr .free .nrw .commons .Media ;
28
17
import fr .free .nrw .commons .R ;
29
18
import fr .free .nrw .commons .auth .AccountUtil ;
19
+ import fr .free .nrw .commons .databinding .ActivityReviewBinding ;
30
20
import fr .free .nrw .commons .delete .DeleteHelper ;
31
21
import fr .free .nrw .commons .media .MediaDetailFragment ;
32
22
import fr .free .nrw .commons .theme .BaseActivity ;
39
29
40
30
public class ReviewActivity extends BaseActivity {
41
31
42
- @ BindView (R .id .pager_indicator_review )
43
- public CirclePageIndicator pagerIndicator ;
44
- @ BindView (R .id .toolbar )
45
- Toolbar toolbar ;
46
- @ BindView (R .id .drawer_layout )
47
- DrawerLayout drawerLayout ;
48
- @ BindView (R .id .view_pager_review )
49
- ReviewViewPager reviewPager ;
50
- @ BindView (R .id .skip_image )
51
- Button btnSkipImage ;
52
- @ BindView (R .id .review_image_view )
53
- SimpleDraweeView simpleDraweeView ;
54
- @ BindView (R .id .pb_review_image )
55
- ProgressBar progressBar ;
56
- @ BindView (R .id .tv_image_caption )
57
- TextView imageCaption ;
58
- @ BindView (R .id .mediaDetailContainer )
59
- FrameLayout mediaDetailContainer ;
32
+
33
+ private ActivityReviewBinding binding ;
34
+
60
35
MediaDetailFragment mediaDetailFragment ;
61
- @ BindView (R .id .reviewActivityContainer )
62
- LinearLayout reviewContainer ;
63
36
public ReviewPagerAdapter reviewPagerAdapter ;
64
37
public ReviewController reviewController ;
65
38
@ Inject
@@ -110,19 +83,20 @@ public Media getMedia() {
110
83
@ Override
111
84
protected void onCreate (Bundle savedInstanceState ) {
112
85
super .onCreate (savedInstanceState );
113
- setContentView (R .layout .activity_review );
114
- ButterKnife .bind (this );
115
- setSupportActionBar (toolbar );
86
+ binding = ActivityReviewBinding .inflate (getLayoutInflater ());
87
+ setContentView (binding .getRoot ());
88
+
89
+ setSupportActionBar (binding .toolbarBinding .toolbar );
116
90
getSupportActionBar ().setDisplayHomeAsUpEnabled (true );
117
91
118
92
reviewController = new ReviewController (deleteHelper , this );
119
93
120
94
reviewPagerAdapter = new ReviewPagerAdapter (getSupportFragmentManager ());
121
- reviewPager .setAdapter (reviewPagerAdapter );
122
- pagerIndicator . setViewPager (reviewPager );
123
- progressBar .setVisibility (View .VISIBLE );
95
+ binding . viewPagerReview .setAdapter (reviewPagerAdapter );
96
+ binding . pagerIndicatorReview . setViewPager (binding . viewPagerReview );
97
+ binding . pbReviewImage .setVisibility (View .VISIBLE );
124
98
125
- Drawable d []=btnSkipImage .getCompoundDrawablesRelative ();
99
+ Drawable d []=binding . skipImage .getCompoundDrawablesRelative ();
126
100
d [2 ].setColorFilter (getApplicationContext ().getResources ().getColor (R .color .button_blue ), PorterDuff .Mode .SRC_IN );
127
101
128
102
if (savedInstanceState != null && savedInstanceState .getParcelable (SAVED_MEDIA ) != null ) {
@@ -132,17 +106,17 @@ protected void onCreate(Bundle savedInstanceState) {
132
106
runRandomizer (); //Run randomizer whenever everything is ready so that a first random image will be added
133
107
}
134
108
135
- btnSkipImage .setOnClickListener (view -> {
109
+ binding . skipImage .setOnClickListener (view -> {
136
110
reviewImageFragment = getInstanceOfReviewImageFragment ();
137
111
reviewImageFragment .disableButtons ();
138
112
runRandomizer ();
139
113
});
140
114
141
- simpleDraweeView .setOnClickListener (view ->setUpMediaDetailFragment ());
115
+ binding . reviewImageView .setOnClickListener (view ->setUpMediaDetailFragment ());
142
116
143
- btnSkipImage .setOnTouchListener ((view , event ) -> {
117
+ binding . skipImage .setOnTouchListener ((view , event ) -> {
144
118
if (event .getAction () == MotionEvent .ACTION_UP && event .getRawX () >= (
145
- btnSkipImage . getRight () - btnSkipImage
119
+ binding . skipImage . getRight () - binding . skipImage
146
120
.getCompoundDrawables ()[2 ].getBounds ().width ())) {
147
121
showSkipImageInfo ();
148
122
return true ;
@@ -160,8 +134,8 @@ public boolean onSupportNavigateUp() {
160
134
@ SuppressLint ("CheckResult" )
161
135
public boolean runRandomizer () {
162
136
hasNonHiddenCategories = false ;
163
- progressBar .setVisibility (View .VISIBLE );
164
- reviewPager .setCurrentItem (0 );
137
+ binding . pbReviewImage .setVisibility (View .VISIBLE );
138
+ binding . viewPagerReview .setCurrentItem (0 );
165
139
// Finds non-hidden categories from Media instance
166
140
compositeDisposable .add (reviewHelper .getRandomMedia ()
167
141
.subscribeOn (Schedulers .io ())
@@ -213,7 +187,7 @@ private void updateImage(Media media) {
213
187
this .media = media ;
214
188
String fileName = media .getFilename ();
215
189
if (fileName .length () == 0 ) {
216
- ViewUtil .showShortSnackbar (drawerLayout , R .string .error_review );
190
+ ViewUtil .showShortSnackbar (binding . drawerLayout , R .string .error_review );
217
191
return ;
218
192
}
219
193
@@ -223,7 +197,7 @@ private void updateImage(Media media) {
223
197
return ;
224
198
}
225
199
226
- simpleDraweeView .setImageURI (media .getImageUrl ());
200
+ binding . reviewImageView .setImageURI (media .getImageUrl ());
227
201
228
202
reviewController .onImageRefreshed (media ); //file name is updated
229
203
compositeDisposable .add (reviewHelper .getFirstRevisionOfFile (fileName )
@@ -233,19 +207,19 @@ private void updateImage(Media media) {
233
207
reviewController .firstRevision = revision ;
234
208
reviewPagerAdapter .updateFileInformation ();
235
209
@ SuppressLint ({"StringFormatInvalid" , "LocalSuppress" }) String caption = String .format (getString (R .string .review_is_uploaded_by ), fileName , revision .getUser ());
236
- imageCaption .setText (caption );
237
- progressBar .setVisibility (View .GONE );
210
+ binding . tvImageCaption .setText (caption );
211
+ binding . pbReviewImage .setVisibility (View .GONE );
238
212
reviewImageFragment = getInstanceOfReviewImageFragment ();
239
213
reviewImageFragment .enableButtons ();
240
214
}));
241
- reviewPager .setCurrentItem (0 );
215
+ binding . viewPagerReview .setCurrentItem (0 );
242
216
}
243
217
244
218
public void swipeToNext () {
245
- int nextPos = reviewPager .getCurrentItem () + 1 ;
219
+ int nextPos = binding . viewPagerReview .getCurrentItem () + 1 ;
246
220
// If currently at category fragment, then check whether the media has any non-hidden category
247
221
if (nextPos <= 3 ) {
248
- reviewPager .setCurrentItem (nextPos );
222
+ binding . viewPagerReview .setCurrentItem (nextPos );
249
223
if (nextPos == 2 ) {
250
224
// The media has no non-hidden category. Such media are already flagged by server-side bots, so no need to review manually.
251
225
if (!hasNonHiddenCategories ) {
@@ -262,6 +236,7 @@ public void swipeToNext() {
262
236
public void onDestroy () {
263
237
super .onDestroy ();
264
238
compositeDisposable .clear ();
239
+ binding = null ;
265
240
}
266
241
267
242
public void showSkipImageInfo (){
@@ -306,18 +281,18 @@ public boolean onOptionsItemSelected(MenuItem item) {
306
281
* this function return the instance of reviewImageFragment
307
282
*/
308
283
public ReviewImageFragment getInstanceOfReviewImageFragment (){
309
- int currentItemOfReviewPager = reviewPager .getCurrentItem ();
310
- reviewImageFragment = (ReviewImageFragment ) reviewPagerAdapter .instantiateItem (reviewPager , currentItemOfReviewPager );
284
+ int currentItemOfReviewPager = binding . viewPagerReview .getCurrentItem ();
285
+ reviewImageFragment = (ReviewImageFragment ) reviewPagerAdapter .instantiateItem (binding . viewPagerReview , currentItemOfReviewPager );
311
286
return reviewImageFragment ;
312
287
}
313
288
314
289
/**
315
290
* set up the media detail fragment when click on the review image
316
291
*/
317
292
private void setUpMediaDetailFragment () {
318
- if (mediaDetailContainer .getVisibility () == View .GONE && media != null ) {
319
- mediaDetailContainer .setVisibility (View .VISIBLE );
320
- reviewContainer .setVisibility (View .INVISIBLE );
293
+ if (binding . mediaDetailContainer .getVisibility () == View .GONE && media != null ) {
294
+ binding . mediaDetailContainer .setVisibility (View .VISIBLE );
295
+ binding . reviewActivityContainer .setVisibility (View .INVISIBLE );
321
296
FragmentManager fragmentManager = getSupportFragmentManager ();
322
297
mediaDetailFragment = new MediaDetailFragment ();
323
298
Bundle bundle = new Bundle ();
@@ -334,9 +309,9 @@ private void setUpMediaDetailFragment() {
334
309
*/
335
310
@ Override
336
311
public void onBackPressed () {
337
- if (mediaDetailContainer .getVisibility () == View .VISIBLE ) {
338
- mediaDetailContainer .setVisibility (View .GONE );
339
- reviewContainer .setVisibility (View .VISIBLE );
312
+ if (binding . mediaDetailContainer .getVisibility () == View .VISIBLE ) {
313
+ binding . mediaDetailContainer .setVisibility (View .GONE );
314
+ binding . reviewActivityContainer .setVisibility (View .VISIBLE );
340
315
}
341
316
super .onBackPressed ();
342
317
}
@@ -348,10 +323,11 @@ private void setUpMediaDetailOnOrientation() {
348
323
Fragment mediaDetailFragment = getSupportFragmentManager ()
349
324
.findFragmentById (R .id .mediaDetailContainer );
350
325
if (mediaDetailFragment != null ) {
351
- mediaDetailContainer .setVisibility (View .VISIBLE );
352
- reviewContainer .setVisibility (View .INVISIBLE );
326
+ binding . mediaDetailContainer .setVisibility (View .VISIBLE );
327
+ binding . reviewActivityContainer .setVisibility (View .INVISIBLE );
353
328
getSupportFragmentManager ().beginTransaction ()
354
329
.replace (R .id .mediaDetailContainer , mediaDetailFragment ).commit ();
355
330
}
356
331
}
332
+
357
333
}
0 commit comments