增加N9默认表盘
authorCaisking <Casiking@zhihuishixun.com>
Tue, 8 Jul 2025 06:43:18 +0000 (14:43 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Tue, 8 Jul 2025 06:43:18 +0000 (14:43 +0800)
code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialModel.h
code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialModel.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/distortion.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/eagle.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/lake.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/science.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/vibrantnumber.bin [new file with mode: 0644]

index 5bc5ce5..942189d 100644 (file)
@@ -66,8 +66,6 @@ namespace OHOS
         {DIAL_CLOCK_4, "Custom_4", CUSTOM_CLOCK4_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 4\r
         {DIAL_CLOCK_5, "Custom_5", CUSTOM_CLOCK5_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 4\r
     };\r
-    //默认表盘\r
-    static const char* DEFAULT_CUSTOM_DIAL_PATH = "/user/dial/res_dial/obsidianrhythm.bin";\r
     //卡片map\r
     const CardInfo printfMap[] = {\r
         {HEART_RATE, "心率卡片"},\r
@@ -403,13 +401,22 @@ namespace OHOS
 \r
     void MainModel::InitDialSettingDefault(int id)\r
     {\r
-        //é»\91è\80\80表盘\r
+        //é»\98认表盘\r
         if(id == DEFAULT_DIAL_ID)\r
         {\r
             dialSetting.dialFlag = 1;\r
             dialSetting.dialId = id;\r
-            dialSetting.dialFullName = DEFAULT_CUSTOM_DIAL_PATH; \r
-            return;\r
+            dialSetting.dialFullName = SetDialModel::GetInstance().GetdialPath(id); \r
+            if(dialSetting.dialFullName == "")\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitDialSettingDefault is error");\r
+                // 默认情况下,如果找不到表盘路径,则设置为默认表盘\r
+                id = DIAL_CLOCK;\r
+            }\r
+            else\r
+            {\r
+                return;\r
+            }\r
         }\r
         //自定义表盘\r
         if (id < DIAL_CLOCK || id >= DIAL_MAX)\r
@@ -440,8 +447,8 @@ namespace OHOS
         if (len < 0)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Failed to retrieve dial settings. Initializing to default settings.\r\n");\r
-        #if defined(BOARD_W9) || defined(BOARD_N9)\r
-            InitDialSettingDefault(DIAL_CLOCK);//N9使用默认静态表盘\r
+        #if defined(BOARD_W9)\r
+            InitDialSettingDefault(DIAL_CLOCK);//W9使用默认静态表盘\r
         #else\r
             //判断黑耀表盘是否存在\r
             if(SetDialModel::GetInstance().IsDialInstalled(DEFAULT_DIAL_ID))\r
@@ -470,8 +477,8 @@ namespace OHOS
         else\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: First value is empty. Initializing to default settings.\r\n");\r
-        #if defined(BOARD_W9) || defined(BOARD_N9)\r
-            InitDialSettingDefault(DIAL_CLOCK);//N9使用默认静态表盘\r
+        #if defined(BOARD_W9) \r
+            InitDialSettingDefault(DIAL_CLOCK);//W9使用默认静态表盘\r
         #else\r
             //判断黑耀表盘是否存在\r
             if(SetDialModel::GetInstance().IsDialInstalled(DEFAULT_DIAL_ID))\r
@@ -496,8 +503,8 @@ namespace OHOS
         else\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Second value is empty. Initializing to default settings.\r\n");\r
-        #if defined(BOARD_W9) || defined(BOARD_N9)\r
-            InitDialSettingDefault(DIAL_CLOCK);//N9使用默认静态表盘\r
+        #if defined(BOARD_W9)\r
+            InitDialSettingDefault(DIAL_CLOCK);//W9使用默认静态表盘\r
         #else\r
             //判断黑耀表盘是否存在\r
             if(SetDialModel::GetInstance().IsDialInstalled(DEFAULT_DIAL_ID))\r
index bbb13b3..4018494 100644 (file)
@@ -21,12 +21,21 @@ namespace OHOS
     }DialLayout;
 
     // 定义特殊Id
+    #ifdef BOARD_N9
+    constexpr uint16_t DEFAULT_DIAL_ID = 167;
+    constexpr uint16_t DEFAULT_DIAL_ID_0 = 1028;
+    constexpr uint16_t DEFAULT_DIAL_ID_1 = 137;
+    constexpr uint16_t DEFAULT_DIAL_ID_2 = 128;
+    constexpr uint16_t DEFAULT_DIAL_ID_3 = 185;
+    constexpr uint16_t MAX_DEFAULT_DIAL_ID = 190;
+    #else
     constexpr uint16_t DEFAULT_DIAL_ID = 114;
     constexpr uint16_t DEFAULT_DIAL_ID_0 = 1028;
     constexpr uint16_t DEFAULT_DIAL_ID_1 = 111;
     constexpr uint16_t DEFAULT_DIAL_ID_2 = 112;
     constexpr uint16_t DEFAULT_DIAL_ID_3 = 113;
     constexpr uint16_t MAX_DEFAULT_DIAL_ID = 115;
+    #endif
     // 定义自定义表盘
     constexpr uint16_t CUSTOM_DIAL_ID_1 = 1;
     constexpr uint16_t CUSTOM_DIAL_ID_2 = 2;
@@ -76,6 +85,8 @@ namespace OHOS
         bool CheckFileExists(const std::string &filePath);
         /*通过表盘名*/
         std::string GetDialDescription(const std::string &dialName);
+        /*通过表盘Id查询名称*/
+        std::string GetdialPath(int Id);
         /*获取自定义表盘名*/
         std::string GetCustomName(int Id);
         /*删除自定义表盘*/
index 8b9850a..4a88065 100644 (file)
@@ -35,15 +35,17 @@ std::unordered_map<uint16_t, std::string> registeredDials{
 #ifdef CUSTOM_Z1
     {DEFAULT_DIAL_ID_0, "Z1"},
 #elif BOARD_N9
-    {DEFAULT_DIAL_ID_0, "N9"},    
+    {DEFAULT_DIAL_ID_0, "N9"},         {DEFAULT_DIAL_ID, "lake"},
+    {DEFAULT_DIAL_ID_1, "eagle"},      {DEFAULT_DIAL_ID_2, "vibrantnumber"},
+    {DEFAULT_DIAL_ID_3, "distortion"}, {MAX_DEFAULT_DIAL_ID, "science"},
 #elif BOARD_W9
-    {DEFAULT_DIAL_ID_0, "W9"},    
+    {DEFAULT_DIAL_ID_0, "W9"},
 #else
-    {DEFAULT_DIAL_ID_0, "KUMI"}, 
+    {DEFAULT_DIAL_ID_0, "KUMI"},
     {DEFAULT_DIAL_ID, "obsidianrhythm"}, // 默认表盘修改为 黑耀律动
-    {DEFAULT_DIAL_ID_1, "satellite"},       // 卫星表盘
-    {DEFAULT_DIAL_ID_2, "birdie"},          // 飞鸟表盘
-    {DEFAULT_DIAL_ID_3, "dawninsight"},     // 晨曦智影
+    {DEFAULT_DIAL_ID_1, "satellite"},    // 卫星表盘
+    {DEFAULT_DIAL_ID_2, "birdie"},       // 飞鸟表盘
+    {DEFAULT_DIAL_ID_3, "dawninsight"},  // 晨曦智影
     {MAX_DEFAULT_DIAL_ID, "mirrorvoyager"}, // 镜影行者
 #endif
 };
@@ -207,7 +209,18 @@ uint16_t SetDialModel::GetDialIdFromName(const std::string &dialName) {
   }
   return 0; // 如果未找到对应的表盘名称,返回0或者其他适当的默认值
 }
-
+/*通过表盘Id查询名称*/
+std::string SetDialModel::GetdialPath(int Id) {
+  //判断Id是否在map中
+  if (registeredDials.find(Id) != registeredDials.end()) {
+    // 先将第一个字符串字面量转换为std::string,后续拼接会自动兼容
+    std::string path = std::string(APP_DEFAULT_DIAL_PATH) + "/" + registeredDials[Id] + ".bin";
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetdialPath is %s", path.c_str());
+    return path;
+  }
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetdialPath is error");
+  return "";
+}
 /* 获取当前表盘Id */
 uint16_t SetDialModel::GetCurrentDialID() {
   if (registeredDials.find(currentDialID) != registeredDials.end()) {
@@ -536,13 +549,18 @@ void SetDialModel::LoadAllDialFromFs() {
   加载默认表盘
 */
 const std::vector<std::string> defaultDials = {
-    "obsidianrhythm", "mirrorvoyager", "satellite", "dawninsight", "birdie"};
+#ifdef BOARD_N9
+    "lake", "eagle", "vibrantnumber", "distortion", "science",
+#else
+    "obsidianrhythm", "mirrorvoyager", "satellite", "dawninsight", "birdie",
+#endif
+};
 
 void SetDialModel::LoadAllDialFromDefult(void) {
 
-  #ifdef BOARD_W9
-    return;//暂时没有默认表盘
-  #endif
+#ifdef BOARD_W9
+  return; // w9暂时没有默认表盘
+#endif
 
   DIR *dirp = opendir(APP_DEFAULT_DIAL_PATH);
   if (dirp == nullptr) {
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/distortion.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/distortion.bin
new file mode 100644 (file)
index 0000000..766e7f4
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ace9e536770d4859a790ae29f3bb99066dd0129c86088fe373a784a64aff7ea
+size 219360
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/eagle.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/eagle.bin
new file mode 100644 (file)
index 0000000..497e98a
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5ed963d2378b5a468f84a097ecddac89220627fac2a309067aae63aced83bdd1
+size 209180
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/lake.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/lake.bin
new file mode 100644 (file)
index 0000000..6742a0d
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:697426bef753635d227ceb84566e355fdd75bdaa25107136d3dcd4cca01e356e
+size 208882
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/science.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/science.bin
new file mode 100644 (file)
index 0000000..a131114
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8768f5158aecb12152e1082c434087553674d7953542a02048bf14eb49f0e45d
+size 219360
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/vibrantnumber.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/n9/fs/user/dial/res_dial/vibrantnumber.bin
new file mode 100644 (file)
index 0000000..0d88394
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f2d4f0cc23c9d3fe6e659a268802f9a2d4f7ec1bc556f925d59da4c4417c18d8
+size 724812