125c1cde8Sopenharmony_ci/* 225c1cde8Sopenharmony_ci * Copyright (C) 2023 Huawei Device Co., Ltd. 325c1cde8Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 425c1cde8Sopenharmony_ci * you may not use this file except in compliance with the License. 525c1cde8Sopenharmony_ci * You may obtain a copy of the License at 625c1cde8Sopenharmony_ci * 725c1cde8Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 825c1cde8Sopenharmony_ci * 925c1cde8Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1025c1cde8Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1125c1cde8Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1225c1cde8Sopenharmony_ci * See the License for the specific language governing permissions and 1325c1cde8Sopenharmony_ci * limitations under the License. 1425c1cde8Sopenharmony_ci */ 1525c1cde8Sopenharmony_ci 1625c1cde8Sopenharmony_ci#include "preferences_util.h" 1725c1cde8Sopenharmony_ci 1825c1cde8Sopenharmony_ci#include <string> 1925c1cde8Sopenharmony_ci 2025c1cde8Sopenharmony_ci#include "data_storage_log_wrapper.h" 2125c1cde8Sopenharmony_ci#include "preferences.h" 2225c1cde8Sopenharmony_ci#include "preferences_helper.h" 2325c1cde8Sopenharmony_ci#include "preferences_observer.h" 2425c1cde8Sopenharmony_ci 2525c1cde8Sopenharmony_cinamespace OHOS { 2625c1cde8Sopenharmony_cinamespace Telephony { 2725c1cde8Sopenharmony_ciPreferencesUtil::PreferencesUtil() {} 2825c1cde8Sopenharmony_ciPreferencesUtil::~PreferencesUtil() {} 2925c1cde8Sopenharmony_ci 3025c1cde8Sopenharmony_cistd::shared_ptr<NativePreferences::Preferences> PreferencesUtil::GetProfiles(const std::string &path, int &errCode) 3125c1cde8Sopenharmony_ci{ 3225c1cde8Sopenharmony_ci return NativePreferences::PreferencesHelper::GetPreferences(path, errCode); 3325c1cde8Sopenharmony_ci} 3425c1cde8Sopenharmony_ci 3525c1cde8Sopenharmony_ciint PreferencesUtil::DeleteProfiles() 3625c1cde8Sopenharmony_ci{ 3725c1cde8Sopenharmony_ci return NativePreferences::PreferencesHelper::DeletePreferences(path_); 3825c1cde8Sopenharmony_ci} 3925c1cde8Sopenharmony_ci 4025c1cde8Sopenharmony_ciint PreferencesUtil::SaveString(const std::string &key, const std::string &value) 4125c1cde8Sopenharmony_ci{ 4225c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 4325c1cde8Sopenharmony_ci if (ptr == nullptr) { 4425c1cde8Sopenharmony_ci return NativePreferences::E_ERROR; 4525c1cde8Sopenharmony_ci } 4625c1cde8Sopenharmony_ci int ret = ptr->PutString(key, value); 4725c1cde8Sopenharmony_ci ptr->Flush(); 4825c1cde8Sopenharmony_ci return ret; 4925c1cde8Sopenharmony_ci} 5025c1cde8Sopenharmony_ci 5125c1cde8Sopenharmony_cistd::string PreferencesUtil::ObtainString(const std::string &key, const std::string &defValue) 5225c1cde8Sopenharmony_ci{ 5325c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 5425c1cde8Sopenharmony_ci if (ptr == nullptr) { 5525c1cde8Sopenharmony_ci return defValue; 5625c1cde8Sopenharmony_ci } 5725c1cde8Sopenharmony_ci return ptr->GetString(key, defValue); 5825c1cde8Sopenharmony_ci} 5925c1cde8Sopenharmony_ci 6025c1cde8Sopenharmony_ciint PreferencesUtil::SaveInt(const std::string &key, int value) 6125c1cde8Sopenharmony_ci{ 6225c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 6325c1cde8Sopenharmony_ci if (ptr == nullptr) { 6425c1cde8Sopenharmony_ci return NativePreferences::E_ERROR; 6525c1cde8Sopenharmony_ci } 6625c1cde8Sopenharmony_ci int ret = ptr->PutInt(key, value); 6725c1cde8Sopenharmony_ci ptr->Flush(); 6825c1cde8Sopenharmony_ci return ret; 6925c1cde8Sopenharmony_ci} 7025c1cde8Sopenharmony_ci 7125c1cde8Sopenharmony_ciint PreferencesUtil::ObtainInt(const std::string &key, int defValue) 7225c1cde8Sopenharmony_ci{ 7325c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 7425c1cde8Sopenharmony_ci if (ptr == nullptr) { 7525c1cde8Sopenharmony_ci return defValue; 7625c1cde8Sopenharmony_ci } 7725c1cde8Sopenharmony_ci return ptr->GetInt(key, defValue); 7825c1cde8Sopenharmony_ci} 7925c1cde8Sopenharmony_ci 8025c1cde8Sopenharmony_ciint PreferencesUtil::SaveBool(const std::string &key, bool value) 8125c1cde8Sopenharmony_ci{ 8225c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 8325c1cde8Sopenharmony_ci if (ptr == nullptr) { 8425c1cde8Sopenharmony_ci return NativePreferences::E_ERROR; 8525c1cde8Sopenharmony_ci } 8625c1cde8Sopenharmony_ci int ret = ptr->PutBool(key, value); 8725c1cde8Sopenharmony_ci ptr->Flush(); 8825c1cde8Sopenharmony_ci return ret; 8925c1cde8Sopenharmony_ci} 9025c1cde8Sopenharmony_ci 9125c1cde8Sopenharmony_cibool PreferencesUtil::ObtainBool(const std::string &key, bool defValue) 9225c1cde8Sopenharmony_ci{ 9325c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 9425c1cde8Sopenharmony_ci if (ptr == nullptr) { 9525c1cde8Sopenharmony_ci return defValue; 9625c1cde8Sopenharmony_ci } 9725c1cde8Sopenharmony_ci return ptr->GetBool(key, defValue); 9825c1cde8Sopenharmony_ci} 9925c1cde8Sopenharmony_ci 10025c1cde8Sopenharmony_ciint PreferencesUtil::SaveLong(const std::string &key, int64_t value) 10125c1cde8Sopenharmony_ci{ 10225c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 10325c1cde8Sopenharmony_ci if (ptr == nullptr) { 10425c1cde8Sopenharmony_ci return NativePreferences::E_ERROR; 10525c1cde8Sopenharmony_ci } 10625c1cde8Sopenharmony_ci int ret = ptr->PutLong(key, value); 10725c1cde8Sopenharmony_ci ptr->Flush(); 10825c1cde8Sopenharmony_ci return ret; 10925c1cde8Sopenharmony_ci} 11025c1cde8Sopenharmony_ci 11125c1cde8Sopenharmony_ciint64_t PreferencesUtil::ObtainLong(const std::string &key, int64_t defValue) 11225c1cde8Sopenharmony_ci{ 11325c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 11425c1cde8Sopenharmony_ci if (ptr == nullptr) { 11525c1cde8Sopenharmony_ci return defValue; 11625c1cde8Sopenharmony_ci } 11725c1cde8Sopenharmony_ci return ptr->GetLong(key, defValue); 11825c1cde8Sopenharmony_ci} 11925c1cde8Sopenharmony_ci 12025c1cde8Sopenharmony_ciint PreferencesUtil::SaveFloat(const std::string &key, float value) 12125c1cde8Sopenharmony_ci{ 12225c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 12325c1cde8Sopenharmony_ci if (ptr == nullptr) { 12425c1cde8Sopenharmony_ci return NativePreferences::E_ERROR; 12525c1cde8Sopenharmony_ci } 12625c1cde8Sopenharmony_ci int ret = ptr->PutFloat(key, value); 12725c1cde8Sopenharmony_ci ptr->Flush(); 12825c1cde8Sopenharmony_ci return ret; 12925c1cde8Sopenharmony_ci} 13025c1cde8Sopenharmony_ci 13125c1cde8Sopenharmony_cifloat PreferencesUtil::ObtainFloat(const std::string &key, float defValue) 13225c1cde8Sopenharmony_ci{ 13325c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 13425c1cde8Sopenharmony_ci if (ptr == nullptr) { 13525c1cde8Sopenharmony_ci return defValue; 13625c1cde8Sopenharmony_ci } 13725c1cde8Sopenharmony_ci return ptr->GetFloat(key, defValue); 13825c1cde8Sopenharmony_ci} 13925c1cde8Sopenharmony_ci 14025c1cde8Sopenharmony_cibool PreferencesUtil::IsExistKey(const std::string &key) 14125c1cde8Sopenharmony_ci{ 14225c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 14325c1cde8Sopenharmony_ci if (ptr == nullptr) { 14425c1cde8Sopenharmony_ci return NativePreferences::E_ERROR; 14525c1cde8Sopenharmony_ci } 14625c1cde8Sopenharmony_ci return ptr->HasKey(key); 14725c1cde8Sopenharmony_ci} 14825c1cde8Sopenharmony_ci 14925c1cde8Sopenharmony_ciint PreferencesUtil::RemoveKey(const std::string &key) 15025c1cde8Sopenharmony_ci{ 15125c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 15225c1cde8Sopenharmony_ci if (ptr == nullptr) { 15325c1cde8Sopenharmony_ci return NativePreferences::E_ERROR; 15425c1cde8Sopenharmony_ci } 15525c1cde8Sopenharmony_ci return ptr->Delete(key); 15625c1cde8Sopenharmony_ci} 15725c1cde8Sopenharmony_ci 15825c1cde8Sopenharmony_ciint PreferencesUtil::RemoveAll() 15925c1cde8Sopenharmony_ci{ 16025c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 16125c1cde8Sopenharmony_ci if (ptr == nullptr) { 16225c1cde8Sopenharmony_ci return NativePreferences::E_ERROR; 16325c1cde8Sopenharmony_ci } 16425c1cde8Sopenharmony_ci return ptr->Clear(); 16525c1cde8Sopenharmony_ci} 16625c1cde8Sopenharmony_ci 16725c1cde8Sopenharmony_civoid PreferencesUtil::Refresh() 16825c1cde8Sopenharmony_ci{ 16925c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 17025c1cde8Sopenharmony_ci if (ptr != nullptr) { 17125c1cde8Sopenharmony_ci ptr->Flush(); 17225c1cde8Sopenharmony_ci } 17325c1cde8Sopenharmony_ci} 17425c1cde8Sopenharmony_ci 17525c1cde8Sopenharmony_ciint PreferencesUtil::RefreshSync() 17625c1cde8Sopenharmony_ci{ 17725c1cde8Sopenharmony_ci std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_); 17825c1cde8Sopenharmony_ci if (ptr == nullptr) { 17925c1cde8Sopenharmony_ci return NativePreferences::E_ERROR; 18025c1cde8Sopenharmony_ci } 18125c1cde8Sopenharmony_ci return ptr->FlushSync(); 18225c1cde8Sopenharmony_ci} 18325c1cde8Sopenharmony_ci} // namespace Telephony 18425c1cde8Sopenharmony_ci} // namespace OHOS