From 6e94d6b0412256bfe5970d85f207fd0c5083b127 Mon Sep 17 00:00:00 2001 From: cjh1249131356 Date: Tue, 11 Jun 2024 15:57:21 +0800 Subject: [PATCH] Settings: deviceinfo: Try read designed capacity from PowerProfile if unavailable Signed-off-by: cjh1249131356 Signed-off-by: Pranav Vashi --- .../BatteryDesignCapacityPreferenceController.java | 8 +++++++- .../BatteryMaximumCapacityPreferenceController.java | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/deviceinfo/batteryinfo/BatteryDesignCapacityPreferenceController.java b/src/com/android/settings/deviceinfo/batteryinfo/BatteryDesignCapacityPreferenceController.java index 78f415a8c14..e759b0c08bd 100644 --- a/src/com/android/settings/deviceinfo/batteryinfo/BatteryDesignCapacityPreferenceController.java +++ b/src/com/android/settings/deviceinfo/batteryinfo/BatteryDesignCapacityPreferenceController.java @@ -20,6 +20,8 @@ import android.content.Context; import android.content.Intent; import android.os.BatteryManager; +import com.android.internal.os.PowerProfile; + import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.fuelgauge.BatteryUtils; @@ -42,8 +44,12 @@ public class BatteryDesignCapacityPreferenceController extends BasePreferenceCon @Override public CharSequence getSummary() { Intent batteryIntent = BatteryUtils.getBatteryIntent(mContext); - final int designCapacityUah = + int designCapacityUah = batteryIntent.getIntExtra(BatteryManager.EXTRA_DESIGN_CAPACITY, -1); + if (designCapacityUah <= 0) { + final PowerProfile profile = new PowerProfile(mContext); + designCapacityUah = (int) profile.getBatteryCapacity() * 1000; + } if (designCapacityUah > 0) { int designCapacity = designCapacityUah / 1_000; diff --git a/src/com/android/settings/deviceinfo/batteryinfo/BatteryMaximumCapacityPreferenceController.java b/src/com/android/settings/deviceinfo/batteryinfo/BatteryMaximumCapacityPreferenceController.java index e36f3e8a59f..7440a5af46c 100644 --- a/src/com/android/settings/deviceinfo/batteryinfo/BatteryMaximumCapacityPreferenceController.java +++ b/src/com/android/settings/deviceinfo/batteryinfo/BatteryMaximumCapacityPreferenceController.java @@ -20,6 +20,8 @@ import android.content.Context; import android.content.Intent; import android.os.BatteryManager; +import com.android.internal.os.PowerProfile; + import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.fuelgauge.BatteryUtils; @@ -44,8 +46,12 @@ public class BatteryMaximumCapacityPreferenceController extends BasePreferenceCo Intent batteryIntent = BatteryUtils.getBatteryIntent(mContext); final int maxCapacityUah = batteryIntent.getIntExtra(BatteryManager.EXTRA_MAXIMUM_CAPACITY, -1); - final int designCapacityUah = + int designCapacityUah = batteryIntent.getIntExtra(BatteryManager.EXTRA_DESIGN_CAPACITY, -1); + if (designCapacityUah <= 0) { + final PowerProfile profile = new PowerProfile(mContext); + designCapacityUah = (int) profile.getBatteryCapacity() * 1000; + } if (maxCapacityUah > 0 && designCapacityUah > 0) { int maxCapacity = maxCapacityUah / 1_000;