From 9121f848db5537d40bcf65bfb9010617cfc1efab Mon Sep 17 00:00:00 2001 From: wesleycwwang Date: Wed, 29 Jun 2022 18:21:13 +0800 Subject: [PATCH] Add dock charging state into stay awake feature (2/2) - Make dump proto method support dock charging state - Add dock charging into proto file and validators Bug: 233704731 Test: atest FrameworksServicesTests Change-Id: I8208414cc40a12f783749d2c7a9f71be6efab8d9 --- core/java/android/provider/Settings.java | 1 + .../android/server/powermanagerservice.proto | 1 + .../validators/GlobalSettingsValidators.java | 20 ++++++++++++++++++- .../server/power/PowerManagerService.java | 5 +++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 7964f7cd6908c..f81eccee00aa7 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -11301,6 +11301,7 @@ public final class Settings { *
  • {@link BatteryManager#BATTERY_PLUGGED_AC} to stay on for AC charger
  • *
  • {@link BatteryManager#BATTERY_PLUGGED_USB} to stay on for USB charger
  • *
  • {@link BatteryManager#BATTERY_PLUGGED_WIRELESS} to stay on for wireless charger
  • + *
  • {@link BatteryManager#BATTERY_PLUGGED_DOCK} to stay on for dock charger
  • * * These values can be OR-ed together. */ diff --git a/core/proto/android/server/powermanagerservice.proto b/core/proto/android/server/powermanagerservice.proto index 04f4d7b09d822..bd4f99044b176 100644 --- a/core/proto/android/server/powermanagerservice.proto +++ b/core/proto/android/server/powermanagerservice.proto @@ -238,6 +238,7 @@ message PowerServiceSettingsAndConfigurationDumpProto { optional bool is_stay_on_while_plugged_in_ac = 1; optional bool is_stay_on_while_plugged_in_usb = 2; optional bool is_stay_on_while_plugged_in_wireless = 3; + optional bool is_stay_on_while_plugged_in_dock = 4; } message ScreenBrightnessSettingLimitsProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java index e82bf04275096..fbbdd32c58861 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java @@ -51,19 +51,37 @@ public class GlobalSettingsValidators { || (val == BatteryManager.BATTERY_PLUGGED_AC) || (val == BatteryManager.BATTERY_PLUGGED_USB) || (val == BatteryManager.BATTERY_PLUGGED_WIRELESS) + || (val == BatteryManager.BATTERY_PLUGGED_DOCK) || (val == (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB)) || (val == (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_WIRELESS)) + || (val + == (BatteryManager.BATTERY_PLUGGED_AC + | BatteryManager.BATTERY_PLUGGED_DOCK)) || (val == (BatteryManager.BATTERY_PLUGGED_USB | BatteryManager.BATTERY_PLUGGED_WIRELESS)) + || (val + == (BatteryManager.BATTERY_PLUGGED_USB + | BatteryManager.BATTERY_PLUGGED_DOCK)) + || (val + == (BatteryManager.BATTERY_PLUGGED_WIRELESS + | BatteryManager.BATTERY_PLUGGED_DOCK)) + || (val + == (BatteryManager.BATTERY_PLUGGED_AC + | BatteryManager.BATTERY_PLUGGED_USB + | BatteryManager.BATTERY_PLUGGED_WIRELESS)) || (val == (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB - | BatteryManager.BATTERY_PLUGGED_WIRELESS)); + | BatteryManager.BATTERY_PLUGGED_DOCK)) + || (val + == (BatteryManager.BATTERY_PLUGGED_USB + | BatteryManager.BATTERY_PLUGGED_WIRELESS + | BatteryManager.BATTERY_PLUGGED_DOCK)); } catch (NumberFormatException e) { return false; } diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 50d1bd6c3e33d..dbf05f1cd7c7f 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -4801,6 +4801,11 @@ public final class PowerManagerService extends SystemService .IS_STAY_ON_WHILE_PLUGGED_IN_WIRELESS, ((mStayOnWhilePluggedInSetting & BatteryManager.BATTERY_PLUGGED_WIRELESS) != 0)); + proto.write( + PowerServiceSettingsAndConfigurationDumpProto.StayOnWhilePluggedInProto + .IS_STAY_ON_WHILE_PLUGGED_IN_DOCK, + ((mStayOnWhilePluggedInSetting & BatteryManager.BATTERY_PLUGGED_DOCK) + != 0)); proto.end(stayOnWhilePluggedInToken); proto.write(