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 {