diff --git a/apps/android/app/src/main/java/ai/openclaw/android/node/NotificationsHandler.kt b/apps/android/app/src/main/java/ai/openclaw/android/node/NotificationsHandler.kt index f2afb81fc5e..8195ab84847 100644 --- a/apps/android/app/src/main/java/ai/openclaw/android/node/NotificationsHandler.kt +++ b/apps/android/app/src/main/java/ai/openclaw/android/node/NotificationsHandler.kt @@ -47,18 +47,12 @@ class NotificationsHandler private constructor( constructor(appContext: Context) : this(appContext = appContext, stateProvider = SystemNotificationsStateProvider) suspend fun handleNotificationsList(_paramsJson: String?): GatewaySession.InvokeResult { - val snapshot = stateProvider.readSnapshot(appContext) - if (snapshot.enabled && !snapshot.connected) { - stateProvider.requestServiceRebind(appContext) - } + val snapshot = readSnapshotWithRebind() return GatewaySession.InvokeResult.ok(snapshotPayloadJson(snapshot)) } suspend fun handleNotificationsActions(paramsJson: String?): GatewaySession.InvokeResult { - val snapshot = stateProvider.readSnapshot(appContext) - if (snapshot.enabled && !snapshot.connected) { - stateProvider.requestServiceRebind(appContext) - } + readSnapshotWithRebind() val params = parseParamsObject(paramsJson) ?: return GatewaySession.InvokeResult.error( @@ -121,6 +115,14 @@ class NotificationsHandler private constructor( return GatewaySession.InvokeResult.ok(payload) } + private fun readSnapshotWithRebind(): DeviceNotificationSnapshot { + val snapshot = stateProvider.readSnapshot(appContext) + if (snapshot.enabled && !snapshot.connected) { + stateProvider.requestServiceRebind(appContext) + } + return snapshot + } + private fun snapshotPayloadJson(snapshot: DeviceNotificationSnapshot): String { return buildJsonObject { put("enabled", JsonPrimitive(snapshot.enabled))