From 270c5b62cbb8c28807693ec6c360c178cbfade86 Mon Sep 17 00:00:00 2001 From: "Wesley.CW Wang" Date: Thu, 8 Apr 2021 21:03:07 +0800 Subject: [PATCH] Support wireless charge state - Add new condition for wireless charging, make getBatteryStatus can return wireless charging state Bug: 177407113 Test: make SettingsLibRoboTests Change-Id: I9c02f8108baa7fe4fa96e85ce1e6efadb87a47b4 --- packages/SettingsLib/res/values/strings.xml | 2 ++ .../src/com/android/settingslib/Utils.java | 27 +++++++++++-------- .../com/android/settingslib/UtilsTest.java | 16 +++++++++-- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index bcc22f6605a54..dfd3d881e3928 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -1140,6 +1140,8 @@ Charging rapidly Charging slowly + + Charging wirelessly Not charging diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index bf4242f542daf..f637ff86e6d2e 100644 --- a/packages/SettingsLib/src/com/android/settingslib/Utils.java +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -204,18 +204,23 @@ public class Utils { statusString = res.getString(R.string.battery_info_status_full); } else { if (status == BatteryManager.BATTERY_STATUS_CHARGING) { - switch (batteryStatus.getChargingSpeed(context)) { - case BatteryStatus.CHARGING_FAST: - statusString = res.getString(R.string.battery_info_status_charging_fast); - break; - case BatteryStatus.CHARGING_SLOWLY: - statusString = res.getString(R.string.battery_info_status_charging_slow); - break; - default: - statusString = res.getString(R.string.battery_info_status_charging); - break; + if (batteryStatus.isPluggedInWired()) { + switch (batteryStatus.getChargingSpeed(context)) { + case BatteryStatus.CHARGING_FAST: + statusString = res.getString( + R.string.battery_info_status_charging_fast); + break; + case BatteryStatus.CHARGING_SLOWLY: + statusString = res.getString( + R.string.battery_info_status_charging_slow); + break; + default: + statusString = res.getString(R.string.battery_info_status_charging); + break; + } + } else { + statusString = res.getString(R.string.battery_info_status_charging_wireless); } - } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) { statusString = res.getString(R.string.battery_info_status_discharging); } else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) { diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java index 6307caf5e02b8..62de66ea56fb5 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java @@ -336,11 +336,23 @@ public class UtilsTest { @Test public void getBatteryStatus_batteryLevel99_returnChargingString() { - final Intent intent = new Intent().putExtra(BatteryManager.EXTRA_STATUS, - BatteryManager.BATTERY_STATUS_CHARGING); + final Intent intent = new Intent(); + intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_CHARGING); + intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLUGGED_USB); final Resources resources = mContext.getResources(); assertThat(Utils.getBatteryStatus(mContext, intent)).isEqualTo( resources.getString(R.string.battery_info_status_charging)); } + + @Test + public void getBatteryStatus_chargingWireless_returnWirelessChargingString() { + final Intent intent = new Intent(); + intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_CHARGING); + intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLUGGED_WIRELESS); + final Resources resources = mContext.getResources(); + + assertThat(Utils.getBatteryStatus(mContext, intent)).isEqualTo( + resources.getString(R.string.battery_info_status_charging_wireless)); + } }