From c1b5ea8f2d8f4939ca2d16fd98949c47c20041c3 Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Wed, 26 Jul 2023 16:48:54 +0800 Subject: [PATCH] Battery usage page latency improvement (1-8) Save battery slot diff data into database in hourly job. Then read the saved diff data and only calculate the remaining data. This could speed up the battery usage loading. Bug: 261163071 Fix: 261163071 Test: manual Change-Id: Ia9d6c10afa520e7349935c59b72d7c34d7485277 --- .../com/android/settingslib/fuelgauge/BatteryStatus.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java index 9ab84d254ed61..f90a17ae8761d 100644 --- a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java +++ b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java @@ -45,6 +45,7 @@ public class BatteryStatus { private static final int EXTREME_LOW_BATTERY_THRESHOLD = 3; private static final int DEFAULT_CHARGING_VOLTAGE_MICRO_VOLT = 5000000; + public static final int BATTERY_LEVEL_UNKNOWN = -1; public static final int CHARGING_UNKNOWN = -1; public static final int CHARGING_SLOWLY = 0; public static final int CHARGING_REGULAR = 1; @@ -186,12 +187,13 @@ public class BatteryStatus { /** Gets the battery level from the intent. */ public static int getBatteryLevel(Intent batteryChangedIntent) { if (batteryChangedIntent == null) { - return -1; /*invalid battery level*/ + return BATTERY_LEVEL_UNKNOWN; } - final int level = batteryChangedIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); + final int level = + batteryChangedIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, BATTERY_LEVEL_UNKNOWN); final int scale = batteryChangedIntent.getIntExtra(BatteryManager.EXTRA_SCALE, 0); return scale == 0 - ? -1 /*invalid battery level*/ + ? BATTERY_LEVEL_UNKNOWN : Math.round((level / (float) scale) * 100f); }