33 lines
1.3 KiB
Kotlin
33 lines
1.3 KiB
Kotlin
package com.simplemobiletools.smsmessenger.helpers
|
|
|
|
import androidx.room.TypeConverter
|
|
import com.google.gson.Gson
|
|
import com.google.gson.reflect.TypeToken
|
|
import com.simplemobiletools.commons.models.SimpleContact
|
|
import com.simplemobiletools.smsmessenger.models.Attachment
|
|
import com.simplemobiletools.smsmessenger.models.MessageAttachment
|
|
|
|
class Converters {
|
|
private val gson = Gson()
|
|
private val attachmentType = object : TypeToken<List<Attachment>>() {}.type
|
|
private val simpleContactType = object : TypeToken<List<SimpleContact>>() {}.type
|
|
private val messageAttachmentType = object : TypeToken<MessageAttachment?>() {}.type
|
|
|
|
@TypeConverter
|
|
fun jsonToAttachmentList(value: String) = gson.fromJson<ArrayList<Attachment>>(value, attachmentType)
|
|
|
|
@TypeConverter
|
|
fun attachmentListToJson(list: ArrayList<Attachment>) = gson.toJson(list)
|
|
|
|
@TypeConverter
|
|
fun jsonToSimpleContactList(value: String) = gson.fromJson<ArrayList<SimpleContact>>(value, simpleContactType)
|
|
|
|
@TypeConverter
|
|
fun simpleContactListToJson(list: ArrayList<SimpleContact>) = gson.toJson(list)
|
|
|
|
@TypeConverter
|
|
fun jsonToMessageAttachment(value: String) = gson.fromJson<MessageAttachment>(value, messageAttachmentType)
|
|
|
|
@TypeConverter
|
|
fun messageAttachmentToJson(messageAttachment: MessageAttachment?) = gson.toJson(messageAttachment)
|
|
}
|