mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-29 05:43:55 +01:00
Convert few model classes to kotlin (#3270)
This commit is contained in:
parent
d0f97398a5
commit
b0be4970ef
86 changed files with 661 additions and 1300 deletions
|
|
@ -1,103 +0,0 @@
|
|||
package fr.free.nrw.commons.achievements;
|
||||
|
||||
/**
|
||||
* Represents Achievements class and stores all the parameters
|
||||
*/
|
||||
public class Achievements {
|
||||
private int uniqueUsedImages;
|
||||
private int thanksReceived;
|
||||
private int featuredImages;
|
||||
private int imagesUploaded;
|
||||
private int revertCount;
|
||||
|
||||
public Achievements(){
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* constructor for achievements class to set its data members
|
||||
* @param uniqueUsedImages
|
||||
* @param thanksReceived
|
||||
* @param featuredImages
|
||||
* @param imagesUploaded
|
||||
* @param revertCount
|
||||
*/
|
||||
public Achievements(int uniqueUsedImages,
|
||||
int thanksReceived,
|
||||
int featuredImages,
|
||||
int imagesUploaded,
|
||||
int revertCount) {
|
||||
this.uniqueUsedImages = uniqueUsedImages;
|
||||
this.thanksReceived = thanksReceived;
|
||||
this.featuredImages = featuredImages;
|
||||
this.imagesUploaded = imagesUploaded;
|
||||
this.revertCount = revertCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Achievements object from FeedbackResponse
|
||||
*
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
public static Achievements from(FeedbackResponse response) {
|
||||
return new Achievements(response.getUniqueUsedImages(),
|
||||
response.getThanksReceived(),
|
||||
response.getFeaturedImages().getQualityImages()
|
||||
+ response.getFeaturedImages().getFeaturedPicturesOnWikimediaCommons(),
|
||||
0,
|
||||
response.getDeletedUploads());
|
||||
}
|
||||
|
||||
/**
|
||||
* getter function to get count of images uploaded
|
||||
* @return
|
||||
*/
|
||||
public int getImagesUploaded() {
|
||||
return imagesUploaded;
|
||||
}
|
||||
|
||||
/**
|
||||
* getter function to get count of featured images
|
||||
* @return
|
||||
*/
|
||||
public int getFeaturedImages() {
|
||||
return featuredImages;
|
||||
}
|
||||
|
||||
/**
|
||||
* getter function to get count of thanks received
|
||||
* @return
|
||||
*/
|
||||
public int getThanksReceived() {
|
||||
return thanksReceived;
|
||||
}
|
||||
|
||||
/**
|
||||
* getter function to get count of unique images used by wiki
|
||||
* @return
|
||||
*/
|
||||
public int getUniqueUsedImages() {
|
||||
return uniqueUsedImages;
|
||||
}
|
||||
|
||||
/**
|
||||
* setter function to count of images uploaded
|
||||
* @param imagesUploaded
|
||||
*/
|
||||
public void setImagesUploaded(int imagesUploaded) {
|
||||
this.imagesUploaded = imagesUploaded;
|
||||
}
|
||||
|
||||
/**
|
||||
* used to calculate the percentages of images that haven't been reverted
|
||||
* @return
|
||||
*/
|
||||
public int getNotRevertPercentage(){
|
||||
try {
|
||||
return ((imagesUploaded - revertCount) * 100)/imagesUploaded;
|
||||
} catch (ArithmeticException divideByZero ){
|
||||
return 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
package fr.free.nrw.commons.achievements
|
||||
|
||||
/**
|
||||
* Represents Achievements class and stores all the parameters
|
||||
*/
|
||||
class Achievements {
|
||||
/**
|
||||
* getter function to get count of unique images used by wiki
|
||||
* @return
|
||||
*/
|
||||
/**
|
||||
* setter function to set count of uniques images used by wiki
|
||||
* @param uniqueUsedImages
|
||||
*/
|
||||
var uniqueUsedImages = 0
|
||||
private var articlesUsingImages = 0
|
||||
/**
|
||||
* getter function to get count of thanks received
|
||||
* @return
|
||||
*/
|
||||
/**
|
||||
* setter function to set count of thanks received
|
||||
* @param thanksReceived
|
||||
*/
|
||||
var thanksReceived = 0
|
||||
/**
|
||||
* getter function to get count of featured images
|
||||
* @return
|
||||
*/
|
||||
/**
|
||||
* setter function to set count of featured images
|
||||
* @param featuredImages
|
||||
*/
|
||||
var featuredImages = 0
|
||||
/**
|
||||
* getter function to get count of images uploaded
|
||||
* @return
|
||||
*/
|
||||
/**
|
||||
* setter function to count of images uploaded
|
||||
* @param imagesUploaded
|
||||
*/
|
||||
var imagesUploaded = 0
|
||||
private var revertCount = 0
|
||||
|
||||
constructor() {}
|
||||
/**
|
||||
* constructor for achievements class to set its data members
|
||||
* @param uniqueUsedImages
|
||||
* @param articlesUsingImages
|
||||
* @param thanksReceived
|
||||
* @param featuredImages
|
||||
* @param imagesUploaded
|
||||
* @param revertCount
|
||||
*/
|
||||
constructor(uniqueUsedImages: Int,
|
||||
articlesUsingImages: Int,
|
||||
thanksReceived: Int,
|
||||
featuredImages: Int,
|
||||
imagesUploaded: Int,
|
||||
revertCount: Int) {
|
||||
this.uniqueUsedImages = uniqueUsedImages
|
||||
this.articlesUsingImages = articlesUsingImages
|
||||
this.thanksReceived = thanksReceived
|
||||
this.featuredImages = featuredImages
|
||||
this.imagesUploaded = imagesUploaded
|
||||
this.revertCount = revertCount
|
||||
}
|
||||
|
||||
/**
|
||||
* used to calculate the percentages of images that haven't been reverted
|
||||
* @return
|
||||
*/
|
||||
val notRevertPercentage: Int
|
||||
get() = try {
|
||||
(imagesUploaded - revertCount) * 100 / imagesUploaded
|
||||
} catch (divideByZero: ArithmeticException) {
|
||||
100
|
||||
}
|
||||
|
||||
companion object {
|
||||
/**
|
||||
* Get Achievements object from FeedbackResponse
|
||||
*
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@JvmStatic
|
||||
fun from(response: FeedbackResponse): Achievements {
|
||||
return Achievements(response.uniqueUsedImages,
|
||||
response.articlesUsingImages,
|
||||
response.thanksReceived,
|
||||
response.featuredImages.qualityImages
|
||||
+ response.featuredImages.featuredPicturesOnWikimediaCommons, 0,
|
||||
response.deletedUploads)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -351,7 +351,7 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
private void inflateAchievements(Achievements achievements) {
|
||||
thanksReceived.setText(String.valueOf(achievements.getThanksReceived()));
|
||||
imagesUsedByWikiProgressBar.setProgress
|
||||
(100*achievements.getUniqueUsedImages()/levelInfo.getMaxUniqueImages() );
|
||||
(100 * achievements.getUniqueUsedImages() / levelInfo.getMaxUniqueImages());
|
||||
imagesUsedByWikiProgressBar.setProgressTextFormatPattern
|
||||
(achievements.getUniqueUsedImages() + "/" + levelInfo.getMaxUniqueImages());
|
||||
imagesFeatured.setText(String.valueOf(achievements.getFeaturedImages()));
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
package fr.free.nrw.commons.achievements;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
public class FeaturedImages {
|
||||
|
||||
@SerializedName("Quality_images")
|
||||
private final int qualityImages;
|
||||
|
||||
@SerializedName("Featured_pictures_on_Wikimedia_Commons")
|
||||
private final int featuredPicturesOnWikimediaCommons;
|
||||
|
||||
public FeaturedImages(int qualityImages, int featuredPicturesOnWikimediaCommons) {
|
||||
this.qualityImages = qualityImages;
|
||||
this.featuredPicturesOnWikimediaCommons = featuredPicturesOnWikimediaCommons;
|
||||
}
|
||||
|
||||
public int getQualityImages() {
|
||||
return qualityImages;
|
||||
}
|
||||
|
||||
public int getFeaturedPicturesOnWikimediaCommons() {
|
||||
return featuredPicturesOnWikimediaCommons;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package fr.free.nrw.commons.achievements
|
||||
|
||||
import com.google.gson.annotations.SerializedName
|
||||
|
||||
class FeaturedImages(@field:SerializedName("Quality_images") val qualityImages: Int, @field:SerializedName("Featured_pictures_on_Wikimedia_Commons") val featuredPicturesOnWikimediaCommons: Int)
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
package fr.free.nrw.commons.achievements;
|
||||
|
||||
public class FeedbackResponse {
|
||||
|
||||
private final int uniqueUsedImages;
|
||||
private final int articlesUsingImages;
|
||||
private final int deletedUploads;
|
||||
private final FeaturedImages featuredImages;
|
||||
private final int thanksReceived;
|
||||
private final String user;
|
||||
|
||||
|
||||
public FeedbackResponse(int uniqueUsedImages,
|
||||
int articlesUsingImages,
|
||||
int deletedUploads,
|
||||
FeaturedImages featuredImages,
|
||||
int thanksReceived,
|
||||
String user) {
|
||||
this.uniqueUsedImages = uniqueUsedImages;
|
||||
this.articlesUsingImages = articlesUsingImages;
|
||||
this.deletedUploads = deletedUploads;
|
||||
this.featuredImages = featuredImages;
|
||||
this.thanksReceived = thanksReceived;
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public int getUniqueUsedImages() {
|
||||
return uniqueUsedImages;
|
||||
}
|
||||
|
||||
public int getArticlesUsingImages() {
|
||||
return articlesUsingImages;
|
||||
}
|
||||
|
||||
public int getDeletedUploads() {
|
||||
return deletedUploads;
|
||||
}
|
||||
|
||||
public FeaturedImages getFeaturedImages() {
|
||||
return featuredImages;
|
||||
}
|
||||
|
||||
public int getThanksReceived() {
|
||||
return thanksReceived;
|
||||
}
|
||||
|
||||
public String getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package fr.free.nrw.commons.achievements
|
||||
|
||||
data class FeedbackResponse(val uniqueUsedImages: Int,
|
||||
val articlesUsingImages: Int,
|
||||
val deletedUploads: Int,
|
||||
val featuredImages: FeaturedImages,
|
||||
val thanksReceived: Int,
|
||||
val user: String)
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
package fr.free.nrw.commons.achievements;
|
||||
|
||||
import fr.free.nrw.commons.R;
|
||||
|
||||
/**
|
||||
* calculates the level of the user
|
||||
*/
|
||||
public class LevelController {
|
||||
|
||||
public LevelInfo level;
|
||||
public enum LevelInfo{
|
||||
LEVEL_1(1, R.style.LevelOne, 5, 20, 85),
|
||||
LEVEL_2(2, R.style.LevelTwo, 10, 30, 86),
|
||||
LEVEL_3(3, R.style.LevelThree, 15,40, 87),
|
||||
LEVEL_4(4, R.style.LevelFour,20,50, 88),
|
||||
LEVEL_5(5, R.style.LevelFive, 25, 60, 89),
|
||||
LEVEL_6(6,R.style.LevelOne,30,70, 90),
|
||||
LEVEL_7(7, R.style.LevelTwo, 40, 80, 90),
|
||||
LEVEL_8(8, R.style.LevelThree, 45, 90, 90),
|
||||
LEVEL_9(9, R.style.LevelFour, 50, 100, 90),
|
||||
LEVEL_10(10, R.style.LevelFive, 55, 110, 90),
|
||||
LEVEL_11(11,R.style.LevelOne, 60, 120, 90),
|
||||
LEVEL_12(12,R.style.LevelTwo,65 , 130, 90),
|
||||
LEVEL_13(13,R.style.LevelThree, 70, 140, 90),
|
||||
LEVEL_14(14,R.style.LevelFour, 75 , 150, 90),
|
||||
LEVEL_15(15,R.style.LevelFive, 80, 160, 90),
|
||||
LEVEL_16(16,R.style.LevelOne, 160, 320, 91),
|
||||
LEVEL_17(17,R.style.LevelTwo, 320, 640, 92),
|
||||
LEVEL_18(18,R.style.LevelThree, 640, 1280, 93),
|
||||
LEVEL_19(19,R.style.LevelFour, 1280, 2560, 94),
|
||||
LEVEL_20(20,R.style.LevelFive, 2560, 5120, 95),
|
||||
LEVEL_21(21,R.style.LevelOne, 5120, 10240, 96),
|
||||
LEVEL_22(22,R.style.LevelTwo, 10240, 20480, 97),
|
||||
LEVEL_23(23,R.style.LevelThree, 20480, 40960, 98),
|
||||
LEVEL_24(24,R.style.LevelFour, 40960, 81920, 98),
|
||||
LEVEL_25(25,R.style.LevelFive, 81920, 163840, 98),
|
||||
LEVEL_26(26,R.style.LevelOne, 163840, 327680, 98),
|
||||
LEVEL_27(27,R.style.LevelTwo, 327680, 655360, 98);
|
||||
|
||||
private int levelNumber;
|
||||
private int levelStyle;
|
||||
private int maxUniqueImages;
|
||||
private int maxUploadCount;
|
||||
private int minNonRevertPercentage;
|
||||
|
||||
LevelInfo(int levelNumber,
|
||||
int levelStyle,
|
||||
int maxUniqueImages,
|
||||
int maxUploadCount,
|
||||
int minNonRevertPercentage) {
|
||||
this.levelNumber = levelNumber;
|
||||
this.levelStyle = levelStyle;
|
||||
this.maxUniqueImages = maxUniqueImages;
|
||||
this.maxUploadCount = maxUploadCount;
|
||||
this.minNonRevertPercentage = minNonRevertPercentage;
|
||||
}
|
||||
|
||||
public static LevelInfo from(int imagesUploaded,
|
||||
int uniqueImagesUsed,
|
||||
int nonRevertRate) {
|
||||
LevelInfo level = LEVEL_15;
|
||||
|
||||
for (LevelInfo levelInfo : LevelInfo.values()) {
|
||||
if (imagesUploaded < levelInfo.maxUploadCount
|
||||
|| uniqueImagesUsed < levelInfo.maxUniqueImages
|
||||
|| nonRevertRate < levelInfo.minNonRevertPercentage ) {
|
||||
level = levelInfo;
|
||||
return level;
|
||||
}
|
||||
}
|
||||
return level;
|
||||
}
|
||||
|
||||
public int getLevelStyle() {
|
||||
return levelStyle;
|
||||
}
|
||||
|
||||
public int getLevelNumber() {
|
||||
return levelNumber;
|
||||
}
|
||||
|
||||
public int getMaxUniqueImages() {
|
||||
return maxUniqueImages;
|
||||
}
|
||||
|
||||
public int getMaxUploadCount() {
|
||||
return maxUploadCount;
|
||||
}
|
||||
|
||||
public int getMinNonRevertPercentage(){
|
||||
return minNonRevertPercentage;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package fr.free.nrw.commons.achievements
|
||||
|
||||
import fr.free.nrw.commons.R
|
||||
|
||||
/**
|
||||
* calculates the level of the user
|
||||
*/
|
||||
class LevelController {
|
||||
var level: LevelInfo? = null
|
||||
|
||||
enum class LevelInfo(val levelNumber: Int,
|
||||
val levelStyle: Int,
|
||||
val maxUniqueImages: Int,
|
||||
val maxUploadCount: Int,
|
||||
val minNonRevertPercentage: Int) {
|
||||
LEVEL_1(1, R.style.LevelOne, 5, 20, 85), LEVEL_2(2, R.style.LevelTwo, 10, 30, 86), LEVEL_3(3, R.style.LevelThree, 15, 40, 87), LEVEL_4(4, R.style.LevelFour, 20, 50, 88), LEVEL_5(5, R.style.LevelFive, 25, 60, 89), LEVEL_6(6, R.style.LevelOne, 30, 70, 90), LEVEL_7(7, R.style.LevelTwo, 40, 80, 90), LEVEL_8(8, R.style.LevelThree, 45, 90, 90), LEVEL_9(9, R.style.LevelFour, 50, 100, 90), LEVEL_10(10, R.style.LevelFive, 55, 110, 90), LEVEL_11(11, R.style.LevelOne, 60, 120, 90), LEVEL_12(12, R.style.LevelTwo, 65, 130, 90), LEVEL_13(13, R.style.LevelThree, 70, 140, 90), LEVEL_14(14, R.style.LevelFour, 75, 150, 90), LEVEL_15(15, R.style.LevelFive, 80, 160, 90), LEVEL_16(16, R.style.LevelOne, 160, 320, 91), LEVEL_17(17, R.style.LevelTwo, 320, 640, 92), LEVEL_18(18, R.style.LevelThree, 640, 1280, 93), LEVEL_19(19, R.style.LevelFour, 1280, 2560, 94), LEVEL_20(20, R.style.LevelFive, 2560, 5120, 95), LEVEL_21(21, R.style.LevelOne, 5120, 10240, 96), LEVEL_22(22, R.style.LevelTwo, 10240, 20480, 97), LEVEL_23(23, R.style.LevelThree, 20480, 40960, 98), LEVEL_24(24, R.style.LevelFour, 40960, 81920, 98), LEVEL_25(25, R.style.LevelFive, 81920, 163840, 98), LEVEL_26(26, R.style.LevelOne, 163840, 327680, 98), LEVEL_27(27, R.style.LevelTwo, 327680, 655360, 98);
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun from(imagesUploaded: Int,
|
||||
uniqueImagesUsed: Int,
|
||||
nonRevertRate: Int): LevelInfo {
|
||||
var level = LEVEL_15
|
||||
for (levelInfo in values()) {
|
||||
if (imagesUploaded < levelInfo.maxUploadCount || uniqueImagesUsed < levelInfo.maxUniqueImages || nonRevertRate < levelInfo.minNonRevertPercentage) {
|
||||
level = levelInfo
|
||||
return level
|
||||
}
|
||||
}
|
||||
return level
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue