Use kotshi instead of moshi-kotlin-codegen

This commit is contained in:
topjohnwu
2019-06-01 13:18:11 -07:00
parent 4122ebe18f
commit 80d834fb55
8 changed files with 26 additions and 61 deletions

View File

@@ -1,5 +1,6 @@
package com.topjohnwu.magisk.di
import com.squareup.moshi.JsonAdapter
import com.squareup.moshi.Moshi
import com.topjohnwu.magisk.Constants
import com.topjohnwu.magisk.data.network.GithubRawApiServices
@@ -11,6 +12,7 @@ import retrofit2.Converter
import retrofit2.Retrofit
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.moshi.MoshiConverterFactory
import se.ansman.kotshi.KotshiJsonAdapterFactory
val networkingModule = module {
single { createOkHttpClient() }
@@ -31,7 +33,9 @@ fun createOkHttpClient(): OkHttpClient {
}
fun createConverterFactory(): Converter.Factory {
val moshi = Moshi.Builder().build()
val moshi = Moshi.Builder()
.add(JsonAdapterFactory.INSTANCE)
.build()
return MoshiConverterFactory.create(moshi)
}
@@ -50,6 +54,13 @@ fun createRetrofit(
.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 {
return retrofitBuilder
.baseUrl(baseUrl)

View File

@@ -1,8 +1,8 @@
package com.topjohnwu.magisk.model.entity
import com.squareup.moshi.JsonClass
import se.ansman.kotshi.JsonSerializable
@JsonClass(generateAdapter = true)
@JsonSerializable
data class MagiskApp(
val version: String,
val versionCode: String,

View File

@@ -1,8 +1,8 @@
package com.topjohnwu.magisk.model.entity
import com.squareup.moshi.JsonClass
import se.ansman.kotshi.JsonSerializable
@JsonClass(generateAdapter = true)
@JsonSerializable
data class MagiskConfig(
val app: MagiskApp,
val uninstaller: MagiskLink,

View File

@@ -1,9 +1,9 @@
package com.topjohnwu.magisk.model.entity
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import se.ansman.kotshi.JsonSerializable
@JsonClass(generateAdapter = true)
@JsonSerializable
data class MagiskFlashable(
val version: String,
val versionCode: String,

View File

@@ -1,8 +1,8 @@
package com.topjohnwu.magisk.model.entity
import com.squareup.moshi.JsonClass
import se.ansman.kotshi.JsonSerializable
@JsonClass(generateAdapter = true)
@JsonSerializable
data class MagiskLink(
val link: String
)