diff options
| -rw-r--r-- | core/proto/android/server/powermanagerservice.proto | 24 | ||||
| -rw-r--r-- | services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java | 40 |
2 files changed, 55 insertions, 9 deletions
diff --git a/core/proto/android/server/powermanagerservice.proto b/core/proto/android/server/powermanagerservice.proto index c03957087f26..6850d0109913 100644 --- a/core/proto/android/server/powermanagerservice.proto +++ b/core/proto/android/server/powermanagerservice.proto @@ -366,6 +366,15 @@ message BatterySaverStateMachineProto { // Whether battery level is low or not. optional bool is_battery_level_low = 8; + // Denotes which threshold should be used for automatic Battery Saver triggering. + enum AutomaticTriggerEnum { + TRIGGER_PERCENTAGE = 0; + TRIGGER_DYNAMIC = 1; + } + // The value of Global.AUTOMATIC_POWER_SAVE_MODE. This is a cached value, so it could + // be slightly different from what's in GlobalSettingsProto.DynamicPowerSavings. + optional AutomaticTriggerEnum setting_automatic_trigger = 19; + // The value of Global.LOW_POWER_MODE. This is a cached value, so it could // be slightly different from what's in GlobalSettingsProto.LowPowerMode. optional bool setting_battery_saver_enabled = 9; @@ -390,5 +399,18 @@ message BatterySaverStateMachineProto { // using elapsed realtime as the timebase. optional int64 last_adaptive_battery_saver_changed_externally_elapsed = 17; - // Next tag: 19 + // The default disable threshold for Dynamic Power Savings enabled battery saver. + optional int32 default_dynamic_disable_threshold = 20; + + // When to disable battery saver again if it was enabled due to an external suggestion. + // Corresponds to Global.DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD. This is a cached value, + // so it could be slightly different from what's in GlobalSettingsProto.DynamicPowerSavings. + optional int32 dynamic_disable_threshold = 21; + + // Whether we've received a suggestion that battery saver should be on from an external app. + // Corresponds to Global.DYNAMIC_POWER_SAVINGS_ENABLED. This is a cached value, so it could + // be slightly different from what's in GlobalSettingsProto.DynamicPowerSavings. + optional bool dynamic_battery_saver_enabled = 22; + + // Next tag: 23 } diff --git a/services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java b/services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java index 4b3746b5141e..42aaec9ce23a 100644 --- a/services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java +++ b/services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java @@ -176,8 +176,10 @@ public class BatterySaverStateMachine { @GuardedBy("mLock") private int mSettingBatterySaverStickyAutoDisableThreshold; - /** Config flag to track default disable threshold for Dynamic Power Savings enabled battery - * saver. */ + /** + * Config flag to track default disable threshold for Dynamic Power Savings enabled battery + * saver. + */ @GuardedBy("mLock") private final int mDynamicPowerSavingsDefaultDisableThreshold; @@ -192,8 +194,9 @@ public class BatterySaverStateMachine { @GuardedBy("mLock") private int mSettingAutomaticBatterySaver; - /** When to disable battery saver again if it was enabled due to an external suggestion. - * Corresponds to Settings.Global.DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD. + /** + * When to disable battery saver again if it was enabled due to an external suggestion. + * Corresponds to Settings.Global.DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD. */ @GuardedBy("mLock") private int mDynamicPowerSavingsDisableThreshold; @@ -203,7 +206,7 @@ public class BatterySaverStateMachine { * Updates when Settings.Global.DYNAMIC_POWER_SAVINGS_ENABLED changes. */ @GuardedBy("mLock") - private boolean mDynamicPowerSavingsBatterySaver; + private boolean mDynamicPowerSavingsEnableBatterySaver; /** * Last reason passed to {@link #enableBatterySaverLocked}. @@ -265,7 +268,7 @@ public class BatterySaverStateMachine { /** @return true if the dynamic mode should be used */ private boolean isDynamicModeActiveLocked() { return mSettingAutomaticBatterySaver == PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC - && mDynamicPowerSavingsBatterySaver; + && mDynamicPowerSavingsEnableBatterySaver; } /** @@ -428,7 +431,7 @@ public class BatterySaverStateMachine { final boolean dynamicPowerSavingsThresholdChanged = mDynamicPowerSavingsDisableThreshold != dynamicPowerSavingsDisableThreshold; final boolean dynamicPowerSavingsBatterySaverChanged = - mDynamicPowerSavingsBatterySaver != dynamicPowerSavingsBatterySaver; + mDynamicPowerSavingsEnableBatterySaver != dynamicPowerSavingsBatterySaver; if (!(enabledChanged || stickyChanged || thresholdChanged || automaticModeChanged || stickyAutoDisableEnabledChanged || stickyAutoDisableThresholdChanged @@ -443,7 +446,7 @@ public class BatterySaverStateMachine { mSettingBatterySaverStickyAutoDisableThreshold = stickyAutoDisableThreshold; mSettingAutomaticBatterySaver = automaticBatterySaver; mDynamicPowerSavingsDisableThreshold = dynamicPowerSavingsDisableThreshold; - mDynamicPowerSavingsBatterySaver = dynamicPowerSavingsBatterySaver; + mDynamicPowerSavingsEnableBatterySaver = dynamicPowerSavingsBatterySaver; if (thresholdChanged) { // To avoid spamming the event log, we throttle logging here. @@ -923,6 +926,8 @@ public class BatterySaverStateMachine { pw.print(" mIsBatteryLevelLow="); pw.println(mIsBatteryLevelLow); + pw.print(" mSettingAutomaticBatterySaver="); + pw.println(mSettingAutomaticBatterySaver); pw.print(" mSettingBatterySaverEnabled="); pw.println(mSettingBatterySaverEnabled); pw.print(" mSettingBatterySaverEnabledSticky="); @@ -936,6 +941,13 @@ public class BatterySaverStateMachine { pw.print(" mBatterySaverStickyBehaviourDisabled="); pw.println(mBatterySaverStickyBehaviourDisabled); + pw.print(" mDynamicPowerSavingsDefaultDisableThreshold="); + pw.println(mDynamicPowerSavingsDefaultDisableThreshold); + pw.print(" mDynamicPowerSavingsDisableThreshold="); + pw.println(mDynamicPowerSavingsDisableThreshold); + pw.print(" mDynamicPowerSavingsEnableBatterySaver="); + pw.println(mDynamicPowerSavingsEnableBatterySaver); + pw.print(" mLastAdaptiveBatterySaverChangedExternallyElapsed="); pw.println(mLastAdaptiveBatterySaverChangedExternallyElapsed); } @@ -964,6 +976,8 @@ public class BatterySaverStateMachine { proto.write(BatterySaverStateMachineProto.BATTERY_LEVEL, mBatteryLevel); proto.write(BatterySaverStateMachineProto.IS_BATTERY_LEVEL_LOW, mIsBatteryLevelLow); + proto.write(BatterySaverStateMachineProto.SETTING_AUTOMATIC_TRIGGER, + mSettingAutomaticBatterySaver); proto.write(BatterySaverStateMachineProto.SETTING_BATTERY_SAVER_ENABLED, mSettingBatterySaverEnabled); proto.write(BatterySaverStateMachineProto.SETTING_BATTERY_SAVER_ENABLED_STICKY, @@ -979,6 +993,16 @@ public class BatterySaverStateMachine { mSettingBatterySaverStickyAutoDisableThreshold); proto.write( + BatterySaverStateMachineProto.DEFAULT_DYNAMIC_DISABLE_THRESHOLD, + mDynamicPowerSavingsDefaultDisableThreshold); + proto.write( + BatterySaverStateMachineProto.DYNAMIC_DISABLE_THRESHOLD, + mDynamicPowerSavingsDisableThreshold); + proto.write( + BatterySaverStateMachineProto.DYNAMIC_BATTERY_SAVER_ENABLED, + mDynamicPowerSavingsEnableBatterySaver); + + proto.write( BatterySaverStateMachineProto .LAST_ADAPTIVE_BATTERY_SAVER_CHANGED_EXTERNALLY_ELAPSED, mLastAdaptiveBatterySaverChangedExternallyElapsed); |