mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Added Class for calculating level
This commit is contained in:
parent
9174dbd8c7
commit
c43fce6d84
3 changed files with 55 additions and 3 deletions
|
|
@ -9,6 +9,7 @@ public class Achievements {
|
|||
private int thanksReceived;
|
||||
private int imagesEditedBySomeoneElse;
|
||||
private int featuredImages;
|
||||
private int imagesUploaded;
|
||||
|
||||
/**
|
||||
* Sets the unique images used
|
||||
|
|
@ -97,4 +98,20 @@ public class Achievements {
|
|||
public int getFeaturedImages() {
|
||||
return featuredImages;
|
||||
}
|
||||
|
||||
/**
|
||||
* to set the total number of images uploaded
|
||||
* @param imagesUploaded
|
||||
*/
|
||||
public void setImagesUploaded(int imagesUploaded) {
|
||||
this.imagesUploaded = imagesUploaded;
|
||||
}
|
||||
|
||||
/**
|
||||
* to get the total number of uploads
|
||||
* @return
|
||||
*/
|
||||
public int getImagesUploaded() {
|
||||
return imagesUploaded;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,6 +50,8 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
private static final double BADGE_IMAGE_HEIGHT_RATIO = 0.3;
|
||||
private Boolean isUploadFetched = false;
|
||||
private Boolean isStatisticsFetched = false;
|
||||
private Achievements achievements = new Achievements();
|
||||
private LevelController level = new LevelController();
|
||||
|
||||
@BindView(R.id.achievement_badge)
|
||||
ImageView imageView;
|
||||
|
|
@ -168,7 +170,7 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
*/
|
||||
private void setAchievements() {
|
||||
compositeDisposable.add(mediaWikiApi
|
||||
.getAchievements(sessionManager.getCurrentAccount().name)
|
||||
.getAchievements("Martin_Urbanec")
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
|
|
@ -181,7 +183,7 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
*/
|
||||
private void setUploadCount() {
|
||||
compositeDisposable.add(mediaWikiApi
|
||||
.getUploadCount(sessionManager.getCurrentAccount().name)
|
||||
.getUploadCount("Martin_Urbanec")
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
|
|
@ -195,6 +197,7 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
* @param uploadCount
|
||||
*/
|
||||
private void setUploadProgress( int uploadCount){
|
||||
achievements.setImagesUploaded(uploadCount);
|
||||
Log.i("uploadCount",Integer.toString(uploadCount));
|
||||
imagesUploadedProgressbar.setProgress(100*uploadCount/25);
|
||||
imagesUploadedProgressbar.setProgressTextFormatPattern(uploadCount +"/25" );
|
||||
|
|
@ -208,7 +211,6 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
* @param object
|
||||
*/
|
||||
private void parseJson(JSONObject object) {
|
||||
Achievements achievements = new Achievements();
|
||||
try {
|
||||
achievements.setUniqueUsedImages(object.getInt("uniqueUsedImages"));
|
||||
achievements.setArticlesUsingImages(object.getInt("articlesUsingImages"));
|
||||
|
|
@ -255,6 +257,7 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
*/
|
||||
private void hideProgressBar() {
|
||||
if (progressBar != null && isUploadFetched && isStatisticsFetched) {
|
||||
Log.i("level", Integer.toString(level.calculateLevelUp(achievements)));
|
||||
progressBar.setVisibility(View.GONE);
|
||||
layoutImageReverts.setVisibility(View.VISIBLE);
|
||||
layoutImageUploaded.setVisibility(View.VISIBLE);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
package fr.free.nrw.commons.achievements;
|
||||
|
||||
/**
|
||||
* calculates the level of the user
|
||||
*/
|
||||
public class LevelController {
|
||||
|
||||
int calculateLevelUp( Achievements achievements){
|
||||
int level = 1;
|
||||
if(achievements.getImagesUploaded() >= 100 && achievements.getUniqueUsedImages() >= 45){
|
||||
level = 10;
|
||||
} else if (achievements.getImagesUploaded() >= 90 && achievements.getUniqueUsedImages() >= 40){
|
||||
level = 9;
|
||||
} else if (achievements.getImagesUploaded() >= 80 && achievements.getUniqueUsedImages() >= 35){
|
||||
level = 8;
|
||||
} else if (achievements.getImagesUploaded() >= 70 && achievements.getUniqueUsedImages() >= 30){
|
||||
level = 7;
|
||||
} else if (achievements.getImagesUploaded() >= 60 && achievements.getUniqueUsedImages() >= 25 ){
|
||||
level = 6;
|
||||
} else if (achievements.getImagesUploaded() >= 50 && achievements.getUniqueUsedImages() >= 20 ){
|
||||
level = 5;
|
||||
} else if (achievements.getImagesUploaded() >= 40 && achievements.getUniqueUsedImages() >= 15 ){
|
||||
level = 4;
|
||||
} else if (achievements.getImagesUploaded() >= 30 && achievements.getUniqueUsedImages() >= 10 ){
|
||||
level = 3;
|
||||
} else if (achievements.getImagesUploaded() >= 20 && achievements.getUniqueUsedImages() >= 5 ){
|
||||
level = 2;
|
||||
}
|
||||
|
||||
return level;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue