From 3d8fa9e8ea55b576364e9389c2599aa315ed5418 Mon Sep 17 00:00:00 2001 From: Caisking Date: Fri, 19 Sep 2025 17:25:18 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E6=96=87=E6=9C=AC=E6=95=B0?= =?utf8?q?=E6=8D=AE=E6=8E=A5=E6=94=B6=E7=9A=84=E4=B8=9A=E5=8A=A1=E9=80=BB?= =?utf8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../include/ThunderBirdDialogueView.h | 2 +- .../thunderbird/include/ThunderBirdModel.h | 11 +--- .../thunderbird/src/ThunderBirdModel.cpp | 61 +++++-------------- .../thunderbird/src/ThunderBirdPresenter.cpp | 15 +++++ .../leiniao/ln_api_cpp/ln_api_interface.cpp | 7 +-- 5 files changed, 36 insertions(+), 60 deletions(-) diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdDialogueView.h b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdDialogueView.h index 7472f0ab7..c14ad84a7 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdDialogueView.h +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdDialogueView.h @@ -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); }; } diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h index 7c00ae359..f4e007402 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h @@ -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(); diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp index 4a99e4d90..7c15ae84a 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp @@ -542,47 +542,7 @@ 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() @@ -853,25 +813,26 @@ // ==================== 对话文本管理函数 ==================== 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(); } @@ -975,6 +936,12 @@ return qrcodeContent; } + //获取对话状态 + int ThunderBirdModel::GetConversationStatus() + { + return get_start_conversation_flag(); + } + /** 表情配置相关函数 1、表情结构体 @@ -1012,5 +979,7 @@ 3、哄睡模式 4、事项提醒 */ + + } \ No newline at end of file diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp index ac3ab303b..5cebd4c65 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp @@ -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()); + } + } + } } } diff --git a/code/sdk/zhihui/leiniao/ln_api_cpp/ln_api_interface.cpp b/code/sdk/zhihui/leiniao/ln_api_cpp/ln_api_interface.cpp index 364810745..4b97684a3 100644 --- a/code/sdk/zhihui/leiniao/ln_api_cpp/ln_api_interface.cpp +++ b/code/sdk/zhihui/leiniao/ln_api_cpp/ln_api_interface.cpp @@ -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 -- 2.17.1