mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Added functionality to change colours of badge during runtime
This commit is contained in:
parent
e28e4471b8
commit
c65df3756e
4 changed files with 47 additions and 1 deletions
|
|
@ -254,7 +254,7 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
String levelUpInfoString = getString(R.string.level);
|
||||
levelUpInfoString += " " + Integer.toString(levelInfo.getLevel());
|
||||
levelNumber.setText(levelUpInfoString);
|
||||
final ContextThemeWrapper wrapper = new ContextThemeWrapper(this, R.style.LevelOne);
|
||||
final ContextThemeWrapper wrapper = new ContextThemeWrapper(this, levelInfo.getLevelStyle());
|
||||
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.badge, wrapper.getTheme());
|
||||
Bitmap bitmap = drawableToBitmap(drawable);
|
||||
BitmapDrawable bitmapImage = writeOnDrawable(bitmap, Integer.toString(levelInfo.getLevel()));
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ public class Level {
|
|||
private int maximumUniqueImagesUsed;
|
||||
private int revertRate;
|
||||
private int level;
|
||||
private int levelStyle;
|
||||
|
||||
public int getMaximumUniqueImagesUsed() {
|
||||
return maximumUniqueImagesUsed;
|
||||
|
|
@ -32,4 +33,13 @@ public class Level {
|
|||
public void setLevel(int level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public void setLevelStyle(int levelStyle) {
|
||||
this.levelStyle = levelStyle;
|
||||
}
|
||||
|
||||
public int getLevelStyle() {
|
||||
return levelStyle;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package fr.free.nrw.commons.achievements;
|
||||
|
||||
import fr.free.nrw.commons.R;
|
||||
|
||||
/**
|
||||
* calculates the level of the user
|
||||
*/
|
||||
|
|
@ -13,42 +15,52 @@ public class LevelController {
|
|||
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.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);
|
||||
}
|
||||
|
||||
return level;
|
||||
|
|
|
|||
|
|
@ -63,4 +63,28 @@
|
|||
<item name="centerRegion">#bc6853</item>
|
||||
</style>
|
||||
|
||||
<style name="LevelTwo">
|
||||
<item name="boundary">#a8a8c0</item>
|
||||
<item name="camera">#604890</item>
|
||||
<item name="centerRegion">#6060a8</item>
|
||||
</style>
|
||||
|
||||
<style name="LevelThree">
|
||||
<item name="boundary">#90c0a8</item>
|
||||
<item name="camera">#487878</item>
|
||||
<item name="centerRegion">#48a8a8</item>
|
||||
</style>
|
||||
|
||||
<style name="LevelFour">
|
||||
<item name="boundary">#ffc078</item>
|
||||
<item name="camera">#d87818</item>
|
||||
<item name="centerRegion">#f09018</item>
|
||||
</style>
|
||||
|
||||
<style name="LevelFive">
|
||||
<item name="boundary">#c0a8c0</item>
|
||||
<item name="camera">#784878</item>
|
||||
<item name="centerRegion">#906078</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
Loading…
Add table
Add a link
Reference in a new issue