1365d9939Sopenharmony_ci/*
2365d9939Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd.
3365d9939Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4365d9939Sopenharmony_ci * you may not use this file except in compliance with the License.
5365d9939Sopenharmony_ci * You may obtain a copy of the License at
6365d9939Sopenharmony_ci *
7365d9939Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8365d9939Sopenharmony_ci *
9365d9939Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10365d9939Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11365d9939Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12365d9939Sopenharmony_ci * See the License for the specific language governing permissions and
13365d9939Sopenharmony_ci * limitations under the License.
14365d9939Sopenharmony_ci */
15365d9939Sopenharmony_ci
16365d9939Sopenharmony_ci#include "preferences_util.h"
17365d9939Sopenharmony_ci
18365d9939Sopenharmony_ci#include "preferences.h"
19365d9939Sopenharmony_ci#include "preferences_helper.h"
20365d9939Sopenharmony_ci#include "preferences_observer.h"
21365d9939Sopenharmony_ci#include "string"
22365d9939Sopenharmony_ci
23365d9939Sopenharmony_cinamespace OHOS {
24365d9939Sopenharmony_cinamespace ScreenLock {
25365d9939Sopenharmony_ciPreferencesUtil::PreferencesUtil() {}
26365d9939Sopenharmony_ciPreferencesUtil::~PreferencesUtil() {}
27365d9939Sopenharmony_ci
28365d9939Sopenharmony_cistd::shared_ptr<NativePreferences::Preferences> PreferencesUtil::GetProfiles(const std::string &path, int &errCode)
29365d9939Sopenharmony_ci{
30365d9939Sopenharmony_ci    return NativePreferences::PreferencesHelper::GetPreferences(path, errCode);
31365d9939Sopenharmony_ci}
32365d9939Sopenharmony_ci
33365d9939Sopenharmony_ciint PreferencesUtil::DeleteProfiles()
34365d9939Sopenharmony_ci{
35365d9939Sopenharmony_ci    return NativePreferences::PreferencesHelper::DeletePreferences(path_);
36365d9939Sopenharmony_ci}
37365d9939Sopenharmony_ci
38365d9939Sopenharmony_ciint PreferencesUtil::SaveString(const std::string &key, const std::string &value)
39365d9939Sopenharmony_ci{
40365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
41365d9939Sopenharmony_ci    if (ptr == nullptr) {
42365d9939Sopenharmony_ci        return NativePreferences::E_ERROR;
43365d9939Sopenharmony_ci    }
44365d9939Sopenharmony_ci    int ret = ptr->PutString(key, value);
45365d9939Sopenharmony_ci    ptr->Flush();
46365d9939Sopenharmony_ci    return ret;
47365d9939Sopenharmony_ci}
48365d9939Sopenharmony_ci
49365d9939Sopenharmony_cistd::string PreferencesUtil::ObtainString(const std::string &key, const std::string &defValue)
50365d9939Sopenharmony_ci{
51365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
52365d9939Sopenharmony_ci    if (ptr == nullptr) {
53365d9939Sopenharmony_ci        return defValue;
54365d9939Sopenharmony_ci    }
55365d9939Sopenharmony_ci    return ptr->GetString(key, defValue);
56365d9939Sopenharmony_ci}
57365d9939Sopenharmony_ci
58365d9939Sopenharmony_ciint PreferencesUtil::SaveInt(const std::string &key, int value)
59365d9939Sopenharmony_ci{
60365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
61365d9939Sopenharmony_ci    if (ptr == nullptr) {
62365d9939Sopenharmony_ci        return NativePreferences::E_ERROR;
63365d9939Sopenharmony_ci    }
64365d9939Sopenharmony_ci    int ret = ptr->PutInt(key, value);
65365d9939Sopenharmony_ci    ptr->Flush();
66365d9939Sopenharmony_ci    return ret;
67365d9939Sopenharmony_ci}
68365d9939Sopenharmony_ci
69365d9939Sopenharmony_ciint PreferencesUtil::ObtainInt(const std::string &key, int defValue)
70365d9939Sopenharmony_ci{
71365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
72365d9939Sopenharmony_ci    if (ptr == nullptr) {
73365d9939Sopenharmony_ci        return defValue;
74365d9939Sopenharmony_ci    }
75365d9939Sopenharmony_ci    return ptr->GetInt(key, defValue);
76365d9939Sopenharmony_ci}
77365d9939Sopenharmony_ci
78365d9939Sopenharmony_ciint PreferencesUtil::SaveBool(const std::string &key, bool value)
79365d9939Sopenharmony_ci{
80365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
81365d9939Sopenharmony_ci    if (ptr == nullptr) {
82365d9939Sopenharmony_ci        return NativePreferences::E_ERROR;
83365d9939Sopenharmony_ci    }
84365d9939Sopenharmony_ci    int ret = ptr->PutBool(key, value);
85365d9939Sopenharmony_ci    ptr->Flush();
86365d9939Sopenharmony_ci    return ret;
87365d9939Sopenharmony_ci}
88365d9939Sopenharmony_ci
89365d9939Sopenharmony_cibool PreferencesUtil::ObtainBool(const std::string &key, bool defValue)
90365d9939Sopenharmony_ci{
91365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
92365d9939Sopenharmony_ci    if (ptr == nullptr) {
93365d9939Sopenharmony_ci        return defValue;
94365d9939Sopenharmony_ci    }
95365d9939Sopenharmony_ci    return ptr->GetBool(key, defValue);
96365d9939Sopenharmony_ci}
97365d9939Sopenharmony_ci
98365d9939Sopenharmony_ciint PreferencesUtil::SaveLong(const std::string &key, int64_t value)
99365d9939Sopenharmony_ci{
100365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
101365d9939Sopenharmony_ci    if (ptr == nullptr) {
102365d9939Sopenharmony_ci        return NativePreferences::E_ERROR;
103365d9939Sopenharmony_ci    }
104365d9939Sopenharmony_ci    int ret = ptr->PutLong(key, value);
105365d9939Sopenharmony_ci    ptr->Flush();
106365d9939Sopenharmony_ci    return ret;
107365d9939Sopenharmony_ci}
108365d9939Sopenharmony_ci
109365d9939Sopenharmony_ciint64_t PreferencesUtil::ObtainLong(const std::string &key, int64_t defValue)
110365d9939Sopenharmony_ci{
111365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
112365d9939Sopenharmony_ci    if (ptr == nullptr) {
113365d9939Sopenharmony_ci        return defValue;
114365d9939Sopenharmony_ci    }
115365d9939Sopenharmony_ci    return ptr->GetLong(key, defValue);
116365d9939Sopenharmony_ci}
117365d9939Sopenharmony_ci
118365d9939Sopenharmony_ciint PreferencesUtil::SaveFloat(const std::string &key, float value)
119365d9939Sopenharmony_ci{
120365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
121365d9939Sopenharmony_ci    if (ptr == nullptr) {
122365d9939Sopenharmony_ci        return NativePreferences::E_ERROR;
123365d9939Sopenharmony_ci    }
124365d9939Sopenharmony_ci    int ret = ptr->PutFloat(key, value);
125365d9939Sopenharmony_ci    ptr->Flush();
126365d9939Sopenharmony_ci    return ret;
127365d9939Sopenharmony_ci}
128365d9939Sopenharmony_ci
129365d9939Sopenharmony_cifloat PreferencesUtil::ObtainFloat(const std::string &key, float defValue)
130365d9939Sopenharmony_ci{
131365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
132365d9939Sopenharmony_ci    if (ptr == nullptr) {
133365d9939Sopenharmony_ci        return defValue;
134365d9939Sopenharmony_ci    }
135365d9939Sopenharmony_ci    return ptr->GetFloat(key, defValue);
136365d9939Sopenharmony_ci}
137365d9939Sopenharmony_ci
138365d9939Sopenharmony_cibool PreferencesUtil::IsExistKey(const std::string &key)
139365d9939Sopenharmony_ci{
140365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
141365d9939Sopenharmony_ci    if (ptr == nullptr) {
142365d9939Sopenharmony_ci        return NativePreferences::E_ERROR;
143365d9939Sopenharmony_ci    }
144365d9939Sopenharmony_ci    return ptr->HasKey(key);
145365d9939Sopenharmony_ci}
146365d9939Sopenharmony_ci
147365d9939Sopenharmony_ciint PreferencesUtil::RemoveKey(const std::string &key)
148365d9939Sopenharmony_ci{
149365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
150365d9939Sopenharmony_ci    if (ptr == nullptr) {
151365d9939Sopenharmony_ci        return NativePreferences::E_ERROR;
152365d9939Sopenharmony_ci    }
153365d9939Sopenharmony_ci    return ptr->Delete(key);
154365d9939Sopenharmony_ci}
155365d9939Sopenharmony_ci
156365d9939Sopenharmony_ciint PreferencesUtil::RemoveAll()
157365d9939Sopenharmony_ci{
158365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
159365d9939Sopenharmony_ci    if (ptr == nullptr) {
160365d9939Sopenharmony_ci        return NativePreferences::E_ERROR;
161365d9939Sopenharmony_ci    }
162365d9939Sopenharmony_ci    return ptr->Clear();
163365d9939Sopenharmony_ci}
164365d9939Sopenharmony_ci
165365d9939Sopenharmony_civoid PreferencesUtil::Refresh()
166365d9939Sopenharmony_ci{
167365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
168365d9939Sopenharmony_ci    if (ptr != nullptr) {
169365d9939Sopenharmony_ci        ptr->Flush();
170365d9939Sopenharmony_ci    }
171365d9939Sopenharmony_ci}
172365d9939Sopenharmony_ci
173365d9939Sopenharmony_ciint PreferencesUtil::RefreshSync()
174365d9939Sopenharmony_ci{
175365d9939Sopenharmony_ci    std::shared_ptr<NativePreferences::Preferences> ptr = GetProfiles(path_, errCode_);
176365d9939Sopenharmony_ci    if (ptr == nullptr) {
177365d9939Sopenharmony_ci        return NativePreferences::E_ERROR;
178365d9939Sopenharmony_ci    }
179365d9939Sopenharmony_ci    return ptr->FlushSync();
180365d9939Sopenharmony_ci}
181365d9939Sopenharmony_ci} // namespace Telephony
182365d9939Sopenharmony_ci} // namespace OHOS