Browse Source

unify room converter's json handling to always use LoganSquare

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 3 years ago
parent
commit
25a5346435

+ 4 - 4
app/src/main/java/com/nextcloud/talk/data/source/local/converters/CapabilitiesConverter.kt

@@ -36,10 +36,10 @@ class CapabilitiesConverter {
 
 
     @TypeConverter
     @TypeConverter
     fun fromStringToCapabilities(value: String): Capabilities? {
     fun fromStringToCapabilities(value: String): Capabilities? {
-        if (value.isBlank()) {
-            return null
+        return if (value.isBlank()) {
+            null
+        } else {
+            return LoganSquare.parse(value, Capabilities::class.java)
         }
         }
-
-        return LoganSquare.parse(value, Capabilities::class.java)
     }
     }
 }
 }

+ 6 - 6
app/src/main/java/com/nextcloud/talk/data/source/local/converters/ExternalSignalingServerConverter.kt

@@ -21,26 +21,26 @@
 package com.nextcloud.talk.data.source.local.converters
 package com.nextcloud.talk.data.source.local.converters
 
 
 import androidx.room.TypeConverter
 import androidx.room.TypeConverter
+import com.bluelinelabs.logansquare.LoganSquare
 import com.nextcloud.talk.models.ExternalSignalingServer
 import com.nextcloud.talk.models.ExternalSignalingServer
 
 
 class ExternalSignalingServerConverter {
 class ExternalSignalingServerConverter {
-    val json = JsonConfiguration.customJsonConfiguration
 
 
     @TypeConverter
     @TypeConverter
     fun fromExternalSignalingServerToString(externalSignalingServer: ExternalSignalingServer?): String {
     fun fromExternalSignalingServerToString(externalSignalingServer: ExternalSignalingServer?): String {
         return if (externalSignalingServer == null) {
         return if (externalSignalingServer == null) {
             ""
             ""
         } else {
         } else {
-            json.encodeToString(ExternalSignalingServer.serializer(), externalSignalingServer)
+            LoganSquare.serialize(externalSignalingServer)
         }
         }
     }
     }
 
 
     @TypeConverter
     @TypeConverter
     fun fromStringToExternalSignalingServer(value: String): ExternalSignalingServer? {
     fun fromStringToExternalSignalingServer(value: String): ExternalSignalingServer? {
-        if (value.isBlank()) {
-            return null
+        return if (value.isBlank()) {
+            null
+        } else {
+            return LoganSquare.parse(value, ExternalSignalingServer::class.java)
         }
         }
-
-        return json.decodeFromString(ExternalSignalingServer.serializer(), value)
     }
     }
 }
 }

+ 0 - 34
app/src/main/java/com/nextcloud/talk/data/source/local/converters/JsonConfiguration.kt

@@ -1,34 +0,0 @@
-/*
- * Nextcloud Talk application
- *
- * @author Andy Scherzinger
- * @author Mario Danic
- * Copyright (C) 2022 Andy Scherzinger <info@andy-scherzinger.de>
- * Copyright (C) 2017-2020 Mario Danic <mario@lovelyhq.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.nextcloud.talk.data.source.local.converters
-
-import kotlinx.serialization.json.Json
-
-sealed class JsonConfiguration {
-    companion object {
-        val customJsonConfiguration = Json {
-            prettyPrint = true
-            useArrayPolymorphism = true
-        }
-    }
-}

+ 6 - 6
app/src/main/java/com/nextcloud/talk/data/source/local/converters/PushConfigurationConverter.kt

@@ -23,26 +23,26 @@
 package com.nextcloud.talk.data.source.local.converters
 package com.nextcloud.talk.data.source.local.converters
 
 
 import androidx.room.TypeConverter
 import androidx.room.TypeConverter
+import com.bluelinelabs.logansquare.LoganSquare
 import com.nextcloud.talk.models.json.push.PushConfigurationState
 import com.nextcloud.talk.models.json.push.PushConfigurationState
 
 
 class PushConfigurationConverter {
 class PushConfigurationConverter {
-    val json = JsonConfiguration.customJsonConfiguration
 
 
     @TypeConverter
     @TypeConverter
     fun fromPushConfigurationToString(pushConfiguration: PushConfigurationState?): String {
     fun fromPushConfigurationToString(pushConfiguration: PushConfigurationState?): String {
         return if (pushConfiguration == null) {
         return if (pushConfiguration == null) {
             ""
             ""
         } else {
         } else {
-            json.encodeToString(PushConfigurationState.serializer(), pushConfiguration)
+            LoganSquare.serialize(pushConfiguration)
         }
         }
     }
     }
 
 
     @TypeConverter
     @TypeConverter
     fun fromStringToPushConfiguration(value: String?): PushConfigurationState? {
     fun fromStringToPushConfiguration(value: String?): PushConfigurationState? {
-        if (value.isNullOrBlank()) {
-            return null
+        return if (value.isNullOrBlank()) {
+            null
+        } else {
+            return LoganSquare.parse(value, PushConfigurationState::class.java)
         }
         }
-
-        return json.decodeFromString(PushConfigurationState.serializer(), value)
     }
     }
 }
 }

+ 6 - 6
app/src/main/java/com/nextcloud/talk/data/source/local/converters/SignalingSettingsConverter.kt

@@ -23,26 +23,26 @@
 package com.nextcloud.talk.data.source.local.converters
 package com.nextcloud.talk.data.source.local.converters
 
 
 import androidx.room.TypeConverter
 import androidx.room.TypeConverter
+import com.bluelinelabs.logansquare.LoganSquare
 import com.nextcloud.talk.models.json.signaling.settings.SignalingSettings
 import com.nextcloud.talk.models.json.signaling.settings.SignalingSettings
 
 
 class SignalingSettingsConverter {
 class SignalingSettingsConverter {
-    val json = JsonConfiguration.customJsonConfiguration
 
 
     @TypeConverter
     @TypeConverter
     fun fromSignalingSettingsToString(signalingSettings: SignalingSettings?): String {
     fun fromSignalingSettingsToString(signalingSettings: SignalingSettings?): String {
         return if (signalingSettings == null) {
         return if (signalingSettings == null) {
             ""
             ""
         } else {
         } else {
-            json.encodeToString(SignalingSettings.serializer(), signalingSettings)
+            LoganSquare.serialize(signalingSettings)
         }
         }
     }
     }
 
 
     @TypeConverter
     @TypeConverter
     fun fromStringToSignalingSettings(value: String): SignalingSettings? {
     fun fromStringToSignalingSettings(value: String): SignalingSettings? {
-        if (value.isBlank()) {
-            return null
+        return if (value.isBlank()) {
+            null
+        } else {
+            return LoganSquare.parse(value, SignalingSettings::class.java)
         }
         }
-
-        return json.decodeFromString(SignalingSettings.serializer(), value)
     }
     }
 }
 }