Skip to content

Commit b0be497

Browse files
maskaravivekmisaochan
authored andcommitted
Convert few model classes to kotlin (#3270)
1 parent d0f9739 commit b0be497

File tree

86 files changed

+663
-1302
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+663
-1302
lines changed

app/build.gradle

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,20 @@ dependencies {
5858
kapt "com.google.dagger:dagger-android-processor:$DAGGER_VERSION"
5959
kapt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
6060

61+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$KOTLIN_VERSION"
62+
implementation "org.jetbrains.kotlin:kotlin-reflect:$KOTLIN_VERSION"
63+
64+
//Mocking
65+
testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0'
66+
testImplementation 'org.mockito:mockito-inline:2.8.47'
67+
testImplementation 'org.mockito:mockito-core:2.23.0'
68+
testImplementation "org.powermock:powermock-module-junit4:2.0.0-beta.5"
69+
testImplementation "org.powermock:powermock-api-mockito2:2.0.0-beta.5"
70+
6171
// Unit testing
62-
testImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$KOTLIN_VERSION"
63-
testImplementation "org.jetbrains.kotlin:kotlin-reflect:$KOTLIN_VERSION"
6472
testImplementation 'junit:junit:4.12'
6573
testImplementation 'org.robolectric:robolectric:4.3'
6674
testImplementation 'androidx.test:core:1.2.0'
67-
testImplementation 'com.nhaarman:mockito-kotlin:1.5.0'
6875
testImplementation 'com.squareup.okhttp3:mockwebserver:3.12.1'
6976
testImplementation "org.powermock:powermock-module-junit4:2.0.0-beta.5"
7077
testImplementation "org.powermock:powermock-api-mockito2:2.0.0-beta.5"

app/src/main/java/fr/free/nrw/commons/achievements/Achievements.java

Lines changed: 0 additions & 103 deletions
This file was deleted.
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
package fr.free.nrw.commons.achievements
2+
3+
/**
4+
* Represents Achievements class and stores all the parameters
5+
*/
6+
class Achievements {
7+
/**
8+
* getter function to get count of unique images used by wiki
9+
* @return
10+
*/
11+
/**
12+
* setter function to set count of uniques images used by wiki
13+
* @param uniqueUsedImages
14+
*/
15+
var uniqueUsedImages = 0
16+
private var articlesUsingImages = 0
17+
/**
18+
* getter function to get count of thanks received
19+
* @return
20+
*/
21+
/**
22+
* setter function to set count of thanks received
23+
* @param thanksReceived
24+
*/
25+
var thanksReceived = 0
26+
/**
27+
* getter function to get count of featured images
28+
* @return
29+
*/
30+
/**
31+
* setter function to set count of featured images
32+
* @param featuredImages
33+
*/
34+
var featuredImages = 0
35+
/**
36+
* getter function to get count of images uploaded
37+
* @return
38+
*/
39+
/**
40+
* setter function to count of images uploaded
41+
* @param imagesUploaded
42+
*/
43+
var imagesUploaded = 0
44+
private var revertCount = 0
45+
46+
constructor() {}
47+
/**
48+
* constructor for achievements class to set its data members
49+
* @param uniqueUsedImages
50+
* @param articlesUsingImages
51+
* @param thanksReceived
52+
* @param featuredImages
53+
* @param imagesUploaded
54+
* @param revertCount
55+
*/
56+
constructor(uniqueUsedImages: Int,
57+
articlesUsingImages: Int,
58+
thanksReceived: Int,
59+
featuredImages: Int,
60+
imagesUploaded: Int,
61+
revertCount: Int) {
62+
this.uniqueUsedImages = uniqueUsedImages
63+
this.articlesUsingImages = articlesUsingImages
64+
this.thanksReceived = thanksReceived
65+
this.featuredImages = featuredImages
66+
this.imagesUploaded = imagesUploaded
67+
this.revertCount = revertCount
68+
}
69+
70+
/**
71+
* used to calculate the percentages of images that haven't been reverted
72+
* @return
73+
*/
74+
val notRevertPercentage: Int
75+
get() = try {
76+
(imagesUploaded - revertCount) * 100 / imagesUploaded
77+
} catch (divideByZero: ArithmeticException) {
78+
100
79+
}
80+
81+
companion object {
82+
/**
83+
* Get Achievements object from FeedbackResponse
84+
*
85+
* @param response
86+
* @return
87+
*/
88+
@JvmStatic
89+
fun from(response: FeedbackResponse): Achievements {
90+
return Achievements(response.uniqueUsedImages,
91+
response.articlesUsingImages,
92+
response.thanksReceived,
93+
response.featuredImages.qualityImages
94+
+ response.featuredImages.featuredPicturesOnWikimediaCommons, 0,
95+
response.deletedUploads)
96+
}
97+
}
98+
}

app/src/main/java/fr/free/nrw/commons/achievements/AchievementsActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ private void setImageRevertPercentage(int notRevertPercentage){
351351
private void inflateAchievements(Achievements achievements) {
352352
thanksReceived.setText(String.valueOf(achievements.getThanksReceived()));
353353
imagesUsedByWikiProgressBar.setProgress
354-
(100*achievements.getUniqueUsedImages()/levelInfo.getMaxUniqueImages() );
354+
(100 * achievements.getUniqueUsedImages() / levelInfo.getMaxUniqueImages());
355355
imagesUsedByWikiProgressBar.setProgressTextFormatPattern
356356
(achievements.getUniqueUsedImages() + "/" + levelInfo.getMaxUniqueImages());
357357
imagesFeatured.setText(String.valueOf(achievements.getFeaturedImages()));

app/src/main/java/fr/free/nrw/commons/achievements/FeaturedImages.java

Lines changed: 0 additions & 25 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package fr.free.nrw.commons.achievements
2+
3+
import com.google.gson.annotations.SerializedName
4+
5+
class FeaturedImages(@field:SerializedName("Quality_images") val qualityImages: Int, @field:SerializedName("Featured_pictures_on_Wikimedia_Commons") val featuredPicturesOnWikimediaCommons: Int)

app/src/main/java/fr/free/nrw/commons/achievements/FeedbackResponse.java

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package fr.free.nrw.commons.achievements
2+
3+
data class FeedbackResponse(val uniqueUsedImages: Int,
4+
val articlesUsingImages: Int,
5+
val deletedUploads: Int,
6+
val featuredImages: FeaturedImages,
7+
val thanksReceived: Int,
8+
val user: String)

0 commit comments

Comments
 (0)