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