增加文本数据接收的业务逻辑
authorCaisking <Casiking@zhihuishixun.com>
Fri, 19 Sep 2025 09:25:18 +0000 (17:25 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Fri, 19 Sep 2025 09:25:18 +0000 (17:25 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdDialogueView.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp
code/sdk/zhihui/leiniao/ln_api_cpp/ln_api_interface.cpp

index 7472f0a..c14ad84 100644 (file)
@@ -128,6 +128,7 @@ namespace OHOS
         bool EnsureListenAnimator();
         void ClearAll(void);
         void Show(int16_t showView);
+        void UpdateDialogueText(const char *text);
 
         enum : int16_t {
             THUNDERBIRD_DIALOGUEVIEW_SPEAKING = 0,     // 说话中
@@ -145,7 +146,6 @@ namespace OHOS
         ImageAnimatorInfo listenImageInfo[TB_LISTEN_ANIM_FRAMES];
         const char **speakPathsArray{nullptr};
         const char **listenPathsArray{nullptr};
-        void UpdateDialogueText(const char *text);
     };
 }
 
index 7c00ae3..f4e0074 100644 (file)
@@ -97,14 +97,9 @@ namespace OHOS
         std::string GetDeviceId();
         bool IsDeviceIdValid();
         bool ValidateIMEIChecksum(const std::string& imei);
-        
-        // 版本管理相关函数
-        std::string GetAppVersion();
-        std::string GetFirmwareVersion();
-        std::string GetBuildVersion();
-        std::string GetGitHash();
-        std::string GetBuildTime();
-        bool IsVersionValid();
+
+        // 对话状态相关函数
+        int GetConversationStatus();
 
     private:
         ThunderBirdModel();
index 4a99e4d..7c15ae8 100644 (file)
          return true; // 模拟成功
      }
  
-     bool ThunderBirdModel::ReceiveAnswer()
-     {
-         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::ReceiveAnswer");
-         
-         // TODO: 实现接收回答逻辑
-         // 1. 监听服务器响应
-         // 2. 解析回答数据
-         // 3. 更新对话状态
-         if(g_isRecording == false && 1/*服务器相应*/)
-         {
-             
-         }
-         return true; // 模拟成功
-     }
- 
-     std::string ThunderBirdModel::GetConversationText()
-     {
-         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::GetConversationText");
-         
-         // TODO: 实现获取对话文本逻辑
-         // 1. 从缓存或存储中获取对话文本
-         // 2. 格式化文本
-         // 3. 返回文本内容
-         
-         return "模拟对话文本"; // 模拟返回
-     }
- 
-    bool ThunderBirdModel::EndConversation()
-    {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::EndConversation");
-        
-        // 清理对话状态
-        ClearTextStr();
-        
-        // TODO: 实现其他结束对话逻辑
-        // 1. 保存对话记录
-        // 2. 释放相关资源
-        // 3. 重置对话状态
-        
-        return true; // 模拟成功
-    }
+
  
      // ==================== 哄睡模式相关函数 ====================
      bool ThunderBirdModel::StartLullabyMode()
      // ==================== 对话文本管理函数 ====================
      std::string ThunderBirdModel::GetTextStr()
      { 
-         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::GetTextStr, length: %zu", m_currentTimeStr.length());
          return m_currentTimeStr;
      }
      
      void ThunderBirdModel::SetTextStr(const char *textId)
      {
          if (textId == nullptr) {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetTextStr: textId is null");
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetTextStr: textId is null");
              return;
          }
+
+         //清除录音内容
+         ClearTextStr();
          
          // 添加文本内容
-         m_currentTimeStr += textId;
-         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetTextStr: added text, current length: %zu", m_currentTimeStr.length());
+         m_currentTimeStr = textId;
+         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetTextStr: added text, current length: %zu", m_currentTimeStr.length());
      }
      
      void ThunderBirdModel::ClearTextStr()
      {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClearTextStr: clearing text, previous length: %zu", m_currentTimeStr.length());
          m_currentTimeStr.clear();
      }
      
         return qrcodeContent;
      }
 
+     //获取对话状态
+     int ThunderBirdModel::GetConversationStatus()
+     {
+        return get_start_conversation_flag();
+     }
+
      /**
         表情配置相关函数
         1、表情结构体
          3、哄睡模式
          4、事项提醒
   */ 
+
+
  }
  
\ No newline at end of file
index ac3ab30..5cebd4c 100644 (file)
@@ -145,6 +145,21 @@ namespace OHOS
                     }
                 }
             }
+            //如果是在对话界面 需要根据对话状态去拿对话数据进行更新
+            if(currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)
+            {
+                //每一个界面都需要判断是否存在
+                if(ThunderBirdDialogueView::GetInstance() != nullptr)
+                {
+                    //判断是否为开始对话 如果是开始对话 则更新对话数据
+                    if(ThunderBirdModel::GetInstance()->GetConversationStatus() == 1){
+                    //更新对话数据
+                    std::string dialogueText = ThunderBirdModel::GetInstance()->GetTextStr();  
+                    //只有一行 是拼接 还是直接覆盖?
+                    ThunderBirdDialogueView::GetInstance()->UpdateDialogueText(dialogueText.c_str());
+                    }
+                }
+            }
         }
     }
 
index 3648107..4b97684 100644 (file)
@@ -14,24 +14,22 @@ void push_text_to_ui(const char *text)
 {
     OHOS::ThunderBirdModel::GetInstance()->SetTextStr(text);
 }
-// 是否开始对话标志
+// 是否开始对话标志 0=否 1=是
 static int g_start_conversation_flag = 0;
 void set_start_conversation_flag(int flag)
 {
-    printf("set_start_conversation_flag: %d\n", flag);
     g_start_conversation_flag = flag;
 }
 
 // 获取是否开始对话标志
 int get_start_conversation_flag(void)
 {
-    printf("get_start_conversation_flag: %d\n", g_start_conversation_flag);
     return g_start_conversation_flag;
 }
 
 void push_ota_status(int status)
 {
-    printf("push_ota_status: %d\n", status);
+
 }
 
 void push_ota_progress(int progress)
@@ -40,7 +38,6 @@ void push_ota_progress(int progress)
 
 void do_restore_factory_setting(void)
 {
-    printf("do_restore_factory_setting\n");
     OHOS::ThunderBirdModel::GetInstance()->restore_factory_settings();
 }
 #ifdef __cplusplus