Merge #854 into sdk602patch0626 from refs/changes/854/head
author罗正 <1732036298@qq.com>
Mon, 2 Sep 2024 10:25:59 +0000 (10:25 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Mon, 2 Sep 2024 10:25:59 +0000 (10:25 +0000)
Code review from 罗正

* refs/changes/854/head: (25 commits squashed)

  - 秒表界面计数条数去掉数字0

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

  - 1.倒计时界面取消长亮屏,并在倒计时结束时添加一个亮屏5s操作
    2.优化自定义倒计时时间总时长文字不居中

  - 解决闹钟界面右滑容易退出问题

  - 补交闹钟少提交文件

  - 倒计时界面使用%02d解决计数少于两位数补零

  - 闹钟退出逻辑改为OnDragEnd

  - 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

  - 修复下拉界面关闭4g开关,而4G开关界面中没有同步关闭问题  #406

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

  - 天气动画改为Imageinfo保存和释放

  - AI语音优化修改:
    1.动画改为imageinfo创建和释放改善内存泄漏
    2.添加对应回应类型的错误弹窗

  - 查找手机和配对动画改成Imageinfo减少内存泄漏

  - 开机动画使用Imageinfo创建和释放,解决动画内存泄漏

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

  - 查找手机界面屏蔽未连接界面,与figma上设计统一

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

  - 查找手机界面UI优化,解决内存泄漏

  - 录音界面添加录音超出限制提醒弹窗,录音排序待优化

  - 绑定动画资源添加

  - 配对弹窗优化,添加一个动画,并适配多国语言

  - 解绑弹窗UI优化修改,适配多国语言

  - 解绑确认弹窗添加,并添加对应多国语言资源

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/854
168 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/fd230app/nativeui/findphone/src/FindPhoneView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingListAdapter.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingModel.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingNumLimitView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingView.h
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeleteView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordListView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingListAdapter.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingListitemView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingNumLimitView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPlayerView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingView.cpp
code/sdk/application/wearable/service/msg_center/include/notify/pairing_notification.h
code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ar.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/az.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/cs.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/de.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/el.lang
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/es.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/fa.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/fi.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/fr.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/he.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/hi.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/hr.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/id.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/it.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ja.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ko.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ms.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/nl.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/pl.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/pt.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ro.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ru.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/sv.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/th.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/tr.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/uk.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/uz.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/vi.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/1.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/10.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/11.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/12.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/13.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/14.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/15.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/16.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/17.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/18.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/19.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/2.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/20.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/21.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/22.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/23.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/24.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/25.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/3.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/4.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/5.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/6.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/7.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/8.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/9.bin [new file with mode: 0644]
tools/language_tool/Language_xml/input_list_ar.txt
tools/language_tool/Language_xml/input_list_az.txt
tools/language_tool/Language_xml/input_list_cs.txt
tools/language_tool/Language_xml/input_list_de.txt
tools/language_tool/Language_xml/input_list_el.txt
tools/language_tool/Language_xml/input_list_en.txt
tools/language_tool/Language_xml/input_list_es.txt
tools/language_tool/Language_xml/input_list_fa.txt
tools/language_tool/Language_xml/input_list_fi.txt
tools/language_tool/Language_xml/input_list_fr.txt
tools/language_tool/Language_xml/input_list_he.txt
tools/language_tool/Language_xml/input_list_hi.txt
tools/language_tool/Language_xml/input_list_hr.txt
tools/language_tool/Language_xml/input_list_id.txt
tools/language_tool/Language_xml/input_list_it.txt
tools/language_tool/Language_xml/input_list_ja.txt
tools/language_tool/Language_xml/input_list_ko.txt
tools/language_tool/Language_xml/input_list_ms.txt
tools/language_tool/Language_xml/input_list_nl.txt
tools/language_tool/Language_xml/input_list_pl.txt
tools/language_tool/Language_xml/input_list_pt.txt
tools/language_tool/Language_xml/input_list_ro.txt
tools/language_tool/Language_xml/input_list_ru.txt
tools/language_tool/Language_xml/input_list_sv.txt
tools/language_tool/Language_xml/input_list_th.txt
tools/language_tool/Language_xml/input_list_tr.txt
tools/language_tool/Language_xml/input_list_uk.txt
tools/language_tool/Language_xml/input_list_uz.txt
tools/language_tool/Language_xml/input_list_vi.txt
tools/language_tool/Language_xml/input_list_zh.txt
tools/language_tool/Language_xml/language_ar.xml
tools/language_tool/Language_xml/language_az.xml
tools/language_tool/Language_xml/language_cs.xml
tools/language_tool/Language_xml/language_custom.xlsx
tools/language_tool/Language_xml/language_de.xml
tools/language_tool/Language_xml/language_el.xml
tools/language_tool/Language_xml/language_en.xml
tools/language_tool/Language_xml/language_es.xml
tools/language_tool/Language_xml/language_fa.xml
tools/language_tool/Language_xml/language_fi.xml
tools/language_tool/Language_xml/language_fr.xml
tools/language_tool/Language_xml/language_he.xml
tools/language_tool/Language_xml/language_hi.xml
tools/language_tool/Language_xml/language_hr.xml
tools/language_tool/Language_xml/language_id.xml
tools/language_tool/Language_xml/language_it.xml
tools/language_tool/Language_xml/language_ja.xml
tools/language_tool/Language_xml/language_ko.xml
tools/language_tool/Language_xml/language_ms.xml
tools/language_tool/Language_xml/language_nl.xml
tools/language_tool/Language_xml/language_pl.xml
tools/language_tool/Language_xml/language_pt.xml
tools/language_tool/Language_xml/language_ro.xml
tools/language_tool/Language_xml/language_ru.xml
tools/language_tool/Language_xml/language_sv.xml
tools/language_tool/Language_xml/language_th.xml
tools/language_tool/Language_xml/language_tr.xml
tools/language_tool/Language_xml/language_uk.xml
tools/language_tool/Language_xml/language_uz.xml
tools/language_tool/Language_xml/language_vi.xml
tools/language_tool/Language_xml/language_zh.xml
tools/language_tool/font/ar.lang
tools/language_tool/font/az.lang
tools/language_tool/font/cs.lang
tools/language_tool/font/de.lang
tools/language_tool/font/el.lang
tools/language_tool/font/en.lang
tools/language_tool/font/es.lang
tools/language_tool/font/fa.lang
tools/language_tool/font/fi.lang
tools/language_tool/font/fr.lang
tools/language_tool/font/he.lang
tools/language_tool/font/hi.lang
tools/language_tool/font/hr.lang
tools/language_tool/font/id.lang
tools/language_tool/font/it.lang
tools/language_tool/font/ja.lang
tools/language_tool/font/ko.lang
tools/language_tool/font/ms.lang
tools/language_tool/font/nl.lang
tools/language_tool/font/pl.lang
tools/language_tool/font/pt.lang
tools/language_tool/font/ro.lang
tools/language_tool/font/ru.lang
tools/language_tool/font/sv.lang
tools/language_tool/font/th.lang
tools/language_tool/font/tr.lang
tools/language_tool/font/ui_resource_string.h
tools/language_tool/font/uk.lang
tools/language_tool/font/uz.lang
tools/language_tool/font/vi.lang
tools/language_tool/font/zh.lang

index c6f79f8..3bac645 100644 (file)
@@ -503,6 +503,7 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordingView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordingModel.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordingVolumeSettingView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordingNumLimitView.cpp
 
 
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rotate/src/RotateView.cpp   
index 0a38d64..4383724 100644 (file)
@@ -469,98 +469,100 @@ enum UIResourceTextId : uint16_t {
     STR_SEDENTARY_REMINDER = 456,\r
     STR_SEDENTARY_REMINDER_NOTE = 457,\r
     STR_SYSTEM_UPGRADING = 458,\r
-    STR_NEWDEVICE_BIND_REMIND_NOTE = 459,\r
-    STR_AI_VOICE = 460,\r
-    STR_AI_INTELLIGENT_ASSISTANT = 461,\r
-    STR_START_CHAT = 462,\r
-    STR_BOOT_FAILED = 463,\r
-    STR_ENABLE_MOBILE_DATA_FIRST = 464,\r
-    STR_ENABLE_BLUETOOTH_FIRST = 465,\r
-    STR_LISTENING = 466,\r
-    STR_FINISH_SPEAKING = 467,\r
-    STR_THINKING = 468,\r
-    STR_CANCEL = 469,\r
-    STR_CONNECT_TIMEOUT = 470,\r
-    STR_PLEASE_RESTART_CHAT = 471,\r
-    STR_CONTINUE_CHAT = 472,\r
-    STR_AIMODELS_DOUBAO = 473,\r
-    STR_AIMODES_WENXINYIYAN = 474,\r
-    STR_AIMODES_KIMI = 475,\r
-    STR_AIMODES_CHATGPT = 476,\r
-    STR_SLIDE_TO_SHUTDOWN = 477,\r
-    STR_SLIDE_TO_REBOOT = 478,\r
-    STR_AI_FAMILY_MEALS = 479,\r
-    STR_CHAT = 480,\r
-    STR_PCY4GC_OR_AS = 481,\r
-    STR_API_KEYS = 482,\r
-    STR_PGTTAF = 483,\r
-    STR_DAFBS = 484,\r
-    STR_OPENAI_API_KEYS = 485,\r
-    STR_KHBB = 486,\r
-    STR_GTAS = 487,\r
-    STR_DYWTDAK = 488,\r
-    STR_CONNECTING = 489,\r
-    STR_CONNECTION_FAIL = 490,\r
-    STR_PTALORTM = 491,\r
-    STR_MOTION_DETECTION_WALK_NOTE = 492,\r
-    STR_MOTION_DETECTION_RUN_NOTE = 493,\r
-    STR_MOTION_DETECTION_RIDE_NOTE = 494,\r
-    STR_MOTION_DETECTION_ROWING_NOTE = 495,\r
-    STR_MOTION_DETECTION_ELLIPTICAL_NOTE = 496,\r
-    STR_PE4GC = 497,\r
-    STR_OBU_MESSAGE = 498,\r
-    STR_DELETE = 499,\r
-    STR_CHARGE = 500,\r
-    STR_CHARGE_NOTE = 501,\r
-    STR_STEP_FREQUENCY = 502,\r
-    STR_STEP_LENGTH = 503,\r
-    STR_AVG_PACE = 504,\r
-    STR_TONGYI_QIANWEN = 505,\r
-    STR_IFLYTEK_SPARK = 506,\r
-    STR_DISTURBNOTE_OFF = 507,\r
-    STR_4G_NOTE = 508,\r
-    STR_MUSIC_PLAYER_SOURCE_NOTE = 509,\r
-    STR_MUSIC_LIST_IS_EMPTY = 510,\r
-    STR_BT_HEADSET_RESCAN = 511,\r
-    STR_BT_HEADSET_NOFOND = 512,\r
-    STR_SCHEDULE = 513,\r
-    STR_SCHEDULE_TITLE = 514,\r
-    STR_SCHEDULE_NO_DATA = 515,\r
-    STR_SCHEDULE_NO_DATA_PROMPT = 516,\r
-    STR_NO_PAIRED_DEV = 517,\r
-    STR_IGNORE = 518,\r
-    STR_START = 519,\r
-    STR_ARC_SCALE_LIST_DISPLAY = 520,\r
-    STR_COUNT_DOWN = 521,\r
-    STR_CUSTOM_TIME = 522,\r
-    STR_QUICK_START = 523,\r
-    STR_1_MIN = 524,\r
-    STR_5_MIN = 525,\r
-    STR_10_MIN = 526,\r
-    STR_30_MIN = 527,\r
-    STR_SET_COUNT_DOWN_NOTE = 528,\r
-    STR_COUNTDOWN_ENDS = 529,\r
-    STR_MAXIMUM_TIME_REACH_NOTE = 530,\r
-    STR_STOPWATCH_STOP_NOTE = 531,\r
-    STR_TMCHBR = 532,\r
-    STR_SCHEDULE_TOPIC = 533,\r
-    STR_SCHEDULE_TIME = 534,\r
-    STR_SCHEDULE_NOTES = 535,\r
-    STR_SCHEDULE_DELETE_PROMPT = 536,\r
-    STR_HANG_UP_OR_ANSWER = 537,\r
-    STR_WATCH_CALL = 538,\r
-    STR_PHONE_CALL = 539,\r
-    STR_STEPS_OF_THE_DAY = 540,\r
-    STR_MILEAGE = 541,\r
-    STR_FAT_BURNING_TIME = 542,\r
-    STR_NUMBER_OF_STANDS = 543,\r
-    STR_CONSUME_CALORIES = 544,\r
-    STR_GOAL_HINT = 545,\r
-    STR_SLEEPMODE = 546,\r
-    STR_SLEEP_MODE_PROMPT_ON = 547,\r
-    STR_LOW_POWER_NOTIF_1 = 548,\r
-    STR_LOW_POWER_NOTIF_2 = 549,\r
-    STR_MAX_ID = 550,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE1 = 459,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE2 = 460,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE3 = 461,\r
+    STR_AI_VOICE = 462,\r
+    STR_AI_INTELLIGENT_ASSISTANT = 463,\r
+    STR_START_CHAT = 464,\r
+    STR_BOOT_FAILED = 465,\r
+    STR_ENABLE_MOBILE_DATA_FIRST = 466,\r
+    STR_ENABLE_BLUETOOTH_FIRST = 467,\r
+    STR_LISTENING = 468,\r
+    STR_FINISH_SPEAKING = 469,\r
+    STR_THINKING = 470,\r
+    STR_CANCEL = 471,\r
+    STR_CONNECT_TIMEOUT = 472,\r
+    STR_PLEASE_RESTART_CHAT = 473,\r
+    STR_CONTINUE_CHAT = 474,\r
+    STR_AIMODELS_DOUBAO = 475,\r
+    STR_AIMODES_WENXINYIYAN = 476,\r
+    STR_AIMODES_KIMI = 477,\r
+    STR_AIMODES_CHATGPT = 478,\r
+    STR_SLIDE_TO_SHUTDOWN = 479,\r
+    STR_SLIDE_TO_REBOOT = 480,\r
+    STR_AI_FAMILY_MEALS = 481,\r
+    STR_CHAT = 482,\r
+    STR_PCY4GC_OR_AS = 483,\r
+    STR_API_KEYS = 484,\r
+    STR_PGTTAF = 485,\r
+    STR_DAFBS = 486,\r
+    STR_OPENAI_API_KEYS = 487,\r
+    STR_KHBB = 488,\r
+    STR_GTAS = 489,\r
+    STR_DYWTDAK = 490,\r
+    STR_CONNECTING = 491,\r
+    STR_CONNECTION_FAIL = 492,\r
+    STR_PTALORTM = 493,\r
+    STR_MOTION_DETECTION_WALK_NOTE = 494,\r
+    STR_MOTION_DETECTION_RUN_NOTE = 495,\r
+    STR_MOTION_DETECTION_RIDE_NOTE = 496,\r
+    STR_MOTION_DETECTION_ROWING_NOTE = 497,\r
+    STR_MOTION_DETECTION_ELLIPTICAL_NOTE = 498,\r
+    STR_PE4GC = 499,\r
+    STR_OBU_MESSAGE = 500,\r
+    STR_DELETE = 501,\r
+    STR_CHARGE = 502,\r
+    STR_CHARGE_NOTE = 503,\r
+    STR_STEP_FREQUENCY = 504,\r
+    STR_STEP_LENGTH = 505,\r
+    STR_AVG_PACE = 506,\r
+    STR_TONGYI_QIANWEN = 507,\r
+    STR_IFLYTEK_SPARK = 508,\r
+    STR_DISTURBNOTE_OFF = 509,\r
+    STR_4G_NOTE = 510,\r
+    STR_MUSIC_PLAYER_SOURCE_NOTE = 511,\r
+    STR_MUSIC_LIST_IS_EMPTY = 512,\r
+    STR_BT_HEADSET_RESCAN = 513,\r
+    STR_BT_HEADSET_NOFOND = 514,\r
+    STR_SCHEDULE = 515,\r
+    STR_SCHEDULE_TITLE = 516,\r
+    STR_SCHEDULE_NO_DATA = 517,\r
+    STR_SCHEDULE_NO_DATA_PROMPT = 518,\r
+    STR_NO_PAIRED_DEV = 519,\r
+    STR_IGNORE = 520,\r
+    STR_START = 521,\r
+    STR_ARC_SCALE_LIST_DISPLAY = 522,\r
+    STR_COUNT_DOWN = 523,\r
+    STR_CUSTOM_TIME = 524,\r
+    STR_QUICK_START = 525,\r
+    STR_1_MIN = 526,\r
+    STR_5_MIN = 527,\r
+    STR_10_MIN = 528,\r
+    STR_30_MIN = 529,\r
+    STR_SET_COUNT_DOWN_NOTE = 530,\r
+    STR_COUNTDOWN_ENDS = 531,\r
+    STR_MAXIMUM_TIME_REACH_NOTE = 532,\r
+    STR_STOPWATCH_STOP_NOTE = 533,\r
+    STR_TMCHBR = 534,\r
+    STR_SCHEDULE_TOPIC = 535,\r
+    STR_SCHEDULE_TIME = 536,\r
+    STR_SCHEDULE_NOTES = 537,\r
+    STR_SCHEDULE_DELETE_PROMPT = 538,\r
+    STR_HANG_UP_OR_ANSWER = 539,\r
+    STR_WATCH_CALL = 540,\r
+    STR_PHONE_CALL = 541,\r
+    STR_STEPS_OF_THE_DAY = 542,\r
+    STR_MILEAGE = 543,\r
+    STR_FAT_BURNING_TIME = 544,\r
+    STR_NUMBER_OF_STANDS = 545,\r
+    STR_CONSUME_CALORIES = 546,\r
+    STR_GOAL_HINT = 547,\r
+    STR_SLEEPMODE = 548,\r
+    STR_SLEEP_MODE_PROMPT_ON = 549,\r
+    STR_LOW_POWER_NOTIF_1 = 550,\r
+    STR_LOW_POWER_NOTIF_2 = 551,\r
+    STR_MAX_ID = 552,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index ab206ee..d9c1f37 100644 (file)
 #include "custom_runtime.h"\r
 #include "uiservice/include/ui_service.h"\r
 #include "power_display_service.h"\r
-#include "record/include/RecordingModel.h"\r
 #include <NativeAbility.h>\r
 #include "AppViewIDs.h"\r
 #include "player/include/PlayersView.h"\r
+#include "record/include/RecordingPlayerView.h"\r
 #ifdef __cplusplus\r
 extern "C"\r
 {\r
@@ -530,9 +530,13 @@ extern "C"
                 SendMsgToUIService(UI_UPDATE_PLAYERPROCESS, 0, nullptr, 0);\r
             }\r
         }\r
-        else if(OHOS::RecordingModel::GetInstance()->GetRecordingPlayerViewCreate())\r
+        else if(OHOS::RecordingPlayerView::GetInstance())\r
         {\r
-            SendMsgToUIService(UI_UPDATE_RECORDPROCESS, 0, nullptr, 0);\r
+            OHOS::UICheckBox::UICheckBoxState state = OHOS::RecordingPlayerView::GetInstance()->GetPlayerButtonState();\r
+            if(state == OHOS::UICheckBox::UICheckBoxState::SELECTED)\r
+            {\r
+                SendMsgToUIService(UI_UPDATE_RECORDPROCESS, 0, nullptr, 0);\r
+            }\r
         }\r
     }\r
 \r
index cde9568..758763a 100644 (file)
@@ -8,7 +8,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-27 10:47:46
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-31 16:40:57
+ * @LastEditTime: 2024-08-31 18:27:22
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/findphone/src/FindPhoneView.cpp
  */
 #include "findphone/include/FindPhoneView.h"
@@ -35,7 +35,6 @@ namespace OHOS
     FindPhoneView::~FindPhoneView()
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FindPhoneView::~FindPhoneView");
-        ClearAll();
         g_pFindPhoneView = nullptr;
     }
 
