AI大模型增加标识 2042/1
authorluozheng <1732036298@qq.com>
Mon, 4 Aug 2025 05:56:59 +0000 (13:56 +0800)
committerluozheng <1732036298@qq.com>
Mon, 4 Aug 2025 05:56:59 +0000 (13:56 +0800)
code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AivoiceChatContentListItemView.h
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AivoiceChatContentListItemView.cpp

index 0897ec9..bde48ec 100644 (file)
@@ -29,6 +29,7 @@ namespace OHOS
 
     private:
         UILabel chatContentLabel;
+        UILabel mindLabel;
         UIImageView chatContentImage;
         UIScrollView chatContentScrollView;
         int m_viewHeight;
index 3a3449a..96efd66 100644 (file)
@@ -302,7 +302,7 @@ namespace OHOS
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::ChangeViewOperator");
 
         // 加锁,作用域结束时自动释放锁
-        std::lock_guard<std::mutex> lock(m_mutex);
+        // std::lock_guard<std::mutex> lock(m_mutex);
 
         bool isSameView = (hideView == showView);
         if (isSameView)
index a5b9590..0ec9239 100644 (file)
@@ -23,6 +23,11 @@ namespace OHOS
     static constexpr const int16_t CHATCONTENTLABEL_TEXT_FONT = 26;
     static constexpr const int16_t CHATCONTENTLABEL_LINE_HEIGHT = 30;
 
+    static constexpr const int16_t MINDLABEL_X = 40;
+    static constexpr const int16_t MINDLABEL_Y = 25;
+    static constexpr const int16_t MINDLABEL_TEXT_FONT = 20;
+    static constexpr const int16_t MINDLABEL_LINE_HEIGHT = 26;
+
     static constexpr const int64_t RADIUS = 20;
 
     static constexpr const int16_t QUESTION_CHATCONTENTIMAGE_X = 0;
@@ -54,6 +59,7 @@ namespace OHOS
         SetUpChild();
         Add(&chatContentImage);
         chatContentScrollView.Add(&chatContentLabel);
+        chatContentScrollView.Add(&mindLabel);
         Add(&chatContentScrollView);
     }
 
@@ -61,6 +67,7 @@ namespace OHOS
     {
         Remove(&chatContentImage);
         chatContentScrollView.Remove(&chatContentLabel);
+        chatContentScrollView.Remove(&mindLabel);
         Remove(&chatContentScrollView);
     }
 
@@ -88,12 +95,19 @@ namespace OHOS
         }
         else
         {
-            if(!AiVoiceModel::GetInstance().GetIsLimitDisplayed())
+            if (!AiVoiceModel::GetInstance().GetIsLimitDisplayed())
             {
                 AiVoiceModel::GetInstance().SetIsLimitDisplayed(true);
-                chatContentLabel.SetLineBreakMode(isAiAnswerFlag ? UILabel::LINE_BREAK_ELLIPSIS : UILabel::LINE_BREAK_WRAP);//超过高度在末尾用省略号替换
+                chatContentLabel.SetLineBreakMode(isAiAnswerFlag ? UILabel::LINE_BREAK_ELLIPSIS : UILabel::LINE_BREAK_WRAP); // 超过高度在末尾用省略号替换
             }
         }
+        
+        if(isAiAnswerFlag)
+        {
+            chatContentScrollView.Resize(isAiAnswerFlag ? QUESTION_CHATCONTENTSCROLLVIEW_W : ANSWER_CHATCONTENTSCROLLVIEW_W, GetHeight());
+            mindLabel.SetY(chatContentScrollView.GetY() + chatContentScrollView.GetHeight()- 40);
+            mindLabel.SetVisible(true);
+        }
     }
 
     void AivoiceChatContentListItemView::SetUpChild()
@@ -115,6 +129,17 @@ namespace OHOS
         chatContentLabel.SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
         chatContentLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
         chatContentLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, CHATCONTENTLABEL_TEXT_FONT);
+
+        mindLabel.SetPosition(MINDLABEL_X, MINDLABEL_Y);
+        mindLabel.Resize(0, 26);
+        mindLabel.SetVisible(false);
+        mindLabel.SetText("内容由AI生成,仅供参考");
+        mindLabel.SetStyle(STYLE_TEXT_FONT, MINDLABEL_TEXT_FONT);
+        mindLabel.SetStyle(STYLE_LINE_HEIGHT, MINDLABEL_LINE_HEIGHT);
+        mindLabel.SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+        mindLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+        mindLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, MINDLABEL_TEXT_FONT);
+        mindLabel.SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));
     }
 
 }
\ No newline at end of file