Merge #592 into sdk602patch0626 from refs/changes/592/head 594/target/1
author罗正 <1732036298@qq.com>
Fri, 26 Jul 2024 10:11:09 +0000 (10:11 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Fri, 26 Jul 2024 10:11:09 +0000 (10:11 +0000)
Code review from 罗正

* refs/changes/592/head: (30 commits squashed)

  - 修改恢复出厂设置适配多国语言

  - 1.优化设置视图:添加了表冠控制但效果不佳
    2.滑动关机和重启视图添加按键注册功能
    3.现在设置视图进入关机和重启为“滑动关机重启Slice”

  - 优化屏幕与亮度Slice:
    1.添加了scrollview的表冠控制,
    2.标签断行模式为LINE_BREAK_OSCILLATION改为LINE_BREAK_OSCILLATION
    3.亮屏时长视图实现点击按钮该变亮屏时长单选按钮选中状态

  - 解决手表解绑后恢复出厂设置,如果手机是直接与手表配对成功未选择语言,进入主界面后发现手表缺少字体问题。
    1.如果手机与手表先绑定成功,未选择语言,需选择语言才进入主界面。
    2.如果已选择语言,这时手机与手表绑定成功将自动进入主界面。

  - 传统蓝牙Slice优化修改

  -  喝水提醒尾部括号字符移除(原因:特殊字符不显示故删除)

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 设置视图优化表冠控制

  - 解决天气界面没有时间显示的bug,并优化时间刷新
    1.目前主界面天气刷新:如果在天气卡片,天气数据有效,就刷新时间
    2.如果是Slice天气:滑到第一个界面,时间就会更新

  - 解决左滑进入指南针卡片,手持手表,左上角度数被遮挡bug

  - 解决左滑进入指南针卡片,与预览图不一致问题q

  - 解决手表第一次启动:如果选择完语言后重启未配对会直接进入到主界面bug

  - 通过下拉,刷新蓝牙连接状态,解决手机关闭蓝牙后手机还显示已连接问题需要等待一会才会显示断开连接

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 注释KeyInputListener中power键长按进入开关机界面(该界面已经弃用)

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - QRcode界面取消设置常亮屏

  - 声音与震动Slice优化:
    1.解决如果是点击设置音量退出Slice未将音量值保存的问题
    2.优化了如果是拖拽设置致使多次调用OnChange,实际上我们只要我们手指离开屏幕最后设置的值。

  - 运动识别优化修改

  - 增加蓝牙耳机连接状态显示

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 显示方式界面优化:适配多国语言和表冠

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 系统界面优化修改

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - ai语音界面多国语言文字增加

  - 解决音乐播放完死机问题

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 修改applistAi全家桶图片图片

Signed-off-by: 罗正 <1732036298@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/592
18 files changed:
code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_en.txt
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_zh.txt
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_en.xml
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_zh.xml
code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang
code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersModel.cpp
code/sdk/application/wearable/fd230app/nativeui/system/include/SystemPresenter.h
code/sdk/application/wearable/fd230app/nativeui/system/include/SystemView.h
code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/applist_icon/aivoice.bin
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang

index 9c6e32b..0d3352b 100644 (file)
@@ -487,7 +487,22 @@ enum UIResourceTextId : uint16_t {
     STR_AIMODES_CHATGPT = 474,\r
     STR_SLIDE_TO_SHUTDOWN = 475,\r
     STR_SLIDE_TO_REBOOT = 476,\r
-    STR_MAX_ID = 477,\r
+    STR_AI_FAMILY_MEALS = 477,\r
+    STR_CHAT = 478,\r
+    STR_PCY4GC_OR_AS = 479,\r
+    STR_API_KEYS = 480,\r
+    STR_PGTTAF = 481,\r
+    STR_DAFBS = 482,\r
+    STR_OPENAI_API_KEYS = 483,\r
+    STR_KHBB = 484,\r
+    STR_GTAS = 485,\r
+    STR_DYWTDAK = 486,\r
+    STR_CONNECTING = 487,\r
+    STR_CONNECTION_FAIL = 488,\r
+    STR_PTALORTM = 489,\r
+    STR_MOTION_DETECTION_NOTE = 490,\r
+    STR_PE4GC = 491,\r
+    STR_MAX_ID = 492,\r
 }; // UIResourceTextId\r
 \r
 enum FontLanguageId : uint8_t {\r
index 03426d4..b90f821 100644 (file)
 namespace OHOS
 {
     /**- APPLSIT
+     * - 手机
      * - 心率
      * - 血氧
      * - 训练
      * - 训练记录
-     * - 指南针
-     * - 电话
-     * - 常用联系人
-     * - 天气
      * - 活动
-     * - 更换表盘
-     * - 显示方式
-     * - 卡片管理
-     * - 音乐
-     * - 睡眠
+     * - 文心一言
+     * - 豆包
+     * - KIMI
+     * - ChatGPT
+     * - 支付宝
+     * - 消息通知
+     * - 指南针
      * - 录音
+     * - 手电筒
+     * - 天气
+     * - 秒表
+     * - 计时器
      * - 呼吸训练
      * - 遥控拍照
-     * - 语言助手
-     * - 支付宝
-     * - 计时器
      * - 闹钟
-     * - 秒表
-     * - 计算器
-     * - 查找手机
-     * - 亮度调节
      * - 声音
-     * - 蓝牙
+     * - 查找手机
+     * - 勿扰模式
+     * - 卡片管理
      * - 勿扰模式
-     * - 消息通知
      * - 省电模式
-     * - AIVoice
-     * - 手电筒
      * - 设置
      */
     const AppItem g_nativeAppList[] = {
-        {VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_DEFAULT_IMG, "血氧", STR_BLOOD_OXYGEN, nullptr},
+        {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "手机", STR_PHONE, nullptr},
         {VIEW_HEART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "心率", STR_HEART_RATE, nullptr},
+        {VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_DEFAULT_IMG, "血氧", STR_BLOOD_OXYGEN, nullptr},
         {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "训练", STR_TRAINING, nullptr},
         {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "训练记录", STR_TRAINING_RECORD, nullptr},
-        {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "指南针", STR_COMPASS, nullptr},
-        {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "电话", STR_PHONE, nullptr},
-        {VIEW_PHONEDIR, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_DEFAULT_IMG, "常用联系人", STR_FAVORITE_CONTACTS, nullptr},
-        {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "天气", STR_WEATHER, nullptr},
         {VIEW_GOAL, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "活动", STR_ACTIVITY, nullptr},
-        {VIEW_SET_DIAL_STYLE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "更换表盘", STR_WATCH_FACE, nullptr},
-        {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "显示方式", STR_DISPLAY_MODE, nullptr},
-        {VIEW_ADD_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_DEFAULT_IMG, "卡片管理", STR_CARD_MANAGEMENT, nullptr},
-        {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_DEFAULT_IMG, "睡眠", STR_SLEEP, nullptr},
-        {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "录音", STR_RECORD, nullptr},
-        {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "呼吸训练", STR_BREATH_TRAINING, nullptr},
-        {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "遥控拍照", STR_REMOTE_SHOOTING, nullptr},
+        {VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "AI全家桶", STR_AI_FAMILY_MEALS, nullptr},
 #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_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},
+        {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr},
+        {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "指南针", STR_COMPASS, nullptr},
+        {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "录音", STR_RECORD, nullptr},
+        {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_DEFAULT_IMG, "手电筒", STR_FLASHLIGHT, nullptr},
+        {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "天气", STR_WEATHER, nullptr},
+        {VIEW_MAIN_STOPWATCH, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "秒表", STR_STOPWATCH, nullptr},
+        {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计时器", STR_TIMER, nullptr},
+        {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "呼吸训练", STR_BREATH_TRAINING, nullptr},
+        {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "遥控拍照", STR_REMOTE_SHOOTING, nullptr},
+        {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_DEFAULT_IMG, "闹钟", STR_ALARM, nullptr},
+        {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "声音", STR_SOUND, nullptr},
+        {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "查找手机", STR_FIND_PHONE, nullptr},
+        {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG, "勿扰模式", STR_DO_NOT_DISTURB, nullptr},
+        {VIEW_ADD_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_DEFAULT_IMG, "卡片管理", STR_CARD_MANAGEMENT, nullptr},
+        {VIEW_SET_DIAL_STYLE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "更换表盘", STR_WATCH_FACE, nullptr},
+        {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "省电模式", STR_POWER_SAVE_MODE, nullptr},
+        {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_DEFAULT_IMG, "睡眠", STR_SLEEP, nullptr},
+        {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr},
+
+        // {VIEW_PHONEDIR, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_DEFAULT_IMG, "常用联系人", STR_FAVORITE_CONTACTS, nullptr},
+        // {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "显示方式", STR_DISPLAY_MODE, nullptr},
+        // {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr},
+        // {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "蓝牙", STR_BLUETOOTH, nullptr},
 
 #if 0
 /*屏蔽Slice*/
index baca8ed..9a4cc12 100644 (file)
@@ -471,7 +471,22 @@ STR_PLEASE_RESTART_CHAT$Please restart the conversation
 STR_CONTINUE_CHAT$Continue the conversation\r
 STR_AIMODELS_DOUBAO$Cici\r
 STR_AIMODES_WENXINYIYAN$ERNIE Bot\r
-STR_AIMODES_KIMI$Kimi\r
+STR_AIMODES_KIMI$KIMI\r
 STR_AIMODES_CHATGPT$ChatGPT\r
-STR_SLIDE_TO_SHUTDOWN$Slide to shutdown\r
-STR_SLIDE_TO_REBOOT$Slide to reboot
\ No newline at end of file
+STR_SLIDE_TO_SHUTDOWN$Slide to shutdown >>\r
+STR_SLIDE_TO_REBOOT$Slide to reboot >>\r
+STR_AI_FAMILY_MEALS$AI Family Meals\r
+STR_CHAT$Chat\r
+STR_PCY4GC_OR_AS$Please check your 4G connection or APP Settings\r
+STR_API_KEYS$API keys\r
+STR_PGTTAF$Please go to the APP first\r
+STR_DAFBS$Device" - "AI Family Bucket" setting\r
+STR_OPENAI_API_KEYS$OpenAI API keys\r
+STR_KHBB$API keys have been bound\r
+STR_GTAS$Please go to APP Settings\r
+STR_DYWTDAK$Do you want to delete API keys\r
+STR_CONNECTING$Connecting\r
+STR_CONNECTION_FAIL$Connection fail\r
+STR_PTALORTM$Please try again later or replace the model\r
+STR_MOTION_DETECTION_NOTE$It seems that you are performing XX movement, whether to start recording\r
+STR_PE4GC$Please enable 4G capability
\ No newline at end of file
index 4590219..cb9f616 100644 (file)
@@ -471,7 +471,22 @@ STR_PLEASE_RESTART_CHAT$请重新开始对话
 STR_CONTINUE_CHAT$继续对话\r
 STR_AIMODELS_DOUBAO$豆包\r
 STR_AIMODES_WENXINYIYAN$文心一言\r
-STR_AIMODES_KIMI$Kimi\r
+STR_AIMODES_KIMI$KIMI\r
 STR_AIMODES_CHATGPT$ChatGPT\r
 STR_SLIDE_TO_SHUTDOWN$滑动关机 >>\r
-STR_SLIDE_TO_REBOOT$滑动重启 >>
\ No newline at end of file
+STR_SLIDE_TO_REBOOT$滑动重启 >>\r
+STR_AI_FAMILY_MEALS$AI 全家桶\r
+STR_CHAT$对话\r
+STR_PCY4GC_OR_AS$请检查4G连接或APP设置\r
+STR_API_KEYS$API keys\r
+STR_PGTTAF$请先前往APP\r
+STR_DAFBS$“设备”-“AI全家桶”设置\r
+STR_OPENAI_API_KEYS$OpenAI API keys\r
+STR_KHBB$已绑定API keys\r
+STR_GTAS$更换请前往APP设置\r
+STR_DYWTDAK$是否确认删除API keys\r
+STR_CONNECTING$正在连接\r
+STR_CONNECTION_FAIL$连接失败\r
+STR_PTALORTM$请稍后再重试或更换模型\r
+STR_MOTION_DETECTION_NOTE$检测到您好像在进行XX运动,是否开始记录\r
+STR_PE4GC$请开启4G能力
\ No newline at end of file
index 974a1d2..fdd32b3 100644 (file)
        <lanstr id="STR_CONTINUE_CHAT" value="Continue the conversation"/>
        <lanstr id="STR_AIMODELS_DOUBAO" value="Cici"/>
        <lanstr id="STR_AIMODES_WENXINYIYAN" value="ERNIE Bot"/>
-       <lanstr id="STR_AIMODES_KIMI" value="Kimi"/>
+       <lanstr id="STR_AIMODES_KIMI" value="KIMI"/>
        <lanstr id="STR_AIMODES_CHATGPT" value="ChatGPT"/>
-       <lanstr id="STR_SLIDE_TO_SHUTDOWN" value="Slide to shutdown"/>
-       <lanstr id="STR_SLIDE_TO_REBOOT" value="Slide to reboot"/>
+       <lanstr id="STR_SLIDE_TO_SHUTDOWN" value="Slide to shutdown &gt;&gt;"/>
+       <lanstr id="STR_SLIDE_TO_REBOOT" value="Slide to reboot &gt;&gt;"/>
+       <lanstr id="STR_AI_FAMILY_MEALS" value="AI Family Meals"/>
+       <lanstr id="STR_CHAT" value="Chat"/>
+       <lanstr id="STR_PCY4GC_OR_AS" value="Please check your 4G connection or APP Settings"/>
+       <lanstr id="STR_API_KEYS" value="API keys"/>
+       <lanstr id="STR_PGTTAF" value="Please go to the APP first"/>
+       <lanstr id="STR_DAFBS" value="Device&quot; - &quot;AI Family Bucket&quot; setting"/>
+       <lanstr id="STR_OPENAI_API_KEYS" value="OpenAI API keys"/>
+       <lanstr id="STR_KHBB" value="API keys have been bound"/>
+       <lanstr id="STR_GTAS" value="Please go to APP Settings"/>
+       <lanstr id="STR_DYWTDAK" value="Do you want to delete API keys"/>
+       <lanstr id="STR_CONNECTING" value="Connecting"/>
+       <lanstr id="STR_CONNECTION_FAIL" value="Connection fail"/>
+       <lanstr id="STR_PTALORTM" value="Please try again later or replace the model"/>
+       <lanstr id="STR_MOTION_DETECTION_NOTE" value="It seems that you are performing XX movement, whether to start recording"/>
+       <lanstr id="STR_PE4GC" value="Please enable 4G capability"/>
 </language>
index 6ad434b..064ea34 100644 (file)
        <lanstr id="STR_CONTINUE_CHAT" value="继续对话"/>
        <lanstr id="STR_AIMODELS_DOUBAO" value="豆包"/>
        <lanstr id="STR_AIMODES_WENXINYIYAN" value="文心一言"/>
-       <lanstr id="STR_AIMODES_KIMI" value="Kimi"/>
+       <lanstr id="STR_AIMODES_KIMI" value="KIMI"/>
        <lanstr id="STR_AIMODES_CHATGPT" value="ChatGPT"/>
        <lanstr id="STR_SLIDE_TO_SHUTDOWN" value="滑动关机 &gt;&gt;"/>
        <lanstr id="STR_SLIDE_TO_REBOOT" value="滑动重启 &gt;&gt;"/>
+       <lanstr id="STR_AI_FAMILY_MEALS" value="AI 全家桶"/>
+       <lanstr id="STR_CHAT" value="对话"/>
+       <lanstr id="STR_PCY4GC_OR_AS" value="请检查4G连接或APP设置"/>
+       <lanstr id="STR_API_KEYS" value="API keys"/>
+       <lanstr id="STR_PGTTAF" value="请先前往APP"/>
+       <lanstr id="STR_DAFBS" value="“设备”-“AI全家桶”设置"/>
+       <lanstr id="STR_OPENAI_API_KEYS" value="OpenAI API keys"/>
+       <lanstr id="STR_KHBB" value="已绑定API keys"/>
+       <lanstr id="STR_GTAS" value="更换请前往APP设置"/>
+       <lanstr id="STR_DYWTDAK" value="是否确认删除API keys"/>
+       <lanstr id="STR_CONNECTING" value="正在连接"/>
+       <lanstr id="STR_CONNECTION_FAIL" value="连接失败"/>
+       <lanstr id="STR_PTALORTM" value="请稍后再重试或更换模型"/>
+       <lanstr id="STR_MOTION_DETECTION_NOTE" value="检测到您好像在进行XX运动,是否开始记录"/>
+       <lanstr id="STR_PE4GC" value="请开启4G能力"/>
 </language>
index 3f74213..16cbb1d 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang differ
index 69218bc..a245eb3 100644 (file)
@@ -487,7 +487,22 @@ enum UIResourceTextId : uint16_t {
     STR_AIMODES_CHATGPT = 474,\r
     STR_SLIDE_TO_SHUTDOWN = 475,\r
     STR_SLIDE_TO_REBOOT = 476,\r
-    STR_MAX_ID = 477,\r
+    STR_AI_FAMILY_MEALS = 477,\r
+    STR_CHAT = 478,\r
+    STR_PCY4GC_OR_AS = 479,\r
+    STR_API_KEYS = 480,\r
+    STR_PGTTAF = 481,\r
+    STR_DAFBS = 482,\r
+    STR_OPENAI_API_KEYS = 483,\r
+    STR_KHBB = 484,\r
+    STR_GTAS = 485,\r
+    STR_DYWTDAK = 486,\r
+    STR_CONNECTING = 487,\r
+    STR_CONNECTION_FAIL = 488,\r
+    STR_PTALORTM = 489,\r
+    STR_MOTION_DETECTION_NOTE = 490,\r
+    STR_PE4GC = 491,\r
+    STR_MAX_ID = 492,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index bd8dda9..ba8e460 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang differ
index 526adb4..f424ee7 100644 (file)
@@ -169,15 +169,19 @@ int16_t PlayersModel::GetCurrentIndex(void)
 
 void PlayersModel::SetCurrentIndex(int16_t value)
 {
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersModel::SetCurrentIndex,value = %d",value);
     currentIndex = value;
     /* -------------------------------------------------------------------------- */
     m_PlayersCaseListAdapter = PlayersCaseListAdapter::GetInstance();
-    m_PlayersCaseListAdapter->p_BtnOnClickListListener->SongClick(m_PlayersCaseListAdapter,currentIndex);
-    for(int i= 0;i<m_PlayersCaseListAdapter->GetCount();i++)
+    if(m_PlayersCaseListAdapter!=nullptr)
     {
-        if(i != currentIndex)
+        m_PlayersCaseListAdapter->p_BtnOnClickListListener->SongClick(m_PlayersCaseListAdapter,currentIndex);
+        for(int i= 0;i<m_PlayersCaseListAdapter->GetCount();i++)
         {
-           m_PlayersCaseListAdapter->p_BtnOnClickListListener->SongNotClick(m_PlayersCaseListAdapter,i);
+            if(i != currentIndex)
+            {
+                m_PlayersCaseListAdapter->p_BtnOnClickListListener->SongNotClick(m_PlayersCaseListAdapter,i);
+            }
         }
     }
     PlayersView::GetInstance()->GetPlayerList();
index 6216ba7..050db8f 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 18:29:43\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-05-06 19:56:05\r
+ * @LastEditTime: 2024-07-25 14:48:37\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemPresenter.h\r
  */\r
 \r
 \r
 namespace OHOS\r
 {\r
-    typedef enum\r
-    {\r
-        SYSTEMVIEW = 0,     // 系统视图(slice)\r
-        ABOUTTHEWATCHVIEW,  // 关于手表视图(subView)\r
-        SYSTEMLUPGRADE,     // 系统升级(subView)\r
-        WATCHQRCODE,        // 手表二维码视图(subView)\r
-        SYSTEMLANGUAGEVIEW, // 系统语言视图(subView)\r
-        FACTORYRESETVIEW,   // 恢复出厂设置视图(subView)upgrade\r
-        TEST,\r
-        MAX_SYSTEMVIEWID,\r
-    } SYSTEMVIEWID;\r
+    \r
 \r
     /* ---------------------------- 恢复出厂设置界面按钮的VIEWID --------------------------- */\r
     static const char *FACTORYRESET_CHECKON = "ShoutDownButtonCheckOn";   // 确认\r
@@ -51,7 +41,6 @@ namespace OHOS
         void OnStop() override;\r
 \r
         static SystemPresenter *GetInstance();\r
-        //void set_key_falg(bool);\r
 \r
     private:\r
         // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
@@ -63,7 +52,6 @@ namespace OHOS
 \r
     private:\r
         SystemModel *systemModel;\r
-        //bool isSystemUpgradeState{false}; // 是否处于升级状态\r
         bool X_DRAG_FLAG{false};\r
     };\r
 } // namespace OHOS\r
index 83d8093..a28c275 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 18:29:39\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-05-07 18:30:05\r
+ * @LastEditTime: 2024-07-25 16:38:48\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemView.h\r
  */\r
 #ifndef SYSTEM_VIEW_H\r
 #include "components/ui_button.h"\r
 #include "components/ui_label_button_ext.h"\r
 #include "system/include/SystemAboutTheWatchView.h"\r
-#include "system/include/SystemSuperviseView.h"\r
+// #include "system/include/SystemSuperviseView.h"\r
 #include "system/include/SystemFactoryResetView.h"\r
-#include "system/include/Systemupgrade.h"\r
+// #include "system/include/Systemupgrade.h"\r
 #include "components/ui_toggle_button.h"\r
 \r
 namespace OHOS\r
 {\r
-    static constexpr const char *ABOUT_THE_WATCH = "AboutTheWatchButton";   // 关于手表\r
-    static constexpr const char *SYSTEM_UPGRADE = "SystemUpgradeButtonExt"; // 系统升级\r
+    static constexpr const char *ABOUT_THE_WATCH = "AboutTheWatchButton";       // 关于手表\r
+    static constexpr const char *SYSTEM_UPGRADE = "SystemUpgradeButtonExt";     // 系统升级\r
     static constexpr const char *SYSTEM_UPGRADE_t = "SystemUpgradeButtonExt_t"; // 点击系统升级\r
-    static constexpr const char *WATCH_QR_CODE = "WatchqrcodeButton";       // 手表二维码\r
-    static constexpr const char *SYSTEM_LANGUAGE = "SystemLanguageButton";  // 系统语言\r
-    static constexpr const char *FACTORY_RESET = "FactoryResetButton";      // 恢复出厂设置\r
+    static constexpr const char *WATCH_QR_CODE = "WatchqrcodeButton";           // 手表二维码\r
+    static constexpr const char *SYSTEM_LANGUAGE = "SystemLanguageButton";      // 系统语言\r
+    static constexpr const char *FACTORY_RESET = "FactoryResetButton";          // 恢复出厂设置\r
+\r
+    typedef enum\r
+    {\r
+        SYSTEMVIEW = 0,    // 系统视图(slice)\r
+        ABOUTTHEWATCHVIEW, // 关于手表视图(subView)\r
+        FACTORYRESETVIEW,  // 恢复出厂设置视图(subView)\r
+        MAX_SYSTEMVIEWID,\r
+    } SYSTEMVIEWID;\r
+\r
     class SystemPresenter;\r
     class SystemView : public View<SystemPresenter>\r
     {\r
 \r
     public:\r
+        struct LabelConfig\r
+        {\r
+            int16_t left;\r
+            int16_t top;\r
+            int16_t width;\r
+            int16_t height;\r
+            int16_t fontSize;\r
+            int16_t lineHeigh;\r
+            uint16_t textId;\r
+            uint8_t lineBreakMode;\r
+        };\r
+\r
         SystemView();\r
-        virtual ~SystemView();\r
+        ~SystemView();\r
         static SystemView *GetInstance(void);\r
 \r
         void OnStart() override;\r
@@ -45,51 +66,42 @@ namespace OHOS
         void OnTearDownView() override;\r
         void OnStop() override;\r
 \r
-        struct ButtonConfig_ext_t\r
+        struct ButtonConfig\r
         {\r
-            int x;\r
-            int y;\r
-            int w;\r
-            int h;\r
-            // const char *str;\r
-            uint16_t textId;\r
-            const char *ViewId;\r
-            const char *ImageSrc;\r
-\r
-            // label\r
-            int label_x;\r
-            int label_y;\r
-            uint8_t ALIGN;\r
-            int Fontsize;\r
+            int16_t x;\r
+            int16_t y;\r
+            int16_t w;\r
+            int16_t h;\r
+            const char *viewId;\r
         };\r
 \r
-        bool ChangeSystemView(int16_t thisView);\r
-        bool ChangeSystemAboutView(int16_t thisView);\r
-        bool ChangeWatchQRCodeView(int16_t thisView);\r
-        bool ChangeSystemLanguageView(int16_t thisView);\r
-        bool ChangeSystemFactoryResetView(int16_t thisView);\r
-        bool ChangeSystemupgradeView(int16_t thisView);\r
+        bool ChangeToSystemView(int16_t thisView);\r
+        bool ChangeToSystemAboutView(int16_t thisView);\r
+        bool ChangeToSystemFactoryResetView(int16_t thisView);\r
         bool ClickFunc(int16_t interface);\r
+        bool CheckViewParam(int16_t hideView, int16_t showView);\r
         void ChangeView(int16_t hideView, int16_t showView);\r
         UIScrollView *GetSystemScrollView(int ViewId);\r
 \r
     private:\r
-        void initView_ext(int x, int y, int w, int h, int interval, const char *imagsrc);\r
-        void ClearAll(void);\r
-        bool SetTheSystemScrollView(void);\r
-        bool SetTheTitle(void);\r
-        void NeedToUpdateImageinit(void);\r
-        UILabelButtonExt *SetTheButton_ext(ButtonConfig_ext_t &ButtonConfig_ext, UIView::OnClickListener *clickListener);\r
         SystemAboutTheWatchView *p_SystemAboutTheWatchView{nullptr}; // 关于手表\r
-        SystemupgradeView *p_SystemupgradeView{nullptr};             // 系统升级\r
-        SystemSuperviseView *p_WatchQRCodeView{nullptr};             // 手表二维码\r
         SystemFactoryResetView *p_SystemFactoryResetView{nullptr};   // 恢复出厂设置\r
-        UIScrollView *SystemScrollView[10]{nullptr};\r
+\r
+    private:\r
+        UILabelButtonExt *SystemViewLabelButtonInit(ButtonConfig &buttonconfig);\r
+        UILabelExt *SystemViewLabelInit(LabelConfig &labelconfig);\r
+        bool CreateSystemViewLabel(void);\r
+        bool CreateSystemViewLabelButton(void);\r
+        bool CreateSystemScrollView(void);\r
+        void CreateSystemView(void);\r
+        void ClearAll(void);\r
+        void NeedToUpdateImageinit(void);\r
         UILabelExt *Title{nullptr}; // 标题\r
-        UILabelButtonExt *SystemViewButton[5]{nullptr};\r
-        /* -------------------------------------------------------------------------- */\r
-        UIImageView *NeedToUpdateImage{nullptr}; //提示需要系统更新的icon图片\r
-        /* -------------------------------------------------------------------------- */\r
+        UIScrollView *SystemScrollView[MAX_SYSTEMVIEWID]{nullptr};\r
+        UILabelButtonExt *SystemViewLabelButton[5]{nullptr};\r
+        UILabelExt *SystemViewLabel[5]{nullptr};\r
+        UIImageView *NeedToUpdateImage{nullptr}; // 提示需要系统更新的icon图片\r
+        bool viewInitStatus{false};\r
     };\r
 } // namespace OHOS\r
 \r
index 25dbcc3..5d96810 100644 (file)
@@ -100,14 +100,6 @@ namespace OHOS
             {\r
                 p_SystemView->ChangeView(ABOUTTHEWATCHVIEW, SYSTEMVIEW);\r
             }\r
-            else if (&view == p_SystemView->GetSystemScrollView(SYSTEMLUPGRADE))\r
-            {\r
-                p_SystemView->ChangeView(SYSTEMLUPGRADE, SYSTEMVIEW);\r
-            }\r
-            else if (&view == p_SystemView->GetSystemScrollView(WATCHQRCODE))\r
-            {\r
-                p_SystemView->ChangeView(WATCHQRCODE, SYSTEMVIEW);\r
-            }\r
             else if (&view == p_SystemView->GetSystemScrollView(FACTORYRESETVIEW))\r
             {\r
                 p_SystemView->ChangeView(FACTORYRESETVIEW, SYSTEMVIEW);\r
@@ -196,14 +188,14 @@ namespace OHOS
         }\r
 \r
 \r
-        if (strcmp(view.GetViewId(), SYSTEM_UPGRADE_t) == 0) //点击是否立即升级\r
-        {\r
-            SystemupgradeView::GetInstance()->statr_down_fwpkg();\r
-        }\r
-        if (strcmp(view.GetViewId(), "labelButton1_exit") == 0) //稍后再说\r
-        {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
-        }\r
+        // if (strcmp(view.GetViewId(), SYSTEM_UPGRADE_t) == 0) //点击是否立即升级\r
+        // {\r
+        //     SystemupgradeView::GetInstance()->statr_down_fwpkg();\r
+        // }\r
+        // if (strcmp(view.GetViewId(), "labelButton1_exit") == 0) //稍后再说\r
+        // {\r
+        //     NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+        // }\r
         return true;\r
     }\r
 \r
index 6bdf287..095d065 100644 (file)
@@ -8,60 +8,8 @@ extern uint8_t battery_get_voltage(float *voltage);
 #include "systemupdate/include/SystemUpdateModel.h"\r
 namespace OHOS\r
 {\r
-\r
     static SystemView *g_pSystemView{nullptr};\r
 \r
-    struct SystemViewMapper_ext\r
-    {\r
-        const int16_t viewId;\r
-        const char *viewid_str;\r
-        // const char *Labe_str;\r
-        uint16_t textId;\r
-        bool (SystemView::*func)(int16_t thisView);\r
-    };\r
-\r
-    SystemViewMapper_ext ViewMapper_t[] = {\r
-        {ABOUTTHEWATCHVIEW, ABOUT_THE_WATCH, STR_ABOUT_WATCH, &SystemView::ChangeSystemAboutView},\r
-        {SYSTEMLUPGRADE, SYSTEM_UPGRADE, STR_SYSTEM_UPDATE, &SystemView::ChangeSystemupgradeView},\r
-        {WATCHQRCODE, WATCH_QR_CODE, STR_WATCH_QR_CODE, &SystemView::ChangeWatchQRCodeView},\r
-        {SYSTEMLANGUAGEVIEW, SYSTEM_LANGUAGE, STR_SYSTEM_LANGUAGE, &SystemView::ChangeSystemLanguageView},\r
-        {FACTORYRESETVIEW, FACTORY_RESET, STR_FACTORY_RESET, &SystemView::ChangeSystemFactoryResetView},\r
-\r
-    };\r
-\r
-    // 根据传入的interface参数执行相应视图ID关联的成员函数。\r
-    bool SystemView::ClickFunc(int16_t interface)\r
-    {\r
-        int funcSize = sizeof(ViewMapper_t) / sizeof(ViewMapper_t[SYSTEMVIEW]);\r
-        for (int i = 0; i < funcSize; i++)\r
-        {\r
-            if (interface == ViewMapper_t[i].viewId)\r
-            {\r
-                bool jug = (this->*(ViewMapper_t[i].func))(interface);\r
-                if (jug == false)\r
-                {\r
-                    return false;\r
-                }\r
-                return true;\r
-            }\r
-        }\r
-        return false;\r
-    }\r
-\r
-    // 切换视图\r
-    void SystemView::ChangeView(int16_t hideView, int16_t showView)\r
-    {\r
-        if (hideView > MAX_SYSTEMVIEWID)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: SystemViewId Overstep ones bounds");\r
-            return;\r
-        }\r
-        SystemScrollView[hideView]->SetVisible(false);\r
-        ClickFunc(showView);\r
-        SystemScrollView[showView]->SetVisible(true);\r
-        Draw();\r
-    }\r
-\r
     SystemView::SystemView()\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemView");\r
@@ -71,7 +19,6 @@ namespace OHOS
     SystemView::~SystemView()\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::~SystemView");\r
-        ClearAll();\r
         g_pSystemView = nullptr;\r
     }\r
 \r
@@ -82,63 +29,186 @@ namespace OHOS
 \r
     void SystemView::ClearAll()\r
     {\r
-        if (SystemScrollView[SYSTEMVIEW] != nullptr)\r
+        if (viewInitStatus)\r
         {\r
-            SystemScrollView[SYSTEMVIEW]->RemoveAll();\r
-\r
-            if (Title != nullptr)\r
+            if (SystemScrollView[SYSTEMVIEW] != nullptr)\r
             {\r
-                delete Title;\r
-                Title = nullptr;\r
-            }\r
-\r
-            int num = (sizeof(ViewMapper_t) / sizeof(SystemViewMapper_ext));\r
-            for (int i = 0; i < num; i++)\r
-            {\r
-                delete SystemViewButton[i];\r
-                SystemViewButton[i] = nullptr;\r
+                SystemScrollView[SYSTEMVIEW]->RemoveAll();\r
+                if (Title != nullptr)\r
+                {\r
+                    delete Title;\r
+                    Title = nullptr;\r
+                }\r
+                for (int i = 0; i < 5; i++)\r
+                {\r
+                    if (SystemViewLabelButton[i] != nullptr)\r
+                    {\r
+                        delete SystemViewLabelButton[i];\r
+                        SystemViewLabelButton[i] = nullptr;\r
+                    }\r
+\r
+                    if (SystemViewLabel[i] != nullptr)\r
+                    {\r
+                        delete SystemViewLabel[i];\r
+                        SystemViewLabel[i] = nullptr;\r
+                    }\r
+                }\r
+                if (NeedToUpdateImage != nullptr)\r
+                {\r
+                    delete NeedToUpdateImage;\r
+                    NeedToUpdateImage = nullptr;\r
+                }\r
+                delete SystemScrollView[SYSTEMVIEW];\r
+                SystemScrollView[SYSTEMVIEW] = nullptr;\r
             }\r
+        }\r
+        if (p_SystemAboutTheWatchView != nullptr)\r
+        {\r
+            delete p_SystemAboutTheWatchView;\r
+            p_SystemAboutTheWatchView = nullptr;\r
+        }\r
+        if (p_SystemFactoryResetView != nullptr)\r
+        {\r
+            delete p_SystemFactoryResetView;\r
+            p_SystemFactoryResetView = nullptr;\r
+        }\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ClearAll end!!");\r
+    }\r
 \r
-            if (p_SystemAboutTheWatchView != nullptr)\r
-            {\r
-                delete p_SystemAboutTheWatchView;\r
-                p_SystemAboutTheWatchView = nullptr;\r
-            }\r
+    UILabelButtonExt *SystemView::SystemViewLabelButtonInit(ButtonConfig &buttonconfig)\r
+    {\r
+        UILabelButtonExt *labelButton = new UILabelButtonExt();\r
+        if (labelButton == nullptr)\r
+        {\r
+            return nullptr;\r
+        }\r
+        labelButton->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
+        labelButton->SetViewId(buttonconfig.viewId);\r
+        labelButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        labelButton->SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);\r
+        labelButton->SetImagePosition(326, 37);\r
+        labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
+        labelButton->SetOnClickListener(presenter_);\r
+\r
+        return labelButton;\r
+    }\r
 \r
-            if (p_SystemupgradeView != nullptr)\r
-            {\r
-                delete p_SystemupgradeView;\r
-                p_SystemupgradeView = nullptr;\r
-            }\r
+    UILabelExt *SystemView::SystemViewLabelInit(LabelConfig &labelconfig)\r
+    {\r
+        UILabelExt *label = new UILabelExt();\r
+        if (label == nullptr)\r
+        {\r
+            return nullptr;\r
+        }\r
+        label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height);\r
+        label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize);\r
+        label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh);\r
+        label->SetTextId(labelconfig.textId);\r
+        label->SetLineBreakMode(labelconfig.lineBreakMode);\r
+        label->SetRollSpeed(70);\r
+        label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+        return label;\r
+    }\r
 \r
-            if (p_WatchQRCodeView != nullptr)\r
+    bool SystemView::CreateSystemViewLabel(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabel");\r
+        LabelConfig labelConfig = {\r
+            .left = 83,\r
+            .top = 50,\r
+            .width = 300,\r
+            .height = 35,\r
+            .fontSize = 30,\r
+            .lineHeigh = 35,\r
+            .textId = STR_SYSTEM, /*系统*/\r
+            .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
+        };\r
+        Title = SystemViewLabelInit(labelConfig);\r
+        if (Title == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::Title");\r
+            return false;\r
+        }\r
+        Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        SystemScrollView[SYSTEMVIEW]->Add(Title);\r
+        /* -------------------------------------------------------------------------- */\r
+        struct LabelSetup\r
+        {\r
+            int16_t y;\r
+            const int16_t textId;\r
+        };\r
+\r
+        LabelSetup labelSetups[] = {\r
+            {153, STR_ABOUT_WATCH},\r
+            {273, STR_SYSTEM_UPDATE},\r
+            {393, STR_WATCH_QR_CODE},\r
+            {513, STR_SYSTEM_LANGUAGE},\r
+            {633, STR_FACTORY_RESET},\r
+        };\r
+        for (int i = 0; i < sizeof(labelSetups) / sizeof(labelSetups[0]); ++i)\r
+        {\r
+            labelConfig = {\r
+                .left = 90,\r
+                .top = labelSetups[i].y,\r
+                .width = 240,\r
+                .height = 35,\r
+                .fontSize = 30,\r
+                .lineHeigh = 35,\r
+                .textId = labelSetups[i].textId,\r
+                .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
+            };\r
+            SystemViewLabel[i] = SystemViewLabelInit(labelConfig);\r
+            if (SystemViewLabel[i] == nullptr)\r
             {\r
-                delete p_WatchQRCodeView;\r
-                p_WatchQRCodeView = nullptr;\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::SystemViewLabel[%d] new fail!", i);\r
+                return false;\r
             }\r
+            SystemScrollView[SYSTEMVIEW]->Add(SystemViewLabel[i]);\r
+        }\r
 \r
-            if (p_SystemFactoryResetView != nullptr)\r
-            {\r
-                delete p_SystemFactoryResetView;\r
-                p_SystemFactoryResetView = nullptr;\r
-            }\r
+        return true;\r
+    }\r
 \r
