1 /*
2 * Copyright (C) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "preferences_util.h"
17
18 #include "preferences.h"
19 #include "preferences_helper.h"
20 #include "preferences_observer.h"
21 #include "string"
22
23 namespace OHOS {
24 namespace ScreenLock {
PreferencesUtil()25 PreferencesUtil::PreferencesUtil() {}
~PreferencesUtil()26 PreferencesUtil::~PreferencesUtil() {}
27
GetProfiles(const std::string & path,int & errCode)28 std::shared_ptr<NativePreferences::Preferences> PreferencesUtil::GetProfiles(const std::string &path, int &errCode)
29 {
30 return NativePreferences::PreferencesHelper::GetPreferences(path, errCode);
31 }
32
DeleteProfiles()33 int PreferencesUtil::DeleteProfiles()
34 {
35 return NativePreferences::PreferencesHelper::DeletePreferences(path_);
36 }
37
SaveString(const std::string & key,const std::string & value)38 int PreferencesUtil::SaveString(const std::string &key, const std::string &value)
39 {
40 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
41 if (ptr == nullptr) {
42 return NativePreferences::E_ERROR;
43 }
44 int ret = ptr->PutString(key, value);
45 ptr->Flush();
46 return ret;
47 }
48
ObtainString(const std::string & key,const std::string & defValue)49 std::string PreferencesUtil::ObtainString(const std::string &key, const std::string &defValue)
50 {
51 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
52 if (ptr == nullptr) {
53 return defValue;
54 }
55 return ptr->GetString(key, defValue);
56 }
57
SaveInt(const std::string & key,int value)58 int PreferencesUtil::SaveInt(const std::string &key, int value)
59 {
60 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
61 if (ptr == nullptr) {
62 return NativePreferences::E_ERROR;
63 }
64 int ret = ptr->PutInt(key, value);
65 ptr->Flush();
66 return ret;
67 }
68
ObtainInt(const std::string & key,int defValue)69 int PreferencesUtil::ObtainInt(const std::string &key, int defValue)
70 {
71 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
72 if (ptr == nullptr) {
73 return defValue;
74 }
75 return ptr->GetInt(key, defValue);
76 }
77
SaveBool(const std::string & key,bool value)78 int PreferencesUtil::SaveBool(const std::string &key, bool value)
79 {
80 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
81 if (ptr == nullptr) {
82 return NativePreferences::E_ERROR;
83 }
84 int ret = ptr->PutBool(key, value);
85 ptr->Flush();
86 return ret;
87 }
88
ObtainBool(const std::string & key,bool defValue)89 bool PreferencesUtil::ObtainBool(const std::string &key, bool defValue)
90 {
91 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
92 if (ptr == nullptr) {
93 return defValue;
94 }
95 return ptr->GetBool(key, defValue);
96 }
97
SaveLong(const std::string & key,int64_t value)98 int PreferencesUtil::SaveLong(const std::string &key, int64_t value)
99 {
100 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
101 if (ptr == nullptr) {
102 return NativePreferences::E_ERROR;
103 }
104 int ret = ptr->PutLong(key, value);
105 ptr->Flush();
106 return ret;
107 }
108
ObtainLong(const std::string & key,int64_t defValue)109 int64_t PreferencesUtil::ObtainLong(const std::string &key, int64_t defValue)
110 {
111 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
112 if (ptr == nullptr) {
113 return defValue;
114 }
115 return ptr->GetLong(key, defValue);
116 }
117
SaveFloat(const std::string & key,float value)118 int PreferencesUtil::SaveFloat(const std::string &key, float value)
119 {
120 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
121 if (ptr == nullptr) {
122 return NativePreferences::E_ERROR;
123 }
124 int ret = ptr->PutFloat(key, value);
125 ptr->Flush();
126 return ret;
127 }
128
ObtainFloat(const std::string & key,float defValue)129 float PreferencesUtil::ObtainFloat(const std::string &key, float defValue)
130 {
131 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
132 if (ptr == nullptr) {
133 return defValue;
134 }
135 return ptr->GetFloat(key, defValue);
136 }
137
IsExistKey(const std::string & key)138 bool PreferencesUtil::IsExistKey(const std::string &key)
139 {
140 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
141 if (ptr == nullptr) {
142 return NativePreferences::E_ERROR;
143 }
144 return ptr->HasKey(key);
145 }
146
RemoveKey(const std::string & key)147 int PreferencesUtil::RemoveKey(const std::string &key)
148 {
149 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
150 if (ptr == nullptr) {
151 return NativePreferences::E_ERROR;
152 }
153 return ptr->Delete(key);
154 }
155
RemoveAll()156 int PreferencesUtil::RemoveAll()
157 {
158 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
159 if (ptr == nullptr) {
160 return NativePreferences::E_ERROR;
161 }
162 return ptr->Clear();
163 }
164
Refresh()165 void PreferencesUtil::Refresh()
166 {
167 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
168 if (ptr != nullptr) {
169 ptr->Flush();
170 }
171 }
172
RefreshSync()173 int PreferencesUtil::RefreshSync()
174 {
175 std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
176 if (ptr == nullptr) {
177 return NativePreferences::E_ERROR;
178 }
179 return ptr->FlushSync();
180 }
181 } // namespace Telephony
182 } // namespace OHOS