//跳转到故事界面
// 进入哄睡模式时切换为眨眼表情
ThunderBirdModel::GetInstance()->OnEnterLullabyMode();
+ // 进入故事模式时关闭VAD
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入故事模式,关闭VAD");
+ int vad_ret = ln_ws_disable_vad_server();
+ if (vad_ret == 0) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VAD已成功关闭");
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "关闭VAD失败: %d", vad_ret);
+ }
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4);
return;
}
} else {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdReminderView::GetInstance() returned NULL");
}
- return; // 不满足条件,不进入对话模式
+ return true; // 不满足条件,不进入对话模式
}
-
+
ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_GUIDEVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING);
isDialogueing = true;
//未绑定状态,联网隐藏网络断开提醒
//ln_ws_send_random_story_request("随机故事");
break;
case ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3:
+ {
// 进入哄睡模式时切换为眨眼表情
+ ln_ws_audio_init();//功耗优化
ThunderBirdModel::GetInstance()->OnEnterLullabyMode();
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4);
// ln_ws_start_audio_chat(LN_AUDIO_CHAT_CHOOSE_STORY_REQUEST);
- ln_ws_audio_init();//功耗优化
+
+ // 进入故事模式时立即关闭VAD,防止ln_ws_audio_init()自动启用VAD
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入故事模式,关闭VAD");
+ int vad_ret = ln_ws_disable_vad_server();
+ if (vad_ret == 0) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VAD已成功关闭");
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "关闭VAD失败: %d", vad_ret);
+ }
ln_ws_send_random_story_request("随机故事");
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleLullabyViewNavigation: 随机故事");
+ }
break;
case ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4:
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_5);
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_SREACHING);
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_SUCCESS:
- //重新发送连接操作
+ // 前台处理:立即切换UI,不等待耗时操作
ThunderBirdBlueView::GetInstance()->OnConnectFailed();
- // ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST);
+ ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST);
+
+ // 后台处理:异步执行耗时操作(断开连接、刷新列表、发起连接)
+ GraphicService::GetInstance()->PostGraphicEvent([]() {
+ ThunderBirdBlueView *blueView = ThunderBirdBlueView::GetInstance();
+ if (blueView != nullptr) {
+ blueView->OnConnectFailedAsync();
+ }
+ });
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST:
- // ThunderBirdBlueView::GetInstance()->OnKeyUp();// 音量+键:选择上一个设备
+ ThunderBirdBlueView::GetInstance()->OnKeyUp();// 音量+键:选择上一个设备
//重新搜索设备
- ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_SREACHING);
+ // ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_SREACHING);
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_CONNECT_FAILED:
- //重新发送连接操作
+ {
+ // 前台处理:立即切换UI,不等待耗时操作
ThunderBirdBlueView::GetInstance()->OnConnectFailed();
- // ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST);
+ ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST);
+
+ // 后台处理:异步执行耗时操作(断开连接、刷新列表、发起连接)
+ GraphicService::GetInstance()->PostGraphicEvent([]() {
+ ThunderBirdBlueView *blueView = ThunderBirdBlueView::GetInstance();
+ if (blueView != nullptr) {
+ blueView->OnConnectFailedAsync();
+ }
+ });
+ }
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_SUCCESS_NEW:
//解绑成功,返回主界面,提示用户解绑成功
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
break;
+ case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_EXIT_OR_RETRY:
+ //退出配对或重新搜索
+ ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_SREACHING);
+ break;
}
}
else if(keyType == KEY_TYPE_VENDOR_DOWN)
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST:
ThunderBirdBlueView::GetInstance()->OnKeyDown();// 音量-键:选择下一个设备
break;
+ case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_EXIT_OR_RETRY:
+ //退出配对或重新搜索
+ ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST);
+ break;
}
}
else if(keyType == KEY_TYPE_FUNC)
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_SREACHING:
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_SREACHING_FAILED:
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_CONNECT_FAILED:
- case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST:
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_CONNECT_SUCCESS:
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_CONFIRM:
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_FAILED:
+ case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_EXIT_OR_RETRY:
//搜索中页面长按对话按键退出到主页面
ThunderBirdMainView::GetInstance()->ChangeView(
currentView,
THUNDERBIRD_DIALOGUEVIEW,
ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
+ ln_bt_scan_stop();
+ ln_bt_report_earphone_connection_status();
+ break;
+ case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST:
+ ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_EXIT_OR_RETRY);
break;
}
- ln_bt_scan_stop();
- ln_bt_report_earphone_connection_status();
+
}
}
}