mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Added Enum Model and increased levels to 15
This commit is contained in:
parent
c8771e0b58
commit
e2a0e6969d
2 changed files with 69 additions and 66 deletions
|
|
@ -64,8 +64,8 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
private Boolean isUploadFetched = false;
|
||||
private Boolean isStatisticsFetched = false;
|
||||
private Achievements achievements = new Achievements();
|
||||
private LevelController level = new LevelController();
|
||||
private Level levelInfo;
|
||||
private LevelController level;
|
||||
private LevelController.LevelInfo levelInfo;
|
||||
|
||||
@BindView(R.id.achievement_badge)
|
||||
ImageView imageView;
|
||||
|
|
@ -230,9 +230,9 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
private void setUploadProgress( int uploadCount){
|
||||
|
||||
imagesUploadedProgressbar.setProgress
|
||||
(100*uploadCount/levelInfo.getMaximumUploadCount());
|
||||
(100*uploadCount/levelInfo.getMaxUploadCount());
|
||||
imagesUploadedProgressbar.setProgressTextFormatPattern
|
||||
(uploadCount +"/" + levelInfo.getMaximumUploadCount() );
|
||||
(uploadCount +"/" + levelInfo.getMaxUploadCount() );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -265,17 +265,17 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
private void inflateAchievements( Achievements achievements ){
|
||||
thanksReceived.setText(Integer.toString(achievements.getThanksReceived()));
|
||||
imagesUsedByWikiProgessbar.setProgress
|
||||
(100*achievements.getUniqueUsedImages()/levelInfo.getMaximumUniqueImagesUsed());
|
||||
(100*achievements.getUniqueUsedImages()/levelInfo.getMaxUniqueImages() );
|
||||
imagesUsedByWikiProgessbar.setProgressTextFormatPattern
|
||||
(achievements.getUniqueUsedImages() + "/" + levelInfo.getMaximumUniqueImagesUsed());
|
||||
(achievements.getUniqueUsedImages() + "/" + levelInfo.getMaxUniqueImages());
|
||||
imagesFeatured.setText(Integer.toString(achievements.getFeaturedImages()));
|
||||
String levelUpInfoString = getString(R.string.level);
|
||||
levelUpInfoString += " " + Integer.toString(levelInfo.getLevel());
|
||||
levelUpInfoString += " " + Integer.toString(levelInfo.getLevelNumber());
|
||||
levelNumber.setText(levelUpInfoString);
|
||||
final ContextThemeWrapper wrapper = new ContextThemeWrapper(this, levelInfo.getLevelStyle());
|
||||
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.badge, wrapper.getTheme());
|
||||
Bitmap bitmap = BitmapUtils.drawableToBitmap(drawable);
|
||||
BitmapDrawable bitmapImage = BitmapUtils.writeOnDrawable(bitmap, Integer.toString(levelInfo.getLevel()),this);
|
||||
BitmapDrawable bitmapImage = BitmapUtils.writeOnDrawable(bitmap, Integer.toString(levelInfo.getLevelNumber()),this);
|
||||
imageView.setImageDrawable(bitmapImage);
|
||||
}
|
||||
|
||||
|
|
@ -296,7 +296,7 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
*/
|
||||
private void hideProgressBar() {
|
||||
if (progressBar != null && isUploadFetched && isStatisticsFetched) {
|
||||
levelInfo = level.calculateLevelUp(achievements);
|
||||
levelInfo = LevelController.LevelInfo.from(achievements.getImagesUploaded(),achievements.getUniqueUsedImages());
|
||||
inflateAchievements(achievements);
|
||||
setUploadProgress(achievements.getImagesUploaded());
|
||||
progressBar.setVisibility(View.GONE);
|
||||
|
|
|
|||
|
|
@ -7,64 +7,67 @@ import fr.free.nrw.commons.R;
|
|||
*/
|
||||
public class LevelController {
|
||||
|
||||
/**
|
||||
* calculated the level of user and return the level information
|
||||
* @param achievements
|
||||
* @return
|
||||
*/
|
||||
Level calculateLevelUp( Achievements achievements){
|
||||
Level level = new Level ();
|
||||
level.setLevel(1);
|
||||
level.setLevelStyle(R.style.LevelOne);
|
||||
level.setMaximumUploadCount(20);
|
||||
level.setMaximumUniqueImagesUsed(5);
|
||||
if(achievements.getImagesUploaded() >= 100 && achievements.getUniqueUsedImages() >= 45){
|
||||
level.setLevel(10);
|
||||
level.setMaximumUniqueImagesUsed(50);
|
||||
level.setMaximumUploadCount(110);
|
||||
level.setLevelStyle(R.style.LevelFive);
|
||||
} else if (achievements.getImagesUploaded() >= 90 && achievements.getUniqueUsedImages() >= 40){
|
||||
level.setLevel(9);
|
||||
level.setMaximumUniqueImagesUsed(45);
|
||||
level.setMaximumUploadCount(100);
|
||||
level.setLevelStyle(R.style.LevelFour);
|
||||
} else if (achievements.getImagesUploaded() >= 80 && achievements.getUniqueUsedImages() >= 35){
|
||||
level.setLevel(8);
|
||||
level.setMaximumUniqueImagesUsed(40);
|
||||
level.setMaximumUploadCount(90);
|
||||
level.setLevelStyle(R.style.LevelThree);
|
||||
} else if (achievements.getImagesUploaded() >= 70 && achievements.getUniqueUsedImages() >= 30){
|
||||
level.setLevel(7);
|
||||
level.setMaximumUniqueImagesUsed(35);
|
||||
level.setMaximumUploadCount(80);
|
||||
level.setLevelStyle(R.style.LevelTwo);
|
||||
} else if (achievements.getImagesUploaded() >= 60 && achievements.getUniqueUsedImages() >= 25 ){
|
||||
level.setLevel(6);
|
||||
level.setMaximumUniqueImagesUsed(30);
|
||||
level.setMaximumUploadCount(70);
|
||||
level.setLevelStyle(R.style.LevelOne);
|
||||
} else if (achievements.getImagesUploaded() >= 50 && achievements.getUniqueUsedImages() >= 20 ){
|
||||
level.setLevel(5);
|
||||
level.setMaximumUniqueImagesUsed(25);
|
||||
level.setMaximumUploadCount(60);
|
||||
level.setLevelStyle(R.style.LevelFive);
|
||||
} else if (achievements.getImagesUploaded() >= 40 && achievements.getUniqueUsedImages() >= 15 ){
|
||||
level.setLevel(4);
|
||||
level.setMaximumUniqueImagesUsed(20);
|
||||
level.setMaximumUploadCount(50);
|
||||
level.setLevelStyle(R.style.LevelFour);
|
||||
} else if (achievements.getImagesUploaded() >= 30 && achievements.getUniqueUsedImages() >= 10 ){
|
||||
level.setLevel(3);
|
||||
level.setMaximumUniqueImagesUsed(15);
|
||||
level.setMaximumUploadCount(40);
|
||||
level.setLevelStyle(R.style.LevelThree);
|
||||
} else if (achievements.getImagesUploaded() >= 20 && achievements.getUniqueUsedImages() >= 5 ){
|
||||
level.setLevel(2);
|
||||
level.setMaximumUniqueImagesUsed(10);
|
||||
level.setMaximumUploadCount(30);
|
||||
level.setLevelStyle(R.style.LevelTwo);
|
||||
public LevelInfo level;
|
||||
public enum LevelInfo{
|
||||
LEVEL_15(15,R.style.LevelFive, 80, 160),
|
||||
LEVEL_14(14,R.style.LevelFour, 75 , 150),
|
||||
LEVEL_13(13,R.style.LevelThree, 70, 140),
|
||||
LEVEL_12(12,R.style.LevelTwo,65 , 130),
|
||||
LEVEL_11(11,R.style.LevelOne, 60, 120),
|
||||
LEVEL_10(10, R.style.LevelFive, 55, 110),
|
||||
LEVEL_9(9, R.style.LevelFour, 50, 100),
|
||||
LEVEL_8(8, R.style.LevelThree, 45, 90),
|
||||
LEVEL_7(7, R.style.LevelTwo, 40, 80),
|
||||
LEVEL_6(6,R.style.LevelOne,30,70),
|
||||
LEVEL_5(5, R.style.LevelFive, 25, 60),
|
||||
LEVEL_4(4, R.style.LevelFour,20,50),
|
||||
LEVEL_3(3, R.style.LevelThree, 15,40),
|
||||
LEVEL_2(2, R.style.LevelTwo, 10, 30),
|
||||
LEVEL_1(1, R.style.LevelOne, 5, 20 );
|
||||
|
||||
private int levelNumber;
|
||||
private int levelStyle;
|
||||
private int maxUniqueImages;
|
||||
private int maxUploadCount;
|
||||
|
||||
LevelInfo(int levelNumber, int levelStyle, int maxUniqueImages, int maxUploadCount) {
|
||||
this.levelNumber = levelNumber;
|
||||
this.levelStyle = levelStyle;
|
||||
this.maxUniqueImages = maxUniqueImages;
|
||||
this.maxUploadCount = maxUploadCount;
|
||||
}
|
||||
|
||||
return level;
|
||||
public static LevelInfo from(int imagesUploaded, int uniqueImagesUsed) {
|
||||
LevelInfo level = LEVEL_1;
|
||||
|
||||
for (LevelInfo levelInfo : LevelInfo.values()) {
|
||||
if (imagesUploaded > levelInfo.maxUploadCount && uniqueImagesUsed > levelInfo.maxUniqueImages) {
|
||||
level = levelInfo;
|
||||
return level;
|
||||
}
|
||||
}
|
||||
return level;
|
||||
}
|
||||
|
||||
public int getLevelStyle() {
|
||||
return levelStyle;
|
||||
}
|
||||
|
||||
public int getLevelNumber() {
|
||||
return levelNumber;
|
||||
}
|
||||
|
||||
public void setLevelStyle(int levelStyle) {
|
||||
this.levelStyle = levelStyle;
|
||||
}
|
||||
|
||||
public int getMaxUniqueImages() {
|
||||
return maxUniqueImages;
|
||||
}
|
||||
|
||||
public int getMaxUploadCount() {
|
||||
return maxUploadCount;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue