bool EnsureListenAnimator();
void ClearAll(void);
void Show(int16_t showView);
+ void UpdateDialogueText(const char *text);
enum : int16_t {
THUNDERBIRD_DIALOGUEVIEW_SPEAKING = 0, // 说话中
ImageAnimatorInfo listenImageInfo[TB_LISTEN_ANIM_FRAMES];
const char **speakPathsArray{nullptr};
const char **listenPathsArray{nullptr};
- void UpdateDialogueText(const char *text);
};
}
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
}
}
}
+ //如果是在对话界面 需要根据对话状态去拿对话数据进行更新
+ 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());
+ }
+ }
+ }
}
}
{
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)
void do_restore_factory_setting(void)
{
- printf("do_restore_factory_setting\n");
OHOS::ThunderBirdModel::GetInstance()->restore_factory_settings();
}
#ifdef __cplusplus