@@ -48,22 +47,30 @@ namespace OHOS
     {
         if (viewInitStatus == true)
         {
+            // UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
+            // UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
+            // FreeImageInfoArray(FindPhonePathsArray, FIND_PONE_IMAGE_SRC, FINDPHONE_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
+
+            if (container_ != nullptr)
+            {
+                container_->RemoveAll();
+                delete container_;
+                container_ = nullptr;
+            }
             if (FindPhoneGroupView != nullptr)
             {
                 FindPhoneGroupView->RemoveAll();
 
-                if (FindPhoneTitleLabel == nullptr)
+                if (FindPhoneTitleLabel != nullptr)
                 {
                     delete FindPhoneTitleLabel;
                     FindPhoneTitleLabel = nullptr;
                 }
-
                 if (FindPhoneImageView != nullptr)
                 {
                     delete FindPhoneImageView;
                     FindPhoneImageView = nullptr;
                 }
-
                 if (FindPhoneImageAnimator != nullptr)
                 {
                     FindPhoneImageAnimator->Stop();
@@ -72,21 +79,19 @@ namespace OHOS
                     // FreeImagePathsArray(FindPhonePathsArray, FINDPHONE_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
                     FreeImageInfoArray(FindPhonePathsArray, FIND_PONE_IMAGE_SRC, FINDPHONE_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
                 }
-
                 if (FindPhoneLabel != nullptr)
                 {
                     delete FindPhoneLabel;
                     FindPhoneLabel = nullptr;
                 }
-
                 if (FindPhoneLabelButton != nullptr)
                 {
                     delete FindPhoneLabelButton;
                     FindPhoneLabelButton = nullptr;
                 }
-
                 delete FindPhoneGroupView;
                 FindPhoneGroupView = nullptr;
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FindPhoneView::ClearAll over!!");
             }
         }
     }
@@ -106,6 +111,9 @@ namespace OHOS
             }
             FindPhoneGroupView->SetPosition(0, 0, 466, 466);
             FindPhoneGroupView->SetStyle(STYLE_BACKGROUND_OPA, 0);
+            FindPhoneGroupView->SetTouchable(true);
+            FindPhoneGroupView->SetDraggable(true);
+            FindPhoneGroupView->SetOnDragListener(presenter_);
             /* --------------------------- FindPhoneTitleLabel -------------------------- */
             FindPhoneTitleLabel = new UILabelExt();
             if (FindPhoneTitleLabel == nullptr)
@@ -161,13 +169,13 @@ namespace OHOS
             FindPhoneLabelButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));
             FindPhoneLabelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
             FindPhoneLabelButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
-            UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(FindPhonePresenter::GetInstance());
-            FindPhoneLabelButton->SetOnClickListener(clickListener);
+            FindPhoneLabelButton->SetOnClickListener(presenter_);
             /* ----------------------------------- Add ---------------------------------- */
             FindPhoneGroupView->Add(FindPhoneTitleLabel);
             FindPhoneGroupView->Add(FindPhoneImageView);
             FindPhoneGroupView->Add(FindPhoneLabel);
             FindPhoneGroupView->Add(FindPhoneLabelButton);
+            container_->Add(FindPhoneGroupView);
         }
         viewInitStatus = true;
     }
@@ -187,6 +195,9 @@ namespace OHOS
             }
             FindPhoneGroupView->SetPosition(0, 0, 466, 466);
             FindPhoneGroupView->SetStyle(STYLE_BACKGROUND_OPA, 0);
+            FindPhoneGroupView->SetTouchable(true);
+            FindPhoneGroupView->SetDraggable(true);
+            FindPhoneGroupView->SetOnDragListener(presenter_);
             /* --------------------------- FindPhoneTitleLabel -------------------------- */
             FindPhoneTitleLabel = new UILabelExt();
             if (FindPhoneTitleLabel == nullptr)
@@ -228,7 +239,6 @@ namespace OHOS
                 FindPhoneImageAnimator->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
                 FindPhoneImageAnimator->SetImageAnimatorSrc(FindPhoneImageInfo, FINDPHONE_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, FINDPHONE_IMAGE_ANIMATOR_VIEW_TIMEOFUPDATE);
                 FindPhoneImageAnimator->SetRepeat(true);
-                FindPhoneImageAnimator->Start();
             }
             /* ----------------------------- FindPhoneLabel ----------------------------- */
             FindPhoneLabel = new UILabelExt();
@@ -261,13 +271,13 @@ namespace OHOS
             FindPhoneLabelButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));
             FindPhoneLabelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
             FindPhoneLabelButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
-            UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(FindPhonePresenter::GetInstance());
-            FindPhoneLabelButton->SetOnClickListener(clickListener);
+            FindPhoneLabelButton->SetOnClickListener(presenter_);
             /* ----------------------------------- Add ---------------------------------- */
             FindPhoneGroupView->Add(FindPhoneTitleLabel);
             FindPhoneGroupView->Add(FindPhoneImageAnimator);
             FindPhoneGroupView->Add(FindPhoneLabel);
             FindPhoneGroupView->Add(FindPhoneLabelButton);
+            container_->Add(FindPhoneGroupView);
         }
         viewInitStatus = true;
     }
@@ -275,32 +285,41 @@ namespace OHOS
     void FindPhoneView::OnStart()
     {
         View<FindPhonePresenter>::OnStart();
+        // if (FindPhoneModel::GetInstance().GetBlueToothConnectedState() == true) // 判断蓝牙是否是连接状态
+        // {
+        //     FindPhoneViewInit_BlueToothConnected();
+        //     senfindphoneSend(FINDPHONE_START);
+        // }
+        // else
+        // {
+        //     FindPhoneViewInit_BlueToothDisConnected();
+        // }
+        SetContainerView(new UIViewGroup());
+        if (GetContainer() == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail!!");
+            return;
+        }
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+        container_->SetTouchable(true);
+        container_->SetDraggable(true);
 
-        if (FindPhoneModel::GetInstance().GetBlueToothConnectedState() == true) // 判断蓝牙是否是连接状态
+        if (!viewInitStatus)
         {
             FindPhoneViewInit_BlueToothConnected();
             senfindphoneSend(FINDPHONE_START);
+            viewInitStatus = true;
         }
-        else
-        {
-            FindPhoneViewInit_BlueToothDisConnected();
-        }
-
-        FindPhoneGroupView->SetTouchable(true);
-        FindPhoneGroupView->SetDraggable(true);
-        UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(FindPhonePresenter::GetInstance());
-        FindPhoneGroupView->SetOnDragListener(dragListener);
-
-        // 增加按键监听
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::FindPhonePresenter::GetInstance();
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);
     }
 
     void FindPhoneView::OnSetUpView()
     {
         View<FindPhonePresenter>::OnSetUpView();
-        RootView::GetInstance()->Add(FindPhoneGroupView);
-        container_ = FindPhoneGroupView;
+        if (FindPhoneImageAnimator)
+        {
+            FindPhoneImageAnimator->Start();
+        }
         Draw();
     }
 
@@ -313,8 +332,8 @@ namespace OHOS
     void FindPhoneView::OnStop()
     {
         View<FindPhonePresenter>::OnStop();
-        RootView::GetInstance()->RemoveAll();
         RootView::GetInstance()->ClearOnKeyActListener();
+        ClearAll();
         return;
     }
 }
\ No newline at end of file
index 08b37e7..38e3a50 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-26 09:44:39\r
+ * @LastEditTime: 2024-08-31 20:51:23\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h\r
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
  */\r
@@ -55,6 +55,7 @@ namespace OHOS
         UILabelExt *DeleteNameLabel{nullptr};\r
         UIButton *RECORD_DELETE_ON_BUTTON{nullptr};  // 是否删除录音:是\r
         UIButton *RECORD_DELETE_OFF_BUTTON{nullptr}; // 是否删除录音:否\r
+        std::string mergefileName;\r
     };\r
 } // namespace OHOS\r
 #endif
\ No newline at end of file
index adf226a..59bac81 100644 (file)
@@ -1,3 +1,11 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-05 15:20:03
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-31 20:19:31
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingListAdapter.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
 #ifndef RECORDING_LIST_ADAPTER_H
 #define RECORDING_LIST_ADAPTER_H
 
@@ -10,7 +18,7 @@ namespace OHOS
     typedef struct
     {
         int index;
-        const char *recordId;        // 录音编号
+        std::string recordId;        // 录音名
         const char *recordTotalTime; // 录音总时长
         const char *recordTime;      // 录音时间
     } RecordingListItem;
index 3a2e5aa..7494f18 100644 (file)
@@ -38,7 +38,7 @@ namespace OHOS
         RECORDER_RESPONSE_MAX,
     };
 
-#define MAX_RECORDING_NUM 20
+#define MAX_RECORDING_NUM 30
     typedef struct
     {
         char recordingFileName[32]; // 录音文件名
@@ -69,17 +69,17 @@ namespace OHOS
         void InitRecordingListItem();
         std::vector<RecordingListItem> &GetRecordinglistItems();
         std::string GetCurrentPlayRecordingName(void);
+        std::string GetCurrentPlayRecordingName(std::string name);
         int GetRecordingListNum();
         void SetRecordingListNum(int value);
         std::string GetCleanFileName(const std::string &filePath);
-        void SearchFiles(const std::string &directory, std::vector<std::string> &fileNames, int &mp3FileCount);
+        void SearchFiles(const std::string &directory, std::vector<RecordingListItem> &Recordings, int &mp3FileCount);
         void SetClickRecordingIndex(int index_);
         int GetClickRecordingIndex(void);
         std::vector<std::string> &GetFileNames(void);
         void SetTotalRecordDuration(std::string time);
         std::string GetTotalRecordDuration(void) const;
-        void SetRecordingInfo(RecordingInfo &info, int index);
-        void UpdateRecordingInfo(int index);
+        void UpdateRecordingInfo();
         void SetRecordFileName(std::string name);
         std::string GetRecordFileName(void);
         std::string Getyyyymmhhh_date(void);
@@ -95,12 +95,13 @@ namespace OHOS
         bool CreateRecordPlayDirectory(const char *path);
         const char *GetRecordDirectory() const;
         static std::string recordTempDuration; // 录音时长
-        int RecordDataWriteToFile();
-        int RecordDataReadToFile();
+        int RecordDataWriteToFile(std::string name);
+        int RecordDataReadToFile(std::string name);
+        void printfRecordData();
         void GetDuration(int64_t &duration);
         void UpdateRecordProcess();
-        bool GetRecordingPlayerViewCreate();
-        void SetRecordingPlayerViewCreate(bool state);
+        int getMaxRecordingNumber(void);
+        void setMaxRecordingNumber(int number);
 
     private:
         RecordingModel();
@@ -124,7 +125,7 @@ namespace OHOS
         bool isStopAndReset{false};                // 判断是否是停止还是重置状态
         bool audioInitStatus{false};
         /* -------------------------------------------------------------------------- */
-        std::vector<std::string> fileNames;                        // 文件名数组
+        std::vector<std::string> fileNames;                        // 录音文件名数组
         int RecordingMp3FileCount = 0;                             // 录音MP3数量
         const std::string directory = "/user/userdata/recording/"; // 录音目录
         const std::string recordInfoFile = "/user/userdata/recording/recordinfo.bin";
@@ -136,7 +137,10 @@ namespace OHOS
         char *yyyymmhhh_date;                 // 保存年月日时间
         std::string TotalRecordDuration;      // 保存录音的总时长
         std::string RecordingTimeAndDuration; // 录音日期和录音时长
-        RecordingInfo recordingInfo[MAX_RECORDING_NUM] = {0};
+        RecordingInfo info[MAX_RECORDING_NUM] = {0};
+        RecordingInfo recordingInfo{0};
+        std::string mergefileName;
+        int MaxRecordingNumber{0}; //要录取的最大录音编号
         /* -------------------------------------------------------------------------- */
         bool RecordingPlayerViewIsCreate{false};
     };
diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingNumLimitView.h b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingNumLimitView.h
new file mode 100644 (file)
index 0000000..16597fc
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-30 15:38:55
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-30 16:08:59
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingNumLimitView.h
+ */
+#ifndef _RECORDING_NUM_LIMIT_VIEW_
+#define _RECORDING_NUM_LIMIT_VIEW_
+#include "BaseView.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_image_view.h"
+#include "components/ui_button.h"
+
+namespace OHOS
+{
+    static constexpr const char *RECORDINGNUMLIMITVIEW = "RecordingNumLimitView";
+    static constexpr const char *RECORDINGNUMLIMITBUTTONVIEW = "RecordingNumLimitButtonView";
+    class RecordingNumLimitView
+    {
+    public:
+        struct LabelConfig
+        {
+            int16_t left;
+            int16_t top;
+            int16_t width;
+            int16_t height;
+            int16_t fontSize;      // 字体大小
+            int16_t lineHeigh;     // 行高
+            int16_t textId;        // 文本id
+            uint8_t lineBreakMode; // 断行模式。
+        };
+        RecordingNumLimitView();
+        ~RecordingNumLimitView();
+        UIScrollView *RecordingNumLimitViewInit(void);
+
+    private:
+        UILabelExt *CreateRecordingNumLimitLabel(LabelConfig &labelconfig); // 设置标签
+        void ClearAll(void);
+        UIScrollView *scrollView{nullptr};
+        UILabelExt *title{nullptr};
+        UIImageView *image{nullptr};
+        UILabelExt *note{nullptr};
+        UILabelExt *goitlabel{nullptr};
+        UIButton *goitbutton{nullptr};
+    };
+
+}
+#endif
index 27dc2fc..ec20a1c 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-28 14:45:22\r
+ * @LastEditTime: 2024-08-30 16:16:24\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingView.h\r
  */\r
 #ifndef RECORD_VIEW_H\r
@@ -24,6 +24,7 @@
 #include "record/include/RecordingPlayerView.h"\r
 #include "record/include/RecordDeleteView.h"\r
 #include "record/include/RecordingVolumeSettingView.h"\r
+#include "record/include/RecordingNumLimitView.h"\r
 \r
 namespace OHOS\r
 {\r
@@ -35,6 +36,7 @@ namespace OHOS
         RECORDINGPLAYERVIEW,        // 录音播放视图(subView)\r
         RECORDINGDELETEVIEW,        // 录音删除视图(subView)\r
         RECORDINGVOLUMESETTINGVIEW, // 声音设置视图(subView)\r
+        RECORDINGEXCELIMIT,         // 录音数量超出限制(subView)\r
         MAX_RECORDINGVIEWID,\r
     } RECORDINGVIEWID;\r
 \r
@@ -62,9 +64,10 @@ namespace OHOS
         bool ChangeRecordingPlayerView(int16_t thisView);     // 切换到“录音播放”视图\r
         bool ChangeRecordDeleteView(int16_t thisView);        // 切换到“录音删除”视图\r
         bool ChangeRecordVolumeSettingView(int16_t thisView); // 切换到“声音设置”视图\r
+        bool ChangeRecordNumLimitView(int16_t thisView);      // 切换到“录音超出限制”视图\r
         bool ClickFunc(int16_t interface);\r
         void ChangeView(int16_t hideView, int16_t showView);\r
-        int GetCurrentViewType(UIScrollView * view);\r
+        int GetCurrentViewType(UIScrollView *view);\r
         UIScrollView *GetRecordingViewScrollView(int index);\r
 \r
     public:\r
@@ -79,6 +82,7 @@ namespace OHOS
         RecordingPlayerView *p_RecordingPlayerView{nullptr};\r
         RecordDeleteView *p_RecordDeleteView{nullptr};\r
         RecordingVolumeSettingView *p_RecordingVolumeSettingView{nullptr};\r
+        RecordingNumLimitView *p_RecordingNumLimitView{nullptr};\r
 \r
     private:\r
         bool RecordingScrollViewInit(void);\r
index 8f6ae54..7e184ee 100644 (file)
@@ -1,7 +1,9 @@
 #include "record/include/RecordDeleteView.h"\r
 #include "record/include/RecordingPresenter.h"\r
+#include "record/include/RecordingModel.h"\r
 #include "wearable_log.h"\r
 #include "ui_resource_string.h"\r
+#include "ConfigModel.h"\r
 namespace OHOS\r
 {\r
     static RecordDeleteView *g_pRecordDeleteView{nullptr};\r
@@ -225,7 +227,8 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteViewInit::SetRecordDeleteName");\r
         if (DeleteNameLabel)\r
         {\r
-            DeleteNameLabel->SetText(name);\r
+            mergefileName = RecordingModel::GetInstance()->GetCurrentPlayRecordingName(name);\r
+            DeleteNameLabel->SetText(mergefileName.c_str());\r
             DeleteNameLabel->Invalidate();\r
         }\r
     }\r
index 3cde41b..ef4c677 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-27 09:16:50\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-27 14:38:37\r
+ * @LastEditTime: 2024-09-02 09:57:10\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordListView.cpp\r
  */\r
 \r
@@ -285,7 +285,7 @@ namespace OHOS
         recordList->SetDragACCLevel(5);\r
         recordList->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/\r
         recordList->SetReboundSize(30);\r
-        recordList->SetScrollBlankSize(30);\r
+        // recordList->SetScrollBlankSize(30);\r
         recordList->SetIntercept(true); // 设置是否拦截输入事件。如果被截获,视图在本地处理后不会将输入事件传递给父视图。\r
         recordList->SetAdapter(p_RecordingListAdapter);\r
         RecordListScrollView->Add(recordList);\r
index 29f7df8..e8cebf9 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-05 15:20:03
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-31 09:26:00
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingListAdapter.cpp
+ */
 #include "record/include/RecordingListAdapter.h"
 #include "record/include/RecordingListitemView.h"
 namespace OHOS
@@ -68,13 +75,14 @@ namespace OHOS
         if (inView == nullptr)
         {
             item = new RecordingListitemView();
-                }
+        }
         else
         {
             item = static_cast<RecordingListitemView *>(inView);
         }
         item->SetItemInfo(itemData);
         item->SetOnClickListener(itemClickListener);
+        item->SetViewIndex(index);
         return item;
     }
 
index 052e924..cc773de 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-02 20:10:18
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-24 17:40:14
+ * @LastEditTime: 2024-08-31 20:19:43
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingListitemView.cpp
  */
 #include "record/include/RecordingListitemView.h"
@@ -38,7 +38,7 @@ namespace OHOS
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingListitemView::SetItemInfo");
         m_ItemInfo = itemInfo;
-        m_recordId.SetText(itemInfo.recordId);
+        m_recordId.SetText(itemInfo.recordId.c_str());
         m_recordTotalTime.SetText(itemInfo.recordTotalTime);
         m_recordTime.SetText(itemInfo.recordTime);
     }
@@ -70,7 +70,8 @@ namespace OHOS
 
     int RecordingListitemView::GetRecordingListIndex()
     {
-        return m_ItemInfo.index;
+        // return m_ItemInfo.index;
+        return GetViewIndex();
     }
 
 }
\ No newline at end of file
index 9897afa..54beb2e 100644 (file)
@@ -12,6 +12,7 @@
 #include <cstring>
 #include <unistd.h>
 #include <sys/stat.h>
+#include "ConfigModel.h"
 namespace OHOS
 {
     std::string RecordingModel::recordTempDuration = 0;
@@ -504,7 +505,7 @@ namespace OHOS
      * @param -mp3FileCount 录音文件数量
      * @return void
      */
-    void RecordingModel::SearchFiles(const std::string &directory, std::vector<std::string> &fileNames, int &mp3FileCount)
+    void RecordingModel::SearchFiles(const std::string &directory, std::vector<RecordingListItem> &Recordings, int &mp3FileCount)
     {
         DIR *dir;
         struct dirent *ent;
@@ -521,14 +522,17 @@ namespace OHOS
                         std::string cleanFileName = GetCleanFileName(filePath);
                         if (!cleanFileName.empty())
                         {
+                            RecordDataReadToFile(cleanFileName.c_str());
+                            strcpy(info[mp3FileCount].recordingFileName, recordingInfo.recordingFileName);
+                            strcpy(info[mp3FileCount].recordingDuration, recordingInfo.recordingDuration);
+                            strcpy(info[mp3FileCount].recordingTime, recordingInfo.recordingTime);
                             mp3FileCount++;
-                            fileNames.push_back(cleanFileName);
                         }
                     }
                     else if (ent->d_type == DT_DIR) // 目录
                     {
                         std::string subDirectory = directory + fileName + "/";
-                        SearchFiles(subDirectory, fileNames, mp3FileCount); // 递归搜索子目录
+                        SearchFiles(subDirectory, Recordings, mp3FileCount); // 递归搜索子目录
                     }
                 }
             }
@@ -542,35 +546,38 @@ namespace OHOS
     void RecordingModel::InitRecordingListItem(void)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingModel::InitRecordingListItem");
-        RecordingMp3FileCount = 0;
+        if (!Recordings.empty())
+        {
+            Recordings.clear();
+        }
         if (!fileNames.empty())
         {
             fileNames.clear();
         }
-        if (!Recordings.empty())
+        for (int i = 0; i < RecordingMp3FileCount; ++i)
         {
-            Recordings.clear();
+            memset(info[i].recordingFileName, 0, sizeof(info[i].recordingFileName));
+            memset(info[i].recordingDuration, 0, sizeof(info[i].recordingDuration));
+            memset(info[i].recordingTime, 0, sizeof(info[i].recordingTime));
         }
-        SearchFiles(directory, fileNames, RecordingMp3FileCount);
-        RecordDataReadToFile();
+        RecordingMp3FileCount = 0;
+        SearchFiles(directory, Recordings, RecordingMp3FileCount);
         if (RecordingMp3FileCount != 0)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Total .mp3 Files Count:%d", RecordingMp3FileCount);
-            for (const auto &filename : fileNames)
+            MaxRecordingNumber = atoi(info[0].recordingFileName);
+            for (int i = 1; i < RecordingMp3FileCount; i++)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "File Name::%s", filename.c_str());
+                if (atoi(info[i].recordingFileName) > MaxRecordingNumber)
+                {
+                    MaxRecordingNumber = atoi(info[i].recordingFileName);
+                }
             }
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MaxRecordingNumber:%d", MaxRecordingNumber);
             // 对 Recordings 数组进行操作
             for (int i = 0; i < RecordingMp3FileCount; i++)
             {
-                for (int j = 0; j < RecordingMp3FileCount; j++)
-                {
-                    if (fileNames[i] == recordingInfo[j].recordingFileName)
-                    {
-                        Recordings.push_back({i, recordingInfo[j].recordingFileName, recordingInfo[j].recordingDuration, recordingInfo[j].recordingTime});
-                        break;
-                    }
-                }
+                Recordings.push_back({i, GetCurrentPlayRecordingName(info[i].recordingFileName), info[i].recordingDuration, info[i].recordingTime});
             }
         }
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::InitRecordingListItem over!!");
@@ -591,7 +598,41 @@ namespace OHOS
      */
     std::string RecordingModel::GetCurrentPlayRecordingName(void)
     {
-        return fileNames[GetClickRecordingIndex()];
+        return info[GetClickRecordingIndex()].recordingFileName;
+    }
+
+    std::string RecordingModel::GetCurrentPlayRecordingName(std::string name)
+    {
+        int language = ConfigModel::GetInstance()->GetLanguage();
+        if (language == 0) // 如果当前系统为中文
+        {
+            mergefileName = "录音 ";
+            mergefileName += name;
+        }
+        else
+        {
+            mergefileName = "Audio ";
+            mergefileName += name;
+        }
+        return mergefileName;
+    }
+
+    /*
+     * @brief 获取年月日时间和录音时长
+     */
+    std::string &RecordingModel::Getyyyymmhhh_dateAndTotalRecordDuration(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[RecordingModel] Getyyyymmhhh_dateAndTotalRecordDuration");
+        std::string yyyymmhhh_date = Recordings[GetClickRecordingIndex()].recordTime;
+        std::string TotalRecordDuration = Recordings[GetClickRecordingIndex()].recordTotalTime;
+        // 去掉日期字符串末尾的换行符
+        if (!yyyymmhhh_date.empty() && yyyymmhhh_date.back() == '\n')
+        {
+            yyyymmhhh_date.erase(yyyymmhhh_date.length() - 1);
+        }
+        RecordingTimeAndDuration = (yyyymmhhh_date + "-" + TotalRecordDuration);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordTime = %s recordTotalTime = %s", yyyymmhhh_date.c_str(), TotalRecordDuration.c_str());
+        return RecordingTimeAndDuration;
     }
 
     /*
@@ -607,6 +648,11 @@ namespace OHOS
     void RecordingModel::SetRecordingListNum(int value)
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::GetRecordingListNum %d", value);
+        if (value > MAX_RECORDING_NUM)
+        {
+            RecordingMp3FileCount = MAX_RECORDING_NUM;
+            return;
+        }
         RecordingMp3FileCount = value;
     }
 
@@ -671,41 +717,18 @@ namespace OHOS
         return yyyymmhhh_date;
     }
 
-    // 设置每首录音的信息:包含录音文件名,录音时长,录音时间
-    void RecordingModel::SetRecordingInfo(RecordingInfo &info, int index)
+    void RecordingModel::UpdateRecordingInfo()
     {
-        recordingInfo[index] = info;
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingFileName = %s", recordingInfo[index].recordingFileName);
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingDuration = %s", recordingInfo[index].recordingDuration);
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingTime = %s", recordingInfo[index].recordingTime);
-    }
-
-    void RecordingModel::UpdateRecordingInfo(int index)
-    {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateRecordingInfo %s", recordingInfo[index].recordingFileName);
         if (index < 0 || index > RecordingMp3FileCount)
         {
             return;
         }
-        char *file_name = recordingInfo[index].recordingFileName;
-        std::string delete_filename = (directory + file_name).append(".mp3");
+        std::string delete_filename_mp3 = (directory + GetCurrentPlayRecordingName()).append(".mp3");
+        std::string delete_filename_txt = (directory + GetCurrentPlayRecordingName()).append(".txt");
         /* -------------------------------- 删除录音文件 -------------------------------- */
-        uapi_delete_files(delete_filename.c_str());
+        uapi_delete_files(delete_filename_mp3.c_str());
+        uapi_delete_files(delete_filename_txt.c_str());
         /* -------------------------------------------------------------------------- */
-        int i = 0;
-        for (i = index; i < (RecordingMp3FileCount - 1); i++)
-        {
-            strcpy(recordingInfo[i].recordingFileName, recordingInfo[i + 1].recordingFileName);
-            strcpy(recordingInfo[i].recordingDuration, recordingInfo[i + 1].recordingDuration);
-            strcpy(recordingInfo[i].recordingTime, recordingInfo[i + 1].recordingTime);
-
-            fileNames[i] = fileNames[i + 1];
-        }
-        RecordingMp3FileCount--;
-        RecordingInfo info = {0};
-        SetRecordingInfo(info, i);
-        fileNames[i].clear();
-        RecordDataWriteToFile();
     }
 
     // 设置当前的录音文件名,每次录音会更改
@@ -720,24 +743,6 @@ namespace OHOS
         return recordFileName;
     }
 
-    /*
-     * @brief 获取年月日时间和录音时长
-     */
-    std::string &RecordingModel::Getyyyymmhhh_dateAndTotalRecordDuration(void)
-    {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[RecordingModel] Getyyyymmhhh_dateAndTotalRecordDuration");
-        std::string yyyymmhhh_date = Getyyyymmhhh_date();
-        std::string TotalRecordDuration = recordingInfo[RecordingMp3FileCount - index - 1].recordingDuration;
-        // 去掉日期字符串末尾的换行符
-        if (!yyyymmhhh_date.empty() && yyyymmhhh_date.back() == '\n')
-        {
-            yyyymmhhh_date.erase(yyyymmhhh_date.length() - 1);
-        }
-        RecordingTimeAndDuration = (yyyymmhhh_date + "-" + TotalRecordDuration);
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingTimeAndDuration %s", RecordingTimeAndDuration.c_str());
-        return RecordingTimeAndDuration;
-    }
-
     void RecordingModel::GetDuration(int64_t &duration)
     {
         duration = DurationTime;
@@ -751,13 +756,14 @@ namespace OHOS
         }
     }
 
-    bool RecordingModel::GetRecordingPlayerViewCreate()
+    int RecordingModel::getMaxRecordingNumber(void)
     {
-        return RecordingPlayerViewIsCreate;
+        return MaxRecordingNumber;
     }
-    void RecordingModel::SetRecordingPlayerViewCreate(bool state)
+
+    void RecordingModel::setMaxRecordingNumber(int number)
     {
-        RecordingPlayerViewIsCreate = state;
+        MaxRecordingNumber = number;
     }
 
     /*创建录音播放路径*/
@@ -786,49 +792,65 @@ namespace OHOS
         return directory.c_str();
     }
 
-    int RecordingModel::RecordDataWriteToFile()
+    // 保存录音信息文件
+    int RecordingModel::RecordDataWriteToFile(std::string name)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile,%d", __LINE__, RecordingMp3FileCount);
-        if (0 == RecordingMp3FileCount)
+        if (name.empty())
         {
             return OHOS_FAILURE;
         }
-
-        FILE *fp = fopen(recordInfoFile.c_str(), "wb+");
+        name = directory + name.append(".txt");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile %s", __LINE__, name.c_str());
+        FILE *fp = fopen(name.c_str(), "wb+");
         if (nullptr == fp)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile fail", __LINE__);
             return OHOS_FAILURE;
         }
 
-        size_t ret = fwrite(recordingInfo, sizeof(RecordingInfo), RecordingMp3FileCount, fp);
-        if (RecordingMp3FileCount != ret)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile fail", __LINE__);
-        }
+        std::string recordingFileName = GetRecordFileName();                  // 录音文件名
+        std::string yyymmhhh_date = Getyyyymmhhh_date();                      // 保存录音年月日时间
+        std::string TotalRecordDuration = RecordingModel::recordTempDuration; // 录音的总时长
+        recordingInfo = {0};
+        strncpy_s(recordingInfo.recordingFileName, 32, recordingFileName.c_str(), recordingFileName.length());
+        strncpy_s(recordingInfo.recordingDuration, 16, TotalRecordDuration.c_str(), TotalRecordDuration.length());
+        strncpy_s(recordingInfo.recordingTime, 16, yyymmhhh_date.c_str(), yyymmhhh_date.length());
+
+        size_t ret = fwrite((void *)&recordingInfo, sizeof(RecordingInfo), 1, fp);
         fclose(fp);
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile success", __LINE__);
 
         return OHOS_SUCCESS;
     }
 
-    int RecordingModel::RecordDataReadToFile()
+    // 读取录音信息文件
+    int RecordingModel::RecordDataReadToFile(std::string name)
     {
-        if (0 == RecordingMp3FileCount)
+        if (name.empty())
         {
             return OHOS_FAILURE;
         }
-        FILE *fp = fopen(recordInfoFile.c_str(), "rb");
+        name = directory + name.append(".txt");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataReadToFile %s", __LINE__, name.c_str());
+        FILE *fp = fopen(name.c_str(), "rb");
         if (fp == nullptr)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataReadToFile", __LINE__);
             return OHOS_FAILURE;
         }
-        fread(recordingInfo, sizeof(RecordingInfo), RecordingMp3FileCount, fp);
+        fread((void *)&recordingInfo, sizeof(RecordingInfo), 1, fp);
+        printfRecordData();
         fclose(fp);
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataReadToFile success", __LINE__);
         return OHOS_SUCCESS;
     }
+
+    void RecordingModel::printfRecordData()
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingFileName %s", recordingInfo.recordingFileName);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingDuration %s", recordingInfo.recordingDuration);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingTime %s", recordingInfo.recordingTime);
+    }
     /* ----------------------------------- 定时器 ---------------------------------- */
     // 声明定时器变量
     osTimerId_t g_timer = NULL;
diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingNumLimitView.cpp b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingNumLimitView.cpp
new file mode 100644 (file)
index 0000000..1cf98c5
--- /dev/null
@@ -0,0 +1,192 @@
+#include "record/include/RecordingNumLimitView.h"
+#include "wearable_log.h"
+#include "record/include/RecordingPresenter.h"
+namespace OHOS
+{
+
+    RecordingNumLimitView::RecordingNumLimitView()
+    {
+    }
+
+    RecordingNumLimitView::~RecordingNumLimitView()
+    {
+        ClearAll();
+    }
+
+    void RecordingNumLimitView::ClearAll(void)
+    {
+        if (scrollView != nullptr)
+        {
+            scrollView->RemoveAll();
+            if (title)
+            {
+                delete title;
+                title = nullptr;
+            }
+            if (image)
+            {
+                delete image;
+                image = nullptr;
+            }
+            if (note)
+            {
+                delete note;
+                note = nullptr;
+            }
+            if (goitlabel)
+            {
+                delete goitlabel;
+                goitlabel = nullptr;
+            }
+            if (goitbutton)
+            {
+                delete goitbutton;
+                goitbutton = nullptr;
+            }
+            delete scrollView;
+            scrollView = nullptr;
+        }
+    }
+
+    UILabelExt *RecordingNumLimitView::CreateRecordingNumLimitLabel(LabelConfig &labelconfig)
+    {
+        UILabelExt *label = new UILabelExt();
+        if (label == nullptr)
+        {
+            return nullptr;
+        }
+        label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小
+        label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize);                                       // 字体大小
+        label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh);                                    // 字体行高
+        label->SetTextId(labelconfig.textId);
+        label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。
+        label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+        label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);
+        return label;
+    }
+
+    UIScrollView *RecordingNumLimitView::RecordingNumLimitViewInit(void)
+    {
+        if (scrollView == nullptr)
+        {
+            scrollView = new UIScrollView();
+            if (scrollView == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView new fail!");
+                return nullptr;
+            }
+            scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+            UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());
+            if (draglistener == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "draglistener can not be nullptr!");
+                return nullptr;
+            }
+            scrollView->SetViewId(RECORDINGNUMLIMITVIEW);
+            scrollView->SetOnDragListener(draglistener);
+            scrollView->SetTouchable(true);
+            scrollView->SetDraggable(true);
+            /* -------------------------------------------------------------------------- */
+            LabelConfig labelconfig = {
+                .left = 83,
+                .top = 50,
+                .width = 300,
+                .height = 35,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .textId = STR_RECORDER,
+                .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,
+            };
+            if (title == nullptr)
+            {
+                title = CreateRecordingNumLimitLabel(labelconfig);
+                if (title == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "title can not be nullptr!");
+                    return nullptr;
+                }
+                scrollView->Add(title);
+            }
+            /* -------------------------------------------------------------------------- */
+            if (image == nullptr)
+            {
+                image = new UIImageView();
+                if (image == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "image can not be nullptr!");
+                    return nullptr;
+                }
+                image->SetPosition(193, 120, 80, 80);
+                image->SetSrc(PNG_ATTENTION_IMAGE);
+                scrollView->Add(image);
+            }
+            /* -------------------------------------------------------------------------- */
+            labelconfig = {
+                .left = 53,
+                .top = 222,
+                .width = 360,
+                .height = 70,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .textId = STR_VOICE_RECORDING_REMINDER_NOTE, // 录音数量不得超过30首,请删除已有录音
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            if (note == nullptr)
+            {
+                note = CreateRecordingNumLimitLabel(labelconfig);
+                if (note == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "note can not be nullptr!");
+                    return nullptr;
+                }
+                scrollView->Add(note);
+            }
+            /* -------------------------------------------------------------------------- */
+            if (goitbutton == nullptr)
+            {
+                goitbutton = new UIButton();
+                if (goitbutton == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "goitbutton can not be nullptr!");
+                    return nullptr;
+                }
+                goitbutton->SetPosition(93, note->GetY() + note->GetTextHeight() + 48, 280, 90);
+                goitbutton->SetViewId(RECORDINGNUMLIMITBUTTONVIEW);
+                goitbutton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+                goitbutton->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+                goitbutton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff383838, UIButton::PRESSED);
+                UIView::OnClickListener *clicilistener = static_cast<UIView::OnClickListener *>(RecordingPresenter::GetInstance());
+                if (clicilistener == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clicilistener can not be nullptr!");
+                    return nullptr;
+                }
+                goitbutton->SetOnClickListener(clicilistener);
+                scrollView->Add(goitbutton);
+            }
+            /* -------------------------------------------------------------------------- */
+            int16_t y = goitbutton->GetY() + 28;
+            labelconfig = {
+                .left = 133,
+                .top = y,
+                .width = 200,
+                .height = 35,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .textId = STR_KONW, // 知道了
+                .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,
+            };
+            if (goitlabel == nullptr)
+            {
+                goitlabel = CreateRecordingNumLimitLabel(labelconfig);
+                if (goitlabel == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "goitlabel can not be nullptr!");
+                    return nullptr;
+                }
+                scrollView->Add(goitlabel);
+            }
+        }
+        return scrollView;
+    }
+}
\ No newline at end of file
index bdf785b..dce388f 100644 (file)
@@ -386,6 +386,13 @@ namespace OHOS
     {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[RecordingPlayerView] ResetComponentStatus");\r
 \r
+        RecordingModel *p_RecordingModel = RecordingModel::GetInstance();\r
+        if (p_RecordingModel == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::GetInstance fail!!");\r
+            return;\r
+        }\r
+\r
         if (PlayerProgressBar != nullptr)\r
         {\r
             PlayerProgressBar->SetValue(0); // 0:进度0%\r
@@ -393,7 +400,8 @@ namespace OHOS
         }\r
         if (RecordingFileName != nullptr)\r
         {\r
-            RecordingFileName->SetText(RecordingModel::GetInstance()->GetCurrentPlayRecordingName().c_str());\r
+            std::string name = p_RecordingModel->GetCurrentPlayRecordingName();\r
+            RecordingFileName->SetText(p_RecordingModel->GetCurrentPlayRecordingName(name).c_str());\r
             RecordingFileName->Invalidate();\r
         }\r
         if (RecordingTimeAndDuration != nullptr)\r
index 09b010e..86e63f7 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-28 15:41:29\r
+ * @LastEditTime: 2024-09-02 09:47:40\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp\r
  */\r
 \r
@@ -69,7 +69,6 @@ namespace OHOS
         Presenter<RecordingView>::OnStop();\r
         p_RecordingModel->ClearRecordingPlayer();\r
         StopRecord();\r
-        RecordingModel::GetInstance()->SetRecordingPlayerViewCreate(false);\r
         // ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);\r
     }\r
 \r
@@ -118,6 +117,9 @@ namespace OHOS
             case RECORDINGVOLUMESETTINGVIEW:\r
                 p_RecordingView->ChangeView(RECORDINGVOLUMESETTINGVIEW, RECORDINGPLAYERVIEW); // 声音设置视图(subView)->录音播放视图(subView)\r
                 break;\r
+            case RECORDINGEXCELIMIT:\r
+                p_RecordingView->ChangeView(RECORDINGEXCELIMIT, RECORDINGVIEW);\r
+                break;\r
             default:\r
                 break;\r
             }\r
@@ -181,16 +183,17 @@ namespace OHOS
         }\r
         args[5] = (char *)malloc(100); // 分配内存\r
         /* -------------------------------------------------------------------------- */\r
-        int num = p_RecordingModel->GetRecordingListNum();\r
+        int num = p_RecordingModel->getMaxRecordingNumber();\r
         std::string recordfileNme;\r
-        if (num < 9)\r
-        {\r
-            recordfileNme = "record_0" + std::to_string(num + 1);\r
-        }\r
-        else\r
-        {\r
-            recordfileNme = "record_" + std::to_string(num + 1);\r
-        }\r
+        // if (num < 9)\r
+        // {\r
+        //     recordfileNme = "record_0" + std::to_string(num + 1);\r
+        // }\r
+        // else\r
+        // {\r
+        //     recordfileNme = "record_" + std::to_string(num + 1);\r
+        // }\r
+        recordfileNme = std::to_string(num + 1);\r
         p_RecordingModel->SetRecordFileName(recordfileNme);\r
         sprintf(args[5], "%s%s.mp3", RecordingModel::GetInstance()->GetRecordDirectory(), recordfileNme.c_str());\r
         /* ---------------------------------- 开始录音 ---------------------------------- */\r
@@ -215,18 +218,18 @@ namespace OHOS
         AudioCaptureSample(argc, (const char **)&argv);\r
         /* ---------------------------------- 停止定时器 --------------------------------- */\r
         p_RecordingModel->Recording_StopTimer();\r
+        /* --------------------------------- 录音数量加1 --------------------------------- */\r
+        p_RecordingModel->SetRecordingListNum(p_RecordingModel->GetRecordingListNum() + 1);\r
         /* --------------------------------- 设置录音信息 --------------------------------- */\r
-        int index = p_RecordingModel->GetRecordingListNum();                            // 保存录音的下标\r
-        std::string recordingFileName = p_RecordingModel->GetRecordFileName();          // 录音文件名\r
-        std::string yyymmhhh_date = RecordingModel::GetInstance()->Getyyyymmhhh_date(); // 保存录音年月日时间\r
-        std::string TotalRecordDuration = RecordingModel::recordTempDuration;           // 录音的总时长\r
-        RecordingInfo info = {0};\r
-        strncpy_s(info.recordingFileName, 32, recordingFileName.c_str(), recordingFileName.length());\r
-        strncpy_s(info.recordingDuration, 16, TotalRecordDuration.c_str(), TotalRecordDuration.length());\r
-        strncpy_s(info.recordingTime, 16, yyymmhhh_date.c_str(), yyymmhhh_date.length());\r
-        p_RecordingModel->SetRecordingInfo(info, index);\r
-        p_RecordingModel->SetRecordingListNum(index + 1);\r
-        p_RecordingModel->RecordDataWriteToFile();\r
+        // int num = p_RecordingModel->GetRecordingListNum();                              // 保存录音的下标\r
+        std::string recordingFileName = p_RecordingModel->GetRecordFileName(); // 录音文件名\r
+        // std::string yyymmhhh_date = RecordingModel::GetInstance()->Getyyyymmhhh_date(); // 保存录音年月日时间\r
+        // std::string TotalRecordDuration = RecordingModel::recordTempDuration;           // 录音的总时长\r
+        // RecordingInfo info = {0};\r
+        // strncpy_s(info.recordingFileName, 32, recordingFileName.c_str(), recordingFileName.length());\r
+        // strncpy_s(info.recordingDuration, 16, TotalRecordDuration.c_str(), TotalRecordDuration.length());\r
+        // strncpy_s(info.recordingTime, 16, yyymmhhh_date.c_str(), yyymmhhh_date.length());\r
+        p_RecordingModel->RecordDataWriteToFile(recordingFileName.c_str());\r
 \r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView StopRecord over!!");\r
     }\r
@@ -242,6 +245,11 @@ namespace OHOS
 \r
         if (strcmp(view.GetViewId(), RECORD_BUTTON) == 0)\r
         {\r
+            if (p_RecordingModel->GetRecordingListNum() >= MAX_RECORDING_NUM)\r
+            {\r
+                view_->ChangeView(RECORDINGVIEW, RECORDINGEXCELIMIT);\r
+                return true;\r
+            }\r
             StartRecord();\r
             return true;\r
         }\r
@@ -254,12 +262,13 @@ namespace OHOS
         else if (strcmp(view.GetViewId(), RECORD_DELETE_ON_BUTTON_VIEWID) == 0) // 若点击的是录音删除按钮\r
         {\r
             int index = p_RecordingModel->GetClickRecordingIndex();\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index = %d", index);\r
             // std::string delete_path = RecordingModel::GetInstance()->GetRecordDirectory();\r
             // std::string delete_filename = p_RecordingModel->GetFileNames()[index] + ".mp3";\r
             // std::string fileName = delete_path + delete_filename;\r
             // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index = %d ", index);\r
             // uapi_delete_files(fileName.c_str());//删除录音文件\r
-            p_RecordingModel->UpdateRecordingInfo(p_RecordingModel->GetRecordingListNum() - index - 1);\r
+            p_RecordingModel->UpdateRecordingInfo();\r
 \r
             p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGVIEW);\r
             return true;\r
@@ -269,6 +278,11 @@ namespace OHOS
             p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW);\r
             return true;\r
         }\r
+        else if (strcmp(view.GetViewId(), RECORDINGNUMLIMITBUTTONVIEW) == 0)\r
+        {\r
+            p_RecordingView->ChangeView(RECORDINGEXCELIMIT, RECORDINGVIEW);\r
+            return true;\r
+        }\r
         return true;\r
     }\r
 \r
@@ -351,7 +365,7 @@ namespace OHOS
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListViewListener::OnClick index:%d", index);\r
         if (index >= RecordingModel::GetInstance()->GetRecordingListNum())\r
         {\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListViewListener::OnClick is no index");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListViewListener::OnClick is no index");\r
             return false;\r
         }\r
         /* -------------------------------- 保存被点击录音下标 ------------------------------- */\r
index 4e5eefd..3180e9c 100644 (file)
@@ -79,6 +79,11 @@ namespace OHOS
                 delete p_RecordingVolumeSettingView;\r
                 p_RecordingVolumeSettingView = nullptr;\r
             }\r
+            if (p_RecordingNumLimitView != nullptr)\r
+            {\r
+                delete p_RecordingNumLimitView;\r
+                p_RecordingNumLimitView = nullptr;\r
+            }\r
             for (int i = RECORDINGVIEW; i < MAX_RECORDINGVIEWID; i++)\r
             {\r
                 RecordingViewScrollView[i] = nullptr;\r
@@ -194,7 +199,6 @@ namespace OHOS
                 return false;\r
             }\r
             RecordingViewScrollView[thisView] = p_RecordingPlayerView->RecordingPlayerViewInit();\r
-            RecordingModel::GetInstance()->SetRecordingPlayerViewCreate(true);\r
             container_->Add(RecordingViewScrollView[thisView]);\r
         }\r
         // 设置“录音播放器”【录音文件名标签】的"文本内容"为被点击的"录音"的录音名\r
@@ -244,6 +248,24 @@ namespace OHOS
         return true;\r
     }\r
 \r
+    // 切换到“录音超出限制”视图\r
+    bool RecordingView::ChangeRecordNumLimitView(int16_t thisView)\r
+    {\r
+        if (RecordingViewScrollView[thisView] == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::ChangeRecordNumLimitView");\r
+            p_RecordingNumLimitView = new RecordingNumLimitView();\r
+            if (p_RecordingNumLimitView == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView:: new scrollView[%d] fail", thisView);\r
+                return false;\r
+            }\r
+            RecordingViewScrollView[thisView] = p_RecordingNumLimitView->RecordingNumLimitViewInit();\r
+            container_->Add(RecordingViewScrollView[thisView]);\r
+        }\r
+        return true;\r
+    }\r
+\r
     // 1.RecordingViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。\r
     struct RecordingViewMapper\r
     {\r
@@ -259,6 +281,7 @@ namespace OHOS
         {RECORDINGPLAYERVIEW, &RecordingView::ChangeRecordingPlayerView},\r
         {RECORDINGDELETEVIEW, &RecordingView::ChangeRecordDeleteView},\r
         {RECORDINGVOLUMESETTINGVIEW, &RecordingView::ChangeRecordVolumeSettingView},\r
+        {RECORDINGEXCELIMIT, &RecordingView::ChangeRecordNumLimitView},\r
     };\r
 \r
     // 3.根据传入的interface参数执行相应视图ID关联的成员函数。\r
index eb1ca80..a6cadff 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-22 09:48:07
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-12 10:20:11
+ * @LastEditTime: 2024-09-02 17:22:48
  * @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/include/notify/pairing_notification.h
  */
 #ifndef PAIRING_NOTIFICATION_H
@@ -26,6 +26,7 @@ namespace OHOS
         bool OnClick(OHOS::UIView &view, const OHOS::ClickEvent &event) override;
         void SetDeviceName(char *Name);
         char *GetDeviceName();
+        void DeviceUnBindingViewIsVisible(bool state);
         #if NO_LCD_TEST_CONNECT
         void Pairing_StartTimer(uint32_t interval = 1000*5);
         #else
index ff9564d..054bc06 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-22 10:04:36
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-31 16:49:39
+ * @LastEditTime: 2024-09-02 17:27:00
  * @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp
  */
 #include "notification_manager.h"
 #include <broadcast_feature.h>
 #include <custom_utils.h>
 #include "uicomponents/UIComponents.h"
+#include "ConfigModel.h"
+#include <custom_runtime.h>
+#include "../../../../../../drivers/peripheral/vibrator/service/vibrator_service.h"
+#include <ui_service.h>
 
 namespace OHOS
 {
     UIViewGroup *DeviceBindingView{nullptr};
+    UIScrollView *DeviceBindingScrollView{nullptr};
     UILabelExt *DeviceBindingViewTitleLabel{nullptr}; // 标题 :设备绑定
     UILabelExt *DeviceBindingName{nullptr};           // 绑定的设备名称
-    UILabelExt *DeviceBindingViewLabel{nullptr};      // 标签内容:“想要进行连接是否同意”
     UIButton *DeviceBindingButtonOK{nullptr};         // 设备绑定确认
     UIButton *DeviceBindingButtonCancel{nullptr};     // 设备绑定取消
 
+    UIImageAnimatorView *DeviceBindingAnimatorView{nullptr}; // 设备绑定动画
+    static constexpr int BIND_IMAGE_ANIMATOR_VIEW_X = 183;
+    static constexpr int BIND_IMAGE_ANIMATOR_VIEW_Y = 125;
+    static constexpr int BIND_IMAGE_ANIMATOR_VIEW_W = 100;
+    static constexpr int BIND_IMAGE_ANIMATOR_VIEW_H = 66;
+    static constexpr int BIND_IMAGE_ANIMATOR_VIEW_TIMEOFUPDATE = 70;
+    static constexpr int BIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 25; // 绑定动画帧数
+    const ImageInfo **BindPathsArray{nullptr};
+    ImageAnimatorInfo BindImageInfo[BIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES];
+    static constexpr const char *BIND_IMAGE_SRC = "/user/res/remind/bind/";
+
     UIViewGroup *DeviceUnBindingView{nullptr};
+    UIScrollView *DeviceUnBindingScrollView{nullptr};
     UILabelExt *DeviceUnBindingViewTitleLabel{nullptr}; // 标题 :设备解绑
     UILabelExt *DeviceUnBindingName{nullptr};           // 解绑的设备名称
-    UILabelExt *DeviceUnBindingViewLabel{nullptr};      // 标签内容:“想要进行解绑是否同意”
     UIButton *DeviceUnBindingButtonOK{nullptr};         // 设备解绑定确认
     UIButton *DeviceUnBindingButtonCancel{nullptr};     // 设备解绑取消
 
     UIImageAnimatorView *DeviceUnBindingAnimatorView{nullptr}; // 设备解绑动画
     static constexpr int UNBIND_IMAGE_ANIMATOR_VIEW_X = 193;
-    static constexpr int UNBIND_IMAGE_ANIMATOR_VIEW_Y = 110;
+    static constexpr int UNBIND_IMAGE_ANIMATOR_VIEW_Y = 118;
     static constexpr int UNBIND_IMAGE_ANIMATOR_VIEW_W = 80;
     static constexpr int UNBIND_IMAGE_ANIMATOR_VIEW_H = 80;
     static constexpr int UNBIND_IMAGE_ANIMATOR_VIEW_TIMEOFUPDATE = 100;
     static constexpr int UNBIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 25; // 解绑动画帧数
     const ImageInfo **UnBindPathsArray{nullptr};
     ImageAnimatorInfo UnBindImageInfo[UNBIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES];
+    static constexpr const char *UNBIND_IMAGE_SRC = "/user/res/remind/unbind/";
 
     UIViewGroup *DeviceUnbindingRequestGroupView{nullptr};
     UIScrollView *DeviceUnbindingRequestScrollView{nullptr};   // 设备解除绑定请求(与新设备连接)视图
     UILabelExt *DeviceUnbindingRequestViewTitleLabel{nullptr}; // 标题 :注意
     UIImageView *DeviceUnbindingRequestViewImageView{nullptr}; //
-    UILabelExt *DeviceUnbindingRequestViewLabel[2]{nullptr};   //
+    UILabelExt *DeviceUnbindingRequestViewLabel[3]{nullptr};   //
     UIButton *DeviceUnbindingRequestButtonOK{nullptr};         // 设备解除绑定请求(与新设备连接)确认
     UIButton *DeviceUnbindingRequestButtonCancel{nullptr};     // 设备解除绑定请求(与新设备连接)取消
 
@@ -119,29 +135,26 @@ namespace OHOS
         else if (&view == DeviceUnBindingButtonOK) // 设备解绑确认按钮
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PairingViewEventListener:: DeviceUnBindingButtonOK  OnClick");
-/*
- * 可能会执行的解绑流程:
- * 1.通知设备或服务器执行解绑操作.
- * 2.从绑定设备列表移除设备.
- * 3.更新UI状态.
- */
-
-// 关闭通知界面
-#ifdef SUPPORT_BLE_SERVICE
-            cleanUnbindInfor(1);
-#endif
-            NotificationManager::GetInstance()->StopNotify();
+            // 切换到再次确认解绑弹窗
+            if (DeviceUnbindingRequestGroupView == nullptr)
+            {
+                RootView::GetInstance()->Add(CreateDeviceUnbindingRequestGroupView());
+            }
+            DeviceUnBindingViewIsVisible(false);
         }
         else if (&view == DeviceUnbindingRequestButtonOK) // 设备解除绑定请求(与新设备连接)确认
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PairingViewEventListener:: DeviceUnbindingRequestButtonOK  OnClick");
-
+            // 关闭通知界面
+#ifdef SUPPORT_BLE_SERVICE
+            cleanUnbindInfor(1);
+#endif
             NotificationManager::GetInstance()->StopNotify();
         }
         else if (&view == DeviceUnbindingRequestButtonCancel) // 设备解除绑定请求(与新设备连接)取消
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PairingViewEventListener:: DeviceUnbindingRequestButtonCancel  OnClick");
-            NotificationManager::GetInstance()->StopNotify();
+            DeviceUnBindingViewIsVisible(true);
         }
         return true;
     }
@@ -155,8 +168,9 @@ namespace OHOS
         }
         button->SetPosition(x, y, w, h);
         button->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
-        button->SetStyle(STYLE_BACKGROUND_OPA, 0x2d);
-        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff4fc34c, UIButton::PRESSED);
+        button->SetStyle(STYLE_BACKGROUND_OPA, 0x19);
+        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
+        button->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
         button->SetImageSrc(imageSrc, imageSrc);
         return button;
     }
@@ -178,10 +192,19 @@ namespace OHOS
         memcpy(DeviceName, Name, len);
     }
 
+    void PairingViewEventListener::DeviceUnBindingViewIsVisible(bool state)
+    {
+        if (DeviceUnBindingView && DeviceUnbindingRequestGroupView)
+        {
+            DeviceUnBindingView->SetVisible(state);
+            DeviceUnbindingRequestGroupView->SetVisible(!state);
+        }
+    }
+
     /*获取设备名称*/
     char *PairingViewEventListener::GetDeviceName(void)
     {
-        return DeviceName; // 先用固定字符串测试
+        return DeviceName;
     }
 
     /*
@@ -202,71 +225,115 @@ namespace OHOS
             DeviceBindingView->SetPosition(0, 0, 466, 466);
             DeviceBindingView->SetDraggable(true);
             DeviceBindingView->SetTouchable(true);
+            /* ------------------------- DeviceBindingScrollView ------------------------ */
+            if (DeviceBindingScrollView == nullptr)
+            {
+                DeviceBindingScrollView = new UIScrollView();
+                if (DeviceBindingScrollView == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DeviceBindingScrollView new fail");
+                    return nullptr;
+                }
+            }
+            DeviceBindingScrollView->SetPosition(0, 0, 466, 466);
+            DeviceBindingScrollView->SetThrowDrag(true);
+            DeviceBindingScrollView->SetDraggable(true);
+            DeviceBindingScrollView->SetTouchable(true);
+            DeviceBindingScrollView->SetReboundSize(30);
+            DeviceBindingScrollView->SetScrollBlankSize(30);
+            DeviceBindingScrollView->SetSwipeACCLevel(800); // 800: compensation distance
+            DeviceBindingScrollView->SetDragACCLevel(5);    // 5: drag acceleration
+            DeviceBindingScrollView->SetMaxScrollDistance(1000);
+            DeviceBindingScrollView->SetDirection(UIScrollView::VERTICAL);
             /* ----------------------- DeviceBindingViewTitleLabel ---------------------- */
-            DeviceBindingViewTitleLabel = new UILabelExt();
             if (DeviceBindingViewTitleLabel == nullptr)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceBindingView] DeviceBindingViewTitleLabel new fail!!");
-                return nullptr;
+                DeviceBindingViewTitleLabel = new UILabelExt();
+                if (DeviceBindingViewTitleLabel == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceBindingView] DeviceBindingViewTitleLabel new fail!!");
+                    return nullptr;
+                }
             }
-            DeviceBindingViewTitleLabel->SetPosition(173, 52, 120, 35);
+            DeviceBindingViewTitleLabel->SetPosition(83, 50, 300, 35);
             DeviceBindingViewTitleLabel->SetStyle(STYLE_TEXT_FONT, 30);
             DeviceBindingViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
 
-            DeviceBindingViewTitleLabel->SetText("设备绑定");
-            DeviceBindingViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+            // DeviceBindingViewTitleLabel->SetText("设备绑定");
+            DeviceBindingViewTitleLabel->SetTextId(STR_DEVICE_BINDING);
+            DeviceBindingViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
             DeviceBindingViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
             DeviceBindingViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+            DeviceBindingViewTitleLabel->SetRollSpeed(70);
+            /* ----------------------- DeviceBindingAnimatorView ---------------------- */
+            BindPathsArray = CreateImageInfoArray(BIND_IMAGE_SRC, BIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
+            if (DeviceBindingAnimatorView == nullptr)
+            {
+                DeviceBindingAnimatorView = new UIImageAnimatorView();
+                if (DeviceBindingAnimatorView == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView]DeviceBindingAnimatorView new fail");
+                    return nullptr;
+                }
+                for (uint8_t i = 0; i < BIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES; i++)
+                {
+                    BindImageInfo[i].imageInfo = (BindPathsArray[i]);
+                    BindImageInfo[i].imageType = IMG_SRC_IMAGE_INFO;
+                    BindImageInfo[i].pos.x = BIND_IMAGE_ANIMATOR_VIEW_X;
+                    BindImageInfo[i].pos.y = BIND_IMAGE_ANIMATOR_VIEW_Y;
+                    BindImageInfo[i].width = BIND_IMAGE_ANIMATOR_VIEW_W;
+                    BindImageInfo[i].height = BIND_IMAGE_ANIMATOR_VIEW_H;
+                }
+                DeviceBindingAnimatorView->SetPosition(BIND_IMAGE_ANIMATOR_VIEW_X, BIND_IMAGE_ANIMATOR_VIEW_Y, BIND_IMAGE_ANIMATOR_VIEW_W, BIND_IMAGE_ANIMATOR_VIEW_H);
+                DeviceBindingAnimatorView->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+                DeviceBindingAnimatorView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+                DeviceBindingAnimatorView->SetImageAnimatorSrc(BindImageInfo, BIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, BIND_IMAGE_ANIMATOR_VIEW_TIMEOFUPDATE);
+                DeviceBindingAnimatorView->SetRepeat(true);
+                DeviceBindingAnimatorView->SetAutoEnable(false);
+                DeviceBindingAnimatorView->SetResizeMode(UIImageAnimatorView::CENTER);
+                DeviceBindingAnimatorView->Start();
+            }
             /* ---------------------------- DeviceBindingName --------------------------- */
-            DeviceBindingName = new UILabelExt();
             if (DeviceBindingName == nullptr)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceBindingView] DeviceBindingName new fail!!");
-                return nullptr;
+                DeviceBindingName = new UILabelExt();
+                if (DeviceBindingName == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceBindingView] DeviceBindingName new fail!!");
+                    return nullptr;
+                }
             }
 
             char *devanme = PairingViewEventListener::GetInstance().GetDeviceName();
-            DeviceBindingName->SetPosition(33, 180, 400, 40);
+            DeviceBindingName->SetPosition(53, 230, 360, 70);
             DeviceBindingName->SetStyle(STYLE_TEXT_FONT, 30);
             DeviceBindingName->SetStyle(STYLE_LINE_HEIGHT, 35);
+            DeviceBindingName->SetTextId(STR_DEVICE_BINDING_NOTE); // XX想要与你进行连接绑定
 
             if (strlen(devanme))
             {
-                DeviceBindingName->SetText(devanme);
+                // DeviceBindingName->SetText(devanme);
+                UpdateLabel(DeviceBindingName, devanme, STR_DEVICE_BINDING_NOTE);
             }
             else
             {
-                DeviceBindingName->SetText(" ");
+                // DeviceBindingName->SetText(" ");
+                UpdateLabel(DeviceBindingName, " ", STR_DEVICE_BINDING_NOTE);
             }
