Loading services/core/java/com/android/server/power/BatterySaverPolicy.java +42 −6 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ public class BatterySaverPolicy extends ContentObserver { private static final String KEY_FIREWALL_DISABLED = "firewall_disabled"; private static final String KEY_ADJUST_BRIGHTNESS_DISABLED = "adjust_brightness_disabled"; private static final String KEY_DATASAVER_DISABLED = "datasaver_disabled"; private static final String KEY_LAUNCH_BOOST_DISABLED = "launch_boost_disabled"; private static final String KEY_ADJUST_BRIGHTNESS_FACTOR = "adjust_brightness_factor"; private static final String KEY_FULLBACKUP_DEFERRED = "fullbackup_deferred"; private static final String KEY_KEYVALUE_DEFERRED = "keyvaluebackup_deferred"; Loading @@ -73,9 +74,16 @@ public class BatterySaverPolicy extends ContentObserver { private static final String KEY_CPU_FREQ_INTERACTIVE = "cpufreq-i"; private static final String KEY_CPU_FREQ_NONINTERACTIVE = "cpufreq-n"; private static String mSettings; private static String mDeviceSpecificSettings; private static String mDeviceSpecificSettingsSource; // For dump() only. private final Object mLock = new Object(); @GuardedBy("mLock") private String mSettings; @GuardedBy("mLock") private String mDeviceSpecificSettings; @GuardedBy("mLock") private String mDeviceSpecificSettingsSource; // For dump() only. /** * {@code true} if vibration is disabled in battery saver mode. Loading @@ -83,6 +91,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_VIBRATION_DISABLED */ @GuardedBy("mLock") private boolean mVibrationDisabled; /** Loading @@ -91,6 +100,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_ANIMATION_DISABLED */ @GuardedBy("mLock") private boolean mAnimationDisabled; /** Loading @@ -100,6 +110,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_SOUNDTRIGGER_DISABLED */ @GuardedBy("mLock") private boolean mSoundTriggerDisabled; /** Loading @@ -108,6 +119,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_FULLBACKUP_DEFERRED */ @GuardedBy("mLock") private boolean mFullBackupDeferred; /** Loading @@ -116,6 +128,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_KEYVALUE_DEFERRED */ @GuardedBy("mLock") private boolean mKeyValueBackupDeferred; /** Loading @@ -124,6 +137,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_FIREWALL_DISABLED */ @GuardedBy("mLock") private boolean mFireWallDisabled; /** Loading @@ -132,6 +146,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_ADJUST_BRIGHTNESS_DISABLED */ @GuardedBy("mLock") private boolean mAdjustBrightnessDisabled; /** Loading @@ -140,14 +155,22 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_DATASAVER_DISABLED */ @GuardedBy("mLock") private boolean mDataSaverDisabled; /** * {@code true} if launch boost should be disabled on battery saver. */ @GuardedBy("mLock") private boolean mLaunchBoostDisabled; /** * This is the flag to decide the gps mode in battery saver mode. * * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_GPS_MODE */ @GuardedBy("mLock") private int mGpsMode; /** Loading @@ -157,20 +180,21 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_ADJUST_BRIGHTNESS_FACTOR */ @GuardedBy("mLock") private float mAdjustBrightnessFactor; /** * Whether to put all apps in the stand-by mode. */ @GuardedBy("mLock") private boolean mForceAllAppsStandby; /** * Weather to show non-essential sensors (e.g. edge sensors) or not. */ @GuardedBy("mLock") private boolean mOptionalSensorsDisabled; private final Object mLock = new Object(); @GuardedBy("mLock") private Context mContext; Loading Loading @@ -227,7 +251,11 @@ public class BatterySaverPolicy extends ContentObserver { @VisibleForTesting String getGlobalSetting(String key) { return Settings.Global.getString(mContentResolver, key); final ContentResolver cr; synchronized (mLock) { cr = mContentResolver; } return Settings.Global.getString(cr, key); } @VisibleForTesting Loading Loading @@ -296,6 +324,7 @@ public class BatterySaverPolicy extends ContentObserver { mAdjustBrightnessDisabled = parser.getBoolean(KEY_ADJUST_BRIGHTNESS_DISABLED, false); mAdjustBrightnessFactor = parser.getFloat(KEY_ADJUST_BRIGHTNESS_FACTOR, 0.5f); mDataSaverDisabled = parser.getBoolean(KEY_DATASAVER_DISABLED, true); mLaunchBoostDisabled = parser.getBoolean(KEY_LAUNCH_BOOST_DISABLED, true); mForceAllAppsStandby = parser.getBoolean(KEY_FORCE_ALL_APPS_STANDBY, true); mOptionalSensorsDisabled = parser.getBoolean(KEY_OPTIONAL_SENSORS_DISABLED, true); Loading Loading @@ -382,6 +411,12 @@ public class BatterySaverPolicy extends ContentObserver { } } public boolean isLaunchBoostDisabled() { synchronized (mLock) { return mLaunchBoostDisabled; } } public void dump(PrintWriter pw) { synchronized (mLock) { pw.println(); Loading @@ -398,6 +433,7 @@ public class BatterySaverPolicy extends ContentObserver { pw.println(" " + KEY_KEYVALUE_DEFERRED + "=" + mKeyValueBackupDeferred); pw.println(" " + KEY_FIREWALL_DISABLED + "=" + mFireWallDisabled); pw.println(" " + KEY_DATASAVER_DISABLED + "=" + mDataSaverDisabled); pw.println(" " + KEY_LAUNCH_BOOST_DISABLED + "=" + mLaunchBoostDisabled); pw.println(" " + KEY_ADJUST_BRIGHTNESS_DISABLED + "=" + mAdjustBrightnessDisabled); pw.println(" " + KEY_ADJUST_BRIGHTNESS_FACTOR + "=" + mAdjustBrightnessFactor); pw.println(" " + KEY_GPS_MODE + "=" + mGpsMode); Loading services/core/java/com/android/server/power/PowerManagerService.java +10 −1 Original line number Diff line number Diff line Loading @@ -3109,7 +3109,16 @@ public final class PowerManagerService extends SystemService mIsVrModeEnabled = enabled; } private static void powerHintInternal(int hintId, int data) { private void powerHintInternal(int hintId, int data) { // Maybe filter the event. switch (hintId) { case PowerHint.LAUNCH: // 1: activate launch boost 0: deactivate. if (data == 1 && mBatterySaverController.isLaunchBoostDisabled()) { return; } break; } nativeSendPowerHint(hintId, data); } Loading services/core/java/com/android/server/power/batterysaver/BatterySaverController.java +7 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,13 @@ public class BatterySaverController implements BatterySaverPolicyListener { } } /** * @return true if launch boost should currently be disabled. */ public boolean isLaunchBoostDisabled() { return isEnabled() && mBatterySaverPolicy.isLaunchBoostDisabled(); } /** * Dispatch power save events to the listeners. * Loading Loading
services/core/java/com/android/server/power/BatterySaverPolicy.java +42 −6 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ public class BatterySaverPolicy extends ContentObserver { private static final String KEY_FIREWALL_DISABLED = "firewall_disabled"; private static final String KEY_ADJUST_BRIGHTNESS_DISABLED = "adjust_brightness_disabled"; private static final String KEY_DATASAVER_DISABLED = "datasaver_disabled"; private static final String KEY_LAUNCH_BOOST_DISABLED = "launch_boost_disabled"; private static final String KEY_ADJUST_BRIGHTNESS_FACTOR = "adjust_brightness_factor"; private static final String KEY_FULLBACKUP_DEFERRED = "fullbackup_deferred"; private static final String KEY_KEYVALUE_DEFERRED = "keyvaluebackup_deferred"; Loading @@ -73,9 +74,16 @@ public class BatterySaverPolicy extends ContentObserver { private static final String KEY_CPU_FREQ_INTERACTIVE = "cpufreq-i"; private static final String KEY_CPU_FREQ_NONINTERACTIVE = "cpufreq-n"; private static String mSettings; private static String mDeviceSpecificSettings; private static String mDeviceSpecificSettingsSource; // For dump() only. private final Object mLock = new Object(); @GuardedBy("mLock") private String mSettings; @GuardedBy("mLock") private String mDeviceSpecificSettings; @GuardedBy("mLock") private String mDeviceSpecificSettingsSource; // For dump() only. /** * {@code true} if vibration is disabled in battery saver mode. Loading @@ -83,6 +91,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_VIBRATION_DISABLED */ @GuardedBy("mLock") private boolean mVibrationDisabled; /** Loading @@ -91,6 +100,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_ANIMATION_DISABLED */ @GuardedBy("mLock") private boolean mAnimationDisabled; /** Loading @@ -100,6 +110,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_SOUNDTRIGGER_DISABLED */ @GuardedBy("mLock") private boolean mSoundTriggerDisabled; /** Loading @@ -108,6 +119,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_FULLBACKUP_DEFERRED */ @GuardedBy("mLock") private boolean mFullBackupDeferred; /** Loading @@ -116,6 +128,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_KEYVALUE_DEFERRED */ @GuardedBy("mLock") private boolean mKeyValueBackupDeferred; /** Loading @@ -124,6 +137,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_FIREWALL_DISABLED */ @GuardedBy("mLock") private boolean mFireWallDisabled; /** Loading @@ -132,6 +146,7 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_ADJUST_BRIGHTNESS_DISABLED */ @GuardedBy("mLock") private boolean mAdjustBrightnessDisabled; /** Loading @@ -140,14 +155,22 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_DATASAVER_DISABLED */ @GuardedBy("mLock") private boolean mDataSaverDisabled; /** * {@code true} if launch boost should be disabled on battery saver. */ @GuardedBy("mLock") private boolean mLaunchBoostDisabled; /** * This is the flag to decide the gps mode in battery saver mode. * * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_GPS_MODE */ @GuardedBy("mLock") private int mGpsMode; /** Loading @@ -157,20 +180,21 @@ public class BatterySaverPolicy extends ContentObserver { * @see Settings.Global#BATTERY_SAVER_CONSTANTS * @see #KEY_ADJUST_BRIGHTNESS_FACTOR */ @GuardedBy("mLock") private float mAdjustBrightnessFactor; /** * Whether to put all apps in the stand-by mode. */ @GuardedBy("mLock") private boolean mForceAllAppsStandby; /** * Weather to show non-essential sensors (e.g. edge sensors) or not. */ @GuardedBy("mLock") private boolean mOptionalSensorsDisabled; private final Object mLock = new Object(); @GuardedBy("mLock") private Context mContext; Loading Loading @@ -227,7 +251,11 @@ public class BatterySaverPolicy extends ContentObserver { @VisibleForTesting String getGlobalSetting(String key) { return Settings.Global.getString(mContentResolver, key); final ContentResolver cr; synchronized (mLock) { cr = mContentResolver; } return Settings.Global.getString(cr, key); } @VisibleForTesting Loading Loading @@ -296,6 +324,7 @@ public class BatterySaverPolicy extends ContentObserver { mAdjustBrightnessDisabled = parser.getBoolean(KEY_ADJUST_BRIGHTNESS_DISABLED, false); mAdjustBrightnessFactor = parser.getFloat(KEY_ADJUST_BRIGHTNESS_FACTOR, 0.5f); mDataSaverDisabled = parser.getBoolean(KEY_DATASAVER_DISABLED, true); mLaunchBoostDisabled = parser.getBoolean(KEY_LAUNCH_BOOST_DISABLED, true); mForceAllAppsStandby = parser.getBoolean(KEY_FORCE_ALL_APPS_STANDBY, true); mOptionalSensorsDisabled = parser.getBoolean(KEY_OPTIONAL_SENSORS_DISABLED, true); Loading Loading @@ -382,6 +411,12 @@ public class BatterySaverPolicy extends ContentObserver { } } public boolean isLaunchBoostDisabled() { synchronized (mLock) { return mLaunchBoostDisabled; } } public void dump(PrintWriter pw) { synchronized (mLock) { pw.println(); Loading @@ -398,6 +433,7 @@ public class BatterySaverPolicy extends ContentObserver { pw.println(" " + KEY_KEYVALUE_DEFERRED + "=" + mKeyValueBackupDeferred); pw.println(" " + KEY_FIREWALL_DISABLED + "=" + mFireWallDisabled); pw.println(" " + KEY_DATASAVER_DISABLED + "=" + mDataSaverDisabled); pw.println(" " + KEY_LAUNCH_BOOST_DISABLED + "=" + mLaunchBoostDisabled); pw.println(" " + KEY_ADJUST_BRIGHTNESS_DISABLED + "=" + mAdjustBrightnessDisabled); pw.println(" " + KEY_ADJUST_BRIGHTNESS_FACTOR + "=" + mAdjustBrightnessFactor); pw.println(" " + KEY_GPS_MODE + "=" + mGpsMode); Loading
services/core/java/com/android/server/power/PowerManagerService.java +10 −1 Original line number Diff line number Diff line Loading @@ -3109,7 +3109,16 @@ public final class PowerManagerService extends SystemService mIsVrModeEnabled = enabled; } private static void powerHintInternal(int hintId, int data) { private void powerHintInternal(int hintId, int data) { // Maybe filter the event. switch (hintId) { case PowerHint.LAUNCH: // 1: activate launch boost 0: deactivate. if (data == 1 && mBatterySaverController.isLaunchBoostDisabled()) { return; } break; } nativeSendPowerHint(hintId, data); } Loading
services/core/java/com/android/server/power/batterysaver/BatterySaverController.java +7 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,13 @@ public class BatterySaverController implements BatterySaverPolicyListener { } } /** * @return true if launch boost should currently be disabled. */ public boolean isLaunchBoostDisabled() { return isEnabled() && mBatterySaverPolicy.isLaunchBoostDisabled(); } /** * Dispatch power save events to the listeners. * Loading