-            if (NeedToUpdateImage != nullptr)\r
+    bool SystemView::CreateSystemViewLabelButton(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabelButton");\r
+        struct ButtonSetup\r
+        {\r
+            int y;\r
+            const char *viewId;\r
+        };\r
+        ButtonSetup buttonSetups[] = {\r
+            {120, ABOUT_THE_WATCH},\r
+            {240, SYSTEM_UPGRADE},\r
+            {360, WATCH_QR_CODE},\r
+            {480, SYSTEM_LANGUAGE},\r
+            {600, FACTORY_RESET},\r
+        };\r
+\r
+        for (int i = 0; i < sizeof(buttonSetups) / sizeof(buttonSetups[0]); ++i)\r
+        {\r
+            ButtonConfig buttonconfig = {\r
+                .x = 43,\r
+                .y = buttonSetups[i].y,\r
+                .w = 380,\r
+                .h = 100,\r
+                .viewId = buttonSetups[i].viewId,\r
+            };\r
+            SystemViewLabelButton[i] = SystemViewLabelButtonInit(buttonconfig);\r
+            if (SystemViewLabelButton[i] == nullptr)\r
             {\r
-                delete NeedToUpdateImage;\r
-                NeedToUpdateImage = nullptr;\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::Button[%d] new fail!", i);\r
+                return false;\r
             }\r
-\r
-            delete SystemScrollView[SYSTEMVIEW];\r
-            SystemScrollView[SYSTEMVIEW] = nullptr;\r
+            SystemScrollView[SYSTEMVIEW]->Add(SystemViewLabelButton[i]);\r
         }\r
+\r
+        return true;\r
     }\r
 \r
