From c8983459190ca5cb4fb8d0ff461791ab33c2a989 Mon Sep 17 00:00:00 2001 From: tanjianbin <632190820@qq.com> Date: Fri, 24 Apr 2026 19:13:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E6=9C=AA?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84=E5=88=9D=E5=A7=8B=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E5=B9=B6=E7=AE=80=E5=8C=96=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除未使用的 `initialTask` 等成员变量 - 直接从 savedInstanceState 恢复状态并立即处理特殊值 - 简化 `shouldAutoRechargeAfterIdleArrival` 方法,直接使用行为决策 - 移除特殊状态下已跳过的到达播报中的冗余充电调度调用 --- .../lzwcai_terminal_temi/MainActivity.kt | 45 ++++++------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt b/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt index aecb7cb..13ca0ff 100644 --- a/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt +++ b/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt @@ -88,14 +88,6 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG private var lastArrivalLocation: String? = null private var lastArrivalAt: Long = 0L - private var initialTask: String = "" - private var initialReceptionLocation: String = "" - private var initialReceptionText: String = "" - private var initialReceptionDestination: String = "" - private var initialNotificationLocation: String = "" - private var initialNotificationText: String = "" - - private var closeDoorJob: Job? = null private var detectConfirmJob: Job? = null private var idleConfirmJob: Job? = null @@ -141,18 +133,16 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG navCon = NavController(robot) permissionManager = PermissionManager(robot) + val restoredTask = (savedInstanceState?.getString("currentTask", "") ?: "") + .let { if (it == "special") "" else it } + val restoredReceptionLocation = savedInstanceState?.getString("receptionLocation", "") ?: "" + val restoredReceptionText = savedInstanceState?.getString("receptionText", "") ?: "" + val restoredReceptionDestination = savedInstanceState?.getString("receptionDestination", "") ?: "" + val restoredNotificationLocation = savedInstanceState?.getString("notificationLocation", "") ?: "" + val restoredNotificationText = savedInstanceState?.getString("notificationText", "") ?: "" if (savedInstanceState != null) { - initialTask = savedInstanceState.getString("currentTask", "") ?: "" - initialReceptionLocation = savedInstanceState.getString("receptionLocation", "") ?: "" - initialReceptionText = savedInstanceState.getString("receptionText", "") ?: "" - initialReceptionDestination = savedInstanceState.getString("receptionDestination", "") ?: "" - initialNotificationLocation = savedInstanceState.getString("notificationLocation", "") ?: "" - initialNotificationText = savedInstanceState.getString("notificationText", "") ?: "" lastArrivalLocation = savedInstanceState.getString("lastArrivalLocation") } - if (initialTask == "special") { - initialTask = "" - } prefs = getSharedPreferences("app_prefs", Context.MODE_PRIVATE) prefs.registerOnSharedPreferenceChangeListener(this) @@ -230,12 +220,12 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG } ) taskController.restoreState( - initialTask, - initialReceptionLocation, - initialReceptionText, - initialReceptionDestination, - initialNotificationLocation, - initialNotificationText + restoredTask, + restoredReceptionLocation, + restoredReceptionText, + restoredReceptionDestination, + restoredNotificationLocation, + restoredNotificationText ) binding.btnReception.setOnClickListener { @@ -440,9 +430,6 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG val behavior = resolveBehaviorDecision() if (behavior.skipArrivalAnnouncement) { Log.i("MainActivity", "Special state: arrival announcement skipped at $location.") - if (behavior.allowAutoRecharge) { - scheduleAutoRechargeAfterIdleArrival() - } return } val text = "已到达$location" @@ -784,11 +771,7 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG } private fun shouldAutoRechargeAfterIdleArrival(): Boolean { - if (isSpecialStateEnabled()) { - return false - } - val task = taskController.currentTask.trim().lowercase() - return task.isEmpty() || task == "speech" + return resolveBehaviorDecision().allowAutoRecharge } private fun resolveBehaviorDecision(): BehaviorDecision {