diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 74a5a920..2f92c1c0 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -7,10 +7,10 @@ plugins { dependencies { kapt(Dependencies.AndroidX.Hilt.daggerCompiler) - kapt(Dependencies.ThirdParty.Moshi.codegen) api(Dependencies.ThirdParty.Retrofit.lib) implementation(project(":database")) implementation(Dependencies.AndroidX.Hilt.dagger) + implementation(Dependencies.ThirdParty.Moshi.kotlinReflect) implementation(Dependencies.ThirdParty.Retrofit.moshi) testImplementation(Dependencies.Kotlin.Coroutines.core) testImplementation(Dependencies.Testing.junit) diff --git a/api/src/main/java/dev/msfjarvis/lobsters/injection/MoshiModule.kt b/api/src/main/java/dev/msfjarvis/lobsters/injection/MoshiModule.kt index 075f5ff5..5bddf329 100644 --- a/api/src/main/java/dev/msfjarvis/lobsters/injection/MoshiModule.kt +++ b/api/src/main/java/dev/msfjarvis/lobsters/injection/MoshiModule.kt @@ -1,6 +1,7 @@ package dev.msfjarvis.lobsters.injection import com.squareup.moshi.Moshi +import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -11,6 +12,8 @@ import dagger.hilt.components.SingletonComponent object MoshiModule { @Provides fun provideMoshi(): Moshi { - return Moshi.Builder().build() + return Moshi.Builder() + .add(KotlinJsonAdapterFactory()) + .build() } } diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index f05c4081..79133fe9 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -58,7 +58,7 @@ object Dependencies { object Moshi { private const val version = "1.11.0" - const val codegen = "com.squareup.moshi:moshi-kotlin-codegen:$version" + const val kotlinReflect = "com.squareup.moshi:moshi-kotlin:$version" const val lib = "com.squareup.moshi:moshi:$version" } diff --git a/database/build.gradle.kts b/database/build.gradle.kts index cba5e712..f7a61b32 100644 --- a/database/build.gradle.kts +++ b/database/build.gradle.kts @@ -1,14 +1,13 @@ plugins { id("com.android.library") kotlin("android") - kotlin("kapt") id("com.squareup.sqldelight") `lobsters-plugin` } dependencies { - kapt(Dependencies.ThirdParty.Moshi.codegen) implementation(Dependencies.ThirdParty.Moshi.lib) + implementation(Dependencies.ThirdParty.Moshi.kotlinReflect) testImplementation(Dependencies.Kotlin.Coroutines.core) testImplementation(Dependencies.ThirdParty.SQLDelight.jvmDriver) testImplementation(Dependencies.Testing.junit) diff --git a/database/src/main/java/dev/msfjarvis/lobsters/model/KeybaseSignature.kt b/database/src/main/java/dev/msfjarvis/lobsters/model/KeybaseSignature.kt index 6002a693..c1cc62ed 100644 --- a/database/src/main/java/dev/msfjarvis/lobsters/model/KeybaseSignature.kt +++ b/database/src/main/java/dev/msfjarvis/lobsters/model/KeybaseSignature.kt @@ -1,9 +1,7 @@ package dev.msfjarvis.lobsters.model import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass -@JsonClass(generateAdapter = true) class KeybaseSignature( @Json(name = "kb_username") val kbUsername: String, diff --git a/database/src/main/java/dev/msfjarvis/lobsters/model/Submitter.kt b/database/src/main/java/dev/msfjarvis/lobsters/model/Submitter.kt index d00de4a7..e76e3de1 100644 --- a/database/src/main/java/dev/msfjarvis/lobsters/model/Submitter.kt +++ b/database/src/main/java/dev/msfjarvis/lobsters/model/Submitter.kt @@ -1,9 +1,7 @@ package dev.msfjarvis.lobsters.model import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass -@JsonClass(generateAdapter = true) class Submitter( val username: String, @Json(name = "created_at") diff --git a/database/src/main/java/dev/msfjarvis/lobsters/model/SubmitterAdapter.kt b/database/src/main/java/dev/msfjarvis/lobsters/model/SubmitterAdapter.kt index 568d7d70..2ec6793a 100644 --- a/database/src/main/java/dev/msfjarvis/lobsters/model/SubmitterAdapter.kt +++ b/database/src/main/java/dev/msfjarvis/lobsters/model/SubmitterAdapter.kt @@ -1,11 +1,12 @@ package dev.msfjarvis.lobsters.model import com.squareup.moshi.Moshi +import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory import com.squareup.sqldelight.ColumnAdapter class SubmitterAdapter : ColumnAdapter { - private val moshi = Moshi.Builder().build() - private val submitterJsonAdapter = SubmitterJsonAdapter(moshi) + private val moshi = Moshi.Builder().add(KotlinJsonAdapterFactory()).build() + private val submitterJsonAdapter = moshi.adapter(Submitter::class.java) override fun decode(databaseValue: String): Submitter { return submitterJsonAdapter.fromJson(databaseValue)!! diff --git a/database/src/main/sqldelight/dev/msfjarvis/lobsters/data/local/Post.sq b/database/src/main/sqldelight/dev/msfjarvis/lobsters/data/local/Post.sq index 0ec34da6..9493496e 100644 --- a/database/src/main/sqldelight/dev/msfjarvis/lobsters/data/local/Post.sq +++ b/database/src/main/sqldelight/dev/msfjarvis/lobsters/data/local/Post.sq @@ -1,4 +1,5 @@ import dev.msfjarvis.lobsters.model.Submitter; +import java.lang.Integer; import kotlin.collections.List; CREATE TABLE IF NOT EXISTS LobstersPost( @@ -14,7 +15,7 @@ CREATE TABLE IF NOT EXISTS LobstersPost( comments_url TEXT NOT NULL, submitter_user TEXT as Submitter NOT NULL, tags TEXT as List NOT NULL, - is_saved INTEGER DEFAULT 0 NOT NULL + is_saved INTEGER as Integer DEFAULT 0 ); selectAllPosts: