/* * 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 #include #include 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> 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(0), SoundTriggerMode soundTriggerMode = static_cast(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> 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 */