-    /// @brief 设置SystemScrollView\r
-    /// @param  void\r
-    /// @return true 设置成功,false 失败\r
-    bool SystemView::SetTheSystemScrollView(void)\r
+    bool SystemView::CreateSystemScrollView(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemScrollView");\r
         SystemScrollView[SYSTEMVIEW] = new UIScrollView();\r
         if (SystemScrollView[SYSTEMVIEW] == nullptr)\r
         {\r
@@ -152,124 +222,122 @@ namespace OHOS
         SystemScrollView[SYSTEMVIEW]->SetDirection(1);\r
         SystemScrollView[SYSTEMVIEW]->SetThrowDrag(true);         // 设置手指抬起屏幕后是否继续滚动。\r
         SystemScrollView[SYSTEMVIEW]->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。\r
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SystemPresenter::GetInstance());\r
-        if (draglistener == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::draglistener can not be nullptr!");\r
-            return false;\r
-        }\r
-        SystemScrollView[SYSTEMVIEW]->SetOnDragListener(draglistener);\r
+        SystemScrollView[SYSTEMVIEW]->RequestFocus();\r
+        SystemScrollView[SYSTEMVIEW]->SetRotateFactor(true);\r
+        SystemScrollView[SYSTEMVIEW]->SetOnDragListener(presenter_);\r
         SystemScrollView[SYSTEMVIEW]->SetTouchable(true);\r
         SystemScrollView[SYSTEMVIEW]->SetDraggable(true);\r
+\r
         return true;\r
     }\r
 \r
