fix: adjust android talk parser for kotlin json
This commit is contained in:
@@ -162,30 +162,27 @@ object TalkDirectiveParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun JsonElement?.asStringOrNull(): String? = (this as? JsonPrimitive)?.contentOrNull
|
private fun JsonElement?.asStringOrNull(): String? =
|
||||||
|
(this as? JsonPrimitive)?.takeIf { it.isString }?.content
|
||||||
|
|
||||||
private fun JsonElement?.asDoubleOrNull(): Double? {
|
private fun JsonElement?.asDoubleOrNull(): Double? {
|
||||||
val primitive = this as? JsonPrimitive ?: return null
|
val primitive = this as? JsonPrimitive ?: return null
|
||||||
if (primitive.isString) return primitive.content.toDoubleOrNull()
|
return primitive.content.toDoubleOrNull()
|
||||||
return primitive.doubleOrNull
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun JsonElement?.asIntOrNull(): Int? {
|
private fun JsonElement?.asIntOrNull(): Int? {
|
||||||
val primitive = this as? JsonPrimitive ?: return null
|
val primitive = this as? JsonPrimitive ?: return null
|
||||||
if (primitive.isString) return primitive.content.toIntOrNull()
|
return primitive.content.toIntOrNull()
|
||||||
return primitive.intOrNull
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun JsonElement?.asLongOrNull(): Long? {
|
private fun JsonElement?.asLongOrNull(): Long? {
|
||||||
val primitive = this as? JsonPrimitive ?: return null
|
val primitive = this as? JsonPrimitive ?: return null
|
||||||
if (primitive.isString) return primitive.content.toLongOrNull()
|
return primitive.content.toLongOrNull()
|
||||||
return primitive.longOrNull
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun JsonElement?.asBooleanOrNull(): Boolean? {
|
private fun JsonElement?.asBooleanOrNull(): Boolean? {
|
||||||
val primitive = this as? JsonPrimitive ?: return null
|
val primitive = this as? JsonPrimitive ?: return null
|
||||||
if (primitive.booleanOrNull != null) return primitive.booleanOrNull
|
val content = primitive.content.trim().lowercase()
|
||||||
val content = primitive.contentOrNull?.trim()?.lowercase() ?: return null
|
|
||||||
return when (content) {
|
return when (content) {
|
||||||
"true", "yes", "1" -> true
|
"true", "yes", "1" -> true
|
||||||
"false", "no", "0" -> false
|
"false", "no", "0" -> false
|
||||||
|
|||||||
@@ -699,12 +699,12 @@ class TalkModeManager(
|
|||||||
|
|
||||||
private fun JsonElement?.asObjectOrNull(): JsonObject? = this as? JsonObject
|
private fun JsonElement?.asObjectOrNull(): JsonObject? = this as? JsonObject
|
||||||
|
|
||||||
private fun JsonElement?.asStringOrNull(): String? = (this as? JsonPrimitive)?.contentOrNull
|
private fun JsonElement?.asStringOrNull(): String? =
|
||||||
|
(this as? JsonPrimitive)?.takeIf { it.isString }?.content
|
||||||
|
|
||||||
private fun JsonElement?.asBooleanOrNull(): Boolean? {
|
private fun JsonElement?.asBooleanOrNull(): Boolean? {
|
||||||
val primitive = this as? JsonPrimitive ?: return null
|
val primitive = this as? JsonPrimitive ?: return null
|
||||||
if (primitive.booleanOrNull != null) return primitive.booleanOrNull
|
val content = primitive.content.trim().lowercase()
|
||||||
val content = primitive.contentOrNull?.trim()?.lowercase() ?: return null
|
|
||||||
return when (content) {
|
return when (content) {
|
||||||
"true", "yes", "1" -> true
|
"true", "yes", "1" -> true
|
||||||
"false", "no", "0" -> false
|
"false", "no", "0" -> false
|
||||||
|
|||||||
Reference in New Issue
Block a user