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 25namespace OHOS { 26namespace Accessibility { 27std::shared_ptr<AccessibilitySettingProvider> AccessibilitySettingProvider::instance_ = nullptr; 28ffrt::mutex AccessibilitySettingProvider::mutex_; 29namespace { 30 constexpr int32_t DEFAULT_ACCOUNT_ID = 100; 31} // namespace 32 33AccessibilitySettingProvider::AccessibilitySettingProvider() 34 : AccessibilityDatashareHelper(DATASHARE_TYPE::GLOBAL, DEFAULT_ACCOUNT_ID) 35{ 36} 37 38AccessibilitySettingProvider::~AccessibilitySettingProvider() 39{ 40 instance_ = nullptr; 41} 42 43std::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 54void 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 65RetError AccessibilitySettingProvider::GetIntValue(const std::string& key, int32_t& value) 66{ 67 value = AccessibilityDatashareHelper::GetIntValue(key, 0); 68 return RET_OK; 69} 70 71RetError AccessibilitySettingProvider::GetLongValue(const std::string& key, int64_t& value) 72{ 73 value = AccessibilityDatashareHelper::GetLongValue(key, 0); 74 return RET_OK; 75} 76 77RetError AccessibilitySettingProvider::GetFloatValue(const std::string& key, float& value) 78{ 79 value = AccessibilityDatashareHelper::GetFloatValue(key, 0); 80 return RET_OK; 81} 82 83RetError AccessibilitySettingProvider::GetBoolValue(const std::string& key, bool& value) 84{ 85 value = AccessibilityDatashareHelper::GetBoolValue(key, 0); 86 return RET_OK; 87} 88 89RetError AccessibilitySettingProvider::GetStringValue(const std::string& key, std::string& value) 90{ 91 value = AccessibilityDatashareHelper::GetStringValue(key, ""); 92 return RET_OK; 93} 94 95RetError AccessibilitySettingProvider::PutIntValue(const std::string& key, int32_t value, bool needNotify) 96{ 97 return AccessibilityDatashareHelper::PutIntValue(key, value, needNotify); 98} 99 100RetError AccessibilitySettingProvider::PutLongValue(const std::string& key, int64_t value, bool needNotify) 101{ 102 return AccessibilityDatashareHelper::PutLongValue(key, value, needNotify); 103} 104 105RetError AccessibilitySettingProvider::PutBoolValue(const std::string& key, bool value, bool needNotify) 106{ 107 return AccessibilityDatashareHelper::PutBoolValue(key, value, needNotify); 108} 109 110RetError AccessibilitySettingProvider::PutStringValue(const std::string& key, const std::string& value, bool needNotify) 111{ 112 return AccessibilityDatashareHelper::PutStringValue(key, value, needNotify); 113} 114 115sptr<AccessibilitySettingObserver> AccessibilitySettingProvider::CreateObserver(const std::string& key, 116 AccessibilitySettingObserver::UpdateFunc& func) 117{ 118 return AccessibilityDatashareHelper::CreateObserver(key, func); 119} 120 121RetError AccessibilitySettingProvider::RegisterObserver(const std::string& key, 122 AccessibilitySettingObserver::UpdateFunc& func) 123{ 124 return AccessibilityDatashareHelper::RegisterObserver(key, func); 125} 126 127RetError AccessibilitySettingProvider::UnregisterObserver(const std::string& key) 128{ 129 return AccessibilityDatashareHelper::UnregisterObserver(key); 130} 131} // namespace Accessibility 132} // namespace OHOS