Очки: разграничение SttCancel (user/timeout) — выход из режима при тишине 30с, микрофон закрывается при потере фокуса

This commit is contained in:
2026-08-23 21:17:43 +03:00
parent eaca47c443
commit e24caaa684
7 changed files with 129 additions and 17 deletions
@@ -360,13 +360,21 @@ class HostConnection(
}
is SttCancel -> {
// Фразы не было (клик без голоса) или отмена двойным кликом: НЕ выходим
// из режима, а возвращаемся в «слушаю» — оверлей остаётся, микрофон снова
// открыт (TASK-glasses-chat-fix.md касяк №2).
log("stt", "отменено — возврат в «слушаю»")
GlassesApp.instance.thinking.value = false
GlassesApp.instance.mainActivity?.resumeSttListening()
?: log("stt", "mainActivity ещё нет — не могу вернуть микрофон")
if (msg.reason == "timeout") {
// Авто-отмена по тишине 30с: пользователь молчит/ушёл — ВЫХОДИМ из
// режима (микрофон закрыть, оверлей скрыть), как exitAssistantMode.
log("stt", "тишина 30с — выход из режима общения")
GlassesApp.instance.mainActivity?.onSttTimeout()
?: log("stt", "mainActivity ещё нет — не могу выйти из режима")
} else {
// Фразы не было (клик без голоса) или отмена двойным кликом: НЕ выходим
// из режима, а возвращаемся в «слушаю» — оверлей остаётся, микрофон снова
// открыт (TASK-glasses-chat-fix.md касяк №2).
log("stt", "отменено — возврат в «слушаю»")
GlassesApp.instance.thinking.value = false
GlassesApp.instance.mainActivity?.resumeSttListening()
?: log("stt", "mainActivity ещё нет — не могу вернуть микрофон")
}
}
is Shutdown -> {