增加OTA,恢复出厂逻辑 2296/1 2296/head 2297/target/1
authorxue <2144439972@qq.com>
Thu, 18 Sep 2025 07:09:31 +0000 (15:09 +0800)
committerxue <2144439972@qq.com>
Thu, 18 Sep 2025 07:09:31 +0000 (15:09 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdPresenter.h
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/ThunderBirdPresenter.cpp
code/sdk/files/leiniao/fs/user/music/PowerOn.mp3 [new file with mode: 0644]

index 149cd90..7f9e916 100644 (file)
@@ -31,15 +31,18 @@ namespace OHOS
 
         // 开机操作函数
         int StartBootOperation();
-
-        // 新手引导相关函数
-        enum class BindingStatus {
-            BOUND = 0,      // 已绑定
-            NOT_BOUND = 1,  // 未绑定
-            AUTH_FAILURE = 2,  // 认证失败
-            NO_NETWORK = 3  // 没有网络
-            
-        };
+        int ota_update_boot();
+        // 恢复出厂设置相关函数
+        void restore_factory_settings();
+        
+     // 新手引导相关函数
+     enum class BindingStatus {
+        BOUND = 0,      // 已绑定
+        NOT_BOUND = 1,  // 未绑定
+        AUTH_FAILURE = 2,  // 认证失败
+        NO_NETWORK = 3,  // 没有网络
+        
+    };    
         BindingStatus CheckBindingStatus();
 
         // 对话相关函数
index ccc29a9..440ea2a 100644 (file)
@@ -32,15 +32,6 @@ namespace OHOS
         // 发布事件函数
         void PublishEvent(uint16_t topic, uint8_t *data = nullptr, uint32_t size = 0);
 
-        // 按键注册方法
-        // bool RegisterKeyEvents(void);
-        // bool RegisterPowerKeyLongPressEvent(void);
-        // bool RegisterPowerKeyPressEvent(void);
-        // bool RegisterFuncKeyPressEvent(void);
-        // bool RegisterFuncKeyLongPressEvent(void);
-        // bool RegisterVendorUpKeyPressEvent(void);
-        // bool RegisterVendorDownKeyPressEvent(void);
-
     private:
         bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
         bool X_DRAG_FLAG{false};
index 978871f..73352de 100644 (file)
@@ -280,7 +280,18 @@ namespace OHOS
              }
              else if(ThunderBirdModel::GetInstance()->StartBootOperation() == 1)
              {
-                ChangeView(MAXVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);
+                if(ThunderBirdModel::GetInstance()->ota_update_boot() == 1)//强制OTA升级
+                {
+                    ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW);
+                }
+                else if(ThunderBirdModel::GetInstance()->ota_update_boot() == 0)//可选OTA升级
+                {
+                    ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL);
+                }
+                else//其他
+                {
+                    ChangeView(MAXVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);
+                }
              }
 
             ScrollView_->Add(InitBaseData()); // 最上面状态栏
index 3de1071..92ab53e 100644 (file)
              }
              g_otaCountdownValue = 0;
              //自动跳转到开始OTA界面
+             do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_DOWNLOAD, NULL, 0);//升级开始
              ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_OTAVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATING);
              return;
  
  
          /*************************更新角色配置*************************/
          //do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_GET_CHARACTER, nullptr, 0);//获取角色配置
+         return -1;
+     }
          
