std::strftime(buffer, sizeof(buffer), "%H:%M", timeinfo);
return std::string(buffer);
}
-{
+
void ThunderBirdModel::timer_callback_proc()
{
ThunderBirdMainView *view = ThunderBirdMainView::GetInstance();
g_timer = nullptr;
}
}
-}
-{
+
/*----------------------提醒界面定时器----------------------------------*/
static osTimerId_t g_reminderHideTimer = nullptr;
static void ReminderHideTimerCallbackProc(uint8_t data)
reminder->HideAll();
}
}
- }
- {
+
+
// ---------------------- OTA 倒计时定时器(5 -> 1,每步1秒) ----------------------
static osTimerId_t g_otaCountdownTimer = nullptr;
static int g_otaCountdownValue = 0;
}
g_otaCountdownValue = 0;
}
- }
+
-{
+
// ---------------------- 通用计时加一定时器(0 -> targetSeconds,每步1秒) ----------------------
static osTimerId_t g_countUpTimer = nullptr;
{
return g_countUpValue;
}
-}
+
// ==================== 开机操作函数 ====================
int ThunderBirdModel::StartBootOperation()
//绑定设备提示 > 配置更新成功>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;
}
/*************************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;
}
{
return BindingStatus::AUTH_FAILURE;
}
- return BindingStatus::ERROR;
+ return BindingStatus::NO_NETWORK;
}
// ==================== 对话相关函数 ====================
// 增加按键事件
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<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER):
+ keyName = "POWER";
+ break;
+ case static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_FUNC):
+ keyName = "FUNC";
+ break;
+ case static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_VENDOR_UP):
+ keyName = "VENDOR_UP";
+ break;
+ case static_cast<uint16_t>(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();
}
if (keyID == static_cast<uint16_t>(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;
}
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<uint16_t>(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)
// {
// {
// 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<uint16_t>(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<uint16_t>(ZliteKeyCode::ZLITE_KEY_VENDOR_UP) && uapi_get_screen_state() == 0)
+ if (keyID == static_cast<uint16_t>(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())
{
ThunderBirdReminderView::GetInstance()->AdjustRemindProgress(10);
}
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_UP - Volume) ===");
return true;
}
// 引导界面导航
{
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)
{
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;
{
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);
}
}
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;
{
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);
}
{
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) // 事项提醒
/*************************VENDOR_DOWN键*************************/
if(keyID == static_cast<uint16_t>(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())
{
ThunderBirdReminderView::GetInstance()->AdjustRemindProgress(-10);
}
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_DOWN - Volume) ===");
return true;
}
if(currentView == THUNDERBIRD_OTAVIEW)
}
}
+ 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);
}
}
}