Convert few model classes to kotlin (#3270)

This commit is contained in:
Vivek Maskara 2019-12-06 22:06:53 +05:30 committed by Josephine Lim
parent d0f97398a5
commit b0be4970ef
86 changed files with 661 additions and 1300 deletions

View file

@ -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;
}
}
}

View file

@ -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)
}
}
}

View file

@ -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()));

View file

@ -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;
}
}

View file

@ -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)

View file

@ -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;
}
}

View file

@ -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)

View file

@ -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;
}
}
}

View file

@ -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
}
}
}
}