修复表盘Id初始化不正确
authorCaisking <3449750381@qq.com>
Sat, 6 Jul 2024 07:39:02 +0000 (15:39 +0800)
committerCaisking <3449750381@qq.com>
Sat, 6 Jul 2024 07:39:02 +0000 (15:39 +0800)
code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h
code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialModel.cpp

index 24b3510..65f44fa 100644 (file)
@@ -1,3 +1,9 @@
+/*** \r
+ * @Date: 2024-06-21 09:56:18\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-07-06 15:15:38\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h\r
+ */\r
 /***\r
  * @Date: 2024-06-21 09:56:18\r
  * @LastEditors: Caisking 3449750381@qq.com\r
@@ -62,7 +68,7 @@ namespace OHOS
         void AddCardSetting(uint8_t index);\r
         const CardInfo *GetCardInfo(CardId card) const;\r
         const DialInfo *GetDialInfo(DialId dial) const;\r
-        void AddDialSetting(const DialSetting &setting);\r
+        void AddDialSetting(const DialSetting &setting, const int id);\r
         void InitDialSettings(void);\r
         DialSetting &GetDialSetting();\r
         bool IsFromSetCardView(void) const;\r
index 57fc16d..dd5a768 100644 (file)
@@ -344,6 +344,7 @@ namespace OHOS
         }\r
         return nullptr;\r
     }\r
+\r
     void MainModel::InitDialSettingDefault(void)\r
     {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitDialSettingDefault");\r
@@ -351,17 +352,17 @@ namespace OHOS
         dialSetting.dialId = DIAL_CLOCK;\r
         dialSetting.dialFullName = "";\r
     }\r
+\r
     /*更新表盘设置*/\r
-    void MainModel::AddDialSetting(const DialSetting &setting)\r
+    void MainModel::AddDialSetting(const DialSetting &setting, const int id)\r
     {\r
         std::string tmp;\r
-        tmp += std::to_string(setting.dialFlag);\r
-        tmp += ",";\r
-        tmp += std::to_string(setting.dialId);\r
-        tmp += ",";\r
-        tmp += setting.dialFullName;\r
-        tmp += ",";\r
+        tmp += std::to_string(setting.dialFlag) + ",";\r
+        tmp += std::to_string(setting.dialId) + ",";\r
+        tmp += setting.dialFullName + ",";\r
+\r
         (void)UtilsSetValue("dial_setting", tmp.c_str());\r
+        (void)UtilsSetValue("dial_id", std::to_string(id).c_str());\r
     }\r
     /*加载kvstore里面的dial*/\r
     void MainModel::InitDialSettings(void)\r
index f2e4e1a..cad572d 100644 (file)
@@ -123,6 +123,12 @@ namespace OHOS
     {
         readDialfile();
         LoadAllDial();
+        char idBuffer[10];
+        int len = UtilsGetValue("dial_id", idBuffer, sizeof(idBuffer));
+        if (len >= 0)
+        {
+            currentDialID = std::stoi(idBuffer); // 将字符串转换为整数
+        }
     }
 
     SetDialModel::~SetDialModel() {}
@@ -136,17 +142,16 @@ namespace OHOS
     /* 注册表盘map */
     void SetDialModel::RegisterDial(uint16_t ID, const char *dialname)
     {
-        if(ID==0 || strlen(dialname)==0)
-        return;
+        if (ID == 0 || strlen(dialname) == 0)
+            return;
 
         registeredDials[ID] = std::string(dialname); // 唯一性
 
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RegisterDial %d %s is ok!",ID, dialname);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RegisterDial %d %s is ok!", ID, dialname);
 
         LoadAllDial();
 
         saveDialfile();
-   
     }
     /* 打印map */
     void SetDialModel::PrintRegisteredDials(const std::unordered_map<uint16_t, std::string> &dials)
@@ -172,7 +177,7 @@ namespace OHOS
     /* 获取当前表盘Id */
     uint16_t SetDialModel::GetCurrentDialID()
     {
-       if (registeredDials.find(currentDialID) != registeredDials.end())
+        if (registeredDials.find(currentDialID) != registeredDials.end())
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "currentDialID is %d,name is %s", currentDialID, registeredDials[currentDialID].c_str());
         }
@@ -230,8 +235,6 @@ namespace OHOS
 
                 registeredDials.erase(ID);
                 LoadAllDial();
-
-
                 return true;
             }
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_delete_files the dial %d is false", ID);
@@ -256,8 +259,8 @@ namespace OHOS
                     diagSetting.dialFlag = info.dialFlag;
                     diagSetting.dialId = info.id;
                     diagSetting.dialFullName = info.dialFullName;
-                    MainModel::GetInstance().AddDialSetting(diagSetting); // 更新表盘设置
-                    currentDialID = ID;                                   // 更新当前表盘Id
+                    currentDialID = ID;                                                  // 更新当前表盘Id
+                    MainModel::GetInstance().AddDialSetting(diagSetting, currentDialID); // 更新表盘设置
                     NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
                     return; // 更新成功后直接返回
                 }
@@ -449,8 +452,8 @@ namespace OHOS
         diagSetting.dialFlag = info.dialFlag;
         diagSetting.dialId = info.id;
         diagSetting.dialFullName = info.dialFullName;
-        MainModel::GetInstance().AddDialSetting(diagSetting);
         currentDialID = GetDialIdFromName(info.dialName); // 更新表盘Id
+        MainModel::GetInstance().AddDialSetting(diagSetting, currentDialID);
     }
 
     /*获取表盘的总数*/