* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 14:26:55
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-03 18:34:22
+ * @LastEditTime: 2024-07-05 20:57:34
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/include/AivoiceChatContentListAdapter.h
*/
#ifndef AIVOICE_CHAT_CONTENT_LIST_ADAPTER_H
private:
std::list<ChatContentItem> listData;
UIView::OnClickListener *itemClickListener{nullptr};
- int16_t itemViewHeight{0};
+ int itemViewHeight{0};
bool aiAnswerFalg{false};
};
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-29 17:26:19
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-02 09:48:43
+ * @LastEditTime: 2024-07-05 17:30:23
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AivoiceChatContentListItemView.h
*/
class AivoiceChatContentListItemView : public UIViewGroup
{
public:
- AivoiceChatContentListItemView(int16_t viewHeight, bool isAiAnswerFalg);
+ AivoiceChatContentListItemView(int viewHeight, bool isAiAnswerFalg);
~AivoiceChatContentListItemView();
void SetItemInfo(const ChatContentItem itemInfo);
void SetUpChild();
+ void RestItemView(int viewHeight,bool isAiAnswerFalg);
+ UILabelExt *GetChatContentLabel();
private:
UILabelExt chatContentLabel;
- int16_t m_viewHeight{250};
+ int m_viewHeight;
bool m_isAiAnswerFalg{false};
};
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:14:50
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-04 18:30:47
+ * @LastEditTime: 2024-07-05 20:34:32
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
*/
#include "aivoice/include/AiVoiceModel.h"
#include "uiservice/include/ui_service.h"
#include <custom_utils.h>
#include <bleEvent.h>
+#include <unistd.h>
namespace OHOS
{
// 声明定时器变量
/*添加聊天内容项到数组*/
bool AiVoiceModel::AddChatContentToItemArray(const ChatContentItem &item)
{
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChatContentListCount = %d", ChatContentListCount);
// 检查 ChatContentListCount 是否超出范围
if (ChatContentListCount >= MaxChatContentListCount)
{
// 如果列表只有一项,直接清空
adapter->GetChatContentItem().clear();
}
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "listSize = %d", listSize);
ChatContentListCount -= (listSize < 2 ? listSize : 2);
}
}
- // 在需要的地方调用该函数
- // 例如:
- // RemoveLastTwoItemsOrClear(p_AivoiceReturnResultTextView);
-
/* 更新用户问题字符串 */
bool AiVoiceModel::UpdateUserQuestionStr()
{
return false;
}
- AivoiceChatContentListAdapter *adapter = p_AivoiceReturnResultTextView->GetAivoiceChatContentListAdapter();
- if (adapter && !adapter->GetChatContentItem().empty())
+ AivoiceChatContentListAdapter *adapter = static_cast<AivoiceChatContentListAdapter *>(p_AivoiceReturnResultTextView->GetAivoiceChatContentListAdapter());
+ if (adapter)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetChatContentListCount() - 1 = %d,%d", GetChatContentListCount() - 1, __LINE__);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetChatContentListCount() - 1 = %d,line =%d", GetChatContentListCount() - 1, __LINE__);
adapter->GetChatContentItem().push_back(chatTtems[GetChatContentListCount() - 1]);
p_AivoiceReturnResultTextView->GetChatContentList()->RefreshList();
}
return false;
}
- AivoiceChatContentListAdapter *adapter = p_AivoiceReturnResultTextView->GetAivoiceChatContentListAdapter();
+ AivoiceChatContentListAdapter *adapter = static_cast<AivoiceChatContentListAdapter *>(p_AivoiceReturnResultTextView->GetAivoiceChatContentListAdapter());
if (adapter != nullptr && !adapter->GetChatContentItem().empty())
{
// 如果最后一条是 AI 回答,则移除
{
adapter->GetChatContentItem().pop_back();
}
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetChatContentListCount() - 1 = %d,line = %d", GetChatContentListCount() - 1, __LINE__);
// 将更新后的 AI 回答内容添加到列表
adapter->GetChatContentItem().push_back(chatTtems[GetChatContentListCount() - 1]);
- p_AivoiceReturnResultTextView->GetChatContentList()->RefreshList();
+ p_AivoiceReturnResultTextView->GetChatContentList()->RefreshList();
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Chat content adapter is nullptr!!");
+ return false;
}
return true;
/*设置用户问题的字符串*/
void AiVoiceModel::SetUserQuestionStr(std::string str)
{
+ if (!entryTextViewState)
+ {
+ SendMsgToUIService(UI_AI_RESPONSE_USERDATA, 0, nullptr, 0);
+ entryTextViewState = true; // 进入返回结果界面的标志 避免重复发消息
+ usleep(50000); // 延时等待创建完成,0.05秒
+ }
/* -------------------------------------------------------------------------- */
userQuestionStr = str;
/* -------------------------------------------------------------------------- */
/*设置Ai回答的字符串*/
void AiVoiceModel::SetAiAnswerStrStr(std::string str)
{
- if (!entryTextViewState)
- {
- SendMsgToUIService(UI_AI_RESPONSE_USERDATA, 0, nullptr, 0);
- entryTextViewState = true; //进入返回结果界面的标志 避免重复发消息
- }
+ // if (!entryTextViewState)
+ // {
+ // SendMsgToUIService(UI_AI_RESPONSE_USERDATA, 0, nullptr, 0);
+ // entryTextViewState = true; //进入返回结果界面的标志 避免重复发消息
+ // }
/* -------------------------------------------------------------------------- */
aiAnswerStr += str;
/* -------------------------------------------------------------------------- */
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-05-07 11:25:58
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-03 18:38:55
+ * @LastEditTime: 2024-07-05 20:27:09
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/AiVoice/src/AiVoiceView.cpp
*/
#include "aivoice/include/AiVoicePresenter.h"
UIScrollView *AiVoiceView::GetAiVoiceScrollView(int16_t index)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoiceView::GetAiVoiceScrollView");
- if (AIVOICE_STARTCHAT_VIEWID <= index < MAX_AIVOICE_VIEWID)
+ if (index >= AIVOICE_STARTCHAT_VIEWID && index < MAX_AIVOICE_VIEWID)
{
return AiVoiceScrollView[index];
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 14:27:05
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-03 15:27:02
+ * @LastEditTime: 2024-07-05 20:58:18
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/AivoiceChatContentListAdapter.cpp
*/
#include "aivoice/include/AivoiceChatContentListAdapter.h"
const char *Text = text.c_str();
aiAnswerFalg = flag;
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Text:%s,aiAnswerFalg:%d", Text, aiAnswerFalg);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Text = %s,aiAnswerFalg = %d\n", Text, aiAnswerFalg);
UILabel label;
label.SetPosition(53, 100);
label.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label.GetHeight:%d,label.GetTextHeight:%d", label.GetHeight(), label.GetTextHeight());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label.GetHeight = %d,label.GetTextHeight = %d\n", label.GetHeight(), label.GetTextHeight());
itemViewHeight = label.GetTextHeight();
}
UIView *AivoiceChatContentListAdapter::GetView(UIView *inView, int16_t index)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AivoiceChatContentListAdapter::GetView,index %d", index);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AivoiceChatContentListAdapter::GetView,index %d", index);
// 1.先检查列表数据是否为空,若为空则返回空指针
if (listData.empty())
{
return nullptr;
}
// 4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
- std::list<ChatContentItem>::iterator it = listData.begin();
+ std::list<ChatContentItem>::iterator it = listData.begin();
for (int i = 0; i < index; i++)
{
it++;
else
{
item = dynamic_cast<AivoiceChatContentListItemView *>(inView);
+ item->RestItemView(itemViewHeight,aiAnswerFalg);
}
item->SetItemInfo(itemData);
return item;
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-29 17:27:25
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-03 18:34:57
+ * @LastEditTime: 2024-07-05 20:38:56
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AivoiceChatContentListItemView.cpp
*/
namespace OHOS
{
- static constexpr int16_t QUESTION_ITEM_VIEW_X = 112;
- static constexpr int16_t ANSWER_ITEM_VIEW_X = 53;
- static constexpr int16_t QUESTION_ITEM_VIEW_Y = 0;
- static constexpr int16_t ANSWER_ITEM_VIEW_Y = 30;
+ static constexpr int16_t ITEM_VIEW_X = 0;
+ static constexpr int16_t ITEM_VIEW_Y = 0;
+ static constexpr int16_t ITEM_VIEW_W = 360;
+ static constexpr int16_t ITEM_VIEW_H = 80;
+ static constexpr int64_t ITEM_VIEW_RADIUS = 20;
- static constexpr int16_t QUESTION_ITEM_VIEW_W = 280;
- static constexpr int16_t ANSWER_ITEM_VIEW_W = 360;
+ static constexpr int64_t QUESTION_ITEM_VIEW_HEIGHT = 75;
+ static constexpr int64_t ANSWER_ITEM_VIEW_HEIGHT = 150;
static constexpr int64_t QUESTION_ITEM_VIEW_COLOR = 0xff4fc34c;
static constexpr int64_t ANSWER_ITEM_VIEW_COLOR = 0xff191919;
- static constexpr int64_t ITEM_VIEW_RADIUS = 20;
-
+ static constexpr int16_t CHATCONTENTLABEL_X = 20;
+ static constexpr int16_t CHATCONTENTLABEL_Y = 25;
+ static constexpr int16_t CHATCONTENTLABEL_W = 360;
+ static int16_t CHATCONTENTLABEL_H = 80;
+ static constexpr int16_t CHATCONTENTLABEL_PADDING_LEFT = 20;
+ static constexpr int16_t CHATCONTENTLABEL_PADDING_RIGHT = 20;
+ static constexpr int16_t CHATCONTENTLABEL_PADDING_TOP = 25;
+ static constexpr int16_t CHATCONTENTLABEL_PADDING_BOTTOM = 25;
static constexpr int16_t CHATCONTENTLABEL_TEXT_FONT = 26;
static constexpr int16_t CHATCONTENTLABEL_LINE_HEIGHT = 30;
static constexpr int16_t CHATCONTENTLABEL_ROLLSPEED = 40;
- static constexpr int16_t NUM_2 = 2;
- AivoiceChatContentListItemView::AivoiceChatContentListItemView(int16_t viewHeight, bool isAiAnswerFalg)
+ AivoiceChatContentListItemView::AivoiceChatContentListItemView(int viewHeight, bool isAiAnswerFalg)
{
m_viewHeight = viewHeight;
m_isAiAnswerFalg = isAiAnswerFalg;
- SetPosition(0, 0);
- Resize(ANSWER_ITEM_VIEW_W, m_viewHeight + 50);
+ SetPosition(ITEM_VIEW_X, ITEM_VIEW_Y);
+ Resize(ITEM_VIEW_W, viewHeight + QUESTION_ITEM_VIEW_HEIGHT);
SetStyle(STYLE_BACKGROUND_COLOR, m_isAiAnswerFalg ? ANSWER_ITEM_VIEW_COLOR : QUESTION_ITEM_VIEW_COLOR);
SetStyle(STYLE_BACKGROUND_OPA, 0xff);
SetStyle(STYLE_BORDER_RADIUS, ITEM_VIEW_RADIUS);
void AivoiceChatContentListItemView::SetItemInfo(const ChatContentItem itemInfo)
{
chatContentLabel.SetText(itemInfo.text.c_str());
- Resize(ANSWER_ITEM_VIEW_W, m_viewHeight + 50);
+ }
+
+ void AivoiceChatContentListItemView::RestItemView(int viewHeight, bool isAiAnswerFalg)
+ {
+ Resize(ITEM_VIEW_W, isAiAnswerFalg ? viewHeight + ANSWER_ITEM_VIEW_HEIGHT : viewHeight + QUESTION_ITEM_VIEW_HEIGHT);
+ SetStyle(STYLE_BACKGROUND_COLOR, isAiAnswerFalg ? ANSWER_ITEM_VIEW_COLOR : QUESTION_ITEM_VIEW_COLOR);
chatContentLabel.Resize((GetWidth() - chatContentLabel.GetX() * 2), (GetHeight() - chatContentLabel.GetY() * 2));
+ chatContentLabel.SetTextColor(isAiAnswerFalg ? Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff) : Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xcc));
+ Invalidate();
}
void AivoiceChatContentListItemView::SetUpChild()
{
- chatContentLabel.SetPosition(0, 0);
+ chatContentLabel.SetPosition(CHATCONTENTLABEL_X, CHATCONTENTLABEL_Y);
chatContentLabel.Resize((GetWidth() - chatContentLabel.GetX() * 2), (GetHeight() - chatContentLabel.GetY() * 2));
+ // chatContentLabel.SetStyle(STYLE_PADDING_LEFT, CHATCONTENTLABEL_PADDING_LEFT);
+ // chatContentLabel.SetStyle(STYLE_PADDING_RIGHT, CHATCONTENTLABEL_PADDING_RIGHT);
+ // chatContentLabel.SetStyle(STYLE_PADDING_TOP, CHATCONTENTLABEL_PADDING_TOP);
+ // chatContentLabel.SetStyle(STYLE_PADDING_BOTTOM, CHATCONTENTLABEL_PADDING_BOTTOM);
+ chatContentLabel.SetStyle(STYLE_BORDER_RADIUS, ITEM_VIEW_RADIUS);
chatContentLabel.SetStyle(STYLE_TEXT_FONT, CHATCONTENTLABEL_TEXT_FONT);
chatContentLabel.SetStyle(STYLE_LINE_HEIGHT, CHATCONTENTLABEL_LINE_HEIGHT);
chatContentLabel.SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
chatContentLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
chatContentLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, CHATCONTENTLABEL_TEXT_FONT);
- chatContentLabel.SetTextColor(m_isAiAnswerFalg ? Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff) : Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xcc));
+ }
+
+ UILabelExt *AivoiceChatContentListItemView::GetChatContentLabel()
+ {
+ return &chatContentLabel;
}
}
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-05-07 11:25:58
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-03 15:17:56
+ * @LastEditTime: 2024-07-05 20:24:47
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/AiVoice/src/AivoiceReturnResultTextView.cpp
*/
#include "aivoice/include/AiVoicePresenter.h"
/* -------------------------------------------------------------------------- */
static constexpr const int16_t CHATCONTENT_LIST_X = 53;
- static constexpr const int16_t CHATCONTENT_LIST_Y = 120;
+ static constexpr const int16_t CHATCONTENT_LIST_Y = 100;
static constexpr const int16_t CHATCONTENT_LIST_W = 360;
static constexpr const int16_t CHATCONTENT_LIST_H = 200;
- static constexpr const int16_t REBOUNDSIZE = 35;
+ static constexpr const int16_t REBOUNDSIZE = 30;
static constexpr const int16_t CHATCONTENT_SCROLLBLANKSIZE = 35;
static constexpr const int16_t MAX_SCR_DIS = 1000;
static constexpr const int16_t SNUM_2 = 2;
/* -------------------------------------------------------------------------- */
static constexpr const int16_t RETURN_BUTTON_X = 73;
- static constexpr const int16_t RETURN_BUTTON_Y = CHATCONTENT_LIST_Y + CHATCONTENT_LIST_H + 20;
+ static constexpr const int16_t RETURN_BUTTON_Y = CHATCONTENT_LIST_Y + CHATCONTENT_LIST_H + 10;
static constexpr const int16_t RETURN_BUTTON_W = 100;
static constexpr const int16_t RETURN_BUTTON_H = 100;
static constexpr const char *RETURN_BUTTON_PATH = "/user/res/AIVoice/AI_Union.bin";
scrollView->SetPosition(0, 0, 466, 466);
scrollView->SetTouchable(true);
scrollView->SetDraggable(true);
- scrollView->SetReboundSize(40);
- scrollView->SetScrollBlankSize(70);
- scrollView->SetThrowDrag(true);
- scrollView->SetMaxScrollDistance(1000);
scrollView->SetDirection(UIScrollView::VERTICAL);
- scrollView->SetRotateFactor(2);
- scrollView->RequestFocus();
return true;
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AivoiceReturnResultTextView::CreateAivoiceReturnResultTextLabel");
LabelConfig labelconfig = {
.left = 83,
- .top = 52,
+ .top = 50,
.width = 300,
.height = 35,
.fontSize = 30,
chatContentListAdapter = new AivoiceChatContentListAdapter();
if (chatContentListAdapter == nullptr)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AivoiceReturnResultTextView::chatContentListAdapter is nullptr");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AivoiceReturnResultTextView::chatContentListAdapter is nullptr");
return false;
}
UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(AiVoicePresenter::GetInstance());
chatContentList->SetThrowDrag(true);
chatContentList->SetReboundSize(REBOUNDSIZE);
chatContentList->SetMaxScrollDistance(MAX_SCR_DIS);
+ chatContentList->SetSwipeACCLevel(800); // 800: compensation distance
+ chatContentList->SetDragACCLevel(5); // 5: drag acceleration
+ chatContentList->SetRotateFactor(2);
+ chatContentList->RequestFocus();
chatContentList->SetIntercept(true);
+ chatContentList->SetAdapter(chatContentListAdapter);
+ chatContentList->RefreshList();
/* -------------------------------------------------------------------------- */
- AiVoiceModel::GetInstance().InitchatContentItems();
+ // AiVoiceModel::GetInstance().InitchatContentItems();
/* -------------------------------------------------------------------------- */
return true;
}
#ifdef SUPPORT_ALIPAY_SEC
{VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_DEFAULT_IMG, "支付宝", STR_ALIPAY, nullptr},
#endif
- {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计时器", STR_TIMER, nullptr},
- {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_DEFAULT_IMG, "闹钟", STR_ALARM, nullptr},
- {VIEW_MAIN_STOPWATCH, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "秒表", STR_STOPWATCH, nullptr},
- {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "查找手机", STR_FIND_PHONE, nullptr},
- {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr},
- {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "声音", STR_SOUND, nullptr},
- {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "蓝牙", STR_BLUETOOTH, nullptr},
- {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG, "勿扰模式", STR_DO_NOT_DISTURB, nullptr},
- {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr},
- {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "省电模式", STR_POWER_SAVE_MODE, nullptr},
- {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_DEFAULT_IMG, "手电筒", STR_FLASHLIGHT, nullptr},
- {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr},
- //{VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"AI Voice", STR_AI_VOICE, nullptr},
+ {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_DEFAULT_IMG,"计时器", STR_TIMER, nullptr},
+ {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_ALARM_IMAGE,PNG_APPLIST_DEFAULT_IMG,"闹钟", STR_ALARM, nullptr},
+ {VIEW_MAIN_STOPWATCH, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_STOPWATCH_IMAGE,PNG_APPLIST_DEFAULT_IMG, "秒表", STR_STOPWATCH, nullptr},
+ {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"查找手机", STR_FIND_PHONE, nullptr},
+ {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_DEFAULT_IMG,"亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr},
+ {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"声音", STR_SOUND, nullptr},
+ {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_DEFAULT_IMG,"蓝牙", STR_BLUETOOTH, nullptr},
+ {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG,"勿扰模式", STR_DO_NOT_DISTURB, nullptr},
+ {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"消息通知", STR_MESSAGE_NOTIFICATION, nullptr},
+ {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"省电模式", STR_POWER_SAVE_MODE, nullptr},
+ {VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"AI Voice", STR_AI_VOICE, nullptr},
+ {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_DEFAULT_IMG,"手电筒", STR_FLASHLIGHT, nullptr},
+ {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG,"设置", STR_SETTINGS, nullptr},
#if 0
/*屏蔽Slice*/
return false;\r
}\r
}\r
+#define SEND_AIVOICE_SPEED 10\r
//APP获取录音文件,录音文件上传\r
static void GetAiRecordCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
{\r
\r
send_big_data(1,data,read_size,file_size,pack_id,pack,0x34,1);\r
pack_id++;\r
- msleep(40);\r
+ msleep(SEND_AIVOICE_SPEED);\r
\r
} while (read_size==num);\r
free(data);\r