From 3071419aef6503e81a323b30bc88fe9a704dfdfc Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 00:34:05 +0800 Subject: [PATCH 01/14] Cleanup unused fields --- .../io/goooler/demoapp/main/bean/MainRepoListBean.kt | 9 --------- 1 file changed, 9 deletions(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index c9f15c51f..bfd06ec57 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -18,15 +18,9 @@ class MainRepoListBean : BaseResponse() { @ColumnInfo var private: Boolean = false - @ColumnInfo - var fork: Boolean = false - @ColumnInfo var name: String? = null - @ColumnInfo - var description: String? = null - @Json(name = "full_name") var fullName: String = "" @@ -35,9 +29,6 @@ class MainRepoListBean : BaseResponse() { @JsonClass(generateAdapter = true) class OwnerBean { - @ColumnInfo(name = "owner_name") - @Json(name = "login") - var ownerName: String? = null @ColumnInfo(name = "avatar_url") @Json(name = "avatar_url") From fc44ac61a93b90e368d97b8d77b37d8421b430ff Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 00:36:05 +0800 Subject: [PATCH 02/14] Make fields as values in MainRepoListBean --- .../demoapp/main/bean/MainRepoListBean.kt | 33 ++++++------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index bfd06ec57..da4234a4c 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -10,28 +10,15 @@ import io.goooler.demoapp.common.network.BaseResponse @JsonClass(generateAdapter = true) @Entity(tableName = "main_repo_list", ignoredColumns = ["message", "code"]) -class MainRepoListBean : BaseResponse() { - - @PrimaryKey - var id: Long = 0 - - @ColumnInfo - var private: Boolean = false - - @ColumnInfo - var name: String? = null - - @Json(name = "full_name") - var fullName: String = "" - - @Embedded - var owner: OwnerBean? = null - +data class MainRepoListBean( + @PrimaryKey val id: Long = 0, + @ColumnInfo val private: Boolean = false, + @ColumnInfo val name: String? = null, + @Json(name = "full_name") val fullName: String = "", + @Embedded val owner: OwnerBean? = null, +) : BaseResponse() { @JsonClass(generateAdapter = true) - class OwnerBean { - - @ColumnInfo(name = "avatar_url") - @Json(name = "avatar_url") - var avatarUrl: String? = null - } + data class OwnerBean( + @ColumnInfo(name = "avatar_url") @Json(name = "avatar_url") val avatarUrl: String? = null, + ) } From 68f5b4bc0d6a6ef877706fa25c126be62505ce39 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 00:36:34 +0800 Subject: [PATCH 03/14] Bump DB_VERSION --- .../main/kotlin/io/goooler/demoapp/common/util/RoomHelper.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/kotlin/io/goooler/demoapp/common/util/RoomHelper.kt b/common/src/main/kotlin/io/goooler/demoapp/common/util/RoomHelper.kt index 92fd4bd40..e349673ce 100644 --- a/common/src/main/kotlin/io/goooler/demoapp/common/util/RoomHelper.kt +++ b/common/src/main/kotlin/io/goooler/demoapp/common/util/RoomHelper.kt @@ -6,7 +6,7 @@ import io.goooler.demoapp.common.CommonApplication import io.goooler.demoapp.common.type.Databases object RoomHelper { - const val DB_VERSION = 1 + const val DB_VERSION = 2 inline fun create(db: Databases = Databases.Demo): T { return Room.databaseBuilder(CommonApplication.app, T::class.java, db.dbName) From 0b037f467f7bde5a1dbc0e832954691ee1537c7b Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 00:52:35 +0800 Subject: [PATCH 04/14] Cleanup default values --- .../goooler/demoapp/main/bean/MainRepoListBean.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index da4234a4c..10e363a18 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -9,16 +9,16 @@ import com.squareup.moshi.JsonClass import io.goooler.demoapp.common.network.BaseResponse @JsonClass(generateAdapter = true) -@Entity(tableName = "main_repo_list", ignoredColumns = ["message", "code"]) +@Entity(tableName = "main_repo_list") data class MainRepoListBean( - @PrimaryKey val id: Long = 0, - @ColumnInfo val private: Boolean = false, - @ColumnInfo val name: String? = null, - @Json(name = "full_name") val fullName: String = "", - @Embedded val owner: OwnerBean? = null, + @PrimaryKey val id: Long, + @ColumnInfo val private: Boolean, + @ColumnInfo val name: String, + @Json(name = "full_name") val fullName: String, + @Embedded val owner: OwnerBean, ) : BaseResponse() { @JsonClass(generateAdapter = true) data class OwnerBean( - @ColumnInfo(name = "avatar_url") @Json(name = "avatar_url") val avatarUrl: String? = null, + @ColumnInfo(name = "avatar_url") @Json(name = "avatar_url") val avatarUrl: String?, ) } From f5a605597286b5caba27f07aa3ad01230fe9e609 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 00:56:31 +0800 Subject: [PATCH 05/14] Muse have a secondary constructor --- .../kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index 10e363a18..a60c9c609 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -17,6 +17,8 @@ data class MainRepoListBean( @Json(name = "full_name") val fullName: String, @Embedded val owner: OwnerBean, ) : BaseResponse() { + constructor() : this(0, false, "", "", OwnerBean(null)) + @JsonClass(generateAdapter = true) data class OwnerBean( @ColumnInfo(name = "avatar_url") @Json(name = "avatar_url") val avatarUrl: String?, From 43b9537a0bc11c948f3c3f56f401e2ef5b543095 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 00:59:06 +0800 Subject: [PATCH 06/14] Cleanup @ColumnInfo --- .../kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index a60c9c609..372bbda3d 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -12,9 +12,9 @@ import io.goooler.demoapp.common.network.BaseResponse @Entity(tableName = "main_repo_list") data class MainRepoListBean( @PrimaryKey val id: Long, - @ColumnInfo val private: Boolean, - @ColumnInfo val name: String, - @Json(name = "full_name") val fullName: String, + val private: Boolean, + val name: String, + @ColumnInfo(name = "full_name") @Json(name = "full_name") val fullName: String, @Embedded val owner: OwnerBean, ) : BaseResponse() { constructor() : this(0, false, "", "", OwnerBean(null)) From 27a11206c337f652bf9d6943e690e404d9b94e56 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 00:59:54 +0800 Subject: [PATCH 07/14] Remove @Keep on BaseResponse --- .../kotlin/io/goooler/demoapp/common/network/BaseResponse.kt | 3 --- 1 file changed, 3 deletions(-) diff --git a/common/src/main/kotlin/io/goooler/demoapp/common/network/BaseResponse.kt b/common/src/main/kotlin/io/goooler/demoapp/common/network/BaseResponse.kt index 84644fca1..081d31906 100644 --- a/common/src/main/kotlin/io/goooler/demoapp/common/network/BaseResponse.kt +++ b/common/src/main/kotlin/io/goooler/demoapp/common/network/BaseResponse.kt @@ -1,8 +1,5 @@ package io.goooler.demoapp.common.network -import androidx.annotation.Keep - -@Keep abstract class BaseResponse( val message: String? = null, val code: Int = -1, From cc8b04f4c85deb41dc89a702ae26a33668200507 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 01:14:03 +0800 Subject: [PATCH 08/14] Reformat --- .../kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index 372bbda3d..6475d2a43 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -14,13 +14,15 @@ data class MainRepoListBean( @PrimaryKey val id: Long, val private: Boolean, val name: String, - @ColumnInfo(name = "full_name") @Json(name = "full_name") val fullName: String, + @ColumnInfo(name = "full_name") @Json(name = "full_name") + val fullName: String, @Embedded val owner: OwnerBean, ) : BaseResponse() { constructor() : this(0, false, "", "", OwnerBean(null)) @JsonClass(generateAdapter = true) data class OwnerBean( - @ColumnInfo(name = "avatar_url") @Json(name = "avatar_url") val avatarUrl: String?, + @ColumnInfo(name = "avatar_url") @Json(name = "avatar_url") + val avatarUrl: String?, ) } From 3e4e72a0f1da22a766ba423308709fb29e443cf9 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 01:39:56 +0800 Subject: [PATCH 09/14] Add fields back --- .../kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index 6475d2a43..f4d2c7f73 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -9,7 +9,7 @@ import com.squareup.moshi.JsonClass import io.goooler.demoapp.common.network.BaseResponse @JsonClass(generateAdapter = true) -@Entity(tableName = "main_repo_list") +@Entity(tableName = "main_repo_list", ignoredColumns = ["message", "code"]) data class MainRepoListBean( @PrimaryKey val id: Long, val private: Boolean, @@ -22,6 +22,9 @@ data class MainRepoListBean( @JsonClass(generateAdapter = true) data class OwnerBean( + @ColumnInfo(name = "owner_name") + @Json(name = "login") + val ownerName: String, @ColumnInfo(name = "avatar_url") @Json(name = "avatar_url") val avatarUrl: String?, ) From a2f2ee6c42b306b0da6efc5c226cdc672e099b85 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 01:41:11 +0800 Subject: [PATCH 10/14] No need data classes --- .../kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index f4d2c7f73..4534c2e34 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -10,7 +10,7 @@ import io.goooler.demoapp.common.network.BaseResponse @JsonClass(generateAdapter = true) @Entity(tableName = "main_repo_list", ignoredColumns = ["message", "code"]) -data class MainRepoListBean( +class MainRepoListBean( @PrimaryKey val id: Long, val private: Boolean, val name: String, @@ -21,7 +21,7 @@ data class MainRepoListBean( constructor() : this(0, false, "", "", OwnerBean(null)) @JsonClass(generateAdapter = true) - data class OwnerBean( + class OwnerBean( @ColumnInfo(name = "owner_name") @Json(name = "login") val ownerName: String, From bce75bf7b9bd8a4dd60df5833dcdc1217402a2f1 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 01:58:21 +0800 Subject: [PATCH 11/14] Correct constructor --- .../kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index 4534c2e34..f5158d20c 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -18,7 +18,7 @@ class MainRepoListBean( val fullName: String, @Embedded val owner: OwnerBean, ) : BaseResponse() { - constructor() : this(0, false, "", "", OwnerBean(null)) + constructor() : this(0, false, "", "", OwnerBean("", null)) @JsonClass(generateAdapter = true) class OwnerBean( From da5c92368f2f28f5e233570b49579c6dc6930fff Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 02:11:48 +0800 Subject: [PATCH 12/14] Use room's ksp --- biz/main/build.gradle.kts | 3 ++- build.gradle.kts | 1 + common/build.gradle.kts | 3 ++- gradle/libs.versions.toml | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/biz/main/build.gradle.kts b/biz/main/build.gradle.kts index 52791068d..53edfa07d 100644 --- a/biz/main/build.gradle.kts +++ b/biz/main/build.gradle.kts @@ -2,6 +2,7 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.kapt) + alias(libs.plugins.ksp) alias(libs.plugins.moshiX) } @@ -28,7 +29,7 @@ dependencies { implementation(libs.flycoTabLayout) implementation(libs.bundles.androidX.room) - kapt(libs.androidX.room.compiler) + ksp(libs.androidX.room.compiler) implementation(libs.square.moshi) } diff --git a/build.gradle.kts b/build.gradle.kts index 964468964..744c31ea1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,6 +8,7 @@ plugins { alias(libs.plugins.android.library) apply false alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.kapt) apply false + alias(libs.plugins.ksp) apply false alias(libs.plugins.kotlinter) apply false alias(libs.plugins.detekt) apply false alias(libs.plugins.moshiX) apply false diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 51db4d6df..d6252da94 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -2,6 +2,7 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.kapt) + alias(libs.plugins.ksp) alias(libs.plugins.moshiX) } @@ -39,7 +40,7 @@ dependencies { api(libs.utils) implementation(libs.bundles.androidX.room) - kapt(libs.androidX.room.compiler) + ksp(libs.androidX.room.compiler) implementation(libs.bundles.coil) implementation(libs.square.moshi) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a270d0ec0..27c8c37af 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,6 +28,7 @@ android-application = { id = "com.android.application", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } +ksp = "com.google.devtools.ksp:1.7.10-1.0.6" moshiX = "dev.zacsweers.moshix:0.18.3" kotlinter = "org.jmailen.kotlinter:3.11.1" detekt = "io.gitlab.arturbosch.detekt:1.21.0" From 1437a99adddc3a6067f999c8a9fda9effc5e7e69 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 02:41:14 +0800 Subject: [PATCH 13/14] Remove constructor --- .../main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index f5158d20c..0351f8fb7 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -18,7 +18,6 @@ class MainRepoListBean( val fullName: String, @Embedded val owner: OwnerBean, ) : BaseResponse() { - constructor() : this(0, false, "", "", OwnerBean("", null)) @JsonClass(generateAdapter = true) class OwnerBean( From af2fa3ffd64e71b18c5432ac98504b8259af7fbd Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 28 Aug 2022 02:42:57 +0800 Subject: [PATCH 14/14] Rearrange --- .../io/goooler/demoapp/main/bean/MainRepoListBean.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt index 0351f8fb7..0e22111e1 100644 --- a/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt +++ b/biz/main/src/main/kotlin/io/goooler/demoapp/main/bean/MainRepoListBean.kt @@ -14,17 +14,16 @@ class MainRepoListBean( @PrimaryKey val id: Long, val private: Boolean, val name: String, - @ColumnInfo(name = "full_name") @Json(name = "full_name") + @Json(name = "full_name") @ColumnInfo(name = "full_name") val fullName: String, @Embedded val owner: OwnerBean, ) : BaseResponse() { @JsonClass(generateAdapter = true) class OwnerBean( - @ColumnInfo(name = "owner_name") - @Json(name = "login") + @Json(name = "login") @ColumnInfo(name = "owner_name") val ownerName: String, - @ColumnInfo(name = "avatar_url") @Json(name = "avatar_url") + @Json(name = "avatar_url") @ColumnInfo(name = "avatar_url") val avatarUrl: String?, ) }