| /* | |
| * Copyright (C) 2020 The Android Open Source Project | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| #ifndef ANDROID_OS_BATTERY_SAVER_POLICY_CONFIG_H | |
| #define ANDROID_OS_BATTERY_SAVER_POLICY_CONFIG_H | |
| #include <math.h> | |
| #include <binder/Parcelable.h> | |
| #include <utils/RefBase.h> | |
| namespace android::os { | |
| enum class LocationMode : int32_t; | |
| enum class SoundTriggerMode : int32_t; | |
| /** | |
| * BatterySaverPolicyConfig is a structure of configs to set Battery Saver policy flags. | |
| * This file needs to be kept in sync with | |
| * frameworks/base/core/java/android/os/BatterySaverPolicyConfig.java | |
| */ | |
| struct BatterySaverPolicyConfig : public android::Parcelable { | |
| BatterySaverPolicyConfig(float adjustBrightnessFactor = 1.0f, | |
| bool advertiseIsEnabled = false, | |
| bool deferFullBackup = false, | |
| bool deferKeyValueBackup = false, | |
| std::vector<std::pair<String16, String16>> deviceSpecificSettings = {}, | |
| bool disableAnimation = false, | |
| bool disableAod = false, | |
| bool disableLaunchBoost = false, | |
| bool disableOptionalSensors = false, | |
| bool disableVibration = false, | |
| bool enableAdjustBrightness = false, | |
| bool enableDataSaver = false, | |
| bool enableFirewall = false, | |
| bool enableNightMode = false, | |
| bool enableQuickDoze = false, | |
| bool forceAllAppsStandby = false, | |
| bool forceBackgroundCheck = false, | |
| LocationMode locationMode = static_cast<LocationMode>(0), | |
| SoundTriggerMode soundTriggerMode = static_cast<SoundTriggerMode>(0)) | |
| : mAdjustBrightnessFactor(adjustBrightnessFactor), | |
| mAdvertiseIsEnabled(advertiseIsEnabled), | |
| mDeferFullBackup(deferFullBackup), | |
| mDeferKeyValueBackup(deferKeyValueBackup), | |
| mDeviceSpecificSettings(deviceSpecificSettings), | |
| mDisableAnimation(disableAnimation), | |
| mDisableAod(disableAod), | |
| mDisableLaunchBoost(disableLaunchBoost), | |
| mDisableOptionalSensors(disableOptionalSensors), | |
| mDisableVibration(disableVibration), | |
| mEnableAdjustBrightness(enableAdjustBrightness), | |
| mEnableDataSaver(enableDataSaver), | |
| mEnableFirewall(enableFirewall), | |
| mEnableNightMode(enableNightMode), | |
| mEnableQuickDoze(enableQuickDoze), | |
| mForceAllAppsStandby(forceAllAppsStandby), | |
| mForceBackgroundCheck(forceBackgroundCheck), | |
| mLocationMode(locationMode), | |
| mSoundTriggerMode(soundTriggerMode) { | |
| } | |
| status_t readFromParcel(const android::Parcel* parcel) override; | |
| status_t writeToParcel(android::Parcel* parcel) const override; | |
| bool operator == (const BatterySaverPolicyConfig &bsp) const { | |
| return fabs(mAdjustBrightnessFactor - bsp.mAdjustBrightnessFactor) == 0.0f && | |
| mAdvertiseIsEnabled == bsp.mAdvertiseIsEnabled && | |
| mDeferFullBackup == bsp.mDeferFullBackup && | |
| mDeferKeyValueBackup == bsp.mDeferKeyValueBackup && | |
| mDeviceSpecificSettings == bsp.mDeviceSpecificSettings && | |
| mDisableAnimation == bsp.mDisableAnimation && | |
| mDisableAod == bsp.mDisableAod && | |
| mDisableLaunchBoost == bsp.mDisableLaunchBoost && | |
| mDisableOptionalSensors == bsp.mDisableOptionalSensors && | |
| mDisableVibration == bsp.mDisableVibration && | |
| mEnableAdjustBrightness == bsp.mEnableAdjustBrightness && | |
| mEnableDataSaver == bsp.mEnableDataSaver && | |
| mEnableFirewall == bsp.mEnableFirewall && | |
| mEnableNightMode == bsp.mEnableNightMode && | |
| mEnableQuickDoze == bsp.mEnableQuickDoze && | |
| mForceAllAppsStandby == bsp.mForceAllAppsStandby && | |
| mForceBackgroundCheck == bsp.mForceBackgroundCheck && | |
| mLocationMode == bsp.mLocationMode && | |
| mSoundTriggerMode == bsp.mSoundTriggerMode; | |
| } | |
| private: | |
| status_t readDeviceSpecificSettings(const android::Parcel *parcel); | |
| status_t writeDeviceSpecificSettings(android::Parcel *parcel) const; | |
| /** Adjust screen brightness factor */ | |
| float mAdjustBrightnessFactor; | |
| /** Is advertise enabled */ | |
| bool mAdvertiseIsEnabled; | |
| /** Defer full backup */ | |
| bool mDeferFullBackup; | |
| /** Defer key value backup */ | |
| bool mDeferKeyValueBackup; | |
| /** Device specific settings */ | |
| std::vector<std::pair<String16, String16>> mDeviceSpecificSettings; | |
| /** Disable animation */ | |
| bool mDisableAnimation; | |
| /** Disable Aod */ | |
| bool mDisableAod; | |
| /** Disable launch boost */ | |
| bool mDisableLaunchBoost; | |
| /** Disable optional sensors */ | |
| bool mDisableOptionalSensors; | |
| /** Disable vibration */ | |
| bool mDisableVibration; | |
| /** Enable adjust brightness */ | |
| bool mEnableAdjustBrightness; | |
| /** Enable data saver */ | |
| bool mEnableDataSaver; | |
| /** Enable firewall */ | |
| bool mEnableFirewall; | |
| /** Enable night mode */ | |
| bool mEnableNightMode; | |
| /** Enable quick doze */ | |
| bool mEnableQuickDoze; | |
| /** Force all Apps standby */ | |
| bool mForceAllAppsStandby; | |
| /** Force Background check */ | |
| bool mForceBackgroundCheck; | |
| /** Location mode */ | |
| LocationMode mLocationMode; | |
| /** SoundTrigger mode */ | |
| SoundTriggerMode mSoundTriggerMode; | |
| }; | |
| } // namespace android::os | |
| #endif /* ANDROID_OS_BATTERY_SAVER_POLICY_CONFIG_H */ |