bool close_battery_flag = false; // 电量过低即将关机标志位
int downloadFileType = -1;
+ bool m_wasInDownloadView = false; // 是否进入过下载界面(OTA视图),用于从下载界面返回时上报
// 故事模式相关标志
bool m_storyModeFinished = false; // 故事模式是否已finished(收到finished=true)
// }
//下载文件被打断的恢复操作
- if(ThunderBirdModel::GetInstance()->GetDownloadFile() != -1)
+ bool wasInDownloadView = (ThunderBirdModel::GetInstance()->GetDownloadFile() != -1);
+ if(wasInDownloadView)
{
ThunderBirdModel::GetInstance()->HandleDownloadFile(ThunderBirdModel::GetInstance()->GetDownloadFile());
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdMainView::OnStart");
+
+ // 从下载界面(OTA视图)返回时,上报蓝牙连接状态
+ ThunderBirdModel* model = ThunderBirdModel::GetInstance();
+ if (model != nullptr && model->m_wasInDownloadView)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdMainView::OnStart: 从下载界面返回,上报蓝牙连接状态");
+ ln_bt_report_earphone_connection_status();
+ model->m_wasInDownloadView = false; // 清除标志位
+ }
View<ThunderBirdPresenter>::OnStart();
GetRootContainer()->SetTouchable(true);
GetRootContainer()->SetDraggable(true);
}
// 如果屏保模式未开启,才调用InvalidateGroup1(false)隐藏iconView
// 如果屏保模式已开启,不应该隐藏iconView,否则会关闭屏保模式
- InvalidateGroup1(false);
+ InvalidateGroup1(false);
+ ln_bt_report_earphone_connection_status();
}
if(showView == THUNDERBIRD_BLUEVIEW )
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleScheduleReminder: in BLUEVIEW, stop scan/connect and switch to reminder");
ln_bt_scan_stop();
ln_bt_disconnect(); // 确保中断连接流程
- ln_bt_report_earphone_connection_status(); // 上报当前连接状态
+ // 上报操作在ChangeView中统一处理
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_TASK_REMINDER);
if (ThunderBirdReminderView::GetInstance()) {
ThunderBirdReminderView::GetInstance()->IsIcon(false);
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
AI_ForceInterrupt();
ln_ws_send_voice_chat_interrupt("下载表情");
+ m_wasInDownloadView = true; // 标记已进入下载界面
NativeAbility::GetInstance().ChangeSlice(VIEW_OTA);
// 根据下载类型进行不同的处理
switch (type) {
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_SUCCESS_NEW:
//解绑成功,返回主界面,提示用户解绑成功
- //上报解绑成功
+ //上报解绑成功(在ChangeView中统一处理)
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
- ln_bt_report_earphone_connection_status();
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_EXIT_OR_RETRY:
//退出配对或重新搜索
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_ENTER:
//配对中,中途退出,返回配对准备中页面
+ //上报操作在ChangeView中统一处理
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
- ln_bt_report_earphone_connection_status();
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_CONNECT_SUCCESS:
//返回设备列表
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_SUCCESS:
//蓝牙已断开,返回搜索界面,提示用户重新搜索
+ //上报操作在ChangeView中统一处理
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
- ln_bt_report_earphone_connection_status();
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_CONFIRM:
//断连询问界面,按下音量-,退到连接成功界面
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_FAILED:
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_EXIT_OR_RETRY:
//搜索中页面长按对话按键退出到主页面
+ ln_bt_scan_stop();
ThunderBirdMainView::GetInstance()->ChangeView(
currentView,
THUNDERBIRD_DIALOGUEVIEW,
ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
- ln_bt_scan_stop();
- ln_bt_report_earphone_connection_status();
+ //上报操作在ChangeView中统一处理
break;
case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST:
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_EXIT_OR_RETRY);