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 e888420..5616e66 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 @@ -415,7 +415,8 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG taskController.handlePatrolArrival(location) } if (taskController.currentTask == "reception" && - location.equals(taskController.getReceptionLocation(), ignoreCase = true) + robotEventHandler.normalizeLocation(location) == + robotEventHandler.normalizeLocation(taskController.getReceptionLocation()) ) { captureReceptionAnchorYawIfNeeded() taskController.startTaskWaitTimeout() @@ -785,7 +786,9 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG if (taskController.currentTask != "reception") { return } - val atReceptionLocation = lastArrivalLocation?.equals(taskController.getReceptionLocation(), ignoreCase = true) == true + val atReceptionLocation = + robotEventHandler.normalizeLocation(lastArrivalLocation) == + robotEventHandler.normalizeLocation(taskController.getReceptionLocation()) if (!atReceptionLocation) { return } diff --git a/app/src/main/java/com/example/lzwcai_terminal_temi/MqttManager.kt b/app/src/main/java/com/example/lzwcai_terminal_temi/MqttManager.kt index fc6b58f..e62b709 100644 --- a/app/src/main/java/com/example/lzwcai_terminal_temi/MqttManager.kt +++ b/app/src/main/java/com/example/lzwcai_terminal_temi/MqttManager.kt @@ -425,7 +425,7 @@ class MqttManager( } "reception" -> { speak("接到接待任务", "zh") - val location = obj.optString("location", "前台").trim() + val location = "前台" val text = obj.optString("text", "你是我要接待的贵宾吗?").trim() val destination = obj.optString("destination", "会议室").trim() scope.launch(Dispatchers.Main) { diff --git a/app/src/main/java/com/example/lzwcai_terminal_temi/TaskController.kt b/app/src/main/java/com/example/lzwcai_terminal_temi/TaskController.kt index 34eb8dc..688e414 100644 --- a/app/src/main/java/com/example/lzwcai_terminal_temi/TaskController.kt +++ b/app/src/main/java/com/example/lzwcai_terminal_temi/TaskController.kt @@ -15,6 +15,15 @@ class TaskController( private val setEmoji: (AnimatedEmojiView.Expression) -> Unit, private val setReceptionButtonVisible: (Boolean) -> Unit ) { + private fun normalizeLocation(value: String?): String { + return value.orEmpty() + .trim() + .lowercase() + .replace(" ", "") + .replace("_", "") + .replace("-", "") + } + var currentTask: String = "" private set @@ -185,11 +194,11 @@ class TaskController( return true } if (currentTask == "reception") { - val isAtReceptionLocation = getLastArrivalLocation()?.trim() - ?.equals(receptionLocation, ignoreCase = true) == true + val isAtReceptionLocation = + normalizeLocation(getLastArrivalLocation()) == normalizeLocation(receptionLocation) if (!isAtReceptionLocation) { - // Not at reception spot yet, let upper layer continue default behavior. - return false + // Keep default greeting disabled during reception even before arriving at spot. + return true } when (state) { DETECTED -> {