-
-            DeviceBindingName->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+            DeviceBindingName->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
             DeviceBindingName->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-            DeviceBindingName->SetRollSpeed(60);
             DeviceBindingName->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-            /* ------------------------- DeviceBindingViewLabel ------------------------- */
-            DeviceBindingViewLabel = new UILabelExt();
-            if (DeviceBindingViewLabel == nullptr)
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceBindingView] DeviceBindingViewLabel new fail!!");
-                return nullptr;
-            }
-            DeviceBindingViewLabel->SetPosition(33, 240, 400, 40);
-            DeviceBindingViewLabel->SetStyle(STYLE_TEXT_FONT, 30);
-            DeviceBindingViewLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
-            DeviceBindingViewLabel->SetText("想要进行连接是否同意");
-            DeviceBindingViewLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
-            DeviceBindingViewLabel->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
-            DeviceBindingViewLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-            DeviceBindingViewLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+            DeviceBindingName->SetRollSpeed(70);
             /* ------------------------------ DeviceBindingButtonCancel ------------------------------ */
-            DeviceBindingButtonCancel = CreateButton(111, 320, 100, 100, "/user/res/SYSTEM_CheckOff.bin");
+            int y = DeviceBindingName->GetY() + DeviceBindingName->GetTextHeight() + 20;
+            DeviceBindingButtonCancel = CreateButton(111, y, 100, 100, "/user/res/SYSTEM_CheckOff.bin");
             if (DeviceBindingButtonCancel == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceBindingView] DeviceBindingButtonCancel new fail!!");
                 return nullptr;
             }
             /* -------------------------------- DeviceBindingButtonOK -------------------------------- */
-            DeviceBindingButtonOK = CreateButton(256, 320, 100, 100, "/user/res/SYSTEM_CheckOn.bin");
+            DeviceBindingButtonOK = CreateButton(256, y, 100, 100, "/user/res/SYSTEM_CheckOn.bin");
             if (DeviceBindingButtonOK == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceBindingView] DeviceBindingButtonOK new fail!!");
@@ -274,19 +341,32 @@ namespace OHOS
             }
 
             UIView::OnClickListener *listener = static_cast<UIView::OnClickListener *>(&PairingViewEventListener::GetInstance());
+            if (listener == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceBindingView] PairingViewEventListener::GetInstance fail!!");
+                return nullptr;
+            }
             DeviceBindingButtonCancel->SetOnClickListener(listener);
             DeviceBindingButtonOK->SetOnClickListener(listener);
             /* ----------------------------------- Add ---------------------------------- */
-            DeviceBindingView->Add(DeviceBindingViewTitleLabel);
-            DeviceBindingView->Add(DeviceBindingName);
-            DeviceBindingView->Add(DeviceBindingViewLabel);
-            DeviceBindingView->Add(DeviceBindingButtonCancel);
-            DeviceBindingView->Add(DeviceBindingButtonOK);
+            DeviceBindingScrollView->Add(DeviceBindingViewTitleLabel);
+            DeviceBindingScrollView->Add(DeviceBindingAnimatorView);
+            DeviceBindingScrollView->Add(DeviceBindingName);
+            DeviceBindingScrollView->Add(DeviceBindingButtonCancel);
+            DeviceBindingScrollView->Add(DeviceBindingButtonOK);
+            DeviceBindingView->Add(DeviceBindingScrollView);
 #if NO_LCD_TEST_CONNECT
             PairingViewEventListener::GetInstance().Pairing_StartTimer();
 #endif
         }
 
+        if (true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()))
+        {
+            ui_api_vibrate_once_func();
+        }
+
+        ScreenTurnOn(40 * 1000); // 亮屏操作  40秒关闭
+
         NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(FreeDeviceBindingView);
         return DeviceBindingView;
     }
@@ -309,8 +389,28 @@ namespace OHOS
             DeviceUnBindingView->SetPosition(0, 0, 466, 466);
             DeviceUnBindingView->SetDraggable(true);
             DeviceUnBindingView->SetTouchable(true);
+            /* ------------------------- DeviceUnBindingScrollView ------------------------ */
+            if (DeviceUnBindingScrollView == nullptr)
+            {
+                DeviceUnBindingScrollView = new UIScrollView();
+                if (DeviceUnBindingScrollView == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DeviceUnBindingScrollView new fail");
+                    return nullptr;
+                }
+            }
+            DeviceUnBindingScrollView->SetPosition(0, 0, 466, 466);
+            DeviceUnBindingScrollView->SetThrowDrag(true);
+            DeviceUnBindingScrollView->SetDraggable(true);
+            DeviceUnBindingScrollView->SetTouchable(true);
+            DeviceUnBindingScrollView->SetReboundSize(30);
+            DeviceUnBindingScrollView->SetScrollBlankSize(30);
+            DeviceUnBindingScrollView->SetSwipeACCLevel(800); // 800: compensation distance
+            DeviceUnBindingScrollView->SetDragACCLevel(5);    // 5: drag acceleration
+            DeviceUnBindingScrollView->SetMaxScrollDistance(1000);
+            DeviceUnBindingScrollView->SetDirection(UIScrollView::VERTICAL);
             /* ----------------------- DeviceUnBindingAnimatorView ---------------------- */
-            UnBindPathsArray = CreateImageInfoArray("/user/res/remind/unbind/", UNBIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
+            UnBindPathsArray = CreateImageInfoArray(UNBIND_IMAGE_SRC, UNBIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
             if (DeviceUnBindingAnimatorView == nullptr)
             {
                 DeviceUnBindingAnimatorView = new UIImageAnimatorView();
@@ -336,70 +436,65 @@ namespace OHOS
                 DeviceUnBindingAnimatorView->Start();
             }
             /* ----------------------- DeviceUnBindingViewTitleLabel ---------------------- */
-            DeviceUnBindingViewTitleLabel = new UILabelExt();
             if (DeviceUnBindingViewTitleLabel == nullptr)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] DeviceUnBindingViewTitleLabel new fail!!");
-                return nullptr;
+                DeviceUnBindingViewTitleLabel = new UILabelExt();
+                if (DeviceUnBindingViewTitleLabel == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] DeviceUnBindingViewTitleLabel new fail!!");
+                    return nullptr;
+                }
             }
-            DeviceUnBindingViewTitleLabel->SetPosition(173, 52, 120, 35);
+            DeviceUnBindingViewTitleLabel->SetPosition(83, 50, 300, 35);
             DeviceUnBindingViewTitleLabel->SetStyle(STYLE_TEXT_FONT, 30);
             DeviceUnBindingViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
-            DeviceUnBindingViewTitleLabel->SetText("设备解绑");
-            DeviceUnBindingViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+            // DeviceUnBindingViewTitleLabel->SetText("设备解绑");
+            DeviceUnBindingViewTitleLabel->SetTextId(STR_EQUIPMENT_UNTYING);
+            DeviceUnBindingViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
             DeviceUnBindingViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
             DeviceUnBindingViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
             /* ---------------------------- DeviceUnBindingName --------------------------- */
-            DeviceUnBindingName = new UILabelExt();
             if (DeviceUnBindingName == nullptr)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] DeviceUnBindingName new fail!!");
-                return nullptr;
+                DeviceUnBindingName = new UILabelExt();
+                if (DeviceUnBindingName == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] DeviceUnBindingName new fail!!");
+                    return nullptr;
+                }
             }
-            DeviceUnBindingName->SetPosition(33, 200, 400, 40);
+            DeviceUnBindingName->SetPosition(53, 230, 360, 70);
             DeviceUnBindingName->SetStyle(STYLE_TEXT_FONT, 30);
             DeviceUnBindingName->SetStyle(STYLE_LINE_HEIGHT, 35);
+            DeviceUnBindingName->SetTextId(STR_EQUIPMENT_UNTYING_NOTE); // XX想要与你进行解绑
 
             char *devanme = PairingViewEventListener::GetInstance().GetDeviceName();
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] DeviceUnBindingName devanme :%s", devanme);
 
             if (strlen(devanme))
             {
-                DeviceUnBindingName->SetText(devanme);
+                // DeviceUnBindingName->SetText(devanme);
+                UpdateLabel(DeviceUnBindingName, devanme, STR_EQUIPMENT_UNTYING_NOTE);
             }
             else
             {
-                DeviceUnBindingName->SetText(" ");
+                // DeviceUnBindingName->SetText(" ");
+                UpdateLabel(DeviceUnBindingName, " ", STR_EQUIPMENT_UNTYING_NOTE);
             }
             // DeviceUnBindingName->SetText("小米5\n");
-            DeviceUnBindingName->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+            DeviceUnBindingName->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
             DeviceUnBindingName->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-            DeviceUnBindingName->SetRollSpeed(60);
             DeviceUnBindingName->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-            /* ------------------------- DeviceUnBindingViewLabel ------------------------- */
-            DeviceUnBindingViewLabel = new UILabelExt();
-            if (DeviceUnBindingViewLabel == nullptr)
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] DeviceUnBindingViewLabel new fail!!");
-                return nullptr;
-            }
-            DeviceUnBindingViewLabel->SetPosition(33, 250, 400, 40);
-            DeviceUnBindingViewLabel->SetStyle(STYLE_TEXT_FONT, 30);
-            DeviceUnBindingViewLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
-            DeviceUnBindingViewLabel->SetText("想要进行解绑是否同意");
-            DeviceUnBindingViewLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
-            DeviceUnBindingViewLabel->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
-            DeviceUnBindingViewLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-            DeviceUnBindingViewLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
             /* ------------------------------ DeviceBindingButtonCancel ------------------------------ */
-            DeviceUnBindingButtonCancel = CreateButton(111, 320, 100, 100, "/user/res/SYSTEM_CheckOff.bin");
+            int y = DeviceUnBindingName->GetY() + DeviceUnBindingName->GetTextHeight() + 20;
+            DeviceUnBindingButtonCancel = CreateButton(111, y, 100, 100, "/user/res/SYSTEM_CheckOff.bin");
             if (DeviceUnBindingButtonCancel == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] DeviceUnBindingButtonCancel new fail!!");
                 return nullptr;
             }
             /* -------------------------------- DeviceUnBindingButtonOK -------------------------------- */
-            DeviceUnBindingButtonOK = CreateButton(256, 320, 100, 100, "/user/res/SYSTEM_CheckOn.bin");
+            DeviceUnBindingButtonOK = CreateButton(256, y, 100, 100, "/user/res/SYSTEM_CheckOn.bin");
             if (DeviceUnBindingButtonOK == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] DeviceUnBindingButtonOK new fail!!");
@@ -407,17 +502,32 @@ namespace OHOS
             }
             /* ------------------------- button OnClickListener ------------------------- */
             UIView::OnClickListener *listener = static_cast<UIView::OnClickListener *>(&PairingViewEventListener::GetInstance());
+            if (nullptr == listener)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] PairingViewEventListener::GetInstance fail!!");
+                return nullptr;
+            }
             DeviceUnBindingButtonCancel->SetOnClickListener(listener);
             DeviceUnBindingButtonOK->SetOnClickListener(listener);
             /* ----------------------------------- Add ---------------------------------- */
-            DeviceUnBindingView->Add(DeviceUnBindingViewTitleLabel);
-            DeviceUnBindingView->Add(DeviceUnBindingAnimatorView);
-            DeviceUnBindingView->Add(DeviceUnBindingName);
-            DeviceUnBindingView->Add(DeviceUnBindingViewLabel);
-            DeviceUnBindingView->Add(DeviceUnBindingButtonCancel);
-            DeviceUnBindingView->Add(DeviceUnBindingButtonOK);
+            DeviceUnBindingScrollView->Add(DeviceUnBindingViewTitleLabel);
+            DeviceUnBindingScrollView->Add(DeviceUnBindingAnimatorView);
+            DeviceUnBindingScrollView->Add(DeviceUnBindingName);
+            DeviceUnBindingScrollView->Add(DeviceUnBindingButtonCancel);
+            DeviceUnBindingScrollView->Add(DeviceUnBindingButtonOK);
+            DeviceUnBindingView->Add(DeviceUnBindingScrollView);
         }
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] DeviceUnBindingView new success!!");
+
+        /* -------------------------------------------------------------------------- */
+        if (true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()))
+        {
+            ui_api_vibrate_once_func(); // 震动一次
+        }
+
+        ScreenTurnOn(40 * 1000); // 亮屏操作  40秒关闭
+        /* -------------------------------------------------------------------------- */
+
         NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(FreeDeviceUnBindingView);
         return DeviceUnBindingView;
     }
@@ -440,6 +550,7 @@ namespace OHOS
             }
             DeviceUnbindingRequestGroupView->SetPosition(0, 0, 466, 466);
             DeviceUnbindingRequestGroupView->SetStyle(STYLE_BACKGROUND_OPA, 0);
+            DeviceUnbindingRequestGroupView->SetVisible(false);
             /* -------------------- DeviceUnbindingRequestScrollView -------------------- */
             DeviceUnbindingRequestScrollView = new UIScrollView();
             if (DeviceUnbindingRequestScrollView == nullptr)
@@ -448,79 +559,124 @@ namespace OHOS
                 return nullptr;
             }
             DeviceUnbindingRequestScrollView->SetPosition(0, 0, 466, 466);
-            DeviceUnbindingRequestScrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
-            DeviceUnbindingRequestScrollView->SetScrollBlankSize(20);
-            DeviceUnbindingRequestScrollView->SetReboundSize(50);
-            DeviceUnbindingRequestScrollView->SetDirection(1);
+            DeviceUnbindingRequestScrollView->SetThrowDrag(true);
+            DeviceUnbindingRequestScrollView->SetDraggable(true);
+            DeviceUnbindingRequestScrollView->SetTouchable(true);
+            DeviceUnbindingRequestScrollView->SetReboundSize(30);
+            DeviceUnbindingRequestScrollView->SetScrollBlankSize(30);
+            DeviceUnbindingRequestScrollView->SetSwipeACCLevel(800); // 800: compensation distance
+            DeviceUnbindingRequestScrollView->SetDragACCLevel(5);    // 5: drag acceleration
+            DeviceUnbindingRequestScrollView->SetMaxScrollDistance(1000);
+            DeviceUnbindingRequestScrollView->SetDirection(UIScrollView::VERTICAL);
             /* ------------------ DeviceUnbindingRequestViewTitleLabel ------------------ */
-            DeviceUnbindingRequestViewTitleLabel = new UILabelExt();
             if (DeviceUnbindingRequestViewTitleLabel == nullptr)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnbindingRequestGroupView] DeviceUnbindingRequestViewTitleLabel is nullptr");
-                return nullptr;
+                DeviceUnbindingRequestViewTitleLabel = new UILabelExt();
+                if (DeviceUnbindingRequestViewTitleLabel == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnbindingRequestGroupView] DeviceUnbindingRequestViewTitleLabel is nullptr");
+                    return nullptr;
+                }
             }
-            DeviceUnbindingRequestViewTitleLabel->SetPosition(203, 52, 200, 60);
+            DeviceUnbindingRequestViewTitleLabel->SetPosition(83, 50, 300, 35);
             DeviceUnbindingRequestViewTitleLabel->SetStyle(STYLE_TEXT_FONT, 30);
             DeviceUnbindingRequestViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
-            DeviceUnbindingRequestViewTitleLabel->SetText("注意");
-            DeviceUnbindingRequestViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+            // DeviceUnbindingRequestViewTitleLabel->SetText("注意");
+            DeviceUnbindingRequestViewTitleLabel->SetTextId(STR_LOOK_OUT);
+            DeviceUnbindingRequestViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
             DeviceUnbindingRequestViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
             DeviceUnbindingRequestViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
 
             /* ------------------- DeviceUnbindingRequestViewImageView ------------------ */
-            DeviceUnbindingRequestViewImageView = new UIImageView();
             if (DeviceUnbindingRequestViewImageView == nullptr)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnbindingRequestGroupView] DeviceUnbindingRequestViewImageView is nullptr");
-                return nullptr;
+                DeviceUnbindingRequestViewImageView = new UIImageView();
+                if (DeviceUnbindingRequestViewImageView == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnbindingRequestGroupView] DeviceUnbindingRequestViewImageView is nullptr");
+                    return nullptr;
+                }
             }
             DeviceUnbindingRequestViewImageView->SetPosition(193, 121, 80, 80);
             const char *imageimagesPath = "/user/res/Attention.bin";
             DeviceUnbindingRequestViewImageView->SetSrc(imageimagesPath);
 
             /* --------------------- DeviceUnbindingRequestViewLabel[0] -------------------- */
-            DeviceUnbindingRequestViewLabel[0] = new UILabelExt();
-            if (DeviceUnbindingRequestViewLabel[0] == nullptr)
+            if (nullptr == DeviceUnbindingRequestViewLabel[0])
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnbindingRequestGroupView] DeviceUnbindingRequestViewLabel[0] is nullptr");
-                return nullptr;
+                DeviceUnbindingRequestViewLabel[0] = new UILabelExt();
+                if (DeviceUnbindingRequestViewLabel[0] == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnbindingRequestGroupView] DeviceUnbindingRequestViewLabel[0] is nullptr");
+                    return nullptr;
+                }
             }
-            DeviceUnbindingRequestViewLabel[0]->SetPosition(33, 220, 400, 90);
+            DeviceUnbindingRequestViewLabel[0]->SetPosition(53, 242, 360, 70);
             DeviceUnbindingRequestViewLabel[0]->SetStyle(STYLE_TEXT_FONT, 30);
-            DeviceUnbindingRequestViewLabel[0]->SetStyle(STYLE_LINE_HEIGHT, 40);
-            char str[512];
-            memset(str, 0, 512);
+            DeviceUnbindingRequestViewLabel[0]->SetStyle(STYLE_LINE_HEIGHT, 35);
+            DeviceUnbindingRequestViewLabel[0]->SetTextId(STR_NEWDEVICE_BIND_REMIND_NOTE1);
+
+            char *devanme = PairingViewEventListener::GetInstance().GetDeviceName();
+            if (strlen(devanme))
+            {
+                UpdateLabel(DeviceUnbindingRequestViewLabel[0], devanme, STR_NEWDEVICE_BIND_REMIND_NOTE1);
+            }
+            else
+            {
+                UpdateLabel(DeviceUnbindingRequestViewLabel[0], " ", STR_NEWDEVICE_BIND_REMIND_NOTE1);
+            }
 
-            sprintf(str, "当前设备已经与 %s 绑定", PairingViewEventListener::GetInstance().GetDeviceName());
-            DeviceUnbindingRequestViewLabel[0]->SetText(str);
             DeviceUnbindingRequestViewLabel[0]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
             DeviceUnbindingRequestViewLabel[0]->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
             DeviceUnbindingRequestViewLabel[0]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
 
             /* ------------------- DeviceUnbindingRequestViewLabel[1] ------------------- */
-            DeviceUnbindingRequestViewLabel[1] = new UILabelExt();
             if (DeviceUnbindingRequestViewLabel[1] == nullptr)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnbindingRequestGroupView] DeviceUnbindingRequestViewLabel[1] is nullptr");
-                return nullptr;
+                DeviceUnbindingRequestViewLabel[1] = new UILabelExt();
+                if (DeviceUnbindingRequestViewLabel[1] == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnbindingRequestGroupView] DeviceUnbindingRequestViewLabel[1] is nullptr");
+                    return nullptr;
+                }
             }
-            int y = DeviceUnbindingRequestViewLabel[0]->GetY() + DeviceUnbindingRequestViewLabel[0]->GetHeight();
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " %d %d %d", DeviceUnbindingRequestViewLabel[0]->GetY(), DeviceUnbindingRequestViewLabel[0]->GetHeight(), y);
-            DeviceUnbindingRequestViewLabel[1]->SetPosition(33, y, 400, 300);
+            int y = DeviceUnbindingRequestViewLabel[0]->GetY() + DeviceUnbindingRequestViewLabel[0]->GetTextHeight() + 50;
+            DeviceUnbindingRequestViewLabel[1]->SetPosition(53, y, 360, 280);
             DeviceUnbindingRequestViewLabel[1]->SetStyle(STYLE_TEXT_FONT, 30);
-            DeviceUnbindingRequestViewLabel[1]->SetStyle(STYLE_LINE_HEIGHT, 40);
-            memset(str, 0, 512);
-            sprintf(str, "继续连接操作会解除与%s的绑定并将手表恢复出厂设置(会清空手表数据)\n\n是否继续此操作\n", PairingViewEventListener::GetInstance().GetDeviceName());
-            // str = "继续连接操作会解除与 " + GetDeviceName() + " 的绑定并将手表恢复出厂设置(会清空手表数据)\n\n是否继续此操作\n";
-            DeviceUnbindingRequestViewLabel[1]->SetText(str);
+            DeviceUnbindingRequestViewLabel[1]->SetStyle(STYLE_LINE_HEIGHT, 35);
+            DeviceUnbindingRequestViewLabel[1]->SetTextId(STR_NEWDEVICE_BIND_REMIND_NOTE2);
+            if (strlen(devanme))
+            {
+                UpdateLabel(DeviceUnbindingRequestViewLabel[1], devanme, STR_NEWDEVICE_BIND_REMIND_NOTE2);
+            }
+            else
+            {
+                UpdateLabel(DeviceUnbindingRequestViewLabel[1], " ", STR_NEWDEVICE_BIND_REMIND_NOTE2);
+            }
             DeviceUnbindingRequestViewLabel[1]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
-            DeviceUnbindingRequestViewLabel[1]->SetTextColor(Color::GetColorFromRGBA(0xff, 0x8a, 0x36, 0xff));
             DeviceUnbindingRequestViewLabel[1]->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
             DeviceUnbindingRequestViewLabel[1]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
 
+            /* ------------------- DeviceUnbindingRequestViewLabel[2] ------------------- */
+            if (DeviceUnbindingRequestViewLabel[2] == nullptr)
+            {
+                DeviceUnbindingRequestViewLabel[2] = new UILabelExt();
+                if (DeviceUnbindingRequestViewLabel[2] == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnbindingRequestGroupView] DeviceUnbindingRequestViewLabel[2] is nullptr");
+                    return nullptr;
+                }
+            }
+            y = DeviceUnbindingRequestViewLabel[1]->GetY() + DeviceUnbindingRequestViewLabel[1]->GetTextHeight() + 50;
+            DeviceUnbindingRequestViewLabel[2]->SetPosition(53, y, 360, 35);
+            DeviceUnbindingRequestViewLabel[2]->SetStyle(STYLE_TEXT_FONT, 30);
+            DeviceUnbindingRequestViewLabel[2]->SetStyle(STYLE_LINE_HEIGHT, 35);
+            DeviceUnbindingRequestViewLabel[2]->SetTextId(STR_NEWDEVICE_BIND_REMIND_NOTE3);
+            DeviceUnbindingRequestViewLabel[2]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
+            DeviceUnbindingRequestViewLabel[2]->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+            DeviceUnbindingRequestViewLabel[2]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
             /* ------------------------------ DeviceBindingButtonCancel ------------------------------ */
-            y = DeviceUnbindingRequestViewLabel[1]->GetY() + DeviceUnbindingRequestViewLabel[1]->GetHeight();
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " %d %d %d", DeviceUnbindingRequestViewLabel[1]->GetY(), DeviceUnbindingRequestViewLabel[1]->GetHeight(), y);
+            y = DeviceUnbindingRequestViewLabel[2]->GetY() + DeviceUnbindingRequestViewLabel[2]->GetTextHeight() + 50;
             DeviceUnbindingRequestButtonCancel = CreateButton(111, y, 100, 100, "/user/res/SYSTEM_CheckOff.bin");
             if (DeviceUnbindingRequestButtonCancel == nullptr)
             {
@@ -537,18 +693,23 @@ namespace OHOS
             }
             /* ------------------------- button OnClickListener ------------------------- */
             UIView::OnClickListener *listener = static_cast<UIView::OnClickListener *>(&PairingViewEventListener::GetInstance());
+            if (listener == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView] PairingViewEventListener::GetInstance fail!!");
+                return nullptr;
+            }
             DeviceUnbindingRequestButtonCancel->SetOnClickListener(listener);
             DeviceUnbindingRequestButtonOK->SetOnClickListener(listener);
-
+            /* -------------------------------------------------------------------------- */
             DeviceUnbindingRequestScrollView->Add(DeviceUnbindingRequestViewTitleLabel);
             DeviceUnbindingRequestScrollView->Add(DeviceUnbindingRequestViewImageView);
             DeviceUnbindingRequestScrollView->Add(DeviceUnbindingRequestViewLabel[0]);
             DeviceUnbindingRequestScrollView->Add(DeviceUnbindingRequestViewLabel[1]);
+            DeviceUnbindingRequestScrollView->Add(DeviceUnbindingRequestViewLabel[2]);
             DeviceUnbindingRequestScrollView->Add(DeviceUnbindingRequestButtonCancel);
             DeviceUnbindingRequestScrollView->Add(DeviceUnbindingRequestButtonOK);
             DeviceUnbindingRequestGroupView->Add(DeviceUnbindingRequestScrollView);
         }
-        NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(FreeDeviceBindingView);
         return DeviceUnbindingRequestGroupView;
     }
 
