优化ota逻辑 2363/target/2 2365/1 2365/head
authorxue <2144439972@qq.com>
Sun, 21 Sep 2025 16:05:35 +0000 (00:05 +0800)
committerxue <2144439972@qq.com>
Sun, 21 Sep 2025 16:05:35 +0000 (00:05 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdOtaView.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

index 05cada9..257198b 100644 (file)
@@ -573,6 +573,10 @@ namespace OHOS
         {
         ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON); // 关闭屏幕常亮
         }
+        if(prevSubView_  ==  ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATING)//上一个界面是OTA升级界面
+        {
+            videoPlay_->StartVideoPlay();
+        }
         // 保存上一级视图信息
         prevView_ = currentView_;
         prevSubView_ = currentSubView_;
index a3a446e..446fb53 100644 (file)
      {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::UpdateOtaStatus: %d", status);
         m_otaStatus = status;
+        int current_view = ThunderBirdMainView::GetInstance()->GetCurrentView();
         // 更新状态检查
-        if(status == 1)//强制OTA升级
+        if(status == 1)//OTA升级
         {
-            ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW);
+            ThunderBirdMainView::GetInstance()->ChangeView(current_view, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW);
         }
-        else if(status == 0)//可选OTA升级
+        else if(status == 2)//OTA升级失败
         {
-            ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL);
+            ThunderBirdMainView::GetInstance()->ChangeView(current_view, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_FAILED);
         }
+        else if(status == 3)//OTA升级成功
+        {
+            ThunderBirdMainView::GetInstance()->ChangeView(current_view, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_SUCCESS);
+        }
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入OTA界面");
      }
      /*************************获取OTA升级状态*************************/
      int ThunderBirdModel::GetOtaStatus()
index c02e757..837a5c6 100644 (file)
@@ -2,6 +2,7 @@
 #include "thunderbird/include/ThunderBirdModel.h"
 #include "thunderbird/include/ThunderBirdPresenter.h"
 #include "wearable_log.h"
+#include "custom_utils.h"
 
 namespace OHOS
 {
@@ -497,6 +498,10 @@ namespace OHOS
                 ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_OTAVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_FAILED);
                 return;
             }
+            //屏幕常亮
+            ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
+            //暂停视频播放
+            ThunderBirdMainView::GetInstance()->videoPlay_->PauseVideoPlay();
             if (TextLabel)
             {
                 TextLabel->SetPosition(90, 108, 180, 82);
index aab20df..d6b4031 100644 (file)
@@ -29,6 +29,7 @@
 #include "wearable_log.h"
 
  #include "ln_api.h"
+#include "power_display_service.h"
 
 #ifdef CUSTOM_UTILS
 #include "custom_utils.h"
@@ -202,9 +203,19 @@ namespace OHOS
             return true;
         }
         
-        // 短按POWER键(息屏状态下)
-        if (keyState == InputDevice::STATE_PRESS && screenState == 0) {
-            return true;
+        // 短按POWER键处理
+        if (keyState == InputDevice::STATE_PRESS) {
+            if (screenState == 0) {
+                // 息屏状态下短按:亮屏(由系统自动处理)
+                return true;
+            } else if (screenState == 1) {
+                // 亮屏状态下短按:息屏
+                const power_display_svr_api_t *display_api = power_display_svr_get_api();
+                if (display_api && display_api->get_screen_state() == SCREEN_ON) {
+                    display_api->turn_off_screen();
+                }
+                return true;
+            }
         }
         
         return true;
@@ -480,6 +491,10 @@ namespace OHOS
                     ThunderBirdModel::GetInstance()->StopOtaCountdown();//取消倒计时界面整个定时器
                     ThunderBirdModel::GetInstance()->StartOtaCountdown(0);//直接进入更新中,定时器会自己跳转与执行指令
                     break;
+
+                case ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE:
+                ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_OTAVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);
+                break;
                     
                 // VENDOR_DOWN键的特殊处理