• 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 #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