Bug fix for uploaded images count in achievements activity (#1885)

This commit is contained in:
Vivek Maskara 2018-09-06 21:27:40 +05:30 committed by Josephine Lim
parent 325e0168e3
commit cc74f3add7
3 changed files with 28 additions and 78 deletions

View file

@ -59,65 +59,6 @@ public class Achievements {
response.getDeletedUploads());
}
/**
* Builder class for Achievements class
*/
public class AchievementsBuilder {
private int nestedUniqueUsedImages;
private int nestedArticlesUsingImages;
private int nestedThanksReceived;
private int nestedImagesEditedBySomeoneElse;
private int nestedFeaturedImages;
private int nestedImagesUploaded;
private int nestedRevertCount;
public AchievementsBuilder setUniqueUsedImages(int uniqueUsedImages) {
this.nestedUniqueUsedImages = uniqueUsedImages;
return this;
}
public AchievementsBuilder setArticlesUsingImages(int articlesUsingImages) {
this.nestedArticlesUsingImages = articlesUsingImages;
return this;
}
public AchievementsBuilder setThanksReceived(int thanksReceived) {
this.nestedThanksReceived = thanksReceived;
return this;
}
public AchievementsBuilder setImagesEditedBySomeoneElse(int imagesEditedBySomeoneElse) {
this.nestedImagesEditedBySomeoneElse = imagesEditedBySomeoneElse;
return this;
}
public AchievementsBuilder setFeaturedImages(int featuredImages) {
this.nestedFeaturedImages = featuredImages;
return this;
}
public AchievementsBuilder setImagesUploaded(int imagesUploaded) {
this.nestedImagesUploaded = imagesUploaded;
return this;
}
public AchievementsBuilder setRevertCount( int revertCount){
this.nestedRevertCount = revertCount;
return this;
}
public Achievements createAchievements(){
return new Achievements(nestedUniqueUsedImages,
nestedArticlesUsingImages,
nestedThanksReceived,
nestedImagesEditedBySomeoneElse,
nestedFeaturedImages,
nestedImagesUploaded,
nestedRevertCount);
}
}
/**
* getter function to get count of images uploaded
* @return

View file

@ -54,10 +54,7 @@ public class AchievementsActivity extends NavigationBaseActivity {
private static final double BADGE_IMAGE_WIDTH_RATIO = 0.4;
private static final double BADGE_IMAGE_HEIGHT_RATIO = 0.3;
private Boolean isUploadFetched = false;
private Boolean isStatisticsFetched = false;
private Boolean isRevertFetched = false;
private Achievements achievements = new Achievements();
private LevelController.LevelInfo levelInfo;
@BindView(R.id.achievement_badge)
@ -129,7 +126,6 @@ public class AchievementsActivity extends NavigationBaseActivity {
progressBar.setVisibility(View.VISIBLE);
hideLayouts();
setAchievements();
setUploadCount();
initDrawer();
}
@ -189,7 +185,6 @@ public class AchievementsActivity extends NavigationBaseActivity {
* which then calls parseJson when results are fetched
*/
private void setAchievements() {
if(checkAccount()) {
compositeDisposable.add(mediaWikiApi
.getAchievements(Objects.requireNonNull(sessionManager.getCurrentAccount()).name)
@ -198,29 +193,42 @@ public class AchievementsActivity extends NavigationBaseActivity {
.subscribe(
response -> {
if (response != null) {
achievements = Achievements.from(response);
isRevertFetched = true;
isStatisticsFetched = true;
setUploadCount(Achievements.from(response));
} else {
onError();
}
hideProgressBar();
},
t -> Timber.e(t, "Fetching achievements statisticss failed")
t -> {
Timber.e(t, "Fetching achievements statistics failed");
onError();
}
));
}
}
/**
* Shows a generic error toast when error occurs while loading achievements or uploads
*/
private void onError() {
ViewUtil.showLongToast(this, getResources().getString(R.string.error_occurred));
progressBar.setVisibility(View.GONE);
}
/**
* used to the count of images uploaded by user
*/
private void setUploadCount() {
private void setUploadCount(Achievements achievements) {
if(checkAccount()) {
compositeDisposable.add(mediaWikiApi
.getUploadCount(Objects.requireNonNull(sessionManager.getCurrentAccount()).name)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
this::setAchievementsUploadCount,
t -> Timber.e(t, "Fetching upload count failed")
uploadCount -> setAchievementsUploadCount(achievements, uploadCount),
t -> {
Timber.e(t, "Fetching upload count failed");
onError();
}
));
}
}
@ -229,10 +237,9 @@ public class AchievementsActivity extends NavigationBaseActivity {
* used to set achievements upload count and call hideProgressbar
* @param uploadCount
*/
private void setAchievementsUploadCount(int uploadCount){
private void setAchievementsUploadCount(Achievements achievements, int uploadCount) {
achievements.setImagesUploaded(uploadCount);
isUploadFetched = true;
hideProgressBar();
hideProgressBar(achievements);
}
/**
@ -293,8 +300,8 @@ public class AchievementsActivity extends NavigationBaseActivity {
/**
* to hide progressbar
*/
private void hideProgressBar() {
if (progressBar != null && isUploadFetched && isStatisticsFetched && isRevertFetched) {
private void hideProgressBar(Achievements achievements) {
if (progressBar != null) {
levelInfo = LevelController.LevelInfo.from(achievements.getImagesUploaded(),
achievements.getUniqueUsedImages(),
achievements.getNotRevertPercentage());

View file

@ -341,4 +341,6 @@
<string name="images_uploaded_explanation">The number of images you have uploaded to Commons, via any upload software</string>
<string name="images_reverted_explanation">The percentage of images you have uploaded to Commons that were not deleted</string>
<string name="images_used_explanation">The number of images you have uploaded to Commons that were used in Wikimedia articles</string>
<string name="error_occurred">Error occurred!</string>
</resources>