去除ConfigModel中的模板函数
authorSnickerSun <snickersun@163.com>
Thu, 11 Apr 2024 09:41:42 +0000 (17:41 +0800)
committerSnickerSun <snickersun@163.com>
Thu, 11 Apr 2024 09:41:42 +0000 (17:41 +0800)
code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h
code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/BrightnessControlView.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp
code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/src/QuickAccessView.cpp

index 48693bd..9135979 100644 (file)
@@ -31,10 +31,10 @@ namespace OHOS
         static ConfigModel *GetInstance();
         cJSON *GetcJSON(void);
         bool LoadJsonData(void);
-        template <class T>
-        T ReadJsonData(const cJSON *json_obj, const char *field_name);
-        template <class T>
-        void WriteJsonData(cJSON *json_obj, const char *field_name, T data);
+        // template <class T>
+        // T ReadJsonData(const cJSON *json_obj, const char *field_name);
+        // template <class T>
+        // void WriteJsonData(cJSON *json_obj, const char *field_name, T data);
 
         /* -------------------------------------------------------------------------- */
         std::string ReadJsonData_String(const cJSON *json_obj, const char *field_name);
@@ -118,96 +118,96 @@ namespace OHOS
     /// @tparam T
     /// @param json_obj json 对象 field_name 字段名称
     /// @return 读取到的对应值
-    template <class T>
-    T ConfigModel::ReadJsonData(const cJSON *json_obj, const char *field_name)
-    {
-        const cJSON *field_item = cJSON_GetObjectItem(json_obj, field_name);
-        if (field_item != NULL)
-        {
-            if (cJSON_IsString(field_item))
-            {
-                return T(field_item->string);
-            }
-            else if (cJSON_IsNumber(field_item))
-            {
-                return T(field_item->valuedouble);
-            }
-            else if (cJSON_IsBool(field_item))
-            {
-                return T(field_item->valueint);
-            }
-            else if (cJSON_IsArray(field_item))
-            {
-                return T(cJSON_GetArraySize(field_item));
-            }
-            else
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Unsupported data type");
-                return T("Unsupported data type");
-            }
-        }
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found");
-        return T("Field not found");
-    }
+    // template <class T>
+    // T ConfigModel::ReadJsonData(const cJSON *json_obj, const char *field_name)
+    // {
+    //     const cJSON *field_item = cJSON_GetObjectItem(json_obj, field_name);
+    //     if (field_item != NULL)
+    //     {
+    //         if (cJSON_IsString(field_item))
+    //         {
+    //             return T(field_item->string);
+    //         }
+    //         else if (cJSON_IsNumber(field_item))
+    //         {
+    //             return T(field_item->valuedouble);
+    //         }
+    //         else if (cJSON_IsBool(field_item))
+    //         {
+    //             return T(field_item->valueint);
+    //         }
+    //         else if (cJSON_IsArray(field_item))
+    //         {
+    //             return T(cJSON_GetArraySize(field_item));
+    //         }
+    //         else
+    //         {
+    //             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Unsupported data type");
+    //             return T("Unsupported data type");
+    //         }
+    //     }
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found");
+    //     return T("Field not found");
+    // }
 
     /// @brief 通用的写JSON数据函数
     /// @tparam T
     /// @param json_obj json对象
     /// @param field_name 字段名称
     /// @param data 要写入的数据
