refactor(android): reuse node JSON param parser (#120456)

This commit is contained in:
Vincent Koc
2026-08-26 08:48:50 +08:00
committed by GitHub
parent 5ce9b61ceb
commit 0036788055
2 changed files with 2 additions and 23 deletions
@@ -2,7 +2,6 @@ package ai.openclaw.app.node
import ai.openclaw.app.gateway.GatewaySession
import android.content.Context
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonArray
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.JsonPrimitive
@@ -68,7 +67,7 @@ class NotificationsHandler private constructor(
readSnapshotWithRebind()
val params =
parseParamsObject(paramsJson)
parseJsonParamsObject(paramsJson)
?: return GatewaySession.InvokeResult.error(
code = "INVALID_REQUEST",
message = "INVALID_REQUEST: expected JSON object",
@@ -153,15 +152,6 @@ class NotificationsHandler private constructor(
)
}.toString()
private fun parseParamsObject(paramsJson: String?): JsonObject? {
if (paramsJson.isNullOrBlank()) return null
return try {
Json.parseToJsonElement(paramsJson).asObjectOrNull()
} catch (_: Throwable) {
null
}
}
private fun readString(
params: JsonObject,
key: String,
@@ -13,8 +13,6 @@ import android.os.Build
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.contentOrNull
@@ -163,7 +161,7 @@ class SystemHandler private constructor(
}
private fun parseNotifyRequest(paramsJson: String?): SystemNotifyRequest? {
val params = parseParamsObject(paramsJson) ?: return null
val params = parseJsonParamsObject(paramsJson) ?: return null
// title/body are required by the gateway contract; optional fields only
// influence Android channel/silence behavior.
val rawTitle =
@@ -184,15 +182,6 @@ class SystemHandler private constructor(
)
}
private fun parseParamsObject(paramsJson: String?): JsonObject? {
if (paramsJson.isNullOrBlank()) return null
return try {
Json.parseToJsonElement(paramsJson).asObjectOrNull()
} catch (_: Throwable) {
null
}
}
companion object {
/** Creates a handler with a fake poster for parser and authorization tests. */
internal fun forTesting(poster: SystemNotificationPoster): SystemHandler = SystemHandler(poster)