@@ -557,28 +718,44 @@ namespace OHOS
      */
     void FreeDeviceBindingView(void)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[FreeDeviceBindingView]");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[FreeDeviceBindingView]");
         if (DeviceBindingView != nullptr)
         {
             DeviceBindingView->RemoveAll();
-
-            delete DeviceBindingViewTitleLabel;
-            DeviceBindingViewTitleLabel = nullptr;
-
-            delete DeviceBindingName;
-            DeviceBindingName = nullptr;
-
-            delete DeviceBindingViewLabel;
-            DeviceBindingViewLabel = nullptr;
-
-            delete DeviceBindingButtonCancel;
-            DeviceBindingButtonCancel = nullptr;
-
-            delete DeviceBindingButtonOK;
-            DeviceBindingButtonOK = nullptr;
-
+            if (DeviceBindingScrollView != nullptr)
+            {
+                DeviceBindingScrollView->RemoveAll();
+                if (DeviceBindingViewTitleLabel)
+                {
+                    delete DeviceBindingViewTitleLabel;
+                    DeviceBindingViewTitleLabel = nullptr;
+                }
+                if (DeviceBindingName)
+                {
+                    delete DeviceBindingName;
+                    DeviceBindingName = nullptr;
+                }
+                if (DeviceBindingAnimatorView)
+                {
+                    DeviceBindingAnimatorView->Stop();
+                    delete DeviceBindingAnimatorView;
+                    DeviceBindingAnimatorView = nullptr;
+                    FreeImageInfoArray(BindPathsArray, BIND_IMAGE_SRC, BIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
+                }
+                if (DeviceBindingButtonCancel)
+                {
+                    delete DeviceBindingButtonCancel;
+                    DeviceBindingButtonCancel = nullptr;
+                }
+                if (DeviceBindingButtonOK)
+                {
+                    delete DeviceBindingButtonOK;
+                    DeviceBindingButtonOK = nullptr;
+                }
+                delete DeviceBindingScrollView;
+                DeviceBindingScrollView = nullptr;
+            }
             RootView::GetInstance()->Remove(DeviceBindingView);
-
             delete DeviceBindingView;
             DeviceBindingView = nullptr;
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[FreeDeviceBindingView] success");
@@ -590,36 +767,47 @@ namespace OHOS
      */
     void FreeDeviceUnBindingView(void)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[FreeDeviceUnBindingView]");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[FreeDeviceUnBindingView]");
         if (DeviceUnBindingView != nullptr)
         {
             DeviceUnBindingView->RemoveAll();
-
-            delete DeviceUnBindingViewTitleLabel;
-            DeviceUnBindingViewTitleLabel = nullptr;
-
-            FreeImageInfoArray(UnBindPathsArray, "/user/res/remind/unbind/", UNBIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
-
-            DeviceUnBindingAnimatorView->Stop();
-            delete DeviceUnBindingAnimatorView;
-            DeviceUnBindingAnimatorView = nullptr;
-
-            delete DeviceUnBindingName;
-            DeviceUnBindingName = nullptr;
-
-            delete DeviceUnBindingViewLabel;
-            DeviceUnBindingViewLabel = nullptr;
-
-            delete DeviceUnBindingButtonCancel;
-            DeviceUnBindingButtonCancel = nullptr;
-
-            delete DeviceUnBindingButtonOK;
-            DeviceUnBindingButtonOK = nullptr;
-
+            if (DeviceUnBindingScrollView != nullptr)
+            {
+                DeviceUnBindingScrollView->RemoveAll();
+                if (DeviceUnBindingViewTitleLabel)
+                {
+                    delete DeviceUnBindingViewTitleLabel;
+                    DeviceUnBindingViewTitleLabel = nullptr;
+                }
+                if (DeviceUnBindingAnimatorView)
+                {
+                    DeviceUnBindingAnimatorView->Stop();
+                    delete DeviceUnBindingAnimatorView;
+                    DeviceUnBindingAnimatorView = nullptr;
+                    FreeImageInfoArray(UnBindPathsArray, UNBIND_IMAGE_SRC, UNBIND_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
+                }
+                if (DeviceUnBindingName)
+                {
+                    delete DeviceUnBindingName;
+                    DeviceUnBindingName = nullptr;
+                }
+                if (DeviceUnBindingButtonCancel)
+                {
+                    delete DeviceUnBindingButtonCancel;
+                    DeviceUnBindingButtonCancel = nullptr;
+                }
+                if (DeviceUnBindingButtonOK)
+                {
+                    delete DeviceUnBindingButtonOK;
+                    DeviceUnBindingButtonOK = nullptr;
+                }
+                delete DeviceUnBindingScrollView;
+                DeviceUnBindingScrollView = nullptr;
+            }
             RootView::GetInstance()->Remove(DeviceUnBindingView);
-
             delete DeviceUnBindingView;
             DeviceUnBindingView = nullptr;
+            FreeDeviceUnbindingRequestGroupView();
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[FreeDeviceUnBindingView] success");
         }
     }
@@ -629,36 +817,45 @@ namespace OHOS
      */
     void FreeDeviceUnbindingRequestGroupView(void)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[FreeDeviceUnbindingRequestGroupView]");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[FreeDeviceUnbindingRequestGroupView]");
         if (DeviceUnbindingRequestGroupView != nullptr)
         {
-            DeviceUnbindingRequestGroupView->Remove(DeviceUnbindingRequestScrollView);
-
-            DeviceUnbindingRequestScrollView->RemoveAll();
-
-            delete DeviceUnbindingRequestViewTitleLabel;
-            DeviceUnbindingRequestViewTitleLabel = nullptr;
-
-            delete DeviceUnbindingRequestViewImageView;
-            DeviceUnbindingRequestViewImageView = nullptr;
-
-            delete DeviceUnbindingRequestViewLabel[0];
-            DeviceUnbindingRequestViewLabel[0] = nullptr;
-
-            delete DeviceUnbindingRequestViewLabel[1];
-            DeviceUnbindingRequestViewLabel[1] = nullptr;
-
-            delete DeviceUnbindingRequestButtonOK;
-            DeviceUnbindingRequestButtonOK = nullptr;
-
-            delete DeviceUnbindingRequestButtonCancel;
-            DeviceUnbindingRequestButtonCancel = nullptr;
-
-            delete DeviceUnbindingRequestScrollView;
-            DeviceUnbindingRequestScrollView = nullptr;
-
+            DeviceUnbindingRequestGroupView->RemoveAll();
+            if (nullptr != DeviceUnbindingRequestScrollView)
+            {
+                DeviceUnbindingRequestScrollView->RemoveAll();
+                if (DeviceUnbindingRequestViewTitleLabel)
+                {
+                    delete DeviceUnbindingRequestViewTitleLabel;
+                    DeviceUnbindingRequestViewTitleLabel = nullptr;
+                }
+                if (DeviceUnbindingRequestViewImageView)
+                {
+                    delete DeviceUnbindingRequestViewImageView;
+                    DeviceUnbindingRequestViewImageView = nullptr;
+                }
+                for (int i = 0; i < (sizeof(DeviceUnbindingRequestViewLabel) / sizeof(DeviceUnbindingRequestViewLabel[0])); i++)
+                {
+                    if (DeviceUnbindingRequestViewLabel[i])
+                    {
+                        delete DeviceUnbindingRequestViewLabel[i];
+                        DeviceUnbindingRequestViewLabel[i] = nullptr;
+                    }
+                }
+                if (DeviceUnbindingRequestButtonOK)
+                {
+                    delete DeviceUnbindingRequestButtonOK;
+                    DeviceUnbindingRequestButtonOK = nullptr;
+                }
+                if (DeviceUnbindingRequestButtonCancel)
+                {
+                    delete DeviceUnbindingRequestButtonCancel;
+                    DeviceUnbindingRequestButtonCancel = nullptr;
+                }
+                delete DeviceUnbindingRequestScrollView;
+                DeviceUnbindingRequestScrollView = nullptr;
+            }
             RootView::GetInstance()->Remove(DeviceUnbindingRequestGroupView);
-
             delete DeviceUnbindingRequestGroupView;
             DeviceUnbindingRequestGroupView = nullptr;
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[FreeDeviceUnbindingRequestGroupView] success");
index d837892..93aa51c 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ar.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ar.lang differ
index 88355cd..a038593 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/az.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/az.lang differ
index c3d5b3c..4d7eacb 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/cs.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/cs.lang differ
index ab3f3aa..b023dc6 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/de.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/de.lang differ
index 9ab242e..fffa5fa 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/el.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/el.lang differ
index ec7c766..98bfaf7 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 61a788b..567953b 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/es.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/es.lang differ
index 509e73d..fd1db4a 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/fa.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/fa.lang differ
index 420ecb0..7b0d5f0 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/fi.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/fi.lang differ
index bb39e0e..5b8af48 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/fr.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/fr.lang differ
index bbbee5a..acb732e 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/he.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/he.lang differ
index 260a44c..97c2bb1 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/hi.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/hi.lang differ
index e8e9f97..5702e75 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/hr.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/hr.lang differ
index 8bd98fe..6dced81 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/id.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/id.lang differ
index b718ee9..485078d 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/it.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/it.lang differ
index ced2993..28867cb 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ja.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ja.lang differ
index 8e72a35..2c5d6ea 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ko.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ko.lang differ
index f14c0bd..c86af8b 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ms.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ms.lang differ
index dee30cd..7cb0fce 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/nl.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/nl.lang differ
index a685664..88b377b 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/pl.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/pl.lang differ
index c2fa3df..61fe135 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/pt.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/pt.lang differ
index 3de287d..3dd52a0 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ro.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ro.lang differ
index e2d707d..95fdb0b 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ru.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ru.lang differ
index ac72a0a..2c944af 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/sv.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/sv.lang differ
index 0916056..d99c38b 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/th.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/th.lang differ
index f63d7f5..ca961ed 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/tr.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/tr.lang differ
index 0a38d64..4383724 100644 (file)
@@ -469,98 +469,100 @@ enum UIResourceTextId : uint16_t {
     STR_SEDENTARY_REMINDER = 456,\r
     STR_SEDENTARY_REMINDER_NOTE = 457,\r
     STR_SYSTEM_UPGRADING = 458,\r
-    STR_NEWDEVICE_BIND_REMIND_NOTE = 459,\r
-    STR_AI_VOICE = 460,\r
-    STR_AI_INTELLIGENT_ASSISTANT = 461,\r
-    STR_START_CHAT = 462,\r
-    STR_BOOT_FAILED = 463,\r
-    STR_ENABLE_MOBILE_DATA_FIRST = 464,\r
-    STR_ENABLE_BLUETOOTH_FIRST = 465,\r
-    STR_LISTENING = 466,\r
-    STR_FINISH_SPEAKING = 467,\r
-    STR_THINKING = 468,\r
-    STR_CANCEL = 469,\r
-    STR_CONNECT_TIMEOUT = 470,\r
-    STR_PLEASE_RESTART_CHAT = 471,\r
-    STR_CONTINUE_CHAT = 472,\r
-    STR_AIMODELS_DOUBAO = 473,\r
-    STR_AIMODES_WENXINYIYAN = 474,\r
-    STR_AIMODES_KIMI = 475,\r
-    STR_AIMODES_CHATGPT = 476,\r
-    STR_SLIDE_TO_SHUTDOWN = 477,\r
-    STR_SLIDE_TO_REBOOT = 478,\r
-    STR_AI_FAMILY_MEALS = 479,\r
-    STR_CHAT = 480,\r
-    STR_PCY4GC_OR_AS = 481,\r
-    STR_API_KEYS = 482,\r
-    STR_PGTTAF = 483,\r
-    STR_DAFBS = 484,\r
-    STR_OPENAI_API_KEYS = 485,\r
-    STR_KHBB = 486,\r
-    STR_GTAS = 487,\r
-    STR_DYWTDAK = 488,\r
-    STR_CONNECTING = 489,\r
-    STR_CONNECTION_FAIL = 490,\r
-    STR_PTALORTM = 491,\r
-    STR_MOTION_DETECTION_WALK_NOTE = 492,\r
-    STR_MOTION_DETECTION_RUN_NOTE = 493,\r
-    STR_MOTION_DETECTION_RIDE_NOTE = 494,\r
-    STR_MOTION_DETECTION_ROWING_NOTE = 495,\r
-    STR_MOTION_DETECTION_ELLIPTICAL_NOTE = 496,\r
-    STR_PE4GC = 497,\r
-    STR_OBU_MESSAGE = 498,\r
-    STR_DELETE = 499,\r
-    STR_CHARGE = 500,\r
-    STR_CHARGE_NOTE = 501,\r
-    STR_STEP_FREQUENCY = 502,\r
-    STR_STEP_LENGTH = 503,\r
-    STR_AVG_PACE = 504,\r
-    STR_TONGYI_QIANWEN = 505,\r
-    STR_IFLYTEK_SPARK = 506,\r
-    STR_DISTURBNOTE_OFF = 507,\r
-    STR_4G_NOTE = 508,\r
-    STR_MUSIC_PLAYER_SOURCE_NOTE = 509,\r
-    STR_MUSIC_LIST_IS_EMPTY = 510,\r
-    STR_BT_HEADSET_RESCAN = 511,\r
-    STR_BT_HEADSET_NOFOND = 512,\r
-    STR_SCHEDULE = 513,\r
-    STR_SCHEDULE_TITLE = 514,\r
-    STR_SCHEDULE_NO_DATA = 515,\r
-    STR_SCHEDULE_NO_DATA_PROMPT = 516,\r
-    STR_NO_PAIRED_DEV = 517,\r
-    STR_IGNORE = 518,\r
-    STR_START = 519,\r
-    STR_ARC_SCALE_LIST_DISPLAY = 520,\r
-    STR_COUNT_DOWN = 521,\r
-    STR_CUSTOM_TIME = 522,\r
-    STR_QUICK_START = 523,\r
-    STR_1_MIN = 524,\r
-    STR_5_MIN = 525,\r
-    STR_10_MIN = 526,\r
-    STR_30_MIN = 527,\r
-    STR_SET_COUNT_DOWN_NOTE = 528,\r
-    STR_COUNTDOWN_ENDS = 529,\r
-    STR_MAXIMUM_TIME_REACH_NOTE = 530,\r
-    STR_STOPWATCH_STOP_NOTE = 531,\r
-    STR_TMCHBR = 532,\r
-    STR_SCHEDULE_TOPIC = 533,\r
-    STR_SCHEDULE_TIME = 534,\r
-    STR_SCHEDULE_NOTES = 535,\r
-    STR_SCHEDULE_DELETE_PROMPT = 536,\r
-    STR_HANG_UP_OR_ANSWER = 537,\r
-    STR_WATCH_CALL = 538,\r
-    STR_PHONE_CALL = 539,\r
-    STR_STEPS_OF_THE_DAY = 540,\r
-    STR_MILEAGE = 541,\r
-    STR_FAT_BURNING_TIME = 542,\r
-    STR_NUMBER_OF_STANDS = 543,\r
-    STR_CONSUME_CALORIES = 544,\r
-    STR_GOAL_HINT = 545,\r
-    STR_SLEEPMODE = 546,\r
-    STR_SLEEP_MODE_PROMPT_ON = 547,\r
-    STR_LOW_POWER_NOTIF_1 = 548,\r
-    STR_LOW_POWER_NOTIF_2 = 549,\r
-    STR_MAX_ID = 550,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE1 = 459,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE2 = 460,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE3 = 461,\r
+    STR_AI_VOICE = 462,\r
+    STR_AI_INTELLIGENT_ASSISTANT = 463,\r
+    STR_START_CHAT = 464,\r
+    STR_BOOT_FAILED = 465,\r
+    STR_ENABLE_MOBILE_DATA_FIRST = 466,\r
+    STR_ENABLE_BLUETOOTH_FIRST = 467,\r
+    STR_LISTENING = 468,\r
+    STR_FINISH_SPEAKING = 469,\r
+    STR_THINKING = 470,\r
+    STR_CANCEL = 471,\r
+    STR_CONNECT_TIMEOUT = 472,\r
+    STR_PLEASE_RESTART_CHAT = 473,\r
+    STR_CONTINUE_CHAT = 474,\r
+    STR_AIMODELS_DOUBAO = 475,\r
+    STR_AIMODES_WENXINYIYAN = 476,\r
+    STR_AIMODES_KIMI = 477,\r
+    STR_AIMODES_CHATGPT = 478,\r
+    STR_SLIDE_TO_SHUTDOWN = 479,\r
+    STR_SLIDE_TO_REBOOT = 480,\r
+    STR_AI_FAMILY_MEALS = 481,\r
+    STR_CHAT = 482,\r
+    STR_PCY4GC_OR_AS = 483,\r
+    STR_API_KEYS = 484,\r
+    STR_PGTTAF = 485,\r
+    STR_DAFBS = 486,\r
+    STR_OPENAI_API_KEYS = 487,\r
+    STR_KHBB = 488,\r
+    STR_GTAS = 489,\r
+    STR_DYWTDAK = 490,\r
+    STR_CONNECTING = 491,\r
+    STR_CONNECTION_FAIL = 492,\r
+    STR_PTALORTM = 493,\r
+    STR_MOTION_DETECTION_WALK_NOTE = 494,\r
+    STR_MOTION_DETECTION_RUN_NOTE = 495,\r
+    STR_MOTION_DETECTION_RIDE_NOTE = 496,\r
+    STR_MOTION_DETECTION_ROWING_NOTE = 497,\r
+    STR_MOTION_DETECTION_ELLIPTICAL_NOTE = 498,\r
+    STR_PE4GC = 499,\r
+    STR_OBU_MESSAGE = 500,\r
+    STR_DELETE = 501,\r
+    STR_CHARGE = 502,\r
+    STR_CHARGE_NOTE = 503,\r
+    STR_STEP_FREQUENCY = 504,\r
+    STR_STEP_LENGTH = 505,\r
+    STR_AVG_PACE = 506,\r
+    STR_TONGYI_QIANWEN = 507,\r
+    STR_IFLYTEK_SPARK = 508,\r
+    STR_DISTURBNOTE_OFF = 509,\r
+    STR_4G_NOTE = 510,\r
+    STR_MUSIC_PLAYER_SOURCE_NOTE = 511,\r
+    STR_MUSIC_LIST_IS_EMPTY = 512,\r
+    STR_BT_HEADSET_RESCAN = 513,\r
+    STR_BT_HEADSET_NOFOND = 514,\r
+    STR_SCHEDULE = 515,\r
+    STR_SCHEDULE_TITLE = 516,\r
+    STR_SCHEDULE_NO_DATA = 517,\r
+    STR_SCHEDULE_NO_DATA_PROMPT = 518,\r
+    STR_NO_PAIRED_DEV = 519,\r
+    STR_IGNORE = 520,\r
+    STR_START = 521,\r
+    STR_ARC_SCALE_LIST_DISPLAY = 522,\r
+    STR_COUNT_DOWN = 523,\r
+    STR_CUSTOM_TIME = 524,\r
+    STR_QUICK_START = 525,\r
+    STR_1_MIN = 526,\r
+    STR_5_MIN = 527,\r
+    STR_10_MIN = 528,\r
+    STR_30_MIN = 529,\r
+    STR_SET_COUNT_DOWN_NOTE = 530,\r
+    STR_COUNTDOWN_ENDS = 531,\r
+    STR_MAXIMUM_TIME_REACH_NOTE = 532,\r
+    STR_STOPWATCH_STOP_NOTE = 533,\r
+    STR_TMCHBR = 534,\r
+    STR_SCHEDULE_TOPIC = 535,\r
+    STR_SCHEDULE_TIME = 536,\r
+    STR_SCHEDULE_NOTES = 537,\r
+    STR_SCHEDULE_DELETE_PROMPT = 538,\r
+    STR_HANG_UP_OR_ANSWER = 539,\r
+    STR_WATCH_CALL = 540,\r
+    STR_PHONE_CALL = 541,\r
+    STR_STEPS_OF_THE_DAY = 542,\r
+    STR_MILEAGE = 543,\r
+    STR_FAT_BURNING_TIME = 544,\r
+    STR_NUMBER_OF_STANDS = 545,\r
+    STR_CONSUME_CALORIES = 546,\r
+    STR_GOAL_HINT = 547,\r
+    STR_SLEEPMODE = 548,\r
+    STR_SLEEP_MODE_PROMPT_ON = 549,\r
+    STR_LOW_POWER_NOTIF_1 = 550,\r
+    STR_LOW_POWER_NOTIF_2 = 551,\r
+    STR_MAX_ID = 552,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index 6595df0..39cf946 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/uk.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/uk.lang differ
index 9d4c189..6c5d048 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/uz.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/uz.lang differ
index d082ade..4e292aa 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/vi.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/vi.lang differ
index b7ed3de..895c87e 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
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/1.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/1.bin
new file mode 100644 (file)
index 0000000..9da9cd9
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:07c7cbd5cfeb97582a505d48afd570a9f74a0066f869d6cc996fefacb7521a05
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/10.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/10.bin
new file mode 100644 (file)
index 0000000..25c97f5
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6076283dac4750c3d7714f2bbb7164ae5f54a9adc3ce77467a934e90319acb61
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/11.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/11.bin
new file mode 100644 (file)
index 0000000..1b1511c
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c43c329379fc475ee20d508dd225616ecc30009d8fe385a2c0d9fe94243fbfc0
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/12.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/12.bin
new file mode 100644 (file)
index 0000000..1d3ae3d
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:381eaa136b2eefeed2748e4bcc752d637ee59dba251ecf4dbb8c442910d52811
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/13.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/13.bin
new file mode 100644 (file)
index 0000000..6dad018
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f01c7fbf2dee3ef6cabf29b68e00659b2d451a70e4891027f71a7ab5bfe840df
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/14.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/14.bin
new file mode 100644 (file)
index 0000000..c510944
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a044f16a1965e41206cc68a9e22962a99aea77b0aaadcaa2fd103efb68525984
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/15.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/15.bin
new file mode 100644 (file)
index 0000000..77eb798
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd98bb418bf1eb70eddd8c973710e0b065bd8af8204b35d760a58d71a1f7dcb4
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/16.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/16.bin
new file mode 100644 (file)
index 0000000..1372882
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:64c9e9d2f3c9ebda907735861bee00155f4d6c60dbfdd9748532d059b34644e3
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/17.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/17.bin
new file mode 100644 (file)
index 0000000..70c1adc
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:59be6514cb63e3e8bd8fb1ecaae320cd7ad5f17709b32b16f551ee0cfbb539e3
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/18.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/18.bin
new file mode 100644 (file)
index 0000000..344ff98
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1556ce058ca766754498b6bc10211fc92a8cb2bd7debe2e4d0660a79ac6a6353
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/19.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/19.bin
new file mode 100644 (file)
index 0000000..4d0037d
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:72160d1e0a53af62665748acb48b102f55bdc2e037206ed375403516530850a1
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/2.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/2.bin
new file mode 100644 (file)
index 0000000..e0129dd
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b386670b6a7a8537faae550e1a5ba6722b5ee2b1c9f930e6280d296db524673a
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/20.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/20.bin
new file mode 100644 (file)
index 0000000..82bb860
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fdf466e6d270ab45885d43a59ff33d32ef7fd2701eb1c93876e3ac0e2042a323
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/21.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/21.bin
new file mode 100644 (file)
index 0000000..dc2678c
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:31f56d8d7428dbc8596d13b01ba07eddd97e6b5200cea92e3746aa9ced330320
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/22.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/22.bin
new file mode 100644 (file)
index 0000000..4671be5
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7b700dcdaee851b9601170f7fb9ab0d4bf4c3ac47996b7e98e48a9ed1b25811f
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/23.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/23.bin
new file mode 100644 (file)
index 0000000..8313128
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:60d7333660668af77425a3c8500cbc813e1195a6b107be71ae95a25ad39834b5
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/24.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/24.bin
new file mode 100644 (file)
index 0000000..0324a96
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8ffbbc356f1b98b39e5dd1ca78a02c6056ab02eb573991788aa5e90891aae795
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/25.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/25.bin
new file mode 100644 (file)
index 0000000..955a8bb
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d62911189dc30a26da643ff18ea673e43047b30b3c425a343e0a4a5120fe5a2a
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/3.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/3.bin
new file mode 100644 (file)
index 0000000..4065290
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:05207dd8eb765df916ae844d5f0e930a503968328141231e753cf9bc2c84418a
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/4.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/4.bin
new file mode 100644 (file)
index 0000000..b156f67
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c8a62f8fd53985ea2b67092ac62198661da5d8c7b75db20faaea9b278d333637
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/5.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/5.bin
new file mode 100644 (file)
index 0000000..015dfd6
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:167430c4c886ed9e1f3a10a13df1fe6b1c123a286a4e5b15eadb801c05c9d188
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/6.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/6.bin
new file mode 100644 (file)
index 0000000..1408393
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:99885608307cfed4d6403e936cfe9f1dd77325d951edc09c6f0e29b615657bc4
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/7.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/7.bin
new file mode 100644 (file)
index 0000000..bd5831c
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f6c462da49181ea9de01ce56bb7b44994bb64ee7967284dde6c2f7a8e98de0c6
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/8.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/8.bin
new file mode 100644 (file)
index 0000000..75234e2
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5a040e7715228683193d4d8c807cf3a75a57a3d7ebb89cbb70579a4f54dfb830
+size 4648
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/9.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/remind/bind/9.bin
new file mode 100644 (file)
index 0000000..be5b217
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5b3501c653ca9a5502063f7c0ca6fbb882d722b6657eeaeec746bb3db2da9e85
+size 4648
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index 80303f1..683ffc9 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$Es ist Zeit, Wasser zu trinken! Denken Sie daran,
 STR_SEDENTARY_REMINDER$Erinnerung an langes Sitzen\r
 STR_SEDENTARY_REMINDER_NOTE$Sie waren XX Stunden inaktiv, stehen Sie auf und bewegen Sie sich!\r
 STR_SYSTEM_UPGRADING$Systemaktualisierung läuft\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$Das aktuelle Gerät ist bereits mit XX verbunden. Das Fortsetzen der Verbindung entfernt die Bindung und setzt die Uhr auf die Werkseinstellungen zurück (Daten der Uhr werden gelöscht). Möchten Sie fortfahren?\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$Das aktuelle Gerät ist bereits mit XX verbunden\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$Die Fortsetzung der Verbindungsoperation löst die Bindung an XX auf und setzt die Uhr auf die Werkseinstellungen zurück (dadurch werden die Uhrdaten gelöscht).\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$Möchten Sie fortfahren\r
 STR_AI_VOICE$KI Stimme\r
 STR_AI_INTELLIGENT_ASSISTANT$KI Sprachassistent\r
 STR_START_CHAT$Gespräch starten\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index d9580d4..290261a 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$Time for some water! And stay hydrated
 STR_SEDENTARY_REMINDER$Sedentary reminder\r
 STR_SEDENTARY_REMINDER_NOTE$You haven't moved for XX hours. Get up and move.\r
 STR_SYSTEM_UPGRADING$System upgrading\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$The device has been bound to XX. If you continue to connect the device, the device will be unbound and the watch will be restored to factory Settings (the watch data will be cleared).\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$The device has been bound to XX \r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$Continuing to connect will unbind XX and restore the watch to factory Settings (will clear the watch data)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$Whether to continue the operation\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI Intelligent Assistant\r
 STR_START_CHAT$Start Chat\r
index d1396c4..eb41b97 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$¡Es hora de beber agua! Recuerde mantenerse hidra
 STR_SEDENTARY_REMINDER$Recordatorio de sedentarismo\r
 STR_SEDENTARY_REMINDER_NOTE$Has estado inactivo durante XX horas, ¡levántate y muévete un poco!\r
 STR_SYSTEM_UPGRADING$Actualización del sistema\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$El dispositivo actual ya está conectado a XX. Continuar con la conexión eliminará el vínculo y restaurará el reloj a la configuración de fábrica (se borrarán los datos del reloj). ¿Desea continuar?\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$El dispositivo actual ya está conectado a XX. \r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$La operación de conexión continua desvinculará el reloj del XX y restablecerá el reloj a la configuración de fábrica (borrará todos los datos del reloj)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$¿Desea continuar esta operación\r
 STR_AI_VOICE$AI Voz\r
 STR_AI_INTELLIGENT_ASSISTANT$Asistente Inteligente de AI\r
 STR_START_CHAT$Iniciar diálogo\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index 74534cb..7f9066c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$Treba piti vodu! Zapamtite da se pravovremeno hidr
 STR_SEDENTARY_REMINDER$Podsetnik za dugotrajno sedenje\r
 STR_SEDENTARY_REMINDER_NOTE$Niste bili aktivni već XX sati, ustanite i malo se pomaknite!\r
 STR_SYSTEM_UPGRADING$Ažuriranje sustava\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$Trenutni uređaj je već povezan s XX. Nastavak povezivanja će ukinuti vezu i vratiti sat na tvorničke postavke (izbrisat će podatke sa sata). Da li želite nastaviti?\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$Trenutni uređaj je već povezan s XX\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$Nastavljanjem operacije spajanja bit će otkazana veza s XX i sat će biti vraćen na fabričke postavke (podaci na satu će biti izbrisani)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$ Da li želite nastaviti\r
 STR_AI_VOICE$AI Glas\r
 STR_AI_INTELLIGENT_ASSISTANT$AI Pametni asistent\r
 STR_START_CHAT$Započni razgovor\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index 167075a..911cb8f 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$水を飲むべき時間です。時間通りに
 STR_SEDENTARY_REMINDER$座りっぱなしの通知\r
 STR_SEDENTARY_REMINDER_NOTE$あなたはXX時間活動していません。立ち上がって少し動きましょう。\r
 STR_SYSTEM_UPGRADING$システムアップグレード中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$現在のデバイスはXXとバインドされています。続行するとバインドが解除され、時計は工場出荷時設定に戻ります(データが消去されます)。この操作を続けますか?\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$現在のデバイスはXXとバインドされています\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$続けて接続操作を行うと、XXとのバインドが解除され、腕時計は出荷時の設定に戻ります(腕時計のデータはすべて消去されます)。\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$この操作を続けますか\r
 STR_AI_VOICE$AI音声\r
 STR_AI_INTELLIGENT_ASSISTANT$AIスマートアシスタント\r
 STR_START_CHAT$会話を開始\r
index 890e778..e53baaa 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$물을 마실 시간입니다! 적시에 수분을
 STR_SEDENTARY_REMINDER$오랜 시간 앉아 있습니다.\r
 STR_SEDENTARY_REMINDER_NOTE$XX시간 동안 활동이 없었습니다. 일어나서 움직이세요!\r
 STR_SYSTEM_UPGRADING$시스템 업그레이드 중\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$현재 장치가 XX에 연결되어 있습니다. 계속 연결 작업을 수행하면 연결 해제되며 시계가 초기화(시계 데이터 삭제)됩니다. 이 작업을 계속 하시겠습니까?\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$현재 기기는 이미 XX와 바인딩되었습니다\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$계속 연결 작업을 하면 XX와의 바인딩이 해제되고 손목시계는 출고 시 설정으로 되돌아갑니다(손목시계 데이터가 모두 삭제됩니다)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$이 작업을 계속하시겠습니까\r
 STR_AI_VOICE$AI 음성\r
 STR_AI_INTELLIGENT_ASSISTANT$AI 스마트 어시스턴트\r
 STR_START_CHAT$대화 시작\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index 31acabc..a23aa44 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$Пора пить воду! Не забудьте
 STR_SEDENTARY_REMINDER$Напоминание о сидячем образе жизни\r
 STR_SEDENTARY_REMINDER_NOTE$Вы не активны уже XX часов, встаньте и немного подвигайтесь!\r
 STR_SYSTEM_UPGRADING$Идет обновление системы\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$Текущее устройство уже подключено к XX. Продолжение подключения отменит связывание и вернет часы к заводским настройкам (будут удалены данные часов). Вы хотите продолжить?\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$Текущее устройство уже подключено к XX \r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$Продолжение операции подключения приведет к отмене привязки к XX и восстановлению часов до заводских настроек (данные на часах будут удалены)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$Вы хотите продолжить\r
 STR_AI_VOICE$ИИ Голос\r
 STR_AI_INTELLIGENT_ASSISTANT$Умный помощник ИИ\r
 STR_START_CHAT$Начать диалог\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..80ffc5c 100644 (file)
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index c5f6446..2719d8e 100644 (file)
@@ -340,7 +340,7 @@ STR_AUTO_DETECT$自动识别
 STR_ABOUT_WATCH$关于手表\r
 STR_WATCH_QR_CODE$手表二维码\r
 STR_SYSTEM_LANGUAGE$系统语言\r
-STR_RESTART$重启\r
+STR_RESTART$重新启动\r
 STR_SHUTDOWN$关机\r
 STR_FACTORY_RESET$恢复出厂\r
 STR_WATCH_NAME$手表名称\r
@@ -457,7 +457,9 @@ STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足
 STR_SEDENTARY_REMINDER$久坐提醒\r
 STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
 STR_SYSTEM_UPGRADING$系统升级中\r
-STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_NEWDEVICE_BIND_REMIND_NOTE1$当前设备已经与XX绑定\r
+STR_NEWDEVICE_BIND_REMIND_NOTE2$继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)\r
+STR_NEWDEVICE_BIND_REMIND_NOTE3$是否继续此操作\r
 STR_AI_VOICE$AI Voice\r
 STR_AI_INTELLIGENT_ASSISTANT$AI智能助手\r
 STR_START_CHAT$开始对话\r
index 2ef6c6d..532e6b7 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 7943128..4b7a5fa 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index a642f8c..de0eb5f 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 733c63c..c81e11b 100644 (file)
Binary files a/tools/language_tool/Language_xml/language_custom.xlsx and b/tools/language_tool/Language_xml/language_custom.xlsx differ
index 5986644..ed51bad 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="Erinnerung an langes Sitzen"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="Sie waren XX Stunden inaktiv, stehen Sie auf und bewegen Sie sich!"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="Systemaktualisierung läuft"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="Das aktuelle Gerät ist bereits mit XX verbunden. Das Fortsetzen der Verbindung entfernt die Bindung und setzt die Uhr auf die Werkseinstellungen zurück (Daten der Uhr werden gelöscht). Möchten Sie fortfahren?"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="Das aktuelle Gerät ist bereits mit XX verbunden"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="Die Fortsetzung der Verbindungsoperation löst die Bindung an XX auf und setzt die Uhr auf die Werkseinstellungen zurück (dadurch werden die Uhrdaten gelöscht)."/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="Möchten Sie fortfahren"/>
        <lanstr id="STR_AI_VOICE" value="KI Stimme"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="KI Sprachassistent"/>
        <lanstr id="STR_START_CHAT" value="Gespräch starten"/>
index 811e377..97b1ab6 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 97ff6df..5555b29 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="Sedentary reminder"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="You haven't moved for XX hours. Get up and move."/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="System upgrading"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="The device has been bound to XX. If you continue to connect the device, the device will be unbound and the watch will be restored to factory Settings (the watch data will be cleared)."/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="The device has been bound to XX"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="Continuing to connect will unbind XX and restore the watch to factory Settings (will clear the watch data)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="Whether to continue the operation"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI Intelligent Assistant"/>
        <lanstr id="STR_START_CHAT" value="Start Chat"/>
index 71de491..3478b8d 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="Recordatorio de sedentarismo"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="Has estado inactivo durante XX horas, ¡levántate y muévete un poco!"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="Actualización del sistema"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="El dispositivo actual ya está conectado a XX. Continuar con la conexión eliminará el vínculo y restaurará el reloj a la configuración de fábrica (se borrarán los datos del reloj). ¿Desea continuar?"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="El dispositivo actual ya está conectado a XX."/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="La operación de conexión continua desvinculará el reloj del XX y restablecerá el reloj a la configuración de fábrica (borrará todos los datos del reloj)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="¿Desea continuar esta operación"/>
        <lanstr id="STR_AI_VOICE" value="AI Voz"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="Asistente Inteligente de AI"/>
        <lanstr id="STR_START_CHAT" value="Iniciar diálogo"/>
index 8162a46..cc3e8dd 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 1a410fb..9780e65 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 5cc89ea..61efe3a 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index f4ca3d2..6e0fb94 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index a03ce1b..3d6894f 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index cc4d006..dcb71e3 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="Podsetnik za dugotrajno sedenje"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="Niste bili aktivni već XX sati, ustanite i malo se pomaknite!"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="Ažuriranje sustava"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="Trenutni uređaj je već povezan s XX. Nastavak povezivanja će ukinuti vezu i vratiti sat na tvorničke postavke (izbrisat će podatke sa sata). Da li želite nastaviti?"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="Trenutni uređaj je već povezan s XX"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="Nastavljanjem operacije spajanja bit će otkazana veza s XX i sat će biti vraćen na fabričke postavke (podaci na satu će biti izbrisani)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value=" Da li želite nastaviti"/>
        <lanstr id="STR_AI_VOICE" value="AI Glas"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI Pametni asistent"/>
        <lanstr id="STR_START_CHAT" value="Započni razgovor"/>
index a088ed6..1a6bf60 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 03816a0..536af47 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index e08c8ed..ee689e7 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="座りっぱなしの通知"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="あなたはXX時間活動していません。立ち上がって少し動きましょう。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="システムアップグレード中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="現在のデバイスはXXとバインドされています。続行するとバインドが解除され、時計は工場出荷時設定に戻ります(データが消去されます)。この操作を続けますか?"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="現在のデバイスはXXとバインドされています"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="続けて接続操作を行うと、XXとのバインドが解除され、腕時計は出荷時の設定に戻ります(腕時計のデータはすべて消去されます)。"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="この操作を続けますか"/>
        <lanstr id="STR_AI_VOICE" value="AI音声"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AIスマートアシスタント"/>
        <lanstr id="STR_START_CHAT" value="会話を開始"/>
index d4f84a9..f0e3a1c 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="오랜 시간 앉아 있습니다."/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="XX시간 동안 활동이 없었습니다. 일어나서 움직이세요!"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="시스템 업그레이드 중"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="현재 장치가 XX에 연결되어 있습니다. 계속 연결 작업을 수행하면 연결 해제되며 시계가 초기화(시계 데이터 삭제)됩니다. 이 작업을 계속 하시겠습니까?"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="현재 기기는 이미 XX와 바인딩되었습니다"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="계속 연결 작업을 하면 XX와의 바인딩이 해제되고 손목시계는 출고 시 설정으로 되돌아갑니다(손목시계 데이터가 모두 삭제됩니다)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="이 작업을 계속하시겠습니까"/>
        <lanstr id="STR_AI_VOICE" value="AI 음성"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI 스마트 어시스턴트"/>
        <lanstr id="STR_START_CHAT" value="대화 시작"/>
index 8c8f5fc..6164036 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 98858b9..25729f4 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 3a5e8a1..8c5cc70 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 86a2347..f4ea177 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index b2ed502..7cd93a9 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index a5e9bea..8b10f38 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="Напоминание о сидячем образе жизни"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="Вы не активны уже XX часов, встаньте и немного подвигайтесь!"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="Идет обновление системы"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="Текущее устройство уже подключено к XX. Продолжение подключения отменит связывание и вернет часы к заводским настройкам (будут удалены данные часов). Вы хотите продолжить?"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="Текущее устройство уже подключено к XX"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="Продолжение операции подключения приведет к отмене привязки к XX и восстановлению часов до заводских настроек (данные на часах будут удалены)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="Вы хотите продолжить"/>
        <lanstr id="STR_AI_VOICE" value="ИИ Голос"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="Умный помощник ИИ"/>
        <lanstr id="STR_START_CHAT" value="Начать диалог"/>
index 3e6ac4b..0ed24cb 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index aa94f51..c71488a 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 4754dc0..de9bc03 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index a72332c..5eb4c6c 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 1b6fa75..7944990 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 4c8acf2..cda888a 100644 (file)
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index 3b55c48..554569e 100644 (file)
        <lanstr id="STR_ABOUT_WATCH" value="关于手表"/>
        <lanstr id="STR_WATCH_QR_CODE" value="手表二维码"/>
        <lanstr id="STR_SYSTEM_LANGUAGE" value="系统语言"/>
-       <lanstr id="STR_RESTART" value="重启"/>
+       <lanstr id="STR_RESTART" value="重新启动"/>
        <lanstr id="STR_SHUTDOWN" value="关机"/>
        <lanstr id="STR_FACTORY_RESET" value="恢复出厂"/>
        <lanstr id="STR_WATCH_NAME" value="手表名称"/>
        <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
        <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
        <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
-       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与XX绑定继续连接操作会解除绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE1" value="当前设备已经与XX绑定"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE2" value="继续连接操作会解除与XX的绑定并将手表恢复出厂设置(会清空手表数据)"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE3" value="是否继续此操作"/>
        <lanstr id="STR_AI_VOICE" value="AI Voice"/>
        <lanstr id="STR_AI_INTELLIGENT_ASSISTANT" value="AI智能助手"/>
        <lanstr id="STR_START_CHAT" value="开始对话"/>
index d837892..93aa51c 100644 (file)
Binary files a/tools/language_tool/font/ar.lang and b/tools/language_tool/font/ar.lang differ
index 88355cd..a038593 100644 (file)
Binary files a/tools/language_tool/font/az.lang and b/tools/language_tool/font/az.lang differ
index c3d5b3c..4d7eacb 100644 (file)
Binary files a/tools/language_tool/font/cs.lang and b/tools/language_tool/font/cs.lang differ
index ab3f3aa..b023dc6 100644 (file)
Binary files a/tools/language_tool/font/de.lang and b/tools/language_tool/font/de.lang differ
index 9ab242e..fffa5fa 100644 (file)
Binary files a/tools/language_tool/font/el.lang and b/tools/language_tool/font/el.lang differ
index ec7c766..98bfaf7 100644 (file)
Binary files a/tools/language_tool/font/en.lang and b/tools/language_tool/font/en.lang differ
index 61a788b..567953b 100644 (file)
Binary files a/tools/language_tool/font/es.lang and b/tools/language_tool/font/es.lang differ
index 509e73d..fd1db4a 100644 (file)
Binary files a/tools/language_tool/font/fa.lang and b/tools/language_tool/font/fa.lang differ
index 420ecb0..7b0d5f0 100644 (file)
Binary files a/tools/language_tool/font/fi.lang and b/tools/language_tool/font/fi.lang differ
index bb39e0e..5b8af48 100644 (file)
Binary files a/tools/language_tool/font/fr.lang and b/tools/language_tool/font/fr.lang differ
index bbbee5a..acb732e 100644 (file)
Binary files a/tools/language_tool/font/he.lang and b/tools/language_tool/font/he.lang differ
index 260a44c..97c2bb1 100644 (file)
Binary files a/tools/language_tool/font/hi.lang and b/tools/language_tool/font/hi.lang differ
index e8e9f97..5702e75 100644 (file)
Binary files a/tools/language_tool/font/hr.lang and b/tools/language_tool/font/hr.lang differ
index 8bd98fe..6dced81 100644 (file)
Binary files a/tools/language_tool/font/id.lang and b/tools/language_tool/font/id.lang differ
index b718ee9..485078d 100644 (file)
Binary files a/tools/language_tool/font/it.lang and b/tools/language_tool/font/it.lang differ
index ced2993..28867cb 100644 (file)
Binary files a/tools/language_tool/font/ja.lang and b/tools/language_tool/font/ja.lang differ
index 8e72a35..2c5d6ea 100644 (file)
Binary files a/tools/language_tool/font/ko.lang and b/tools/language_tool/font/ko.lang differ
index f14c0bd..c86af8b 100644 (file)
Binary files a/tools/language_tool/font/ms.lang and b/tools/language_tool/font/ms.lang differ
index dee30cd..7cb0fce 100644 (file)
Binary files a/tools/language_tool/font/nl.lang and b/tools/language_tool/font/nl.lang differ
index a685664..88b377b 100644 (file)
Binary files a/tools/language_tool/font/pl.lang and b/tools/language_tool/font/pl.lang differ
index c2fa3df..61fe135 100644 (file)
Binary files a/tools/language_tool/font/pt.lang and b/tools/language_tool/font/pt.lang differ
index 3de287d..3dd52a0 100644 (file)
Binary files a/tools/language_tool/font/ro.lang and b/tools/language_tool/font/ro.lang differ
index e2d707d..95fdb0b 100644 (file)
Binary files a/tools/language_tool/font/ru.lang and b/tools/language_tool/font/ru.lang differ
index ac72a0a..2c944af 100644 (file)
Binary files a/tools/language_tool/font/sv.lang and b/tools/language_tool/font/sv.lang differ
index 0916056..d99c38b 100644 (file)
Binary files a/tools/language_tool/font/th.lang and b/tools/language_tool/font/th.lang differ
index f63d7f5..ca961ed 100644 (file)
Binary files a/tools/language_tool/font/tr.lang and b/tools/language_tool/font/tr.lang differ
index 0a38d64..4383724 100644 (file)
@@ -469,98 +469,100 @@ enum UIResourceTextId : uint16_t {
     STR_SEDENTARY_REMINDER = 456,\r
     STR_SEDENTARY_REMINDER_NOTE = 457,\r
     STR_SYSTEM_UPGRADING = 458,\r
-    STR_NEWDEVICE_BIND_REMIND_NOTE = 459,\r
-    STR_AI_VOICE = 460,\r
-    STR_AI_INTELLIGENT_ASSISTANT = 461,\r
-    STR_START_CHAT = 462,\r
-    STR_BOOT_FAILED = 463,\r
-    STR_ENABLE_MOBILE_DATA_FIRST = 464,\r
-    STR_ENABLE_BLUETOOTH_FIRST = 465,\r
-    STR_LISTENING = 466,\r
-    STR_FINISH_SPEAKING = 467,\r
-    STR_THINKING = 468,\r
-    STR_CANCEL = 469,\r
-    STR_CONNECT_TIMEOUT = 470,\r
-    STR_PLEASE_RESTART_CHAT = 471,\r
-    STR_CONTINUE_CHAT = 472,\r
-    STR_AIMODELS_DOUBAO = 473,\r
-    STR_AIMODES_WENXINYIYAN = 474,\r
-    STR_AIMODES_KIMI = 475,\r
-    STR_AIMODES_CHATGPT = 476,\r
-    STR_SLIDE_TO_SHUTDOWN = 477,\r
-    STR_SLIDE_TO_REBOOT = 478,\r
-    STR_AI_FAMILY_MEALS = 479,\r
-    STR_CHAT = 480,\r
-    STR_PCY4GC_OR_AS = 481,\r
-    STR_API_KEYS = 482,\r
-    STR_PGTTAF = 483,\r
-    STR_DAFBS = 484,\r
-    STR_OPENAI_API_KEYS = 485,\r
-    STR_KHBB = 486,\r
-    STR_GTAS = 487,\r
-    STR_DYWTDAK = 488,\r
-    STR_CONNECTING = 489,\r
-    STR_CONNECTION_FAIL = 490,\r
-    STR_PTALORTM = 491,\r
-    STR_MOTION_DETECTION_WALK_NOTE = 492,\r
-    STR_MOTION_DETECTION_RUN_NOTE = 493,\r
-    STR_MOTION_DETECTION_RIDE_NOTE = 494,\r
-    STR_MOTION_DETECTION_ROWING_NOTE = 495,\r
-    STR_MOTION_DETECTION_ELLIPTICAL_NOTE = 496,\r
-    STR_PE4GC = 497,\r
-    STR_OBU_MESSAGE = 498,\r
-    STR_DELETE = 499,\r
-    STR_CHARGE = 500,\r
-    STR_CHARGE_NOTE = 501,\r
-    STR_STEP_FREQUENCY = 502,\r
-    STR_STEP_LENGTH = 503,\r
-    STR_AVG_PACE = 504,\r
-    STR_TONGYI_QIANWEN = 505,\r
-    STR_IFLYTEK_SPARK = 506,\r
-    STR_DISTURBNOTE_OFF = 507,\r
-    STR_4G_NOTE = 508,\r
-    STR_MUSIC_PLAYER_SOURCE_NOTE = 509,\r
-    STR_MUSIC_LIST_IS_EMPTY = 510,\r
-    STR_BT_HEADSET_RESCAN = 511,\r
-    STR_BT_HEADSET_NOFOND = 512,\r
-    STR_SCHEDULE = 513,\r
-    STR_SCHEDULE_TITLE = 514,\r
-    STR_SCHEDULE_NO_DATA = 515,\r
-    STR_SCHEDULE_NO_DATA_PROMPT = 516,\r
-    STR_NO_PAIRED_DEV = 517,\r
-    STR_IGNORE = 518,\r
-    STR_START = 519,\r
-    STR_ARC_SCALE_LIST_DISPLAY = 520,\r
-    STR_COUNT_DOWN = 521,\r
-    STR_CUSTOM_TIME = 522,\r
-    STR_QUICK_START = 523,\r
-    STR_1_MIN = 524,\r
-    STR_5_MIN = 525,\r
-    STR_10_MIN = 526,\r
-    STR_30_MIN = 527,\r
-    STR_SET_COUNT_DOWN_NOTE = 528,\r
-    STR_COUNTDOWN_ENDS = 529,\r
-    STR_MAXIMUM_TIME_REACH_NOTE = 530,\r
-    STR_STOPWATCH_STOP_NOTE = 531,\r
-    STR_TMCHBR = 532,\r
-    STR_SCHEDULE_TOPIC = 533,\r
-    STR_SCHEDULE_TIME = 534,\r
-    STR_SCHEDULE_NOTES = 535,\r
-    STR_SCHEDULE_DELETE_PROMPT = 536,\r
-    STR_HANG_UP_OR_ANSWER = 537,\r
-    STR_WATCH_CALL = 538,\r
-    STR_PHONE_CALL = 539,\r
-    STR_STEPS_OF_THE_DAY = 540,\r
-    STR_MILEAGE = 541,\r
-    STR_FAT_BURNING_TIME = 542,\r
-    STR_NUMBER_OF_STANDS = 543,\r
-    STR_CONSUME_CALORIES = 544,\r
-    STR_GOAL_HINT = 545,\r
-    STR_SLEEPMODE = 546,\r
-    STR_SLEEP_MODE_PROMPT_ON = 547,\r
-    STR_LOW_POWER_NOTIF_1 = 548,\r
-    STR_LOW_POWER_NOTIF_2 = 549,\r
-    STR_MAX_ID = 550,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE1 = 459,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE2 = 460,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE3 = 461,\r
+    STR_AI_VOICE = 462,\r
+    STR_AI_INTELLIGENT_ASSISTANT = 463,\r
+    STR_START_CHAT = 464,\r
+    STR_BOOT_FAILED = 465,\r
+    STR_ENABLE_MOBILE_DATA_FIRST = 466,\r
+    STR_ENABLE_BLUETOOTH_FIRST = 467,\r
+    STR_LISTENING = 468,\r
+    STR_FINISH_SPEAKING = 469,\r
+    STR_THINKING = 470,\r
+    STR_CANCEL = 471,\r
+    STR_CONNECT_TIMEOUT = 472,\r
+    STR_PLEASE_RESTART_CHAT = 473,\r
+    STR_CONTINUE_CHAT = 474,\r
+    STR_AIMODELS_DOUBAO = 475,\r
+    STR_AIMODES_WENXINYIYAN = 476,\r
+    STR_AIMODES_KIMI = 477,\r
+    STR_AIMODES_CHATGPT = 478,\r
+    STR_SLIDE_TO_SHUTDOWN = 479,\r
+    STR_SLIDE_TO_REBOOT = 480,\r
+    STR_AI_FAMILY_MEALS = 481,\r
+    STR_CHAT = 482,\r
+    STR_PCY4GC_OR_AS = 483,\r
+    STR_API_KEYS = 484,\r
+    STR_PGTTAF = 485,\r
+    STR_DAFBS = 486,\r
+    STR_OPENAI_API_KEYS = 487,\r
+    STR_KHBB = 488,\r
+    STR_GTAS = 489,\r
+    STR_DYWTDAK = 490,\r
+    STR_CONNECTING = 491,\r
+    STR_CONNECTION_FAIL = 492,\r
+    STR_PTALORTM = 493,\r
+    STR_MOTION_DETECTION_WALK_NOTE = 494,\r
+    STR_MOTION_DETECTION_RUN_NOTE = 495,\r
+    STR_MOTION_DETECTION_RIDE_NOTE = 496,\r
+    STR_MOTION_DETECTION_ROWING_NOTE = 497,\r
+    STR_MOTION_DETECTION_ELLIPTICAL_NOTE = 498,\r
+    STR_PE4GC = 499,\r
+    STR_OBU_MESSAGE = 500,\r
+    STR_DELETE = 501,\r
+    STR_CHARGE = 502,\r
+    STR_CHARGE_NOTE = 503,\r
+    STR_STEP_FREQUENCY = 504,\r
+    STR_STEP_LENGTH = 505,\r
+    STR_AVG_PACE = 506,\r
+    STR_TONGYI_QIANWEN = 507,\r
+    STR_IFLYTEK_SPARK = 508,\r
+    STR_DISTURBNOTE_OFF = 509,\r
+    STR_4G_NOTE = 510,\r
+    STR_MUSIC_PLAYER_SOURCE_NOTE = 511,\r
+    STR_MUSIC_LIST_IS_EMPTY = 512,\r
+    STR_BT_HEADSET_RESCAN = 513,\r
+    STR_BT_HEADSET_NOFOND = 514,\r
+    STR_SCHEDULE = 515,\r
+    STR_SCHEDULE_TITLE = 516,\r
+    STR_SCHEDULE_NO_DATA = 517,\r
+    STR_SCHEDULE_NO_DATA_PROMPT = 518,\r
+    STR_NO_PAIRED_DEV = 519,\r
+    STR_IGNORE = 520,\r
+    STR_START = 521,\r
+    STR_ARC_SCALE_LIST_DISPLAY = 522,\r
+    STR_COUNT_DOWN = 523,\r
+    STR_CUSTOM_TIME = 524,\r
+    STR_QUICK_START = 525,\r
+    STR_1_MIN = 526,\r
+    STR_5_MIN = 527,\r
+    STR_10_MIN = 528,\r
+    STR_30_MIN = 529,\r
+    STR_SET_COUNT_DOWN_NOTE = 530,\r
+    STR_COUNTDOWN_ENDS = 531,\r
+    STR_MAXIMUM_TIME_REACH_NOTE = 532,\r
+    STR_STOPWATCH_STOP_NOTE = 533,\r
+    STR_TMCHBR = 534,\r
+    STR_SCHEDULE_TOPIC = 535,\r
+    STR_SCHEDULE_TIME = 536,\r
+    STR_SCHEDULE_NOTES = 537,\r
+    STR_SCHEDULE_DELETE_PROMPT = 538,\r
+    STR_HANG_UP_OR_ANSWER = 539,\r
+    STR_WATCH_CALL = 540,\r
+    STR_PHONE_CALL = 541,\r
+    STR_STEPS_OF_THE_DAY = 542,\r
+    STR_MILEAGE = 543,\r
+    STR_FAT_BURNING_TIME = 544,\r
+    STR_NUMBER_OF_STANDS = 545,\r
+    STR_CONSUME_CALORIES = 546,\r
+    STR_GOAL_HINT = 547,\r
+    STR_SLEEPMODE = 548,\r
+    STR_SLEEP_MODE_PROMPT_ON = 549,\r
+    STR_LOW_POWER_NOTIF_1 = 550,\r
+    STR_LOW_POWER_NOTIF_2 = 551,\r
+    STR_MAX_ID = 552,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index 6595df0..39cf946 100644 (file)
Binary files a/tools/language_tool/font/uk.lang and b/tools/language_tool/font/uk.lang differ
index 9d4c189..6c5d048 100644 (file)
Binary files a/tools/language_tool/font/uz.lang and b/tools/language_tool/font/uz.lang differ
index d082ade..4e292aa 100644 (file)
Binary files a/tools/language_tool/font/vi.lang and b/tools/language_tool/font/vi.lang differ
index b7ed3de..895c87e 100644 (file)
Binary files a/tools/language_tool/font/zh.lang and b/tools/language_tool/font/zh.lang differ