-    template <class T>
-    void ConfigModel::WriteJsonData(cJSON *json_obj, const char *field_name, T data)
-    {
-        if (json_obj == nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!");
-            return;
-        }
-
-        cJSON *data_obj = cJSON_CreateNull();
-        if constexpr (std::is_same<T, int>::value || std::is_same<T, unsigned char>::value || std::is_same<T, unsigned int>::value)
-        {
-            data_obj = cJSON_CreateNumber(static_cast<double>(data));
-        }
-        else if constexpr (std::is_same<T, double>::value || std::is_same<T, float>::value)
-        {
-            data_obj = cJSON_CreateNumber(data);
-        }
-        else if constexpr (std::is_same<T, bool>::value)
-        {
-            data_obj = cJSON_CreateBool(data);
-        }
-        else if constexpr (std::is_same<T, const char *>::value || std::is_same<T, std::string>::value)
-        {
-            data_obj = cJSON_CreateString(data);
-        }
-
-        if (data_obj != nullptr)
-        {
-            cJSON_ReplaceItemInObject(json_obj, field_name, data_obj);
-
-            char *jsonString = cJSON_Print(json_obj);
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString);
-            if (jsonString != nullptr)
-            {
-                FILE *file = fopen(filePath.c_str(), "wb");
-                if (file)
-                {
-                    if (fputs(jsonString, file) != EOF) // 将 JSON 字符串写入文件
-                    {
-                        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WriteJsonData success\n");
-                    }
-                    fclose(file);
-                }
-                free(jsonString);
-            }
-            else
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jsonString is nullptr");
-                return;
-            }
-        }
-    }
+    // template <class T>
+    // void ConfigModel::WriteJsonData(cJSON *json_obj, const char *field_name, T data)
+    // {
+    //     if (json_obj == nullptr)
+    //     {
+    //         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!");
+    //         return;
+    //     }
+
+    //     cJSON *data_obj = cJSON_CreateNull();
+    //     if constexpr (std::is_same<T, int>::value || std::is_same<T, unsigned char>::value || std::is_same<T, unsigned int>::value)
+    //     {
+    //         data_obj = cJSON_CreateNumber(static_cast<double>(data));
+    //     }
+    //     else if constexpr (std::is_same<T, double>::value || std::is_same<T, float>::value)
+    //     {
+    //         data_obj = cJSON_CreateNumber(data);
+    //     }
+    //     else if constexpr (std::is_same<T, bool>::value)
+    //     {
+    //         data_obj = cJSON_CreateBool(data);
+    //     }
+    //     else if constexpr (std::is_same<T, const char *>::value || std::is_same<T, std::string>::value)
+    //     {
+    //         data_obj = cJSON_CreateString(data);
+    //     }
+
+    //     if (data_obj != nullptr)
+    //     {
+    //         cJSON_ReplaceItemInObject(json_obj, field_name, data_obj);
+
+    //         char *jsonString = cJSON_Print(json_obj);
+    //         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString);
+    //         if (jsonString != nullptr)
+    //         {
+    //             FILE *file = fopen(filePath.c_str(), "wb");
+    //             if (file)
+    //             {
+    //                 if (fputs(jsonString, file) != EOF) // 将 JSON 字符串写入文件
+    //                 {
+    //                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WriteJsonData success\n");
+    //                 }
+    //                 fclose(file);
+    //             }
+    //             free(jsonString);
+    //         }
+    //         else
+    //         {
+    //             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jsonString is nullptr");
+    //             return;
+    //         }
+    //     }
+    // }
     /* ------------------------------ ImageAnimator ----------------------------- */
     /*
      * 图片动画类
index cd4903b..095f697 100644 (file)
@@ -374,7 +374,7 @@ namespace OHOS
     /* -------------------------------- set与get方法 ------------------------------- */
     void ConfigModel::SetRaiseToBrightnessCheckBoxButtonState()
     {
-        RaiseToBrightnessCheckBoxButtonState = ReadJsonData<bool>(GetcJSON(), "RaiseToBrightnessCheckBoxButtonState");
+        RaiseToBrightnessCheckBoxButtonState = ReadJsonData_Bool(GetcJSON(), "RaiseToBrightnessCheckBoxButtonState");
     }
 
     /// @brief 获取抬腕按钮状态
@@ -385,7 +385,7 @@ namespace OHOS
 
     void ConfigModel::SetScreenBrightnessValue()
     {
-        ScreenBrightnessValue = static_cast<unsigned char>(ReadJsonData<int>(GetcJSON(), "ScreenBrightnessValue"));
+        ScreenBrightnessValue = static_cast<unsigned char>(ReadJsonData_Int(GetcJSON(), "ScreenBrightnessValue"));
     }
 
     /// @brief 获取亮度值
@@ -396,7 +396,7 @@ namespace OHOS
 
     void ConfigModel::SetScreenDurationRadioButtonSlectValue()
     {
-        ScreenDurationRadioButtonSlectValue = static_cast<unsigned int>(ReadJsonData<int>(GetcJSON(), "ScreenDurationRadioButtonSlectValue"));
+        ScreenDurationRadioButtonSlectValue = static_cast<unsigned int>(ReadJsonData_Int(GetcJSON(), "ScreenDurationRadioButtonSlectValue"));
     }
 
     /// @brief 获取亮屏时长三个单选框选中状况,0对应5秒熄屏,1对应10秒熄屏,2对应15秒熄屏
@@ -407,7 +407,7 @@ namespace OHOS
 
     void ConfigModel::SetTradionalBlueToothToggleButtonState(void)
     {
-        TradionalBlueToothToggleButtonState = (ReadJsonData<bool>(GetcJSON(), "TradionalBlueToothToggleButtonState"));
+        TradionalBlueToothToggleButtonState = (ReadJsonData_Bool(GetcJSON(), "TradionalBlueToothToggleButtonState"));
     }
 
     /// @brief 获取蓝牙开关状态
