app: switch from kotlinx to square

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-12-17 11:26:04 +05:30
parent 3641cd81cd
commit 623a9ffcb5
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 6 additions and 18 deletions

View file

@ -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

View file

@ -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