diff --git a/app/src/main/java/fr/free/nrw/commons/achievements/AchievementsActivity.java b/app/src/main/java/fr/free/nrw/commons/achievements/AchievementsActivity.java index 392eb1ffa..4a7572c06 100644 --- a/app/src/main/java/fr/free/nrw/commons/achievements/AchievementsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/achievements/AchievementsActivity.java @@ -257,7 +257,7 @@ public class AchievementsActivity extends NavigationBaseActivity { */ private void hideProgressBar() { if (progressBar != null && isUploadFetched && isStatisticsFetched) { - Log.i("level", Integer.toString(level.calculateLevelUp(achievements))); + Log.i("level", Integer.toString(level.calculateLevelUp(achievements).getMaximumUniqueImagesUsed())); progressBar.setVisibility(View.GONE); layoutImageReverts.setVisibility(View.VISIBLE); layoutImageUploaded.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/fr/free/nrw/commons/achievements/Level.java b/app/src/main/java/fr/free/nrw/commons/achievements/Level.java new file mode 100644 index 000000000..c72c42b4f --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/achievements/Level.java @@ -0,0 +1,35 @@ +package fr.free.nrw.commons.achievements; + +/** + * Contains information about the levels + */ +public class Level { + private int maximumUploadCount; + private int maximumUniqueImagesUsed; + private int revertRate; + private int level; + + public int getMaximumUniqueImagesUsed() { + return maximumUniqueImagesUsed; + } + + public int getMaximumUploadCount() { + return maximumUploadCount; + } + + public void setMaximumUploadCount(int maximumUploadCount) { + this.maximumUploadCount = maximumUploadCount; + } + + public void setMaximumUniqueImagesUsed(int maximumUniqueImagesUsed) { + this.maximumUniqueImagesUsed = maximumUniqueImagesUsed; + } + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/achievements/LevelController.java b/app/src/main/java/fr/free/nrw/commons/achievements/LevelController.java index 0c927f431..fb8054fd9 100644 --- a/app/src/main/java/fr/free/nrw/commons/achievements/LevelController.java +++ b/app/src/main/java/fr/free/nrw/commons/achievements/LevelController.java @@ -5,26 +5,45 @@ package fr.free.nrw.commons.achievements; */ public class LevelController { - int calculateLevelUp( Achievements achievements){ - int level = 1; + Level calculateLevelUp( Achievements achievements){ + Level level = new Level (); + level.setLevel(1); + level.setMaximumUploadCount(20); + level.setMaximumUniqueImagesUsed(5); if(achievements.getImagesUploaded() >= 100 && achievements.getUniqueUsedImages() >= 45){ - level = 10; + level.setLevel(10); } else if (achievements.getImagesUploaded() >= 90 && achievements.getUniqueUsedImages() >= 40){ - level = 9; + level.setLevel(9); + level.setMaximumUniqueImagesUsed(45); + level.setMaximumUploadCount(100); } else if (achievements.getImagesUploaded() >= 80 && achievements.getUniqueUsedImages() >= 35){ - level = 8; + level.setLevel(8); + level.setMaximumUniqueImagesUsed(40); + level.setMaximumUploadCount(90); } else if (achievements.getImagesUploaded() >= 70 && achievements.getUniqueUsedImages() >= 30){ - level = 7; + level.setLevel(7); + level.setMaximumUniqueImagesUsed(35); + level.setMaximumUploadCount(80); } else if (achievements.getImagesUploaded() >= 60 && achievements.getUniqueUsedImages() >= 25 ){ - level = 6; + level.setLevel(6); + level.setMaximumUniqueImagesUsed(30); + level.setMaximumUploadCount(70); } else if (achievements.getImagesUploaded() >= 50 && achievements.getUniqueUsedImages() >= 20 ){ - level = 5; + level.setLevel(5); + level.setMaximumUniqueImagesUsed(25); + level.setMaximumUploadCount(60); } else if (achievements.getImagesUploaded() >= 40 && achievements.getUniqueUsedImages() >= 15 ){ - level = 4; + level.setLevel(4); + level.setMaximumUniqueImagesUsed(20); + level.setMaximumUploadCount(50); } else if (achievements.getImagesUploaded() >= 30 && achievements.getUniqueUsedImages() >= 10 ){ - level = 3; + level.setLevel(3); + level.setMaximumUniqueImagesUsed(15); + level.setMaximumUploadCount(40); } else if (achievements.getImagesUploaded() >= 20 && achievements.getUniqueUsedImages() >= 5 ){ - level = 2; + level.setLevel(2); + level.setMaximumUniqueImagesUsed(10); + level.setMaximumUploadCount(30); } return level;