-    /// @brief 设置标题\r
-    /// @param  void\r
-    /// @return true 设置成功,false 失败\r
-    bool SystemView::SetTheTitle(void)\r
+    /*需要更新的红点图片初始化*/\r
+    void SystemView::NeedToUpdateImageinit(void)\r
     {\r
-        Title = new UILabelExt();\r
-        if (Title == nullptr)\r
+        if (NeedToUpdateImage == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::Title new fail!");\r
-            return false;\r
+            NeedToUpdateImage = new UIImageView();\r
+            if (NeedToUpdateImage == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemView");\r
+                return;\r
+            }\r
+            NeedToUpdateImage->SetPosition(323, 280, 20, 20);\r
+            NeedToUpdateImage->SetStyle(STYLE_BORDER_RADIUS, 200);\r
+            const char *imagesPath = "/user/res/system/SYSTEM_UPDATE_FLAG.bin";\r
+            NeedToUpdateImage->SetSrc(imagesPath);\r
+\r
+            SystemScrollView[SYSTEMVIEW]->Add(NeedToUpdateImage);\r
         }\r
-        Title->SetPosition(83, 52, 300, 35);\r
-        Title->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        Title->SetStyle(STYLE_TEXT_FONT, 30);\r
-        Title->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        // Title->SetText("系统");\r
-        Title->SetTextId(STR_SYSTEM);\r
-        Title->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        Title->SetRollSpeed(70);\r
-        Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        // Title->SetRollSpeed(6);\r
-        Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        return true;\r
     }\r
 \r