@@ -418,7 +418,7 @@ namespace OHOS
 
     void ConfigModel::SetHeartRateOrBloodOxygenQuickAccessSwitch(void)
     {
-        HeartRateOrBloodOxygenQuickAccessSwitch = (ReadJsonData<int>(GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch"));
+        HeartRateOrBloodOxygenQuickAccessSwitch = (ReadJsonData_Int(GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch"));
     }
 
     /// @brief 获取“心率或血氧”快速访问开关
@@ -440,7 +440,7 @@ namespace OHOS
     dial_config *ConfigModel::GetDialId()
     {
         // 读取json数据
-        dialid_ = (ReadJsonData<int>(GetcJSON(), "Dial_Id"));
+        dialid_ = (ReadJsonData_Int(GetcJSON(), "Dial_Id"));
         dialname_ = ReadJsonData_String(GetcJSON(), "Dial_Name");
         dial_config *dial = new dial_config();
         dial->dialid = dialid_;
@@ -451,12 +451,12 @@ namespace OHOS
     void ConfigModel::SetLanguage(int language)
     {
         languageid_ = language;
-        WriteJsonData<int>(GetcJSON(), "Language_Id", languageid_);
+        WriteJsonData_Int(GetcJSON(), "Language_Id", languageid_);
     }
 
     int ConfigModel::GetLanguage()
     {
-        languageid_ = (ReadJsonData<int>(GetcJSON(), "Language_Id"));
+        languageid_ = (ReadJsonData_Int(GetcJSON(), "Language_Id"));
         return languageid_;
     }
 
index 491717b..6b8db08 100644 (file)
@@ -31,7 +31,7 @@ namespace OHOS
 \r
             unsigned char value = BrightnessControlViewSlider->GetValue();\r
             DisplayBrightnessModel::GetInstance()->KeepScreenBrightnessValues(value);\r
-            ConfigModel::GetInstance()->WriteJsonData(ConfigModel::GetInstance()->GetcJSON(),"ScreenBrightnessValue",value);\r
+            ConfigModel::GetInstance()->WriteJsonData_Int(ConfigModel::GetInstance()->GetcJSON(),"ScreenBrightnessValue",value);\r
 \r
             delete BrightnessControlViewSlider;\r
             BrightnessControlViewSlider = nullptr;\r
index c7dcd05..32a70f2 100644 (file)
@@ -64,12 +64,12 @@ namespace OHOS
             if (state == UICheckBox::UICheckBoxState::SELECTED)\r
             {\r
                 DisplayBrightnessModel::GetInstance()->SetRaiseToBrightnessCheckBoxButtonStatus(true);\r
-                ConfigModel::GetInstance()->WriteJsonData(ConfigModel::GetInstance()->GetcJSON(),"RaiseToBrightnessCheckBoxButtonState",true);\r
+                ConfigModel::GetInstance()->WriteJsonData_Bool(ConfigModel::GetInstance()->GetcJSON(),"RaiseToBrightnessCheckBoxButtonState",true);\r
             }\r
             else\r
             {\r
                 DisplayBrightnessModel::GetInstance()->SetRaiseToBrightnessCheckBoxButtonStatus(false);\r
-                ConfigModel::GetInstance()->WriteJsonData(ConfigModel::GetInstance()->GetcJSON(),"RaiseToBrightnessCheckBoxButtonState",false);\r
+                ConfigModel::GetInstance()->WriteJsonData_Bool(ConfigModel::GetInstance()->GetcJSON(),"RaiseToBrightnessCheckBoxButtonState",false);\r
             }\r
 \r
             delete RaiseToBrightnessCheckBoxButton;\r
index 8306da8..479c83d 100644 (file)
@@ -40,7 +40,7 @@ namespace OHOS
                 }\r
             }\r
             DisplayBrightnessModel::GetInstance()->KeepScreenDurationRadioButtonSlectStatus(i);\r
-            ConfigModel::GetInstance()->WriteJsonData(ConfigModel::GetInstance()->GetcJSON(),"ScreenDurationRadioButtonSlectValue",i);\r
+            ConfigModel::GetInstance()->WriteJsonData_Int(ConfigModel::GetInstance()->GetcJSON(),"ScreenDurationRadioButtonSlectValue",i);\r
 \r
             delete ScreenDurationTitleLabel;\r
             ScreenDurationTitleLabel = nullptr;\r
index 47122fe..2a05b10 100644 (file)
@@ -40,12 +40,12 @@ namespace OHOS
             if (QuickAccessRadioButton[0]->GetState() == UICheckBox::SELECTED)\r
             {\r
                 SecondaryFunctionModel::GetInstance()->KeepHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(0);\r
-                ConfigModel::GetInstance()->WriteJsonData(ConfigModel::GetInstance()->GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch", 0);\r
+                ConfigModel::GetInstance()->WriteJsonData_Int(ConfigModel::GetInstance()->GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch", 0);\r
             }\r
             else if (QuickAccessRadioButton[1]->GetState() == UICheckBox::SELECTED)\r
             {\r
                 SecondaryFunctionModel::GetInstance()->KeepHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(1);\r
-                ConfigModel::GetInstance()->WriteJsonData(ConfigModel::GetInstance()->GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch", 1);\r
+                ConfigModel::GetInstance()->WriteJsonData_Int(ConfigModel::GetInstance()->GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch", 1);\r
             }\r
 \r
             // 循环删除 UIImageView 和 UIRadioButton指针数组\r