Browse Source

fix(agent): 修复电话模式退出时未结束通话的问题

在agent_controller中添加exit_interaction函数调用时的电话模式检查,确保退出交互时同时结束通话

fix(home): 优化设备连接时的电池信息刷新逻辑

1. 设备连接成功后立即刷新电池信息
2. 根据连接状态控制电池信息定时刷新
3. 移除不必要的电池信息日志输出

chore: 回滚版本号至1.0.8+20
newdev_shunjiawei
lxm 1 year ago
parent
commit
49f053ee4c
  1. 6
      lib/modules/agent/controllers/agent_controller.dart
  2. 23
      lib/modules/home/controllers/home_controller.dart
  3. 2
      pubspec.yaml

6
lib/modules/agent/controllers/agent_controller.dart

@ -701,6 +701,12 @@ class AgentController extends GetxController {
final functionName = event.data['name'] ?? ''; final functionName = event.data['name'] ?? '';
final arguments = event.data['arguments'] ?? ''; final arguments = event.data['arguments'] ?? '';
// debugPrint('Fultter 开始调用 mcp: $functionName, $arguments'); // debugPrint('Fultter 开始调用 mcp: $functionName, $arguments');
if (functionName == 'exit_interaction') {
if (isPhoneCallMode.value) {
endPhoneCall(); //退出语音交互,同时退出打电话模式
}
}
break; break;
case AgentServiceEventType.functionCallResult: case AgentServiceEventType.functionCallResult:

23
lib/modules/home/controllers/home_controller.dart

@ -103,6 +103,10 @@ class HomeController extends GetxController {
Future<void> refreshDeviceConnection() async { Future<void> refreshDeviceConnection() async {
await _checkConnectionStatus(); await _checkConnectionStatus();
// 如果设备已连接,立即刷新电池信息
if (_isFullyConnected.value) {
await _refreshBatteryInfo();
}
} }
void rescanDevices() { void rescanDevices() {
@ -137,6 +141,16 @@ class HomeController extends GetxController {
if (!wasConnected && isNowConnected) { if (!wasConnected && isNowConnected) {
await _bleManager.fetchDeviceInfo(); await _bleManager.fetchDeviceInfo();
// 连接成功后立即刷新一次电池信息
Future.delayed(const Duration(milliseconds: 500), () {
_refreshBatteryInfo();
});
}
// 根据连接状态控制定时器
if (isNowConnected) {
_startBatteryRefreshTimer(); // 连接时启动定时器
} else {
_stopBatteryRefreshTimer(); // 断开时停止定时器
} }
} }
@ -146,6 +160,7 @@ class HomeController extends GetxController {
if (_isFullyConnected.value) { if (_isFullyConnected.value) {
_isFullyConnected.value = false; _isFullyConnected.value = false;
_isFullyConnected.refresh(); _isFullyConnected.refresh();
_stopBatteryRefreshTimer(); // 发生错误时停止定时器
update(); update();
} }
} }
@ -298,18 +313,18 @@ class HomeController extends GetxController {
return; return;
} }
Logger.d(_tag, '开始刷新电池信息...'); //Logger.d(_tag, '开始刷新电池信息...');
// 通过BLE管理器获取最新的电池信息 // 通过BLE管理器获取最新的电池信息
final success = await _bleManager.fetchBatteryInfo(); final success = await _bleManager.fetchBatteryInfo();
if (success) { if (success) {
Logger.d(_tag, '电池信息刷新请求发送成功'); //Logger.d(_tag, '电池信息刷新请求发送成功');
} else { } else {
Logger.w(_tag, '电池信息刷新请求发送失败'); //Logger.w(_tag, '电池信息刷新请求发送失败');
} }
} catch (e) { } catch (e) {
Logger.e(_tag, '刷新电池信息时发生错误: $e'); //Logger.e(_tag, '刷新电池信息时发生错误: $e');
} }
} }
} }

2
pubspec.yaml

@ -1,7 +1,7 @@
name: voitrans name: voitrans
description: "Voitrans - AI Voice Assistant." description: "Voitrans - AI Voice Assistant."
publish_to: "none" publish_to: "none"
version: 1.0.9+20 version: 1.0.8+20
environment: environment:
sdk: ">=3.3.0 <4.0.0" sdk: ">=3.3.0 <4.0.0"

Loading…
Cancel
Save