1 /*
2 * Copyright (c) 2022 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 "accessibility_setting_provider.h"
17
18 #include "ipc_skeleton.h"
19 #include "iservice_registry.h"
20 #include "result_set.h"
21 #include "uri.h"
22
23 #include "hilog_wrapper.h"
24
25 namespace OHOS {
26 namespace Accessibility {
27 std::shared_ptr<AccessibilitySettingProvider> AccessibilitySettingProvider::instance_ = nullptr;
28 ffrt::mutex AccessibilitySettingProvider::mutex_;
29 namespace {
30 constexpr int32_t DEFAULT_ACCOUNT_ID = 100;
31 } // namespace
32
AccessibilitySettingProvider()33 AccessibilitySettingProvider::AccessibilitySettingProvider()
34 : AccessibilityDatashareHelper(DATASHARE_TYPE::GLOBAL, DEFAULT_ACCOUNT_ID)
35 {
36 }
37
~AccessibilitySettingProvider()38 AccessibilitySettingProvider::~AccessibilitySettingProvider()
39 {
40 instance_ = nullptr;
41 }
42
GetInstance(int32_t systemAbilityId)43 std::shared_ptr<AccessibilitySettingProvider> AccessibilitySettingProvider::GetInstance(int32_t systemAbilityId)
44 {
45 HILOG_DEBUG("etInstance start, systemAbilityId = %{public}d.", systemAbilityId);
46 std::lock_guard<ffrt::mutex> lock(mutex_);
47 if (instance_ == nullptr) {
48 instance_ = std::make_shared<AccessibilitySettingProvider>();
49 instance_->Initialize(systemAbilityId);
50 }
51 return instance_;
52 }
53
DeleteInstance()54 void AccessibilitySettingProvider::DeleteInstance()
55 {
56 HILOG_DEBUG();
57 std::lock_guard<ffrt::mutex> lock(mutex_);
58 if (instance_ == nullptr) {
59 HILOG_INFO("instance_ is nullptr");
60 return;
61 }
62 instance_ = nullptr;
63 }
64
GetIntValue(const std::string & key,int32_t & value)65 RetError AccessibilitySettingProvider::GetIntValue(const std::string& key, int32_t& value)
66 {
67 value = AccessibilityDatashareHelper::GetIntValue(key, 0);
68 return RET_OK;
69 }
70
GetLongValue(const std::string & key,int64_t & value)71 RetError AccessibilitySettingProvider::GetLongValue(const std::string& key, int64_t& value)
72 {
73 value = AccessibilityDatashareHelper::GetLongValue(key, 0);
74 return RET_OK;
75 }
76
GetFloatValue(const std::string & key,float & value)77 RetError AccessibilitySettingProvider::GetFloatValue(const std::string& key, float& value)
78 {
79 value = AccessibilityDatashareHelper::GetFloatValue(key, 0);
80 return RET_OK;
81 }
82
GetBoolValue(const std::string & key,bool & value)83 RetError AccessibilitySettingProvider::GetBoolValue(const std::string& key, bool& value)
84 {
85 value = AccessibilityDatashareHelper::GetBoolValue(key, 0);
86 return RET_OK;
87 }
88
GetStringValue(const std::string & key,std::string & value)89 RetError AccessibilitySettingProvider::GetStringValue(const std::string& key, std::string& value)
90 {
91 value = AccessibilityDatashareHelper::GetStringValue(key, "");
92 return RET_OK;
93 }
94
PutIntValue(const std::string & key,int32_t value,bool needNotify)95 RetError AccessibilitySettingProvider::PutIntValue(const std::string& key, int32_t value, bool needNotify)
96 {
97 return AccessibilityDatashareHelper::PutIntValue(key, value, needNotify);
98 }
99
PutLongValue(const std::string & key,int64_t value,bool needNotify)100 RetError AccessibilitySettingProvider::PutLongValue(const std::string& key, int64_t value, bool needNotify)
101 {
102 return AccessibilityDatashareHelper::PutLongValue(key, value, needNotify);
103 }
104
PutBoolValue(const std::string & key,bool value,bool needNotify)105 RetError AccessibilitySettingProvider::PutBoolValue(const std::string& key, bool value, bool needNotify)
106 {
107 return AccessibilityDatashareHelper::PutBoolValue(key, value, needNotify);
108 }
109
PutStringValue(const std::string & key,const std::string & value,bool needNotify)110 RetError AccessibilitySettingProvider::PutStringValue(const std::string& key, const std::string& value, bool needNotify)
111 {
112 return AccessibilityDatashareHelper::PutStringValue(key, value, needNotify);
113 }
114
CreateObserver(const std::string & key,AccessibilitySettingObserver::UpdateFunc & func)115 sptr<AccessibilitySettingObserver> AccessibilitySettingProvider::CreateObserver(const std::string& key,
116 AccessibilitySettingObserver::UpdateFunc& func)
117 {
118 return AccessibilityDatashareHelper::CreateObserver(key, func);
119 }
120
RegisterObserver(const std::string & key,AccessibilitySettingObserver::UpdateFunc & func)121 RetError AccessibilitySettingProvider::RegisterObserver(const std::string& key,
122 AccessibilitySettingObserver::UpdateFunc& func)
123 {
124 return AccessibilityDatashareHelper::RegisterObserver(key, func);
125 }
126
UnregisterObserver(const std::string & key)127 RetError AccessibilitySettingProvider::UnregisterObserver(const std::string& key)
128 {
129 return AccessibilityDatashareHelper::UnregisterObserver(key);
130 }
131 } // namespace Accessibility
132 } // namespace OHOS