Use kotshi instead of moshi-kotlin-codegen
This commit is contained in:
parent
4122ebe18f
commit
80d834fb55
@ -26,7 +26,7 @@ android {
|
|||||||
minifyEnabled true
|
minifyEnabled true
|
||||||
shrinkResources true
|
shrinkResources true
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
|
||||||
'proguard-rules.pro', 'proguard-moshi.pro', 'proguard-kotlin.pro'
|
'proguard-rules.pro', 'proguard-kotlin.pro'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,7 +86,10 @@ dependencies {
|
|||||||
|
|
||||||
def vMoshi = "1.8.0"
|
def vMoshi = "1.8.0"
|
||||||
implementation "com.squareup.moshi:moshi:${vMoshi}"
|
implementation "com.squareup.moshi:moshi:${vMoshi}"
|
||||||
kapt "com.squareup.moshi:moshi-kotlin-codegen:${vMoshi}"
|
|
||||||
|
def vKotshi = "2.0.1"
|
||||||
|
implementation "se.ansman.kotshi:api:${vKotshi}"
|
||||||
|
kapt "se.ansman.kotshi:compiler:${vKotshi}"
|
||||||
|
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||||
implementation 'androidx.browser:browser:1.0.0'
|
implementation 'androidx.browser:browser:1.0.0'
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
# JSR 305 annotations are for embedding nullability information.
|
|
||||||
-dontwarn javax.annotation.**
|
|
||||||
|
|
||||||
-keepclasseswithmembers class * {
|
|
||||||
@com.squareup.moshi.* <methods>;
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep @com.squareup.moshi.JsonQualifier interface *
|
|
||||||
|
|
||||||
# Enum field names are used by the integrated EnumJsonAdapter.
|
|
||||||
# Annotate enums with @JsonClass(generateAdapter = false) to use them with Moshi.
|
|
||||||
-keepclassmembers @com.squareup.moshi.JsonClass class * extends java.lang.Enum {
|
|
||||||
<fields>;
|
|
||||||
}
|
|
||||||
|
|
||||||
# The name of @JsonClass types is used to look up the generated adapter.
|
|
||||||
-keepnames @com.squareup.moshi.JsonClass class *
|
|
||||||
|
|
||||||
# Retain generated JsonAdapters if annotated type is retained.
|
|
||||||
-if @com.squareup.moshi.JsonClass class *
|
|
||||||
-keep class <1>JsonAdapter {
|
|
||||||
<init>(...);
|
|
||||||
<fields>;
|
|
||||||
}
|
|
||||||
-if @com.squareup.moshi.JsonClass class **$*
|
|
||||||
-keep class <1>_<2>JsonAdapter {
|
|
||||||
<init>(...);
|
|
||||||
<fields>;
|
|
||||||
}
|
|
||||||
-if @com.squareup.moshi.JsonClass class **$*$*
|
|
||||||
-keep class <1>_<2>_<3>JsonAdapter {
|
|
||||||
<init>(...);
|
|
||||||
<fields>;
|
|
||||||
}
|
|
||||||
-if @com.squareup.moshi.JsonClass class **$*$*$*
|
|
||||||
-keep class <1>_<2>_<3>_<4>JsonAdapter {
|
|
||||||
<init>(...);
|
|
||||||
<fields>;
|
|
||||||
}
|
|
||||||
-if @com.squareup.moshi.JsonClass class **$*$*$*$*
|
|
||||||
-keep class <1>_<2>_<3>_<4>_<5>JsonAdapter {
|
|
||||||
<init>(...);
|
|
||||||
<fields>;
|
|
||||||
}
|
|
||||||
-if @com.squareup.moshi.JsonClass class **$*$*$*$*$*
|
|
||||||
-keep class <1>_<2>_<3>_<4>_<5>_<6>JsonAdapter {
|
|
||||||
<init>(...);
|
|
||||||
<fields>;
|
|
||||||
}
|
|
2
app/proguard-rules.pro
vendored
2
app/proguard-rules.pro
vendored
@ -17,7 +17,7 @@
|
|||||||
#}
|
#}
|
||||||
|
|
||||||
# Retrofit classes
|
# Retrofit classes
|
||||||
-keep,allowobfuscation class com.topjohnwu.magisk.data.network.**
|
-keep,allowobfuscation class com.topjohnwu.magisk.data.network.*
|
||||||
|
|
||||||
# Snet
|
# Snet
|
||||||
-keepclassmembers class com.topjohnwu.magisk.utils.ISafetyNetHelper { *; }
|
-keepclassmembers class com.topjohnwu.magisk.utils.ISafetyNetHelper { *; }
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.topjohnwu.magisk.di
|
package com.topjohnwu.magisk.di
|
||||||
|
|
||||||
|
import com.squareup.moshi.JsonAdapter
|
||||||
import com.squareup.moshi.Moshi
|
import com.squareup.moshi.Moshi
|
||||||
import com.topjohnwu.magisk.Constants
|
import com.topjohnwu.magisk.Constants
|
||||||
import com.topjohnwu.magisk.data.network.GithubRawApiServices
|
import com.topjohnwu.magisk.data.network.GithubRawApiServices
|
||||||
@ -11,6 +12,7 @@ import retrofit2.Converter
|
|||||||
import retrofit2.Retrofit
|
import retrofit2.Retrofit
|
||||||
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
|
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
|
||||||
import retrofit2.converter.moshi.MoshiConverterFactory
|
import retrofit2.converter.moshi.MoshiConverterFactory
|
||||||
|
import se.ansman.kotshi.KotshiJsonAdapterFactory
|
||||||
|
|
||||||
val networkingModule = module {
|
val networkingModule = module {
|
||||||
single { createOkHttpClient() }
|
single { createOkHttpClient() }
|
||||||
@ -31,7 +33,9 @@ fun createOkHttpClient(): OkHttpClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun createConverterFactory(): Converter.Factory {
|
fun createConverterFactory(): Converter.Factory {
|
||||||
val moshi = Moshi.Builder().build()
|
val moshi = Moshi.Builder()
|
||||||
|
.add(JsonAdapterFactory.INSTANCE)
|
||||||
|
.build()
|
||||||
return MoshiConverterFactory.create(moshi)
|
return MoshiConverterFactory.create(moshi)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,6 +54,13 @@ fun createRetrofit(
|
|||||||
.client(okHttpClient)
|
.client(okHttpClient)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@KotshiJsonAdapterFactory
|
||||||
|
abstract class JsonAdapterFactory : JsonAdapter.Factory {
|
||||||
|
companion object {
|
||||||
|
val INSTANCE: JsonAdapterFactory = KotshiJsonAdapterFactory
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inline fun <reified T> createApiService(retrofitBuilder: Retrofit.Builder, baseUrl: String): T {
|
inline fun <reified T> createApiService(retrofitBuilder: Retrofit.Builder, baseUrl: String): T {
|
||||||
return retrofitBuilder
|
return retrofitBuilder
|
||||||
.baseUrl(baseUrl)
|
.baseUrl(baseUrl)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.topjohnwu.magisk.model.entity
|
package com.topjohnwu.magisk.model.entity
|
||||||
|
|
||||||
import com.squareup.moshi.JsonClass
|
import se.ansman.kotshi.JsonSerializable
|
||||||
|
|
||||||
@JsonClass(generateAdapter = true)
|
@JsonSerializable
|
||||||
data class MagiskApp(
|
data class MagiskApp(
|
||||||
val version: String,
|
val version: String,
|
||||||
val versionCode: String,
|
val versionCode: String,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.topjohnwu.magisk.model.entity
|
package com.topjohnwu.magisk.model.entity
|
||||||
|
|
||||||
import com.squareup.moshi.JsonClass
|
import se.ansman.kotshi.JsonSerializable
|
||||||
|
|
||||||
@JsonClass(generateAdapter = true)
|
@JsonSerializable
|
||||||
data class MagiskConfig(
|
data class MagiskConfig(
|
||||||
val app: MagiskApp,
|
val app: MagiskApp,
|
||||||
val uninstaller: MagiskLink,
|
val uninstaller: MagiskLink,
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package com.topjohnwu.magisk.model.entity
|
package com.topjohnwu.magisk.model.entity
|
||||||
|
|
||||||
import com.squareup.moshi.Json
|
import com.squareup.moshi.Json
|
||||||
import com.squareup.moshi.JsonClass
|
import se.ansman.kotshi.JsonSerializable
|
||||||
|
|
||||||
@JsonClass(generateAdapter = true)
|
@JsonSerializable
|
||||||
data class MagiskFlashable(
|
data class MagiskFlashable(
|
||||||
val version: String,
|
val version: String,
|
||||||
val versionCode: String,
|
val versionCode: String,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.topjohnwu.magisk.model.entity
|
package com.topjohnwu.magisk.model.entity
|
||||||
|
|
||||||
import com.squareup.moshi.JsonClass
|
import se.ansman.kotshi.JsonSerializable
|
||||||
|
|
||||||
@JsonClass(generateAdapter = true)
|
@JsonSerializable
|
||||||
data class MagiskLink(
|
data class MagiskLink(
|
||||||
val link: String
|
val link: String
|
||||||
)
|
)
|
Loading…
Reference in New Issue
Block a user