| /* |
| * 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 */ |