* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:14:43
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2025-03-13 16:02:18
+ * @LastEditTime: 2025-03-19 09:44:14
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceModel.h
*/
#ifndef AI_VOICE_MODEL_H
bool CreateDirectory(const char* path);
+ void SetIsClickable(bool value);
+ bool GetIsClickable(void);
+
+ void SetIsLimitDisplayed(bool value);
+ bool GetIsLimitDisplayed(void);
+
private:
AiVoiceModel();
~AiVoiceModel();
uint8_t AIResponseType;
std::string errnote; //错误信息
int16_t curView{0};
+ bool isClickable{false};
+ bool isLimitDisplayed{false};//AI答案是否显示到极限了
};
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:14:50
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2025-03-14 09:43:46
+ * @LastEditTime: 2025-03-19 11:09:58
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
*/
#include "aivoice/include/AiVoiceModel.h"
{
// 声明定时器变量
static osTimerId_t g_timer = nullptr;
- static constexpr uint16_t THIRTY_TIME = 30;
+ static constexpr uint16_t THIRTY_TIME = 30 / 3;
static int Time = THIRTY_TIME;
static int AiModelConnectTimeout = 5;
bool AiVoiceModel::UpdateAiAnswerStr()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoiceModel::UpdateAiAnswerStr");
+ #if 0
+ AiVoiceView *view_ = AiVoiceView::GetInstance();
+ if(view_!= nullptr )
+ {
+ if(view_->GetAiVoiceScrollView(AIVOICE_RETURN_RESULT_TEXT_VIEWID) && !view_->GetAiVoiceScrollView(AIVOICE_RETURN_RESULT_TEXT_VIEWID)->IsVisible())
+ {
+ return false;
+ }
+ else
+ {
+ if(!GetIsClickable())
+ {
+ SetIsClickable(true);
+ }
+ }
+ }
+ #endif
int index = GetChatContentListCount() - 1;
if (index < 0 || index >= MaxChatContentListCount)
return true;
}
+ void AiVoiceModel::SetIsClickable(bool value)
+ {
+ isClickable = value;
+ }
+
+ bool AiVoiceModel::GetIsClickable(void)
+ {
+ return isClickable;
+ }
+
+ void AiVoiceModel::SetIsLimitDisplayed(bool value)
+ {
+ isLimitDisplayed = value;
+ }
+ bool AiVoiceModel::GetIsLimitDisplayed(void)
+ {
+ return isLimitDisplayed;
+ }
+
/*获取用户问题的字符串*/
std::string AiVoiceModel::GetUserQuestionStr(void)
{
return;
}
}
- aiAnswerStr += str;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "接受字的符串:%s", aiAnswerStr.c_str());
- SendMsgToUIService(UI_UPDATE_AI_ANSWER_STR, 0, nullptr, 0);
+ AiVoiceView *view_ = AiVoiceView::GetInstance();
+ if(view_!= nullptr )
+ {
+ if(view_->GetAiVoiceScrollView(AIVOICE_RETURN_RESULT_TEXT_VIEWID) && view_->GetAiVoiceScrollView(AIVOICE_RETURN_RESULT_TEXT_VIEWID)->IsVisible())
+ {
+ if(!OHOS::AiVoiceModel::GetInstance().GetIsLimitDisplayed()) //如果ai答案没有显示到极限了,就更新ai答案字符串
+ {
+ aiAnswerStr += str;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "接受字的符串:%s", aiAnswerStr.c_str());
+ SendMsgToUIService(UI_UPDATE_AI_ANSWER_STR, 0, nullptr, 0);
+ }
+ }
+ }
}
/*清空上次用户问题和Ai回答字符串*/
}
ChatContentListCount = 0;
entryTextViewState = false;
+ isClickable = false;
+ isLimitDisplayed = false;
ClearQuestionAndAiAnswerStr();
StopListenAndRecordingUserQuestion();
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:11:17
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2025-03-13 11:52:43
+ * @LastEditTime: 2025-03-19 10:24:14
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
*/
#include "AppViewIDs.h"
case AIVOICE_RETURN_RESULT_TEXT_VIEWID:
AiVoiceModel::GetInstance().ClearQuestionAndAiAnswerStr(); // 清空上次用户问题和Ai回答字符串
+ AiVoiceModel::GetInstance().SetIsClickable(false);
+ AiVoiceModel::GetInstance().SetIsLimitDisplayed(false);
if (showView == AIVOICE_LISTENING_VIEWID)
{
model->StartListenAndRecordingUserQuestion();
auto it = viewIdMap.find(viewId);
if (it != viewIdMap.end())
{
+ #if 0
+ if(!model->GetIsClickable())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "当前还不可点击");
+ return true;
+ }
+ #endif
if (it->first == AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID) // 点击继续对话按钮要发取消当前对话指令,避免AI回应中途按继续对话按钮没有取消上一次对话问题
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CancelCurAIChat");
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-29 17:27:25
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-28 15:54:29
+ * @LastEditTime: 2025-03-19 10:12:45
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AivoiceChatContentListItemView.cpp
*/
#include "aivoice/include/AivoiceChatContentListItemView.h"
+#include "aivoice/include/AiVoiceModel.h"
#include "wearable_log.h"
namespace OHOS
}
else
{
- chatContentLabel.SetLineBreakMode(isAiAnswerFlag ? UILabel::LINE_BREAK_ELLIPSIS : UILabel::LINE_BREAK_WRAP);//超过高度在末尾用省略号替换
+ if(!AiVoiceModel::GetInstance().GetIsLimitDisplayed())
+ {
+ AiVoiceModel::GetInstance().SetIsLimitDisplayed(true);
+ chatContentLabel.SetLineBreakMode(isAiAnswerFlag ? UILabel::LINE_BREAK_ELLIPSIS : UILabel::LINE_BREAK_WRAP);//超过高度在末尾用省略号替换
+ }
}
}