refactor: 移除未使用的初始状态变量并简化恢复逻辑

- 删除未使用的 `initialTask` 等成员变量
- 直接从 savedInstanceState 恢复状态并立即处理特殊值
- 简化 `shouldAutoRechargeAfterIdleArrival` 方法,直接使用行为决策
- 移除特殊状态下已跳过的到达播报中的冗余充电调度调用
This commit is contained in:
2026-04-24 19:13:55 +08:00
parent fb9dba913d
commit c898345919

View File

@@ -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 {