From 3844b46ed91e11144b355a087276ce9c75f70b91 Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Thu, 18 Sep 2025 10:37:47 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E9=9B=B7=E9=B8=9F=E7=BC=96?= =?utf8?q?=E8=AF=91bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../thunderbird/include/ThunderBirdModel.h | 4 +- .../thunderbird/src/ThunderBirdGuideView.cpp | 4 +- .../thunderbird/src/ThunderBirdMainView.cpp | 36 +--- .../thunderbird/src/ThunderBirdModel.cpp | 47 +++-- .../thunderbird/src/ThunderBirdPresenter.cpp | 164 ++++++++++++++++-- 5 files changed, 182 insertions(+), 73 deletions(-) diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h index e526ed297..ad890a6bf 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h @@ -36,7 +36,9 @@ namespace OHOS enum class BindingStatus { BOUND = 0, // 已绑定 NOT_BOUND = 1, // 未绑定 - NO_NETWORK = 2 // 没有网络 + AUTH_FAILURE = 2, // 认证失败 + NO_NETWORK = 3 // 没有网络 + }; BindingStatus CheckBindingStatus(); diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdGuideView.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdGuideView.cpp index 2c6155089..b6fa84362 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdGuideView.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdGuideView.cpp @@ -231,13 +231,13 @@ namespace OHOS } if(RemindIcon) { - RemindIcon->SetPosition(158, 296, 30, 30); + RemindIcon->SetPosition(158, 296, 24, 24); RemindIcon->SetSrc("/user/res/volume_up.bin"); RemindIcon->SetVisible(true); } if (RemindButton) { - RemindButton->SetPosition(116, 288, 148, 40); + RemindButton->SetPosition(106, 288, 148, 40); RemindButton->SetText("按 跳过"); RemindButton->SetLabelPosition(2, 0); RemindButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20); diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp index cfa4cebd9..978871fa1 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp @@ -273,33 +273,15 @@ namespace OHOS ScrollView_->Add(backGroundView); // 默认显示主界面 - ChangeView(MAXVIEW, THUNDERBIRD_GUIDEVIEW, 0); // 文字显示图层 - //绑定设备提示 > 配置更新成功>OTA升级>其他(按触发时间先后提示) - /*************************用户是否绑定*************************/ - // do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_GET_USER_ID, nullptr, 0);//获取用户是否绑定 - // if(uapi_ln_get_user_bind_status() == 0)//未绑定 - // { - // ChangeView(MAXVIEW, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_1); - // } - // if(uapi_ln_get_user_bind_status() == 1)//已绑定 - // { - // //ChangeView(MAXVIEW, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_2);进入对话界面 - // } - - // /*************************更新角色配置*************************/ - // do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_GET_CHARACTER, nullptr, 0);//获取角色配置 - - - // /*************************OTA升级*************************/ - // do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_GET_TASK, nullptr, 0);//获取是否需要OTA升级 - // if(uapi_ln_ota_get_update_type() == 1)//强制OTA升级 - // { - // ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW); - // } - // if(uapi_ln_ota_get_update_type() == 0)//可选OTA升级 - // { - // ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL); - // } + //ChangeView(MAXVIEW, THUNDERBIRD_GUIDEVIEW, 0); // 文字显示图层 + if(ThunderBirdModel::GetInstance()->StartBootOperation() == 0) + { + ChangeView(MAXVIEW, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3); // 文字显示图层 + } + else if(ThunderBirdModel::GetInstance()->StartBootOperation() == 1) + { + ChangeView(MAXVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); + } ScrollView_->Add(InitBaseData()); // 最上面状态栏 diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp index 9a03c358f..fe266f325 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp @@ -89,7 +89,7 @@ std::strftime(buffer, sizeof(buffer), "%H:%M", timeinfo); return std::string(buffer); } -{ + void ThunderBirdModel::timer_callback_proc() { ThunderBirdMainView *view = ThunderBirdMainView::GetInstance(); @@ -183,8 +183,7 @@ g_timer = nullptr; } } -} -{ + /*----------------------提醒界面定时器----------------------------------*/ static osTimerId_t g_reminderHideTimer = nullptr; static void ReminderHideTimerCallbackProc(uint8_t data) @@ -237,10 +236,10 @@ reminder->HideAll(); } } - } - { + + // ---------------------- OTA 倒计时定时器(5 -> 1,每步1秒) ---------------------- static osTimerId_t g_otaCountdownTimer = nullptr; static int g_otaCountdownValue = 0; @@ -319,10 +318,10 @@ } g_otaCountdownValue = 0; } - } + -{ + // ---------------------- 通用计时加一定时器(0 -> targetSeconds,每步1秒) ---------------------- static osTimerId_t g_countUpTimer = nullptr; @@ -396,7 +395,7 @@ { return g_countUpValue; } -} + // ==================== 开机操作函数 ==================== int ThunderBirdModel::StartBootOperation() @@ -405,16 +404,16 @@ //绑定设备提示 > 配置更新成功>OTA升级>其他(按触发时间先后提示) /*************************用户是否绑定*************************/ do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_GET_USER_ID, nullptr, 0);//获取用户是否绑定 - if(uapi_ln_is_device_bound() == 0)//未绑定 + if(uapi_ln_is_device_bound() == 0 || uapi_ln_is_device_bound() == -1)//未绑定 { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::StartBootOperation: 未绑定"); - ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_1); + //ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_1); return 0; } else if(uapi_ln_is_device_bound() == 1)//已绑定 { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::StartBootOperation: 已绑定"); - ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); + //ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); return 1; } @@ -423,18 +422,18 @@ /*************************OTA升级*************************/ - do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_GET_TASK, nullptr, 0);//获取是否需要OTA升级 - if(uapi_ln_ota_get_update_type() == 1)//强制OTA升级 - { - ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW); - return 3; - } - if(uapi_ln_ota_get_update_type() == 0)//可选OTA升级 - { - ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL); - //do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_DOWNLOAD, NULL, 0); - return 5; - } + // do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_GET_TASK, nullptr, 0);//获取是否需要OTA升级 + // if(uapi_ln_ota_get_update_type() == 1)//强制OTA升级 + // { + // ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW); + // return 3; + // } + // if(uapi_ln_ota_get_update_type() == 0)//可选OTA升级 + // { + // ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL); + // //do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_DOWNLOAD, NULL, 0); + // return 5; + // } return -1; } @@ -455,7 +454,7 @@ { return BindingStatus::AUTH_FAILURE; } - return BindingStatus::ERROR; + return BindingStatus::NO_NETWORK; } // ==================== 对话相关函数 ==================== diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp index 2c128a7f2..7a446e7f5 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp @@ -67,12 +67,64 @@ namespace OHOS // 增加按键事件 bool ThunderBirdPresenter::OnKeyAct(UIView &view, const KeyEvent &event) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::OnKeyAct"); uint16_t keyID = event.GetKeyId(); uint16_t keyState = event.GetState(); + int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); + int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView(); + int screenState = uapi_get_screen_state(); + + // 详细的按键事件跟踪日志 + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event Start ==="); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "keyID: %d (0=POWER, 1=FUNC, 2=VENDOR_UP, 3=VENDOR_DOWN)", keyID); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "keyState: %d (0=RELEASE, 1=PRESS, 2=LONG_PRESS)", keyState); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "screenState: %d (0=OFF, 1=ON)", screenState); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "currentView: %d", currentView); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "currentSubView: %d", currentSubView); + + // 按键名称映射 + const char* keyName = "UNKNOWN"; + switch(keyID) { + case static_cast(ZliteKeyCode::ZLITE_KEY_POWER): + keyName = "POWER"; + break; + case static_cast(ZliteKeyCode::ZLITE_KEY_FUNC): + keyName = "FUNC"; + break; + case static_cast(ZliteKeyCode::ZLITE_KEY_VENDOR_UP): + keyName = "VENDOR_UP"; + break; + case static_cast(ZliteKeyCode::ZLITE_KEY_VENDOR_DOWN): + keyName = "VENDOR_DOWN"; + break; + } + + // 按键状态名称映射 + const char* stateName = "UNKNOWN"; + switch(keyState) { + case InputDevice::STATE_RELEASE: + stateName = "RELEASE"; + break; + case InputDevice::STATE_PRESS: + stateName = "PRESS"; + break; + case InputDevice::STATE_LONG_PRESS: + stateName = "LONG_PRESS"; + break; + } + + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Key: %s, State: %s", keyName, stateName); + + /* 检查是否绑定 + 1、未绑定: + 2、如果不在THUNDERBIRD_GUIDEVIEW_3(二维码界面), + 3、除了电源键,点击其他按键都跳转到THUNDERBIRD_GUIDEVIEW_3(二维码界面) + */ + + // 刷新息屏计时:任意按键按下时重置屏幕熄灭倒计时 if (keyState == InputDevice::STATE_PRESS) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Refreshing screen-off timer"); uapi_set_screen_on_api(); } @@ -80,7 +132,9 @@ namespace OHOS if (keyID == static_cast(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == InputDevice::STATE_LONG_PRESS) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "POWER LONG_PRESS: Switching to reboot slice"); NativeAbility::GetInstance().SwitchSlice(VIEW_REBOOT); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (POWER LONG_PRESS) ==="); return true; } @@ -89,15 +143,15 @@ namespace OHOS keyState == InputDevice::STATE_LONG_PRESS && uapi_get_screen_state() == 0) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FUNC LONG_PRESS: Switching to LCD test slice"); NativeAbility::GetInstance().SwitchSlice(VIEW_LCD_TEST); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (FUNC LONG_PRESS) ==="); return true; } /*************************power键*************************/ if (keyID == static_cast(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0) - { - int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); - int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "currentView = %d, currentSubView = %d", currentView, currentSubView); + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "POWER PRESS: Screen is off, currentView = %d, currentSubView = %d", currentView, currentSubView); // i++; // if(i == 1) // { @@ -115,54 +169,90 @@ namespace OHOS // { // ThunderBirdMainView::GetInstance()->SwitchHair("/user/res/hair/Bangs/gold.bin"); // } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (POWER PRESS) ==="); return true; } /*************************语音键*************************/ if(keyID == static_cast(ZliteKeyCode::ZLITE_KEY_FUNC) && keyState == 1 && uapi_get_screen_state() == 0) { - int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); - int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FUNC PRESS: Screen is off, checking binding status"); + + if(ThunderBirdModel::GetInstance()->CheckBindingStatus() == ThunderBirdModel::BindingStatus::NOT_BOUND) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FUNC PRESS: Device not bound, checking current subview"); + if(ThunderBirdMainView::GetInstance()->GetCurrentSubView() != ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FUNC PRESS: Redirecting to QR code view"); + ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (FUNC PRESS - Redirect) ==="); + return true; + } + } if(currentView == THUNDERBIRD_DIALOGUEVIEW && currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::OnKeyAct: 停止录音"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FUNC PRESS: 从聆听界面跳转到说话界面"); ThunderBirdModel::GetInstance()->StopRecording(); - ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); + ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); ThunderBirdModel::GetInstance()->SendRecording(); } else { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::OnKeyAct: 开始录音"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FUNC PRESS: 从当前界面跳转到聆听界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING); ThunderBirdModel::GetInstance()->StartRecording(); } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (FUNC PRESS) ==="); return true; } /*************************VENDOR_UP键*************************/ - if (keyID == static_cast(ZliteKeyCode::ZLITE_KEY_VENDOR_UP) && uapi_get_screen_state() == 0) + if (keyID == static_cast(ZliteKeyCode::ZLITE_KEY_VENDOR_UP) && keyState == 1 && uapi_get_screen_state() == 0) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: Screen is off, checking binding status"); + + if(ThunderBirdModel::GetInstance()->CheckBindingStatus() == ThunderBirdModel::BindingStatus::NOT_BOUND) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: Device not bound, checking current subview"); + if(ThunderBirdMainView::GetInstance()->GetCurrentSubView() != ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: Redirecting to QR code view"); + ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_UP - Redirect) ==="); + return true; + } + } + static bool s_vendorUpPressed = false; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: State machine - s_vendorUpPressed=%d, keyState=%d", s_vendorUpPressed, keyState); + if (keyState == InputDevice::STATE_PRESS) { if (s_vendorUpPressed) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP PRESS: Already pressed, ignoring"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_UP PRESS - Ignored) ==="); return true; } s_vendorUpPressed = true; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP PRESS: First press, processing business logic"); } else if (keyState == InputDevice::STATE_RELEASE) { s_vendorUpPressed = false; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP RELEASE: Resetting pressed state"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_UP RELEASE) ==="); return true; } else { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: Other state, ignoring"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_UP - Other) ==="); return true; } - int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); - int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView(); + // 音量界面:FUNC 键 -10 if (currentView == THUNDERBIRD_DIALOGUEVIEW || (currentView == THUNDERBIRD_LULLABYVIEW && (currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_1 || currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4))) //只有在对话界面还有哄睡界面才触发 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: Volume adjustment in dialogue/lullaby view"); ThunderBirdMainView::GetInstance()->ChangeThunderBirdReminderView(THUNDERBIRD_REMINDERVIEW);//不走ChangeView if (ThunderBirdReminderView::GetInstance()) { @@ -171,6 +261,7 @@ namespace OHOS ThunderBirdReminderView::GetInstance()->AdjustRemindProgress(10); } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_UP - Volume) ==="); return true; } // 引导界面导航 @@ -178,10 +269,12 @@ namespace OHOS { if(currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_1) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从引导界面1跳转到引导界面2"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_2); } else if(currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_2) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从引导界面2跳转到OTA界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL); } // else if(currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3) @@ -195,15 +288,17 @@ namespace OHOS { if(currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING) // 说话中 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从说话界面跳转到聆听界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING); } else if(currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING) // 聆听中 { - + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从聆听界面跳转到状态展示界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW); - } + } else if(currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW) // 状态展示 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从状态展示界面跳转到音量调节界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_VOLUME); } return true; @@ -213,14 +308,17 @@ namespace OHOS { if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL) // 有新功能 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从OTA普通界面跳转到OTA明显界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_OBVIOUS); } else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_OBVIOUS) // 需要立即更新 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从OTA明显界面跳转到立即更新界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW); } else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW) // 设置夜间更新 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从立即更新界面跳转到夜间更新成功界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE_SUCCESS); } @@ -254,22 +352,27 @@ namespace OHOS } else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE_SUCCESS) // 更新倒计时 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从夜间更新成功界面跳转到更新倒计时界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_COUNTDOWN); } else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_COUNTDOWN) // 更新倒计时 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从更新倒计时界面跳转到更新中界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATING); } else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATING) // 更新中 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从更新中界面跳转到更新成功界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_SUCCESS); } else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_SUCCESS) // 更新成功 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从更新成功界面跳转到更新失败界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_FAILED); } else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_FAILED) // 更新失败 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从更新失败界面跳转到哄睡界面1"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_1); } return true; @@ -279,22 +382,27 @@ namespace OHOS { if(currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_1) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从哄睡界面1跳转到哄睡界面2"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_2); } else if(currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_2) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从哄睡界面2跳转到哄睡界面3"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3); } else if(currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从哄睡界面3跳转到哄睡界面4"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4); } else if(currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从哄睡界面4跳转到哄睡界面5"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_5); } else if(currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_5) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从哄睡界面5跳转到说话界面"); // 返回主界面 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); } @@ -305,6 +413,7 @@ namespace OHOS { if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_VOLUME) // 音量调节 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_UP: 从音量调节界面跳转到事项提醒界面"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_TASK_REMINDER); } else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_TASK_REMINDER) // 事项提醒 @@ -353,14 +462,26 @@ namespace OHOS /*************************VENDOR_DOWN键*************************/ if(keyID == static_cast(ZliteKeyCode::ZLITE_KEY_VENDOR_DOWN) && keyState == 1 && uapi_get_screen_state() == 0) { - int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); - int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_DOWN PRESS: Screen is off, checking binding status"); + + if(ThunderBirdModel::GetInstance()->CheckBindingStatus() == ThunderBirdModel::BindingStatus::NOT_BOUND) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_DOWN PRESS: Device not bound, checking current subview"); + if(ThunderBirdMainView::GetInstance()->GetCurrentSubView() != ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_DOWN PRESS: Redirecting to QR code view"); + ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_DOWN PRESS - Redirect) ==="); + return true; + } + } // 音量界面:FUNC 键 -10 if (currentView == THUNDERBIRD_DIALOGUEVIEW || (currentView == THUNDERBIRD_LULLABYVIEW && (currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_1 || currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4))) //只有在对话界面还有哄睡界面才触发 { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_DOWN: Volume adjustment in dialogue/lullaby view"); ThunderBirdMainView::GetInstance()->ChangeThunderBirdReminderView(THUNDERBIRD_REMINDERVIEW);//不走ChangeView if (ThunderBirdReminderView::GetInstance()) { @@ -369,6 +490,7 @@ namespace OHOS ThunderBirdReminderView::GetInstance()->AdjustRemindProgress(-10); } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_DOWN - Volume) ==="); return true; } if(currentView == THUNDERBIRD_OTAVIEW) @@ -409,22 +531,26 @@ namespace OHOS } } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (No specific handler) ==="); return true; } void ThunderBirdPresenter::Notify() { + //如果在二维码界面 判断是否绑定 if(ThunderBirdMainView::GetInstance()!= nullptr) { + int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); + int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView(); //如果在二维码界面 要一直判断绑定状态 绑定成功就返回主界面 - if(ThunderBirdMainView::GetInstance()->GetCurrentView() == THUNDERBIRD_QRCODEVIEW) + if(currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3) { ThunderBirdModel::BindingStatus bindingStatus = ThunderBirdModel::GetInstance()->CheckBindingStatus(); if(bindingStatus == ThunderBirdModel::BindingStatus::BOUND) { //绑定成功 - ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_QRCODEVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); + ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); } } } -- 2.17.1