summaryrefslogtreecommitdiff
path: root/packages/SettingsLib/src
diff options
context:
space:
mode:
author ykhung <ykhung@google.com> 2023-02-10 12:36:06 +0800
committer YK Hung <ykhung@google.com> 2023-02-13 10:04:37 +0000
commit97ca1050db73bd686e8586cfe943d97f1345ee36 (patch)
tree663eb165872e7ba176a7166496073355a7bf121d /packages/SettingsLib/src
parent05ead5fae3d86b2eefe83f9b171e52ed136ed849 (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.java36
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;
+ }
}