@@ -105,7 +105,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
105
105
106
106
// Used for the setting the size of imageView at runtime
107
107
ConstraintLayout .LayoutParams params = (ConstraintLayout .LayoutParams )
108
- binding .achievementBadgeImage .getLayoutParams ();
108
+ binding .achievementBadgeImage .getLayoutParams ();
109
109
params .height = (int ) (height * BADGE_IMAGE_HEIGHT_RATIO );
110
110
params .width = (int ) (width * BADGE_IMAGE_WIDTH_RATIO );
111
111
binding .achievementBadgeImage .requestLayout ();
@@ -186,37 +186,37 @@ private void setAchievements() {
186
186
try {
187
187
188
188
compositeDisposable .add (okHttpJsonApiClient
189
- .getAchievements (Objects .requireNonNull (userName ))
190
- .subscribeOn (Schedulers .io ())
191
- .observeOn (AndroidSchedulers .mainThread ())
192
- .subscribe (
193
- response -> {
194
- if (response != null ) {
195
- setUploadCount (Achievements .from (response ));
196
- } else {
197
- Timber .d ("success" );
198
- binding .layoutImageReverts .setVisibility (View .INVISIBLE );
199
- binding .achievementBadgeImage .setVisibility (View .INVISIBLE );
200
- // If the number of edits made by the user are more than 150,000
201
- // in some cases such high number of wiki edit counts cause the
202
- // achievements calculator to fail in some cases, for more details
203
- // refer Issue: #3295
204
- if (numberOfEdits <= 150000 ) {
205
- showSnackBarWithRetry (false );
206
- } else {
207
- showSnackBarWithRetry (true );
208
- }
209
- }
210
- },
211
- t -> {
212
- Timber .e (t , "Fetching achievements statistics failed" );
213
- if (numberOfEdits <= 150000 ) {
214
- showSnackBarWithRetry (false );
215
- } else {
216
- showSnackBarWithRetry (true );
217
- }
189
+ .getAchievements (Objects .requireNonNull (userName ))
190
+ .subscribeOn (Schedulers .io ())
191
+ .observeOn (AndroidSchedulers .mainThread ())
192
+ .subscribe (
193
+ response -> {
194
+ if (response != null ) {
195
+ setUploadCount (Achievements .from (response ));
196
+ } else {
197
+ Timber .d ("success" );
198
+ binding .layoutImageReverts .setVisibility (View .INVISIBLE );
199
+ binding .achievementBadgeImage .setVisibility (View .INVISIBLE );
200
+ // If the number of edits made by the user are more than 150,000
201
+ // in some cases such high number of wiki edit counts cause the
202
+ // achievements calculator to fail in some cases, for more details
203
+ // refer Issue: #3295
204
+ if (numberOfEdits <= 150000 ) {
205
+ showSnackBarWithRetry (false );
206
+ } else {
207
+ showSnackBarWithRetry (true );
218
208
}
219
- ));
209
+ }
210
+ },
211
+ t -> {
212
+ Timber .e (t , "Fetching achievements statistics failed" );
213
+ if (numberOfEdits <= 150000 ) {
214
+ showSnackBarWithRetry (false );
215
+ } else {
216
+ showSnackBarWithRetry (true );
217
+ }
218
+ }
219
+ ));
220
220
}
221
221
catch (Exception e ){
222
222
Timber .d (e +"success" );
@@ -233,15 +233,15 @@ private void setWikidataEditCount() {
233
233
return ;
234
234
}
235
235
compositeDisposable .add (okHttpJsonApiClient
236
- .getWikidataEdits (userName )
237
- .subscribeOn (Schedulers .io ())
238
- .observeOn (AndroidSchedulers .mainThread ())
239
- .subscribe (edits -> {
240
- numberOfEdits = edits ;
241
- binding .wikidataEdits .setText (String .valueOf (edits ));
242
- }, e -> {
243
- Timber .e ("Error:" + e );
244
- }));
236
+ .getWikidataEdits (userName )
237
+ .subscribeOn (Schedulers .io ())
238
+ .observeOn (AndroidSchedulers .mainThread ())
239
+ .subscribe (edits -> {
240
+ numberOfEdits = edits ;
241
+ binding .wikidataEdits .setText (String .valueOf (edits ));
242
+ }, e -> {
243
+ Timber .e ("Error:" + e );
244
+ }));
245
245
}
246
246
247
247
/**
@@ -255,11 +255,11 @@ private void showSnackBarWithRetry(boolean tooManyAchievements) {
255
255
if (tooManyAchievements ) {
256
256
binding .progressBar .setVisibility (View .GONE );
257
257
ViewUtil .showDismissibleSnackBar (getActivity ().findViewById (android .R .id .content ),
258
- R .string .achievements_fetch_failed_ultimate_achievement , R .string .retry , view -> setAchievements ());
258
+ R .string .achievements_fetch_failed_ultimate_achievement , R .string .retry , view -> setAchievements ());
259
259
} else {
260
260
binding .progressBar .setVisibility (View .GONE );
261
261
ViewUtil .showDismissibleSnackBar (getActivity ().findViewById (android .R .id .content ),
262
- R .string .achievements_fetch_failed , R .string .retry , view -> setAchievements ());
262
+ R .string .achievements_fetch_failed , R .string .retry , view -> setAchievements ());
263
263
}
264
264
}
265
265
@@ -277,16 +277,16 @@ private void onError() {
277
277
private void setUploadCount (Achievements achievements ) {
278
278
if (checkAccount ()) {
279
279
compositeDisposable .add (okHttpJsonApiClient
280
- .getUploadCount (Objects .requireNonNull (userName ))
281
- .subscribeOn (Schedulers .io ())
282
- .observeOn (AndroidSchedulers .mainThread ())
283
- .subscribe (
284
- uploadCount -> setAchievementsUploadCount (achievements , uploadCount ),
285
- t -> {
286
- Timber .e (t , "Fetching upload count failed" );
287
- onError ();
288
- }
289
- ));
280
+ .getUploadCount (Objects .requireNonNull (userName ))
281
+ .subscribeOn (Schedulers .io ())
282
+ .observeOn (AndroidSchedulers .mainThread ())
283
+ .subscribe (
284
+ uploadCount -> setAchievementsUploadCount (achievements , uploadCount ),
285
+ t -> {
286
+ Timber .e (t , "Fetching upload count failed" );
287
+ onError ();
288
+ }
289
+ ));
290
290
}
291
291
}
292
292
@@ -295,8 +295,18 @@ private void setUploadCount(Achievements achievements) {
295
295
* @param uploadCount
296
296
*/
297
297
private void setAchievementsUploadCount (Achievements achievements , int uploadCount ) {
298
- achievements .setImagesUploaded (uploadCount );
299
- hideProgressBar (achievements );
298
+ // Create a new instance of Achievements with updated imagesUploaded
299
+ Achievements updatedAchievements = new Achievements (
300
+ achievements .getUniqueUsedImages (),
301
+ achievements .getArticlesUsingImages (),
302
+ achievements .getThanksReceived (),
303
+ achievements .getFeaturedImages (),
304
+ achievements .getQualityImages (),
305
+ uploadCount , // Update imagesUploaded with new value
306
+ achievements .getRevertCount ()
307
+ );
308
+
309
+ hideProgressBar (updatedAchievements );
300
310
}
301
311
302
312
/**
@@ -309,7 +319,7 @@ private void setUploadProgress(int uploadCount){
309
319
}else {
310
320
binding .imagesUploadedProgressbar .setVisibility (View .VISIBLE );
311
321
binding .imagesUploadedProgressbar .setProgress
312
- (100 *uploadCount /levelInfo .getMaxUploadCount ());
322
+ (100 *uploadCount /levelInfo .getMaxUploadCount ());
313
323
binding .tvUploadedImages .setText
314
324
(uploadCount + "/" + levelInfo .getMaxUploadCount ());
315
325
}
@@ -318,8 +328,8 @@ private void setUploadProgress(int uploadCount){
318
328
319
329
private void setZeroAchievements () {
320
330
String message = !Objects .equals (sessionManager .getUserName (), userName ) ?
321
- getString (R .string .no_achievements_yet , userName ) :
322
- getString (R .string .you_have_no_achievements_yet );
331
+ getString (R .string .no_achievements_yet , userName ) :
332
+ getString (R .string .you_have_no_achievements_yet );
323
333
DialogUtil .showAlertDialog (getActivity (),
324
334
null ,
325
335
message ,
@@ -357,7 +367,7 @@ private void inflateAchievements(Achievements achievements) {
357
367
// binding.imagesUsedByWikiProgressBar.setVisibility(View.VISIBLE);
358
368
binding .thanksReceived .setText (String .valueOf (achievements .getThanksReceived ()));
359
369
binding .imagesUsedByWikiProgressBar .setProgress
360
- (100 * achievements .getUniqueUsedImages () / levelInfo .getMaxUniqueImages ());
370
+ (100 * achievements .getUniqueUsedImages () / levelInfo .getMaxUniqueImages ());
361
371
binding .tvWikiPb .setText (achievements .getUniqueUsedImages () + "/"
362
372
+ levelInfo .getMaxUniqueImages ());
363
373
binding .imageFeatured .setText (String .valueOf (achievements .getFeaturedImages ()));
@@ -366,7 +376,7 @@ private void inflateAchievements(Achievements achievements) {
366
376
levelUpInfoString += " " + levelInfo .getLevelNumber ();
367
377
binding .achievementLevel .setText (levelUpInfoString );
368
378
binding .achievementBadgeImage .setImageDrawable (VectorDrawableCompat .create (getResources (), R .drawable .badge ,
369
- new ContextThemeWrapper (getActivity (), levelInfo .getLevelStyle ()).getTheme ()));
379
+ new ContextThemeWrapper (getActivity (), levelInfo .getLevelStyle ()).getTheme ()));
370
380
binding .achievementBadgeText .setText (Integer .toString (levelInfo .getLevelNumber ()));
371
381
BasicKvStore store = new BasicKvStore (this .getContext (), userName );
372
382
store .putString ("userAchievementsLevel" , Integer .toString (levelInfo .getLevelNumber ()));
@@ -378,8 +388,8 @@ private void inflateAchievements(Achievements achievements) {
378
388
private void hideProgressBar (Achievements achievements ) {
379
389
if (binding .progressBar != null ) {
380
390
levelInfo = LevelController .LevelInfo .from (achievements .getImagesUploaded (),
381
- achievements .getUniqueUsedImages (),
382
- achievements .getNotRevertPercentage ());
391
+ achievements .getUniqueUsedImages (),
392
+ achievements .getNotRevertPercentage ());
383
393
inflateAchievements (achievements );
384
394
setUploadProgress (achievements .getImagesUploaded ());
385
395
setImageRevertPercentage (achievements .getNotRevertPercentage ());
@@ -479,4 +489,4 @@ private boolean checkAccount(){
479
489
}
480
490
return true ;
481
491
}
482
- }
492
+ }
0 commit comments