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 #ifndef POWERMGR_POWER_MANAGER_SETTING_HELPER_H 17 #define POWERMGR_POWER_MANAGER_SETTING_HELPER_H 18 19 #include <cstdint> 20 #include <string> 21 22 #include "setting_provider.h" 23 24 namespace OHOS { 25 namespace PowerMgr { 26 class SettingHelper { 27 public: 28 enum class SwitchStatus : int32_t { 29 INVALID = -1, 30 DISABLE = 0, 31 ENABLE = 1, 32 }; 33 static void UpdateCurrentUserId(); 34 #ifdef POWER_WAKEUPDOUBLE_OR_PICKUP_ENABLE 35 static void CopyDataForUpdateScene(); 36 #endif 37 static void UnregisterSettingObserver(sptr<SettingObserver>& observer); 38 static bool IsDisplayOffTimeSettingValid(); 39 static bool IsSuspendSourcesSettingValid(); 40 #ifdef POWER_MANAGER_ENABLE_CHARGING_TYPE_SETTING 41 static bool IsSettingDisplayAcScreenOffTimeValid(); 42 static int64_t GetSettingDisplayAcScreenOffTime(int64_t defaultVal); 43 static void SetSettingDisplayAcScreenOffTime(int64_t time); 44 static sptr<SettingObserver> RegisterSettingDisplayAcScreenOffTimeObserver(SettingObserver::UpdateFunc& func); 45 static bool IsSettingDisplayDcScreenOffTimeValid(); 46 static int64_t GetSettingDisplayDcScreenOffTime(int64_t defaultVal); 47 static void SetSettingDisplayDcScreenOffTime(int64_t time); 48 static sptr<SettingObserver> RegisterSettingDisplayDcScreenOffTimeObserver(SettingObserver::UpdateFunc& func); 49 static bool IsSettingAcSuspendSourcesValid(); 50 static const std::string GetSettingAcSuspendSources(); 51 static void SetSettingAcSuspendSources(const std::string& jsonConfig); 52 static sptr<SettingObserver> RegisterSettingAcSuspendSourcesObserver(SettingObserver::UpdateFunc& func); 53 static bool IsSettingDcSuspendSourcesValid(); 54 static const std::string GetSettingDcSuspendSources(); 55 static void SetSettingDcSuspendSources(const std::string& jsonConfig); 56 static sptr<SettingObserver> RegisterSettingDcSuspendSourcesObserver(SettingObserver::UpdateFunc& func); 57 #else 58 static int64_t GetSettingDisplayOffTime(int64_t defaultVal); 59 static void SetSettingDisplayOffTime(int64_t time); 60 static sptr<SettingObserver> RegisterSettingDisplayOffTimeObserver(SettingObserver::UpdateFunc& func); 61 static sptr<SettingObserver> RegisterSettingSuspendSourcesObserver(SettingObserver::UpdateFunc& func); 62 static const std::string GetSettingSuspendSources(); 63 static void SetSettingSuspendSources(const std::string& jsonConfig); 64 #endif 65 static bool IsAutoAdjustBrightnessSettingValid(); 66 static int32_t GetSettingAutoAdjustBrightness(int32_t defaultVal); 67 static void SetSettingAutoAdjustBrightness(SwitchStatus status); 68 static sptr<SettingObserver> RegisterSettingAutoAdjustBrightnessObserver(SettingObserver::UpdateFunc& func); 69 static bool IsBrightnessSettingValid(); 70 static void SetSettingBrightness(int32_t brightness); 71 static bool IsVibrationSettingValid(); 72 static int32_t GetSettingVibration(int32_t defaultVal); 73 static void SetSettingVibration(SwitchStatus status); 74 static sptr<SettingObserver> RegisterSettingVibrationObserver(SettingObserver::UpdateFunc& func); 75 static bool IsWindowRotationSettingValid(); 76 static int32_t GetSettingWindowRotation(int32_t defaultVal); 77 static void SetSettingWindowRotation(SwitchStatus status); 78 static sptr<SettingObserver> RegisterSettingWindowRotationObserver(SettingObserver::UpdateFunc& func); 79 static bool IsIntellVoiceSettingValid(); 80 static int32_t GetSettingIntellVoice(int32_t defaultVal); 81 static void SetSettingIntellVoice(SwitchStatus status); 82 static sptr<SettingObserver> RegisterSettingIntellVoiceObserver(SettingObserver::UpdateFunc& func); 83 static sptr<SettingObserver> RegisterSettingWakeupSourcesObserver(SettingObserver::UpdateFunc& func); 84 static bool IsWakeupSourcesSettingValid(); 85 static const std::string GetSettingWakeupSources(); 86 static void SetSettingWakeupSources(const std::string& jsonConfig); 87 static bool IsWakeupDoubleSettingValid(); 88 static bool GetSettingWakeupDouble(const std::string& key = SETTING_POWER_WAKEUP_DOUBLE_KEY); 89 static void SetSettingWakeupDouble(bool enable); 90 static void RegisterSettingWakeupDoubleObserver(SettingObserver::UpdateFunc& func); 91 static void UnregisterSettingWakeupDoubleObserver(); 92 static bool IsWakeupPickupSettingValid(); 93 static bool GetSettingWakeupPickup(const std::string& key = SETTING_POWER_WAKEUP_PICKUP_KEY); 94 static void SetSettingWakeupPickup(bool enable); 95 static void RegisterSettingWakeupPickupObserver(SettingObserver::UpdateFunc& func); 96 static void UnregisterSettingWakeupPickupObserver(); 97 static void SaveCurrentMode(int32_t mode); 98 static int32_t ReadCurrentMode(int32_t defaultMode); 99 static const std::string ReadPowerModeRecoverMap(); 100 static void SavePowerModeRecoverMap(const std::string &jsonConfig); 101 static void RegisterSettingPowerModeObserver(SettingObserver::UpdateFunc& func); 102 static void UnRegisterSettingPowerModeObserver(); 103 static void RegisterSettingWakeupLidObserver(SettingObserver::UpdateFunc& func); 104 static void UnRegisterSettingWakeupLidObserver(); 105 static bool GetSettingWakeupLid(const std::string& key = SETTING_POWER_WAKEUP_LID_KEY); 106 static void SetSettingWakeupLid(bool enable); 107 static bool IsWakeupLidSettingValid(); 108 109 private: 110 static bool IsSettingKeyValid(const std::string& key); 111 static int32_t GetSettingIntValue(const std::string& key, int32_t defaultVal); 112 static void SetSettingIntValue(const std::string& key, int32_t value); 113 static int64_t GetSettingLongValue(const std::string& key, int64_t defaultVal); 114 static void SetSettingLongValue(const std::string& key, int64_t value); 115 static const std::string GetSettingStringValue(const std::string& key); 116 static void SetSettingJsonStringValue(const std::string& key, const std::string& jsonConfig); 117 static sptr<SettingObserver> RegisterSettingKeyObserver(const std::string& key, SettingObserver::UpdateFunc& func); 118 119 #ifdef POWER_MANAGER_ENABLE_CHARGING_TYPE_SETTING 120 // AC for Alternating Current, means charing supply 121 // DC for Direct Current, means battery supply 122 static constexpr const char* SETTING_DISPLAY_AC_OFF_TIME_KEY {"settings.display.ac.screen_off_timeout"}; 123 static constexpr const char* SETTING_DISPLAY_DC_OFF_TIME_KEY {"settings.display.dc.screen_off_timeout"}; 124 static constexpr const char* SETTING_POWER_AC_SUSPEND_SOURCES_KEY {"settings.power.ac.suspend_sources"}; 125 static constexpr const char* SETTING_POWER_DC_SUSPEND_SOURCES_KEY {"settings.power.dc.suspend_sources"}; 126 #else 127 static constexpr const char* SETTING_DISPLAY_OFF_TIME_KEY {"settings.display.screen_off_timeout"}; 128 static constexpr const char* SETTING_POWER_SUSPEND_SOURCES_KEY {"settings.power.suspend_sources"}; 129 #endif 130 static constexpr const char* SETTING_AUTO_ADJUST_BRIGHTNESS_KEY {"settings.display.auto_screen_brightness"}; 131 static constexpr const char* SETTING_BRIGHTNESS_KEY {"settings.display.screen_brightness_status"}; 132 static constexpr const char* SETTING_VIBRATION_KEY {"physic_navi_haptic_feedback_enabled"}; 133 static constexpr const char* SETTING_WINDOW_ROTATION_KEY {"settings.general.accelerometer_rotation_status"}; 134 static constexpr const char* SETTING_POWER_WAKEUP_SOURCES_KEY {"settings.power.wakeup_sources"}; 135 static constexpr const char* SETTING_INTELL_VOICE_KEY {"intell_voice_trigger_enabled"}; 136 static constexpr const char* SETTING_POWER_WAKEUP_DOUBLE_KEY {"settings.power.wakeup_double_click"}; 137 static constexpr const char* SETTING_POWER_WAKEUP_PICKUP_KEY {"settings.power.wakeup_pick_up"}; 138 static constexpr const char* SETTING_POWER_MODE_KEY {"settings.power.smart_mode_status"}; 139 static constexpr const char* SETTING_POWER_MODE_BACKUP_KEY {"settings.power.smart_mode_status.backup"}; 140 static constexpr const char* SETTING_POWER_WAKEUP_LID_KEY {"settings.power.wakeup_lid"}; 141 static sptr<SettingObserver> doubleClickObserver_; 142 static sptr<SettingObserver> pickUpObserver_; 143 static sptr<SettingObserver> powerModeObserver_; 144 static sptr<SettingObserver> lidObserver_; 145 }; 146 } // namespace PowerMgr 147 } // namespace OHOS 148 149 #endif // POWERMGR_POWER_MANAGER_SETTING_HELPER_H 150