From 4a9a4cec1739007936d434a6a51180158e25078b Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 24 Jun 2026 02:17:08 +0800
Subject: [PATCH] Fix missing model language switch flow

---
 privatevoice.src/services/engine_service.go |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/privatevoice.src/services/engine_service.go b/privatevoice.src/services/engine_service.go
index d40c951..b6c00b6 100755
--- a/privatevoice.src/services/engine_service.go
+++ b/privatevoice.src/services/engine_service.go
@@ -36,6 +36,10 @@
 	return engine.ModelExists()
 }
 
+func (s *EngineService) HasAnyInstalledModel() bool {
+	return model.HasAnyUsableModel()
+}
+
 func (s *EngineService) GetStatus() map[string]interface{} {
 	s.mu.RLock()
 	defer s.mu.RUnlock()
@@ -159,10 +163,18 @@
 
 func (s *EngineService) SetStatus(status, hardwareInfo, lastError string) {
 	s.mu.Lock()
-	defer s.mu.Unlock()
 	s.status = status
 	s.hardwareInfo = hardwareInfo
 	s.lastError = lastError
+	s.mu.Unlock()
+
+	if s.app != nil {
+		s.app.Event.Emit("engine:status", map[string]interface{}{
+			"status":       status,
+			"hardwareInfo": hardwareInfo,
+			"error":        lastError,
+		})
+	}
 }
 
 // DownloadModel downloads the ASR model with progress events.

--
Gitblit v1.9.3