diff options
| author | 2023-02-10 12:36:06 +0800 | |
|---|---|---|
| committer | 2023-02-13 10:04:37 +0000 | |
| commit | 97ca1050db73bd686e8586cfe943d97f1345ee36 (patch) | |
| tree | 663eb165872e7ba176a7166496073355a7bf121d /packages/SettingsLib/src | |
| parent | 05ead5fae3d86b2eefe83f9b171e52ed136ed849 (diff) | |
Add incompatible charging state on the lockscreen
PRD: https://docs.google.com/document/d/1QyKNpKz45mmYt0_pln4jpVgmbrvxxKPT03BKAJrbrNs/
Test: atest KeyguardIndicationControllerTest KeyguardUpdateMonitorTest
Bug: 246960554
Change-Id: Icde56177a0e38a540ed4825e91e50df3c0bdaa3f
Diffstat (limited to 'packages/SettingsLib/src')
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java index e0588ee9cfeb..2555e2b7eb9c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java +++ b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java @@ -34,6 +34,8 @@ import android.os.BatteryManager; import com.android.settingslib.R; +import java.util.Optional; + /** * Stores and computes some battery information. */ @@ -52,11 +54,12 @@ public class BatteryStatus { public final int health; public final int maxChargingWattage; public final boolean present; + public final Optional<Boolean> incompatibleCharger; - public static BatteryStatus create(Context context) { + public static BatteryStatus create(Context context, boolean incompatibleCharger) { final Intent batteryChangedIntent = BatteryUtils.getBatteryIntent(context); return batteryChangedIntent == null - ? null : new BatteryStatus(batteryChangedIntent); + ? null : new BatteryStatus(batteryChangedIntent, incompatibleCharger); } public BatteryStatus(int status, int level, int plugged, int health, @@ -67,14 +70,25 @@ public class BatteryStatus { this.health = health; this.maxChargingWattage = maxChargingWattage; this.present = present; + this.incompatibleCharger = Optional.empty(); } + public BatteryStatus(Intent batteryChangedIntent) { + this(batteryChangedIntent, Optional.empty()); + } + + public BatteryStatus(Intent batteryChangedIntent, boolean incompatibleCharger) { + this(batteryChangedIntent, Optional.of(incompatibleCharger)); + } + + private BatteryStatus(Intent batteryChangedIntent, Optional<Boolean> incompatibleCharger) { status = batteryChangedIntent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN); plugged = batteryChangedIntent.getIntExtra(EXTRA_PLUGGED, 0); level = getBatteryLevel(batteryChangedIntent); health = batteryChangedIntent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN); present = batteryChangedIntent.getBooleanExtra(EXTRA_PRESENT, true); + this.incompatibleCharger = incompatibleCharger; final int maxChargingMicroAmp = batteryChangedIntent.getIntExtra(EXTRA_MAX_CHARGING_CURRENT, -1); @@ -95,10 +109,7 @@ public class BatteryStatus { /** Determine whether the device is plugged. */ public boolean isPluggedIn() { - return plugged == BatteryManager.BATTERY_PLUGGED_AC - || plugged == BatteryManager.BATTERY_PLUGGED_USB - || plugged == BatteryManager.BATTERY_PLUGGED_WIRELESS - || plugged == BatteryManager.BATTERY_PLUGGED_DOCK; + return isPluggedIn(plugged); } /** Determine whether the device is plugged in (USB, power). */ @@ -190,4 +201,17 @@ public class BatteryStatus { ? -1 /*invalid battery level*/ : Math.round((level / (float) scale) * 100f); } + + /** Whether the device is plugged or not. */ + public static boolean isPluggedIn(Intent batteryChangedIntent) { + return isPluggedIn(batteryChangedIntent.getIntExtra(EXTRA_PLUGGED, 0)); + } + + /** Whether the device is plugged or not. */ + public static boolean isPluggedIn(int plugged) { + return plugged == BatteryManager.BATTERY_PLUGGED_AC + || plugged == BatteryManager.BATTERY_PLUGGED_USB + || plugged == BatteryManager.BATTERY_PLUGGED_WIRELESS + || plugged == BatteryManager.BATTERY_PLUGGED_DOCK; + } } |