1. 修复ota任务打断其他任务的Bug 2688/1 2688/head 2689/target/1
authorxue <2144439972@qq.com>
Wed, 5 Nov 2025 10:04:18 +0000 (18:04 +0800)
committerxue <2144439972@qq.com>
Wed, 5 Nov 2025 10:04:18 +0000 (18:04 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp

index 772c93c..773bf27 100644 (file)
             //do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_WS_ENTER_SLEEP, NULL, 0);
             AI_ForceInterrupt();
             ln_ws_send_voice_chat_interrupt("进入OTA");
+            if(bind_status == false)//处于解绑状态
+            return;
             NativeAbility::GetInstance().ChangeSlice(VIEW_OTA);
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入OTA");
         }
                                                       const char* eyesColor, const char* hairStyle, 
                                                       int screenImageAsEmoji)
     {
+        //修复后
+        std::string hairColorStr = hairColor;
+        if (hairColorStr == "warm-orange")
+        {
+            hairColor = "orange";
+        }
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleCharacterConfigChange");
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "  characterId: %s", characterId ? characterId : "null");
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "  characterName: %s", characterName ? characterName : "null");
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "  eyesColor: %s", eyesColor ? eyesColor : "null");
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "  hairStyle: %s", hairStyle ? hairStyle : "null");
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "  screenImageAsEmoji: %d", screenImageAsEmoji);
-        if(hairColor == "warm-orange")
-        {
-            hairColor = "orange";
-        }
         if(eyesShape == last_eyesShape_ && hairColor == last_hairColor_ && eyesColor == last_eyesColor_ && hairStyle == last_hairStyle_ && screenImageAsEmoji == last_screenImageAsEmoji_)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleCharacterConfigChange: 角色配置没有变化,不进行处理");
         
         // 示例:调用表情切换功能
         if (eyesShape && eyesColor) {
-            SwitchExpression(eyesShape, eyesColor);
+            if(ThunderBirdMainView::GetInstance())
+            {
+                SwitchExpression(eyesShape, eyesColor);
+            }
+            
         }
         
         // 切换发型功能
         if (hairStyle && hairColor) {
-            SwitchHair(hairStyle, hairColor);
+            if(ThunderBirdMainView::GetInstance())
+            {
+                SwitchHair(hairStyle, hairColor);
+            }
+           
         }
 
         if(screenImageAsEmoji == 0)
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: 意图识别结果,跳转到2");
                 //看后续是否需要
                 ln_ws_end_audio_chat();//结束对话
+                ln_ws_send_sleep_mode_inquire("哄我睡觉");
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_2);
            }
         } else {
         {
             //获取当前角色配置
             //为默认表情
-            if(eyesColor_.empty() == true || eyesShape_.empty() == true)
+            if((eyesColor_.empty() == true || eyesShape_.empty() == true) || (eyesShape_ == "calm-eyes" && eyesColor_ == "amber"))
             {
                 std::string emotionFileName = MapEmotionToFileName(m_currentExpression.c_str());
                 expressionPath = "/user/res/video/Default/"+ emotionFileName + ".mp4";