Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e751388e authored by ykhung's avatar ykhung
Browse files

Add common getBatteryLevel() method into the SettingsLib

Add a new common getBatteryLevel() method into the SettingsLib for
SystemUI and Settings apps usage (moved from
http://cs/android/packages/apps/Settings/src/com/android/settings/fuelgauge/BatteryUtils.java;l=606;rcl=706fc209fc38cb8c97c1bd6d37549c65d111e4d3)

Bug: 260524172
Test: presubmit
Change-Id: If7813ccdc6d39e4527a2df6f43835af6c23e5f79
parent c9d48ffd
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ public class BatteryStatus {
    public BatteryStatus(Intent batteryChangedIntent) {
        status = batteryChangedIntent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN);
        plugged = batteryChangedIntent.getIntExtra(EXTRA_PLUGGED, 0);
        level = batteryChangedIntent.getIntExtra(EXTRA_LEVEL, 0);
        level = getBatteryLevel(batteryChangedIntent);
        health = batteryChangedIntent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN);
        present = batteryChangedIntent.getBooleanExtra(EXTRA_PRESENT, true);

@@ -188,7 +188,7 @@ public class BatteryStatus {
     */
    public static boolean isCharged(Intent batteryChangedIntent) {
        int status = batteryChangedIntent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN);
        int level = batteryChangedIntent.getIntExtra(EXTRA_LEVEL, 0);
        int level = getBatteryLevel(batteryChangedIntent);
        return isCharged(status, level);
    }

@@ -204,4 +204,13 @@ public class BatteryStatus {
    public static boolean isCharged(int status, int level) {
        return status == BATTERY_STATUS_FULL || level >= 100;
    }

    /** Gets the battery level from the intent. */
    public static int getBatteryLevel(Intent batteryChangedIntent) {
        final int level = batteryChangedIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
        final int scale = batteryChangedIntent.getIntExtra(BatteryManager.EXTRA_SCALE, 0);
        return scale == 0
                ? -1 /*invalid battery level*/
                : Math.round((level / (float) scale) * 100f);
    }
}
+6 −2
Original line number Diff line number Diff line
@@ -317,7 +317,9 @@ public class UtilsTest {

    @Test
    public void getBatteryStatus_statusIsFull_returnFullString() {
        final Intent intent = new Intent().putExtra(BatteryManager.EXTRA_LEVEL, 100);
        final Intent intent = new Intent()
                .putExtra(BatteryManager.EXTRA_LEVEL, 100)
                .putExtra(BatteryManager.EXTRA_SCALE, 100);
        final Resources resources = mContext.getResources();

        assertThat(Utils.getBatteryStatus(mContext, intent, /* compactStatus= */ false)).isEqualTo(
@@ -326,7 +328,9 @@ public class UtilsTest {

    @Test
    public void getBatteryStatus_statusIsFullAndUseCompactStatus_returnFullyChargedString() {
        final Intent intent = new Intent().putExtra(BatteryManager.EXTRA_LEVEL, 100);
        final Intent intent = new Intent()
                .putExtra(BatteryManager.EXTRA_LEVEL, 100)
                .putExtra(BatteryManager.EXTRA_SCALE, 100);
        final Resources resources = mContext.getResources();

        assertThat(Utils.getBatteryStatus(mContext, intent, /* compactStatus= */ true)).isEqualTo(