- 
+     int ThunderBirdModel::ota_update_boot()
+     {
          /*************************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 1;
+          }
+          else if(uapi_ln_ota_get_update_type() == 0)//可选OTA升级
+          {
+              ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL);
+              return 0;
+          }
          return -1;
      }
+
+     // ==================== 恢复出厂设置相关函数 ====================
+     void ThunderBirdModel::restore_factory_settings()
+     {
+         uapi_delete_folder("/user/userdata");
+     }
  
      // ==================== 新手引导相关函数 ====================
      ThunderBirdModel::BindingStatus ThunderBirdModel::CheckBindingStatus()
          // 这里可以添加目录创建逻辑
          
          const char *defaultArgs[6] = {"01", "mp3", "16000", "1", "16", audioPath.c_str()};
-         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::StartRecording: 开始录音,路径: %s", audioPath.c_str());
-         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::StartRecording: 参数 - 格式: %s, 采样率: %s, 声道: %s, 位宽: %s", 
+         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::StartRecording: 开始录音,路径: %s", audioPath.c_str());
+         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::StartRecording: 参数 - 格式: %s, 采样率: %s, 声道: %s, 位宽: %s", 
                        defaultArgs[1], defaultArgs[2], defaultArgs[3], defaultArgs[4]);
          
          int32_t ret = AudioCaptureSample(6, defaultArgs);
index 7a446e7..5eb9df6 100644 (file)
@@ -12,6 +12,7 @@
 #include "thunderbird/include/ThunderBirdDialogueView.h"
 #include "thunderbird/include/ThunderBirdReminderView.h"
 #include "thunderbird/include/ThunderBirdAdjustView.h"
+#include "thunderbird/include/ThunderBirdShutdownView.h"
 #include "AppViewIDs.h"
 #include "NativeAbility.h"
 #include "common/key_code.h"
@@ -24,6 +25,7 @@
 #include "service_id_define.h"
 #include "dock/input_device.h"
 #include "custom_runtime.h"
+ #include "ln_api.h"
 namespace OHOS
 {
     static int i=0;//版本临时变量
@@ -73,58 +75,11 @@ namespace OHOS
         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);
+        // 按键事件日志
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnKeyAct: keyID=%d, keyState=%d, screenState=%d", keyID, keyState, screenState);
         
-        // 按键名称映射
-        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();
         }
 
@@ -132,9 +87,7 @@ namespace OHOS
         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;
         }
 
@@ -143,125 +96,65 @@ 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<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
         {
-            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/Classic/blue.bin");
-        //    }
-        //    else if(i == 2)
-        //    {
-        //     ThunderBirdMainView::GetInstance()->SwitchHair("/user/res/hair/Classic/curly_hair.bin");
-        //    }
-        //    else if(i == 3)
-        //    {
-        //     ThunderBirdMainView::GetInstance()->SwitchHair("/user/res/hair/SidePartingShort/purple.bin");
-        //    }
-        //    else if(i == 4)
-        //    {
-        //     ThunderBirdMainView::GetInstance()->SwitchHair("/user/res/hair/Bangs/gold.bin");
-        //    }
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (POWER PRESS) ===");
-           return true;
-          
+            return true;
         }
         /*************************语音键*************************/
-        if(keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_FUNC) && keyState == 1 && uapi_get_screen_state() == 0)
+        if(keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_FUNC) && keyState == 0 && uapi_get_screen_state() == 0)
         {
-            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, "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, "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) && keyState == 1 && uapi_get_screen_state() == 0)
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_VENDOR_UP) && keyState == 0 && 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;
-            }
 
-            // 音量界面:FUNC 键 -10
+            // 音量界面: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())
                 {
                     ThunderBirdModel::GetInstance()->StartReminderHideTimer(1000);
                     ThunderBirdReminderView::GetInstance()->Show(ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_VOLUME);
                     ThunderBirdReminderView::GetInstance()->AdjustRemindProgress(10);
-                    
                 }       
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_UP - Volume) ===");
                 return true;
             }
             // 引导界面导航
