22 lines
674 B
Kotlin
22 lines
674 B
Kotlin
package com.helible.pilot.dataclasses
|
|
|
|
import com.squareup.moshi.FromJson
|
|
import com.squareup.moshi.JsonDataException
|
|
import com.squareup.moshi.ToJson
|
|
|
|
class DeviceStatusJsonAdapter {
|
|
@FromJson
|
|
fun fromJson(deviceStatus: String): DeviceStatus {
|
|
try {
|
|
val index: UInt = deviceStatus.toUInt()
|
|
return DeviceStatus.values()[index.toInt()]
|
|
} catch (e: IndexOutOfBoundsException) {
|
|
throw JsonDataException("Impossible conversation from String to DeviceStatus")
|
|
}
|
|
}
|
|
|
|
@ToJson
|
|
fun toJson(deviceStatus: DeviceStatus): String {
|
|
return DeviceStatus.values().indexOf(deviceStatus).toString()
|
|
}
|
|
} |