mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 22:37:03 +05:30
app: switch from kotlinx to square
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
3641cd81cd
commit
623a9ffcb5
2 changed files with 6 additions and 18 deletions
13
app/proguard-rules.pro
vendored
13
app/proguard-rules.pro
vendored
|
@ -1,14 +1 @@
|
||||||
-keepattributes *Annotation*, EnclosingMethod, InnerClasses
|
-keepattributes *Annotation*, EnclosingMethod, InnerClasses
|
||||||
-dontnote kotlinx.serialization.AnnotationsKt # core serialization annotations
|
|
||||||
|
|
||||||
-keep,includedescriptorclasses class dev.msfjarvis.lobsters.model.**$$serializer { *; }
|
|
||||||
-keepclassmembers class dev.msfjarvis.lobsters.model.** {
|
|
||||||
*** Companion;
|
|
||||||
}
|
|
||||||
-keepclasseswithmembers class dev.msfjarvis.lobsters.model.** {
|
|
||||||
kotlinx.serialization.KSerializer serializer(...);
|
|
||||||
}
|
|
||||||
|
|
||||||
# Inline-based optimizations cause reflection to fail within Ktor (from what I can tell), so we turn
|
|
||||||
# this off for now.
|
|
||||||
-dontoptimize
|
|
||||||
|
|
|
@ -1,24 +1,25 @@
|
||||||
package dev.msfjarvis.lobsters.data.source
|
package dev.msfjarvis.lobsters.data.source
|
||||||
|
|
||||||
import androidx.room.TypeConverter
|
import androidx.room.TypeConverter
|
||||||
|
import com.squareup.moshi.Moshi
|
||||||
import dev.msfjarvis.lobsters.model.Submitter
|
import dev.msfjarvis.lobsters.model.Submitter
|
||||||
import kotlinx.serialization.decodeFromString
|
import dev.msfjarvis.lobsters.model.SubmitterJsonAdapter
|
||||||
import kotlinx.serialization.encodeToString
|
|
||||||
import kotlinx.serialization.json.Json
|
|
||||||
|
|
||||||
object LobstersApiTypeConverters {
|
object LobstersApiTypeConverters {
|
||||||
private const val SEPARATOR = ","
|
private const val SEPARATOR = ","
|
||||||
|
private val moshi = Moshi.Builder().build()
|
||||||
|
private val submitterAdapter = SubmitterJsonAdapter(moshi)
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun toSubmitterUser(value: String?): Submitter? {
|
fun toSubmitterUser(value: String?): Submitter? {
|
||||||
return value?.let { Json.decodeFromString(value) }
|
return value?.let { submitterAdapter.fromJson(value) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun fromSubmitterUser(value: Submitter?): String? {
|
fun fromSubmitterUser(value: Submitter?): String? {
|
||||||
return value?.let { Json.encodeToString(value) }
|
return submitterAdapter.toJson(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue