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 bool IsDisplayOffTimeSettingValid(); 38 static int64_t GetSettingDisplayOffTime(int64_t defaultVal); 39 static void SetSettingDisplayOffTime(int64_t time); 40 static sptr<SettingObserver> RegisterSettingDisplayOffTimeObserver(SettingObserver::UpdateFunc& func); 41 static bool IsAutoAdjustBrightnessSettingValid(); 42 static int32_t GetSettingAutoAdjustBrightness(int32_t defaultVal); 43 static void SetSettingAutoAdjustBrightness(SwitchStatus status); 44 static sptr<SettingObserver> RegisterSettingAutoAdjustBrightnessObserver(SettingObserver::UpdateFunc& func); 45 static bool IsBrightnessSettingValid(); 46 static void SetSettingBrightness(int32_t brightness); 47 static bool IsVibrationSettingValid(); 48 static int32_t GetSettingVibration(int32_t defaultVal); 49 static void SetSettingVibration(SwitchStatus status); 50 static sptr<SettingObserver> RegisterSettingVibrationObserver(SettingObserver::UpdateFunc& func); 51 static bool IsWindowRotationSettingValid(); 52 static int32_t GetSettingWindowRotation(int32_t defaultVal); 53 static void SetSettingWindowRotation(SwitchStatus status); 54 static sptr<SettingObserver> RegisterSettingWindowRotationObserver(SettingObserver::UpdateFunc& func); 55 static bool IsIntellVoiceSettingValid(); 56 static int32_t GetSettingIntellVoice(int32_t defaultVal); 57 static void SetSettingIntellVoice(SwitchStatus status); 58 static sptr<SettingObserver> RegisterSettingIntellVoiceObserver(SettingObserver::UpdateFunc& func); 59 static sptr<SettingObserver> RegisterSettingSuspendSourcesObserver(SettingObserver::UpdateFunc& func); 60 static bool IsSuspendSourcesSettingValid(); 61 static const std::string GetSettingSuspendSources(); 62 static void SetSettingSuspendSources(const std::string& jsonConfig); 63 static sptr<SettingObserver> RegisterSettingWakeupSourcesObserver(SettingObserver::UpdateFunc& func); 64 static bool IsWakeupSourcesSettingValid(); 65 static const std::string GetSettingWakeupSources(); 66 static void SetSettingWakeupSources(const std::string& jsonConfig); 67 static bool IsWakeupDoubleSettingValid(); 68 static bool GetSettingWakeupDouble(const std::string& key = SETTING_POWER_WAKEUP_DOUBLE_KEY); 69 static void SetSettingWakeupDouble(bool enable); 70 static void RegisterSettingWakeupDoubleObserver(SettingObserver::UpdateFunc& func); 71 static void UnregisterSettingWakeupDoubleObserver(); 72 static bool IsWakeupPickupSettingValid(); 73 static bool GetSettingWakeupPickup(const std::string& key = SETTING_POWER_WAKEUP_PICKUP_KEY); 74 static void SetSettingWakeupPickup(bool enable); 75 static void RegisterSettingWakeupPickupObserver(SettingObserver::UpdateFunc& func); 76 static void UnregisterSettingWakeupPickupObserver(); 77 static void UnregisterSettingObserver(sptr<SettingObserver>& observer); 78 static void SaveCurrentMode(int32_t mode); 79 static int32_t ReadCurrentMode(int32_t defaultMode); 80 static const std::string ReadPowerModeRecoverMap(); 81 static void SavePowerModeRecoverMap(const std::string &jsonConfig); 82 static void RegisterSettingPowerModeObserver(SettingObserver::UpdateFunc& func); 83 static void UnRegisterSettingPowerModeObserver(); 84 static void RegisterSettingWakeupLidObserver(SettingObserver::UpdateFunc& func); 85 static void UnRegisterSettingWakeupLidObserver(); 86 static bool GetSettingWakeupLid(const std::string& key = SETTING_POWER_WAKEUP_LID_KEY); 87 static void SetSettingWakeupLid(bool enable); 88 static bool IsWakeupLidSettingValid(); 89 90 private: 91 static constexpr const char* SETTING_DISPLAY_OFF_TIME_KEY {"settings.display.screen_off_timeout"}; 92 static constexpr const char* SETTING_AUTO_ADJUST_BRIGHTNESS_KEY {"settings.display.auto_screen_brightness"}; 93 static constexpr const char* SETTING_BRIGHTNESS_KEY {"settings.display.screen_brightness_status"}; 94 static constexpr const char* SETTING_VIBRATION_KEY {"physic_navi_haptic_feedback_enabled"}; 95 static constexpr const char* SETTING_WINDOW_ROTATION_KEY {"settings.general.accelerometer_rotation_status"}; 96 static constexpr const char* SETTING_POWER_SUSPEND_SOURCES_KEY {"settings.power.suspend_sources"}; 97 static constexpr const char* SETTING_POWER_WAKEUP_SOURCES_KEY {"settings.power.wakeup_sources"}; 98 static constexpr const char* SETTING_INTELL_VOICE_KEY {"intell_voice_trigger_enabled"}; 99 static constexpr const char* SETTING_POWER_WAKEUP_DOUBLE_KEY {"settings.power.wakeup_double_click"}; 100 static constexpr const char* SETTING_POWER_WAKEUP_PICKUP_KEY {"settings.power.wakeup_pick_up"}; 101 static constexpr const char* SETTING_POWER_MODE_KEY {"settings.power.smart_mode_status"}; 102 static constexpr const char* SETTING_POWER_MODE_BACKUP_KEY {"settings.power.smart_mode_status.backup"}; 103 static constexpr const char* SETTING_POWER_WAKEUP_LID_KEY {"settings.power.wakeup_lid"}; 104 static sptr<SettingObserver> doubleClickObserver_; 105 static sptr<SettingObserver> pickUpObserver_; 106 static sptr<SettingObserver> powerModeObserver_; 107 static sptr<SettingObserver> lidObserver_; 108 }; 109 } // namespace PowerMgr 110 } // namespace OHOS 111 112 #endif // POWERMGR_POWER_MANAGER_SETTING_HELPER_H 113