Skip to content

Commit cc74f3a

Browse files
maskaravivekmisaochan
authored andcommitted
Bug fix for uploaded images count in achievements activity (#1885)
1 parent 325e016 commit cc74f3a

File tree

3 files changed

+28
-78
lines changed

3 files changed

+28
-78
lines changed

app/src/main/java/fr/free/nrw/commons/achievements/Achievements.java

-59
Original file line numberDiff line numberDiff line change
@@ -59,65 +59,6 @@ public static Achievements from(FeedbackResponse response) {
5959
response.getDeletedUploads());
6060
}
6161

62-
/**
63-
* Builder class for Achievements class
64-
*/
65-
public class AchievementsBuilder {
66-
private int nestedUniqueUsedImages;
67-
private int nestedArticlesUsingImages;
68-
private int nestedThanksReceived;
69-
private int nestedImagesEditedBySomeoneElse;
70-
private int nestedFeaturedImages;
71-
private int nestedImagesUploaded;
72-
private int nestedRevertCount;
73-
74-
public AchievementsBuilder setUniqueUsedImages(int uniqueUsedImages) {
75-
this.nestedUniqueUsedImages = uniqueUsedImages;
76-
return this;
77-
}
78-
79-
public AchievementsBuilder setArticlesUsingImages(int articlesUsingImages) {
80-
this.nestedArticlesUsingImages = articlesUsingImages;
81-
return this;
82-
}
83-
84-
public AchievementsBuilder setThanksReceived(int thanksReceived) {
85-
this.nestedThanksReceived = thanksReceived;
86-
return this;
87-
}
88-
89-
public AchievementsBuilder setImagesEditedBySomeoneElse(int imagesEditedBySomeoneElse) {
90-
this.nestedImagesEditedBySomeoneElse = imagesEditedBySomeoneElse;
91-
return this;
92-
}
93-
94-
public AchievementsBuilder setFeaturedImages(int featuredImages) {
95-
this.nestedFeaturedImages = featuredImages;
96-
return this;
97-
}
98-
99-
public AchievementsBuilder setImagesUploaded(int imagesUploaded) {
100-
this.nestedImagesUploaded = imagesUploaded;
101-
return this;
102-
}
103-
104-
public AchievementsBuilder setRevertCount( int revertCount){
105-
this.nestedRevertCount = revertCount;
106-
return this;
107-
}
108-
109-
public Achievements createAchievements(){
110-
return new Achievements(nestedUniqueUsedImages,
111-
nestedArticlesUsingImages,
112-
nestedThanksReceived,
113-
nestedImagesEditedBySomeoneElse,
114-
nestedFeaturedImages,
115-
nestedImagesUploaded,
116-
nestedRevertCount);
117-
}
118-
119-
}
120-
12162
/**
12263
* getter function to get count of images uploaded
12364
* @return

app/src/main/java/fr/free/nrw/commons/achievements/AchievementsActivity.java

+26-19
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,7 @@ public class AchievementsActivity extends NavigationBaseActivity {
5454

5555
private static final double BADGE_IMAGE_WIDTH_RATIO = 0.4;
5656
private static final double BADGE_IMAGE_HEIGHT_RATIO = 0.3;
57-
private Boolean isUploadFetched = false;
58-
private Boolean isStatisticsFetched = false;
59-
private Boolean isRevertFetched = false;
60-
private Achievements achievements = new Achievements();
57+
6158
private LevelController.LevelInfo levelInfo;
6259

6360
@BindView(R.id.achievement_badge)
@@ -129,7 +126,6 @@ protected void onCreate(Bundle savedInstanceState) {
129126
progressBar.setVisibility(View.VISIBLE);
130127
hideLayouts();
131128
setAchievements();
132-
setUploadCount();
133129
initDrawer();
134130
}
135131

@@ -189,7 +185,6 @@ void shareScreen(Bitmap bitmap) {
189185
* which then calls parseJson when results are fetched
190186
*/
191187
private void setAchievements() {
192-
193188
if(checkAccount()) {
194189
compositeDisposable.add(mediaWikiApi
195190
.getAchievements(Objects.requireNonNull(sessionManager.getCurrentAccount()).name)
@@ -198,29 +193,42 @@ private void setAchievements() {
198193
.subscribe(
199194
response -> {
200195
if (response != null) {
201-
achievements = Achievements.from(response);
202-
isRevertFetched = true;
203-
isStatisticsFetched = true;
196+
setUploadCount(Achievements.from(response));
197+
} else {
198+
onError();
204199
}
205-
hideProgressBar();
206200
},
207-
t -> Timber.e(t, "Fetching achievements statisticss failed")
201+
t -> {
202+
Timber.e(t, "Fetching achievements statistics failed");
203+
onError();
204+
}
208205
));
209206
}
210207
}
211208

209+
/**
210+
* Shows a generic error toast when error occurs while loading achievements or uploads
211+
*/
212+
private void onError() {
213+
ViewUtil.showLongToast(this, getResources().getString(R.string.error_occurred));
214+
progressBar.setVisibility(View.GONE);
215+
}
216+
212217
/**
213218
* used to the count of images uploaded by user
214219
*/
215-
private void setUploadCount() {
220+
private void setUploadCount(Achievements achievements) {
216221
if(checkAccount()) {
217222
compositeDisposable.add(mediaWikiApi
218223
.getUploadCount(Objects.requireNonNull(sessionManager.getCurrentAccount()).name)
219224
.subscribeOn(Schedulers.io())
220225
.observeOn(AndroidSchedulers.mainThread())
221226
.subscribe(
222-
this::setAchievementsUploadCount,
223-
t -> Timber.e(t, "Fetching upload count failed")
227+
uploadCount -> setAchievementsUploadCount(achievements, uploadCount),
228+
t -> {
229+
Timber.e(t, "Fetching upload count failed");
230+
onError();
231+
}
224232
));
225233
}
226234
}
@@ -229,10 +237,9 @@ private void setUploadCount() {
229237
* used to set achievements upload count and call hideProgressbar
230238
* @param uploadCount
231239
*/
232-
private void setAchievementsUploadCount(int uploadCount){
240+
private void setAchievementsUploadCount(Achievements achievements, int uploadCount) {
233241
achievements.setImagesUploaded(uploadCount);
234-
isUploadFetched = true;
235-
hideProgressBar();
242+
hideProgressBar(achievements);
236243
}
237244

238245
/**
@@ -293,8 +300,8 @@ public static void startYourself(Context context) {
293300
/**
294301
* to hide progressbar
295302
*/
296-
private void hideProgressBar() {
297-
if (progressBar != null && isUploadFetched && isStatisticsFetched && isRevertFetched) {
303+
private void hideProgressBar(Achievements achievements) {
304+
if (progressBar != null) {
298305
levelInfo = LevelController.LevelInfo.from(achievements.getImagesUploaded(),
299306
achievements.getUniqueUsedImages(),
300307
achievements.getNotRevertPercentage());

app/src/main/res/values/strings.xml

+2
Original file line numberDiff line numberDiff line change
@@ -341,4 +341,6 @@
341341
<string name="images_uploaded_explanation">The number of images you have uploaded to Commons, via any upload software</string>
342342
<string name="images_reverted_explanation">The percentage of images you have uploaded to Commons that were not deleted</string>
343343
<string name="images_used_explanation">The number of images you have uploaded to Commons that were used in Wikimedia articles</string>
344+
345+
<string name="error_occurred">Error occurred!</string>
344346
</resources>

0 commit comments

Comments
 (0)