-    UILabelButtonExt *SystemView::SetTheButton_ext(ButtonConfig_ext_t &buttonconfig, UIView::OnClickListener *clickListener)\r
+    void SystemView::CreateSystemView(void)\r
     {\r
-        UILabelButtonExt *button = new UILabelButtonExt();\r
-        if (button == nullptr)\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView");\r
+        if (!CreateSystemScrollView() || !CreateSystemViewLabelButton() || !CreateSystemViewLabel())\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SystemView::SetTheButton: button new  fail!");\r
-            return nullptr;\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView");\r
+            return;\r
         }\r
-        button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
-        button->SetViewId(buttonconfig.ViewId);\r
-        button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
-        button->SetImageSrc(buttonconfig.ImageSrc, buttonconfig.ImageSrc);\r
-        button->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-        button->SetOnClickListener(clickListener);\r
-\r
-        // button->SetText(buttonconfig.str);\r
-        button->SetTextId(buttonconfig.textId);\r
-        button->SetAlign(TEXT_ALIGNMENT_LEFT);\r
-        button->SetLabelPosition(buttonconfig.label_x, buttonconfig.label_y);\r
-        button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, buttonconfig.Fontsize);\r
-        // button->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
-        button->SetImagePosition(326, 37);\r
-        return button;\r
+        viewInitStatus = true;\r
     }\r
 \r
