Browse Source

Migrate "room" from "kapt" to "ksp" (#3777)

- Add ksp plugin
- Switch room to use ksp instead of kapt
- `ArrayList` -> `List` in a few places to fix errors about unbound generics
pull/3783/head
Nik Clayton 3 years ago committed by GitHub
parent
commit
25376170c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      app/build.gradle
  2. 2
      app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationEntity.kt
  3. 4
      app/src/main/java/com/keylesspalace/tusky/db/Converters.kt
  4. 3
      app/src/main/java/com/keylesspalace/tusky/entity/DeletedStatus.kt
  5. 3
      app/src/main/java/com/keylesspalace/tusky/entity/Status.kt
  6. 1
      build.gradle
  7. 1
      gradle/libs.versions.toml

11
app/build.gradle

@ -1,5 +1,6 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.google.ksp)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.kapt)
alias(libs.plugins.kotlin.parcelize)
@ -113,11 +114,9 @@ android {
}
}
kapt {
arguments {
arg("room.schemaLocation", "$projectDir/schemas")
arg("room.incremental", "true")
}
ksp {
arg("room.schemaLocation", "$projectDir/schemas")
arg("room.incremental", "true")
}
configurations {
@ -134,7 +133,7 @@ dependencies {
implementation libs.bundles.androidx
implementation libs.bundles.room
kapt libs.androidx.room.compiler
ksp libs.androidx.room.compiler
implementation libs.android.material

2
app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationEntity.kt

@ -89,7 +89,7 @@ data class ConversationStatusEntity(
val bookmarked: Boolean,
val sensitive: Boolean,
val spoilerText: String,
val attachments: ArrayList<Attachment>,
val attachments: List<Attachment>,
val mentions: List<Status.Mention>,
val tags: List<HashTag>?,
val showingHiddenContent: Boolean,

4
app/src/main/java/com/keylesspalace/tusky/db/Converters.kt

@ -102,8 +102,8 @@ class Converters @Inject constructor(
}
@TypeConverter
fun jsonToAttachmentList(attachmentListJson: String?): ArrayList<Attachment>? {
return gson.fromJson(attachmentListJson, object : TypeToken<ArrayList<Attachment>>() {}.type)
fun jsonToAttachmentList(attachmentListJson: String?): List<Attachment>? {
return gson.fromJson(attachmentListJson, object : TypeToken<List<Attachment>>() {}.type)
}
@TypeConverter

3
app/src/main/java/com/keylesspalace/tusky/entity/DeletedStatus.kt

@ -16,7 +16,6 @@
package com.keylesspalace.tusky.entity
import com.google.gson.annotations.SerializedName
import java.util.ArrayList
import java.util.Date
data class DeletedStatus(
@ -25,7 +24,7 @@ data class DeletedStatus(
@SerializedName("spoiler_text") val spoilerText: String,
val visibility: Status.Visibility,
val sensitive: Boolean,
@SerializedName("media_attachments") val attachments: ArrayList<Attachment>?,
@SerializedName("media_attachments") val attachments: List<Attachment>?,
val poll: Poll?,
@SerializedName("created_at") val createdAt: Date,
val language: String?

3
app/src/main/java/com/keylesspalace/tusky/entity/Status.kt

@ -19,7 +19,6 @@ import android.text.SpannableStringBuilder
import android.text.style.URLSpan
import com.google.gson.annotations.SerializedName
import com.keylesspalace.tusky.util.parseAsMastodonHtml
import java.util.ArrayList
import java.util.Date
data class Status(
@ -42,7 +41,7 @@ data class Status(
val sensitive: Boolean,
@SerializedName("spoiler_text") val spoilerText: String,
val visibility: Visibility,
@SerializedName("media_attachments") val attachments: ArrayList<Attachment>,
@SerializedName("media_attachments") val attachments: List<Attachment>,
val mentions: List<Mention>,
val tags: List<HashTag>?,
val application: Application?,

1
build.gradle

@ -1,5 +1,6 @@
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.google.ksp) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.kapt) apply false
alias(libs.plugins.kotlin.parcelize) apply false

1
gradle/libs.versions.toml

@ -57,6 +57,7 @@ xmlwriter = "1.0.4"
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
google-ksp = "com.google.devtools.ksp:1.8.22-1.0.11"
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }

Loading…
Cancel
Save