blob: 728c8a02a062f3c35435a1e42bda8d2a096f357a [file] [log] [blame]
Chris Ye11857fb2020-02-28 21:47:22 -08001/*
2 * Copyright (C) 2020 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef ANDROID_OS_BATTERY_SAVER_POLICY_CONFIG_H
18#define ANDROID_OS_BATTERY_SAVER_POLICY_CONFIG_H
19
20#include <math.h>
21#include <binder/Parcelable.h>
22#include <utils/RefBase.h>
23
24namespace android::os {
25
26enum class LocationMode : int32_t;
27/**
28 * BatterySaverPolicyConfig is a structure of configs to set Battery Saver policy flags.
29 * This file needs to be kept in sync with
30 * frameworks/base/core/java/android/os/BatterySaverPolicyConfig.java
31 */
32struct BatterySaverPolicyConfig : public android::Parcelable {
33
34 BatterySaverPolicyConfig(float adjustBrightnessFactor = 1.0f,
35 bool advertiseIsEnabled = false,
36 bool deferFullBackup = false,
37 bool deferKeyValueBackup = false,
38 std::vector<std::pair<String16, String16>> deviceSpecificSettings = {},
39 bool disableAnimation = false,
40 bool disableAod = false,
41 bool disableLaunchBoost = false,
42 bool disableOptionalSensors = false,
43 bool disableSoundTrigger = false,
44 bool disableVibration = false,
45 bool enableAdjustBrightness = false,
46 bool enableDataSaver = false,
47 bool enableFirewall = false,
48 bool enableNightMode = false,
49 bool enableQuickDoze = false,
50 bool forceAllAppsStandby = false,
51 bool forceBackgroundCheck = false,
52 LocationMode locationMode = static_cast<LocationMode>(0))
53 : mAdjustBrightnessFactor(adjustBrightnessFactor),
54 mAdvertiseIsEnabled(advertiseIsEnabled),
55 mDeferFullBackup(deferFullBackup),
56 mDeferKeyValueBackup(deferKeyValueBackup),
57 mDeviceSpecificSettings(deviceSpecificSettings),
58 mDisableAnimation(disableAnimation),
59 mDisableAod(disableAod),
60 mDisableLaunchBoost(disableLaunchBoost),
61 mDisableOptionalSensors(disableOptionalSensors),
62 mDisableSoundTrigger(disableSoundTrigger),
63 mDisableVibration(disableVibration),
64 mEnableAdjustBrightness(enableAdjustBrightness),
65 mEnableDataSaver(enableDataSaver),
66 mEnableFirewall(enableFirewall),
67 mEnableNightMode(enableNightMode),
68 mEnableQuickDoze(enableQuickDoze),
69 mForceAllAppsStandby(forceAllAppsStandby),
70 mForceBackgroundCheck(forceBackgroundCheck),
71 mLocationMode(locationMode) {
72 }
73
74 status_t readFromParcel(const android::Parcel* parcel) override;
75 status_t writeToParcel(android::Parcel* parcel) const override;
76 bool operator == (const BatterySaverPolicyConfig &bsp) const {
77 return fabs(mAdjustBrightnessFactor - bsp.mAdjustBrightnessFactor) == 0.0f &&
78 mAdvertiseIsEnabled == bsp.mAdvertiseIsEnabled &&
79 mDeferFullBackup == bsp.mDeferFullBackup &&
80 mDeferKeyValueBackup == bsp.mDeferKeyValueBackup &&
81 mDeviceSpecificSettings == bsp.mDeviceSpecificSettings &&
82 mDisableAnimation == bsp.mDisableAnimation &&
83 mDisableAod == bsp.mDisableAod &&
84 mDisableLaunchBoost == bsp.mDisableLaunchBoost &&
85 mDisableOptionalSensors == bsp.mDisableOptionalSensors &&
86 mDisableSoundTrigger == bsp.mDisableSoundTrigger &&
87 mDisableVibration == bsp.mDisableVibration &&
88 mEnableAdjustBrightness == bsp.mEnableAdjustBrightness &&
89 mEnableDataSaver == bsp.mEnableDataSaver &&
90 mEnableFirewall == bsp.mEnableFirewall &&
91 mEnableNightMode == bsp.mEnableNightMode &&
92 mEnableQuickDoze == bsp.mEnableQuickDoze &&
93 mForceAllAppsStandby == bsp.mForceAllAppsStandby &&
94 mForceBackgroundCheck == bsp.mForceBackgroundCheck &&
95 mLocationMode == bsp.mLocationMode;
96 }
97
98private:
99 status_t readDeviceSpecificSettings(const android::Parcel *parcel);
100 status_t writeDeviceSpecificSettings(android::Parcel *parcel) const;
101 /** Adjust screen brightness factor */
102 float mAdjustBrightnessFactor;
103 /** Is advertise enabled */
104 bool mAdvertiseIsEnabled;
105 /** Defer full backup */
106 bool mDeferFullBackup;
107 /** Defer key value backup */
108 bool mDeferKeyValueBackup;
109 /** Device specific settings */
110 std::vector<std::pair<String16, String16>> mDeviceSpecificSettings;
111 /** Disable animation */
112 bool mDisableAnimation;
113 /** Disable Aod */
114 bool mDisableAod;
115 /** Disable launch boost */
116 bool mDisableLaunchBoost;
117 /** Disable optional sensors */
118 bool mDisableOptionalSensors;
119 /** Disable sound trigger */
120 bool mDisableSoundTrigger;
121 /** Disable vibration */
122 bool mDisableVibration;
123 /** Enable adjust brightness */
124 bool mEnableAdjustBrightness;
125 /** Enable data saver */
126 bool mEnableDataSaver;
127 /** Enable firewall */
128 bool mEnableFirewall;
129 /** Enable night mode */
130 bool mEnableNightMode;
131 /** Enable quick doze */
132 bool mEnableQuickDoze;
133 /** Force all Apps standby */
134 bool mForceAllAppsStandby;
135 /** Force Background check */
136 bool mForceBackgroundCheck;
137 /** Location mode */
138 LocationMode mLocationMode;
139};
140
141} // namespace android::os
142
143#endif /* ANDROID_OS_BATTERY_SAVER_POLICY_CONFIG_H */