-    void SystemView::initView_ext(int x, int y, int w, int h, int interval, const char *imagsrc)\r
+    void SystemView::OnStart()\r
     {\r
-        if (!SetTheSystemScrollView())\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::OnStart");\r
+        View<SystemPresenter>::OnStart();\r
+        SetContainerView(new UIViewGroup());\r
+        if (GetContainer() == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheSystemScrollView() fail!");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetContainerView fail!!");\r
             return;\r
         }\r
-        if (!SetTheTitle())\r
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+\r
+        if (!viewInitStatus)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheTitle() fail!");\r
+            CreateSystemView();\r
+        }\r
+\r
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
+    }\r
+\r
+    void SystemView::OnSetUpView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::OnSetUpView");\r
+        View<SystemPresenter>::OnSetUpView();\r
+        if (SystemScrollView[SYSTEMVIEW] == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: OnSetUpView  has nullptr");\r
             return;\r
         }\r
-        /* -------------------------------------------------------------------------- */\r
-        UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(SystemPresenter::GetInstance());\r
-        /* -------------------------------------------------------------------------- */\r
-        ButtonConfig_ext_t buttonconfig;\r
-        buttonconfig.x = x;\r
-        buttonconfig.y = y;\r
-        buttonconfig.w = w;\r
-        buttonconfig.h = h;\r
+        if (SystemUpdateModel::GetInstance().IsLatestVersion() == false) // 如果不是最新系统版本出现小圆点\r
+        {\r
+            NeedToUpdateImageinit();\r
+        }\r
+        container_->Add(SystemScrollView[SYSTEMVIEW]);\r
+        Draw();\r
+    }\r
 \r
-        int len = sizeof(ViewMapper_t) / sizeof(SystemViewMapper_ext);\r
+    void SystemView::OnTearDownView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::OnTearDownView");\r
+        View<SystemPresenter>::OnTearDownView();\r
+        return;\r
+    }\r
 \r
-        for (int i = 0; i < len; i++)\r
+    void SystemView::OnStop()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::OnStop");\r
+        View<SystemPresenter>::OnStop();\r
+        if (container_ != nullptr)\r
         {\r
-            // buttonconfig.str = ViewMapper_t[i].Labe_str;\r
-            buttonconfig.textId = ViewMapper_t[i].textId;\r
-            buttonconfig.ViewId = ViewMapper_t[i].viewid_str;\r
-            buttonconfig.ImageSrc = imagsrc;\r
-            buttonconfig.label_x = 40;\r
-            buttonconfig.label_y = 0;\r
-            buttonconfig.Fontsize = 30;\r
-            buttonconfig.ALIGN = TEXT_ALIGNMENT_LEFT;\r
-            SystemViewButton[i] = SetTheButton_ext(buttonconfig, clickListener);\r
-            buttonconfig.y += interval;\r
+            container_->RemoveAll();\r
+            delete container_;\r
+            container_ = nullptr;\r
         }\r
+        RootView::GetInstance()->ClearOnKeyActListener();\r
+        ClearAll();\r
+        return;\r
     }\r
 \r
     // 0.跳转到系统视图,其他视图都市通过这个视图跳转\r
-    bool SystemView::ChangeSystemView(int16_t thisView)\r
+    bool SystemView::ChangeToSystemView(int16_t thisView)\r
     {\r
         if (SystemScrollView[thisView] == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemView");\r
-            RootView::GetInstance()->Add(SystemScrollView[thisView]);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeToSystemView");\r
+            container_->Add(SystemScrollView[thisView]);\r
         }\r
         return true;\r
     }\r
 \r
     // 1.跳转到关于手表\r
-    bool SystemView::ChangeSystemAboutView(int16_t thisView)\r
+    bool SystemView::ChangeToSystemAboutView(int16_t thisView)\r
     {\r
         if (SystemScrollView[thisView] == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeToSystemAboutView");\r
             p_SystemAboutTheWatchView = new SystemAboutTheWatchView();\r
             if (p_SystemAboutTheWatchView == nullptr)\r
             {\r
@@ -277,41 +345,17 @@ namespace OHOS
                 return false;\r
             }\r
             SystemScrollView[thisView] = p_SystemAboutTheWatchView->SystemAbouTheWatchtInitIView();\r
-            RootView::GetInstance()->Add(SystemScrollView[thisView]);\r
+            container_->Add(SystemScrollView[thisView]);\r
         }\r
         return true;\r
     }\r
 \r
-    // 2.跳转到手表二维码\r
-    bool SystemView::ChangeWatchQRCodeView(int16_t thisView)\r
+    // 3.跳转到恢复出厂设置界面\r
+    bool SystemView::ChangeToSystemFactoryResetView(int16_t thisView)\r
     {\r
         if (SystemScrollView[thisView] == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeWatchQRCodeView");\r
-            p_WatchQRCodeView = new SystemSuperviseView();\r
-            if (p_WatchQRCodeView == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
-                return false;\r
-            }\r
-            SystemScrollView[thisView] = p_WatchQRCodeView->SystemSuperviseViewInit();\r
-            RootView::GetInstance()->Add(SystemScrollView[thisView]);\r
-        }\r
-        return true;\r
-    }\r
-\r
-    // 3.跳转到系统语言界面\r
-    bool SystemView::ChangeSystemLanguageView(int16_t thisView)\r
-    {\r
-        return true;\r
-    }\r
-\r
-    // 4.跳转到恢复出厂设置界面\r
-    bool SystemView::ChangeSystemFactoryResetView(int16_t thisView)\r
-    {\r
-        if (SystemScrollView[thisView] == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemFactoryResetView");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeToSystemFactoryResetView");\r
             p_SystemFactoryResetView = new SystemFactoryResetView();\r
             if (p_SystemFactoryResetView == nullptr)\r
             {\r
@@ -319,102 +363,80 @@ namespace OHOS
                 return false;\r
             }\r
             SystemScrollView[thisView] = p_SystemFactoryResetView->SystemFactoryResetViewInit();\r
-            RootView::GetInstance()->Add(SystemScrollView[thisView]);\r
+            container_->Add(SystemScrollView[thisView]);\r
         }\r
         return true;\r
     }\r
 \r
