Coverage Summary for Class: MindboxRoomConverter (cloud.mindbox.mobile_sdk.converters)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| MindboxRoomConverter |
0%
(0/5)
|
0%
(0/6)
|
0%
(0/7)
|
0%
(0/68)
|
| MindboxRoomConverter$gson$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| MindboxRoomConverter$stringToHashMap$1 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/2)
|
| Total |
0%
(0/7)
|
0%
(0/6)
|
0%
(0/9)
|
0%
(0/73)
|
package cloud.mindbox.mobile_sdk.converters
import androidx.room.TypeConverter
import cloud.mindbox.mobile_sdk.models.EventType
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
internal object MindboxRoomConverter {
private val gson by lazy { Gson() }
@TypeConverter
@JvmStatic
fun stringToHashMap(value: String): HashMap<String, String>? {
return gson.fromJson(value, object : TypeToken<HashMap<String, String>?>() {}.type)
}
@TypeConverter
@JvmStatic
fun hashMapToString(
value: HashMap<String, String>?
): String = if (value == null) "" else gson.toJson(value)
@TypeConverter
@JvmStatic
fun stringToEventType(value: String): EventType {
val ordinal = value.substringBefore(";", "-1").toInt()
val json = value.substringAfter(";", "")
return gson.fromJson(json, EventType.typeToken(ordinal).type)
}
@TypeConverter
@JvmStatic
fun eventTypeToString(
value: EventType?
): String = value?.let { "${it.ordinal()};${gson.toJson(it)}" } ?: ""
}