From 3891c970ebce6223e87b9f914e91c1ab84097ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E5=8D=9A=E6=96=87?= <1323515022@qq.com> Date: Sat, 31 Oct 2026 15:54:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(android):=20=E7=AD=89=E5=BE=85=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=8F=96=E6=B6=88=E5=85=A5=E5=8F=A3=E8=90=BD=E5=9C=A8?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E6=8C=89=E9=92=AE=E4=B8=8A=EF=BC=88=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=90=8E=E8=A1=A8=E5=8D=95=E8=A2=AB=E9=9A=90=E8=97=8F?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 真机 V-A1b 实测发现:startConnect() 切到远控面板后,表单上的按钮不可见, 「点取消」没有可点的目标。把底部按钮在 connecting 态显示为「取消」并共享 cancelConnect() 一条路径(两个入口一个语义),成功后复位为「断开」。 APK 重装后 proof step 3/4 通过(连接已取消文案 + 3.9s 回表单)。 --- .../main/kotlin/com/verify/remote/MainActivity.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/android-viewer/app/src/main/kotlin/com/verify/remote/MainActivity.kt b/apps/android-viewer/app/src/main/kotlin/com/verify/remote/MainActivity.kt index ac15c7a..5bc958f 100644 --- a/apps/android-viewer/app/src/main/kotlin/com/verify/remote/MainActivity.kt +++ b/apps/android-viewer/app/src/main/kotlin/com/verify/remote/MainActivity.kt @@ -44,6 +44,7 @@ class MainActivity : Activity(), RemoteSurfaceView.Listener { private lateinit var portInput: EditText private lateinit var codeInput: EditText private lateinit var connectButton: Button + private lateinit var disconnectButton: Button private lateinit var connectStatus: TextView @Volatile @@ -207,9 +208,11 @@ class MainActivity : Activity(), RemoteSurfaceView.Listener { text = "键盘" setOnClickListener { showKeyboard() } } - val disconnectButton = Button(this).apply { + disconnectButton = Button(this).apply { text = "断开" - setOnClickListener { disconnect() } + // 连接等待期它显示「取消」并走同一个 cancelConnect():两个按钮的 + // 取消语义必须只有一条路径(V-A1 判据依赖取消后的固定状态)。 + setOnClickListener { if (connecting) cancelConnect() else disconnect() } } val bar = LinearLayout(this).apply { orientation = LinearLayout.HORIZONTAL @@ -458,6 +461,10 @@ class MainActivity : Activity(), RemoteSurfaceView.Listener { connecting = true val gen = ++sessionGeneration connectButton.text = "取消" + // 等待期间界面已切到远控面板,表单上的按钮看不见——收起动作挂在 + // 面板底部按钮上:连接中它是「取消」(disconnect() 已正确作废在途连接), + // 成功后改回「断开」。 + disconnectButton.text = "取消" showRemoteState() statusView.text = "连接 $host:$port …" thread(name = "connect") { @@ -486,6 +493,7 @@ class MainActivity : Activity(), RemoteSurfaceView.Listener { remoteW = w remoteH = ht connectButton.text = "断开" + disconnectButton.text = "断开" // 只有认证成功的会话才值得记住;验证码不落盘(用户裁决) getSharedPreferences(PREFS, Context.MODE_PRIVATE) .edit()