-    // 5.跳转到系统升级界面\r
-    bool SystemView::ChangeSystemupgradeView(int16_t thisView)\r
+    struct SystemViewMapper\r
     {\r
-        if (SystemScrollView[thisView] == nullptr)\r
+        const int16_t viewId;\r
+        bool (SystemView::*func)(int16_t thisView);\r
+    };\r
+\r
+    static const SystemViewMapper ViewMapper[] = {\r
+        {SYSTEMVIEW, &SystemView::ChangeToSystemView},\r
+        {ABOUTTHEWATCHVIEW, &SystemView::ChangeToSystemAboutView},\r
+        {FACTORYRESETVIEW, &SystemView::ChangeToSystemFactoryResetView},\r
+    };\r
+\r
+    // 根据传入的interface参数执行相应视图ID关联的成员函数。\r
+    bool SystemView::ClickFunc(int16_t interface)\r
+    {\r
+        int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[SYSTEMVIEW]);\r
+        for (int i = 0; i < funcSize; i++)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemupgradeView");\r
-            p_SystemupgradeView = new SystemupgradeView();\r
-            if (p_SystemupgradeView == nullptr)\r
+            if (interface == ViewMapper[i].viewId)\r
             {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
-                return false;\r
+                bool jug = (this->*(ViewMapper[i].func))(interface);\r
+                if (jug == false)\r
+                {\r
+                    return false;\r
+                }\r
+                return true;\r
             }\r
-            SystemScrollView[thisView] = p_SystemupgradeView->SystemupgradeViewInit();\r
-            RootView::GetInstance()->Add(SystemScrollView[thisView]);\r
         }\r
-        return true;\r
+        return false;\r
     }\r
 \r
-    UIScrollView *SystemView::GetSystemScrollView(int ViewId)\r
+    /*检查传入的两个视图参数 hideView 和 showView 的有效性。*/\r
+    bool SystemView::CheckViewParam(int16_t hideView, int16_t showView)\r
     {\r
-        if (SystemScrollView[ViewId] == nullptr)\r
+        if (showView < 0 || showView >= MAX_SYSTEMVIEWID)\r
         {\r
-            return nullptr;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CheckViewParam showView err.");\r
+            return false;\r
         }\r
-        return SystemScrollView[ViewId];\r
-    }\r
 \r
-    void SystemView::NeedToUpdateImageinit(void)\r
-    {\r
-        if (NeedToUpdateImage == nullptr)\r
+        if (hideView < 0 || hideView > MAX_SYSTEMVIEWID)\r
         {\r
-            NeedToUpdateImage = new UIImageView();\r
-            if (NeedToUpdateImage == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemView");\r
-                return;\r
-            }\r
-            NeedToUpdateImage->SetPosition(323, 280, 20, 20);\r
-            NeedToUpdateImage->SetStyle(STYLE_BORDER_RADIUS, 200);\r
-            const char *imagesPath = "/user/res/system/SYSTEM_UPDATE_FLAG.bin";\r
-            NeedToUpdateImage->SetSrc(imagesPath);\r
-\r
-            SystemScrollView[SYSTEMVIEW]->Add(NeedToUpdateImage);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CheckViewParam hideView err.");\r
+            return false;\r
         }\r
-    }\r
 \r
-    void SystemView::OnStart()\r
-    {\r
-        View<SystemPresenter>::OnStart();\r
-        initView_ext(43, 120, 380, 100, 120, "/user/res/SETTING_NEXT.bin");\r
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SystemPresenter::GetInstance();\r
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+        return true;\r
     }\r
 \r
-    void SystemView::OnSetUpView()\r
+    // 切换视图\r
+    void SystemView::ChangeView(int16_t hideView, int16_t showView)\r
     {\r
-        View<SystemPresenter>::OnSetUpView();\r
-        if (SystemScrollView[SYSTEMVIEW] == nullptr)\r
+        if (!CheckViewParam(hideView, showView))\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: OnSetUpView  has nullptr");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CheckViewParam failed.");\r
             return;\r
         }\r
-\r
-        SystemScrollView[SYSTEMVIEW]->Add(Title);\r
-        int len = sizeof(ViewMapper_t) / sizeof(SystemViewMapper_ext);\r
-\r
-        for (int i = 0; i < len; i++)\r
-        {\r
-            SystemScrollView[SYSTEMVIEW]->Add(SystemViewButton[i]);\r
-        }\r
-        if (SystemUpdateModel::GetInstance().IsLatestVersion() == false) // 如果不是最新系统版本出现小圆点\r
-        {\r
-            NeedToUpdateImageinit();\r
-        }\r
-        RootView::GetInstance()->Add(SystemScrollView[SYSTEMVIEW]);\r
+        SystemScrollView[hideView]->SetVisible(false);\r
+        ClickFunc(showView);\r
+        SystemScrollView[showView]->SetVisible(true);\r
         Draw();\r
     }\r
 \r
-    void SystemView::OnTearDownView()\r
-    {\r
-\r
-        View<SystemPresenter>::OnTearDownView();\r
-        return;\r
-    }\r
-\r
-    void SystemView::OnStop()\r
+    UIScrollView *SystemView::GetSystemScrollView(int ViewId)\r
     {\r
-\r
-        View<SystemPresenter>::OnStop();\r
-        RootView::GetInstance()->ClearOnKeyActListener();\r
-        RootView::GetInstance()->RemoveAll();\r
-        return;\r
+        if (SystemScrollView[ViewId] == nullptr)\r
+        {\r
+            return nullptr;\r
+        }\r
+        return SystemScrollView[ViewId];\r
     }\r
 }
\ No newline at end of file
index 3f74213..16cbb1d 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang differ
index 69218bc..a245eb3 100644 (file)
@@ -487,7 +487,22 @@ enum UIResourceTextId : uint16_t {
     STR_AIMODES_CHATGPT = 474,\r
     STR_SLIDE_TO_SHUTDOWN = 475,\r
     STR_SLIDE_TO_REBOOT = 476,\r
-    STR_MAX_ID = 477,\r
+    STR_AI_FAMILY_MEALS = 477,\r
+    STR_CHAT = 478,\r
+    STR_PCY4GC_OR_AS = 479,\r
+    STR_API_KEYS = 480,\r
+    STR_PGTTAF = 481,\r
+    STR_DAFBS = 482,\r
+    STR_OPENAI_API_KEYS = 483,\r
+    STR_KHBB = 484,\r
+    STR_GTAS = 485,\r
+    STR_DYWTDAK = 486,\r
+    STR_CONNECTING = 487,\r
+    STR_CONNECTION_FAIL = 488,\r
+    STR_PTALORTM = 489,\r
+    STR_MOTION_DETECTION_NOTE = 490,\r
+    STR_PE4GC = 491,\r
+    STR_MAX_ID = 492,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index bd8dda9..ba8e460 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang differ