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)); + } }