• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 AccessibilitySettingProvider* AccessibilitySettingProvider::instance_;
28 std::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 AccessibilitySettingProvider& AccessibilitySettingProvider::GetInstance(int32_t systemAbilityId)
44 {
45     HILOG_DEBUG("etInstance start, systemAbilityId = %{public}d.", systemAbilityId);
46     if (instance_ == nullptr) {
47         std::lock_guard<std::mutex> lock(mutex_);
48         if (instance_ == nullptr) {
49             instance_ = new AccessibilitySettingProvider();
50             instance_->Initialize(systemAbilityId);
51         }
52     }
53     return *instance_;
54 }
55 
DeleteInstance()56 void AccessibilitySettingProvider::DeleteInstance()
57 {
58     HILOG_DEBUG();
59     std::lock_guard<std::mutex> lock(mutex_);
60     if (instance_ == nullptr) {
61         HILOG_INFO("instance_ is nullptr");
62         return;
63     }
64     delete instance_;
65     instance_ = nullptr;
66 }
67 
GetIntValue(const std::string & key,int32_t & value)68 RetError AccessibilitySettingProvider::GetIntValue(const std::string& key, int32_t& value)
69 {
70     value = AccessibilityDatashareHelper::GetIntValue(key, 0);
71     return RET_OK;
72 }
73 
GetLongValue(const std::string & key,int64_t & value)74 RetError AccessibilitySettingProvider::GetLongValue(const std::string& key, int64_t& value)
75 {
76     value = AccessibilityDatashareHelper::GetLongValue(key, 0);
77     return RET_OK;
78 }
79 
GetFloatValue(const std::string & key,float & value)80 RetError AccessibilitySettingProvider::GetFloatValue(const std::string& key, float& value)
81 {
82     value = AccessibilityDatashareHelper::GetFloatValue(key, 0);
83     return RET_OK;
84 }
85 
GetBoolValue(const std::string & key,bool & value)86 RetError AccessibilitySettingProvider::GetBoolValue(const std::string& key, bool& value)
87 {
88     value = AccessibilityDatashareHelper::GetBoolValue(key, 0);
89     return RET_OK;
90 }
91 
GetStringValue(const std::string & key,std::string & value)92 RetError AccessibilitySettingProvider::GetStringValue(const std::string& key, std::string& value)
93 {
94     value = AccessibilityDatashareHelper::GetStringValue(key, "");
95     return RET_OK;
96 }
97 
PutIntValue(const std::string & key,int32_t value,bool needNotify)98 RetError AccessibilitySettingProvider::PutIntValue(const std::string& key, int32_t value, bool needNotify)
99 {
100     return AccessibilityDatashareHelper::PutIntValue(key, value, needNotify);
101 }
102 
PutLongValue(const std::string & key,int64_t value,bool needNotify)103 RetError AccessibilitySettingProvider::PutLongValue(const std::string& key, int64_t value, bool needNotify)
104 {
105     return AccessibilityDatashareHelper::PutLongValue(key, value, needNotify);
106 }
107 
PutBoolValue(const std::string & key,bool value,bool needNotify)108 RetError AccessibilitySettingProvider::PutBoolValue(const std::string& key, bool value, bool needNotify)
109 {
110     return AccessibilityDatashareHelper::PutBoolValue(key, value, needNotify);
111 }
112 
PutStringValue(const std::string & key,const std::string & value,bool needNotify)113 RetError AccessibilitySettingProvider::PutStringValue(const std::string& key, const std::string& value, bool needNotify)
114 {
115     return AccessibilityDatashareHelper::PutStringValue(key, value, needNotify);
116 }
117 
CreateObserver(const std::string & key,AccessibilitySettingObserver::UpdateFunc & func)118 sptr<AccessibilitySettingObserver> AccessibilitySettingProvider::CreateObserver(const std::string& key,
119     AccessibilitySettingObserver::UpdateFunc& func)
120 {
121     return AccessibilityDatashareHelper::CreateObserver(key, func);
122 }
123 
RegisterObserver(const std::string & key,AccessibilitySettingObserver::UpdateFunc & func)124 RetError AccessibilitySettingProvider::RegisterObserver(const std::string& key,
125     AccessibilitySettingObserver::UpdateFunc& func)
126 {
127     return AccessibilityDatashareHelper::RegisterObserver(key, func);
128 }
129 
UnregisterObserver(const std::string & key)130 RetError AccessibilitySettingProvider::UnregisterObserver(const std::string& key)
131 {
132     return AccessibilityDatashareHelper::UnregisterObserver(key);
133 }
134 } // namespace Accessibility
135 } // namespace OHOS