From 2e0dd66d39bab5a556b5f94986337bdd9939f9ea Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Tue, 23 Jun 2026 05:05:41 +0800 Subject: [PATCH] refactor(android): remove orphan runtime accessors --- .../main/java/ai/openclaw/app/SecurePrefs.kt | 6 ------ .../main/java/ai/openclaw/app/SessionKey.kt | 8 -------- .../ai/openclaw/app/gateway/GatewaySession.kt | 18 ----------------- .../ai/openclaw/app/node/CanvasController.kt | 20 ------------------- .../java/ai/openclaw/app/ui/OpenClawTheme.kt | 6 ------ .../java/ai/openclaw/app/ui/SettingsSheet.kt | 10 ---------- 6 files changed, 68 deletions(-) diff --git a/apps/android/app/src/main/java/ai/openclaw/app/SecurePrefs.kt b/apps/android/app/src/main/java/ai/openclaw/app/SecurePrefs.kt index bbc0f628a791..66a63352c523 100644 --- a/apps/android/app/src/main/java/ai/openclaw/app/SecurePrefs.kt +++ b/apps/android/app/src/main/java/ai/openclaw/app/SecurePrefs.kt @@ -393,12 +393,6 @@ class SecurePrefs( return stored?.takeIf { it.isNotEmpty() } } - /** Saves the paired gateway token under the current Android instance id. */ - fun saveGatewayToken(token: String) { - val key = "gateway.token.${_instanceId.value}" - securePrefs.edit { putString(key, token.trim()) } - } - /** Loads the bootstrap token used during gateway setup and device-token handoff. */ fun loadGatewayBootstrapToken(): String? { val key = "gateway.bootstrapToken.${_instanceId.value}" diff --git a/apps/android/app/src/main/java/ai/openclaw/app/SessionKey.kt b/apps/android/app/src/main/java/ai/openclaw/app/SessionKey.kt index 0e6a6ba9a6df..ee94ca4b36d7 100644 --- a/apps/android/app/src/main/java/ai/openclaw/app/SessionKey.kt +++ b/apps/android/app/src/main/java/ai/openclaw/app/SessionKey.kt @@ -6,14 +6,6 @@ internal fun normalizeMainKey(raw: String?): String { return if (!trimmed.isNullOrEmpty()) trimmed else "main" } -/** Accepts only gateway session keys that can represent the main chat stream. */ -internal fun isCanonicalMainSessionKey(raw: String?): Boolean { - val trimmed = raw?.trim().orEmpty() - if (trimmed.isEmpty()) return false - if (trimmed == "global") return true - return trimmed.startsWith("agent:") -} - /** Extracts the agent id from canonical agent-scoped main session keys. */ internal fun resolveAgentIdFromMainSessionKey(raw: String?): String? { val trimmed = raw?.trim().orEmpty() diff --git a/apps/android/app/src/main/java/ai/openclaw/app/gateway/GatewaySession.kt b/apps/android/app/src/main/java/ai/openclaw/app/gateway/GatewaySession.kt index ce89aa80e0c9..91d015506614 100644 --- a/apps/android/app/src/main/java/ai/openclaw/app/gateway/GatewaySession.kt +++ b/apps/android/app/src/main/java/ai/openclaw/app/gateway/GatewaySession.kt @@ -260,24 +260,6 @@ class GatewaySession( currentConnection?.closeQuietly() } - fun currentCanvasHostUrl(): String? = pluginSurfaceUrls["canvas"] - - /** Refreshes the canvas plugin surface URL and caches the normalized Android-reachable URL. */ - suspend fun refreshCanvasHostUrl(timeoutMs: Long = 8_000): String? { - val refreshed = - refreshPluginSurfaceUrl( - method = "node.pluginSurface.refresh", - params = buildJsonObject { put("surface", JsonPrimitive("canvas")) }, - timeoutMs = timeoutMs, - ) - if (!refreshed.isNullOrBlank()) { - pluginSurfaceUrls = pluginSurfaceUrls + ("canvas" to refreshed) - } - return refreshed - } - - fun currentMainSessionKey(): String? = mainSessionKey - /** Sends a best-effort node.event and returns false instead of throwing on failure. */ suspend fun sendNodeEvent( event: String, diff --git a/apps/android/app/src/main/java/ai/openclaw/app/node/CanvasController.kt b/apps/android/app/src/main/java/ai/openclaw/app/node/CanvasController.kt index 35a9bb93033c..0e330aa54aa1 100644 --- a/apps/android/app/src/main/java/ai/openclaw/app/node/CanvasController.kt +++ b/apps/android/app/src/main/java/ai/openclaw/app/node/CanvasController.kt @@ -97,8 +97,6 @@ class CanvasController { fun currentUrl(): String? = url - fun isDefaultCanvas(): Boolean = url == null - fun setDebugStatusEnabled(enabled: Boolean) { debugStatusEnabled = enabled applyDebugStatus() @@ -205,24 +203,6 @@ class CanvasController { } } - suspend fun snapshotPngBase64(maxWidth: Int?): String = - withContext(Dispatchers.Main) { - val wv = webView ?: throw IllegalStateException("no webview") - val bmp = wv.captureBitmap() - try { - val scaled = bmp.scaleForMaxWidth(maxWidth) - try { - val out = ByteArrayOutputStream() - scaled.compress(Bitmap.CompressFormat.PNG, 100, out) - Base64.encodeToString(out.toByteArray(), Base64.NO_WRAP) - } finally { - if (scaled !== bmp) scaled.recycle() - } - } finally { - bmp.recycle() - } - } - /** Captures the WebView as PNG/JPEG base64 with optional width and quality bounds. */ suspend fun snapshotBase64( format: SnapshotFormat, diff --git a/apps/android/app/src/main/java/ai/openclaw/app/ui/OpenClawTheme.kt b/apps/android/app/src/main/java/ai/openclaw/app/ui/OpenClawTheme.kt index af83ff9997d7..b0b18eaecff6 100644 --- a/apps/android/app/src/main/java/ai/openclaw/app/ui/OpenClawTheme.kt +++ b/apps/android/app/src/main/java/ai/openclaw/app/ui/OpenClawTheme.kt @@ -67,9 +67,3 @@ fun overlayContainerColor(): Color { // Light mode keeps overlays away from pure-white glare on the app canvas. return if (isDark) base else base.copy(alpha = 0.88f) } - -/** - * Overlay icon token kept next to overlayContainerColor for callers outside the design package. - */ -@Composable -fun overlayIconColor(): Color = MaterialTheme.colorScheme.onSurfaceVariant diff --git a/apps/android/app/src/main/java/ai/openclaw/app/ui/SettingsSheet.kt b/apps/android/app/src/main/java/ai/openclaw/app/ui/SettingsSheet.kt index 0caba6fbbf02..a62a46b7bcdd 100644 --- a/apps/android/app/src/main/java/ai/openclaw/app/ui/SettingsSheet.kt +++ b/apps/android/app/src/main/java/ai/openclaw/app/ui/SettingsSheet.kt @@ -1253,16 +1253,6 @@ private fun settingsPrimaryButtonColors() = disabledContentColor = Color.White.copy(alpha = 0.9f), ) -/** Destructive button colors for permission and capability settings actions. */ -@Composable -private fun settingsDangerButtonColors() = - ButtonDefaults.buttonColors( - containerColor = mobileDanger, - contentColor = Color.White, - disabledContainerColor = mobileDanger.copy(alpha = 0.45f), - disabledContentColor = Color.White.copy(alpha = 0.9f), - ) - /** Opens this app's Android settings page for permissions that require system UI. */ private fun openAppSettings(context: Context) { val intent =