@@ -269,12 +162,10 @@ 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)
@@ -288,17 +179,14 @@ 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;
@@ -306,74 +194,37 @@ namespace OHOS
              // OTA界面导航
              else if(currentView == THUNDERBIRD_OTAVIEW)
              {
-                 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) // 设置夜间更新
+                 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) // 设置夜间更新
+                 else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL
+                    ||  ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_OBVIOUS
+                    ||  ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW) // 确认升级,先判断电量、网络、内存
                  {
-                    // if(uapi_get_battery_level() > 50)//获取电量
-                    // {
-                    //     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE_SUCCESS);
-                    // }
-                    // else
-                    // {
-                    //     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_LOW_BATTERY);
-                    // }
-                    // if(uapi_get_network_state() == 1)//获取网络状态
-                    // {
-                    //     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE_SUCCESS);
-                    // }
-                    // else
-                    // {
-                    //     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NETWORK_ERROR);
-                    // }
-                    // if(uapi_get_memory_state() == 1)//获取内存状态
-                    // {
-                    //     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE_SUCCESS);
-                    // }
-                    // else
-                    // {
-                    //     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_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);
+                    if(0)//获取电量
+                    {
+                        ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_LOW_BATTERY);
+                    }
+                    else if(0)//获取网络状态
+                    {
+                        ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NETWORK_ERROR);
+                    }
+                    else if(0)//获取内存状态
+                    {
+                        ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_MEMORY_ERROR);
+                    }
+                    else
+                    {
+                        ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_COUNTDOWN);
+                    }
+
                  }
-                 else if(currentSubView == 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);
+                     do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_DOWNLOAD, NULL, 0);//开始升级
                  }
                  return true;
              }
@@ -382,27 +233,22 @@ 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);
                 }
@@ -413,7 +259,6 @@ 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) // 事项提醒
@@ -462,16 +307,11 @@ namespace OHOS
         /*************************VENDOR_DOWN键*************************/
         if(keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_VENDOR_DOWN) && keyState == 1 && uapi_get_screen_state() == 0)
         {
-            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;
                 }
             }
@@ -481,57 +321,34 @@ namespace OHOS
                     (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())
                 {
                     ThunderBirdModel::GetInstance()->StartReminderHideTimer(1000);
                     ThunderBirdReminderView::GetInstance()->Show(ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_VOLUME);
                     ThunderBirdReminderView::GetInstance()->AdjustRemindProgress(-10);
-                    
                 }
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (VENDOR_DOWN - Volume) ===");
                 return true;
             }
             if(currentView == THUNDERBIRD_OTAVIEW)
              {
-                 if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL || currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_OBVIOUS 
-                  ) // 可选升级退出进入是否设置夜间更新
+                 if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL 
+                    || currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_OBVIOUS ) // 可选升级退出进入是否设置夜间更新,强制更新退出(直接关机)
                  {
                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE);
                  }
-                 else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE) // 夜间更新退出返回原任务
-                 {
-                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW);
-                 }
-                 else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE) // 设置夜间更新成功
-                 {
-                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE_SUCCESS);
-                 }
-                 else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE_SUCCESS) // 更新倒计时
-                 {
-                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_COUNTDOWN);
-                 }
-                 else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_COUNTDOWN) // 电量不足
-                 {
-                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_LOW_BATTERY);
-                 }
-                 else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_SUCCESS) // 更新成功
-                 {
-                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_FAILED);
-                 }
-                 else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_FAILED) // 更新失败
-                 {
-                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_1);
-                 }
-                 else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATING) // 更新中
+                 else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NIGHT_UPDATE 
+                    || currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_COUNTDOWN
+                    || currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_FAILED
+                    || currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_LOW_BATTERY
+                    || currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NETWORK_ERROR
+                    || currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_MEMORY_ERROR) // 夜间更新退出返回原任务,强制更新退出(直接关机),倒计时界面退出返回原任务,更新失败退出返回原任务,电量不足退出返回原任务,网络异常退出返回原任务,内存不足退出返回原任务
                  {
-                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_SUCCESS);
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);  
                  }
              }
         }
     
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "=== OnKeyAct Event End (No specific handler) ===");
         return true;
     }
 
diff --git a/code/sdk/files/leiniao/fs/user/music/PowerOn.mp3 b/code/sdk/files/leiniao/fs/user/music/PowerOn.mp3
new file mode 100644 (file)
index 0000000..b1488e2
Binary files /dev/null and b/code/sdk/files/leiniao/fs/user/music/PowerOn.mp3 differ