From 953b7e3bf56ddc226f266f6f7fbdf131445b4c5a Mon Sep 17 00:00:00 2001 From: ykhung Date: Thu, 6 May 2021 10:22:55 +0800 Subject: [PATCH] Add abnormal interpolation info to log unexpected conditions Bug: 184807417 Test: make SettingsRoboTests Change-Id: I11156c85b6b955dd505b41a9a41be0756638f1dd --- src/com/android/settings/fuelgauge/BatteryChartView.java | 4 ++++ src/com/android/settings/fuelgauge/BatteryHistEntry.java | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/com/android/settings/fuelgauge/BatteryChartView.java b/src/com/android/settings/fuelgauge/BatteryChartView.java index 8e83cb9ec49..e2e7f8f7519 100644 --- a/src/com/android/settings/fuelgauge/BatteryChartView.java +++ b/src/com/android/settings/fuelgauge/BatteryChartView.java @@ -111,6 +111,10 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick /** Sets all levels value to draw the trapezoid shape */ public void setLevels(int[] levels) { + if (levels == null) { + mLevels = null; + return; + } // We should provide trapezoid count + 1 data to draw all trapezoids. mLevels = levels.length == mTrapezoidCount + 1 ? levels : null; setClickable(false); diff --git a/src/com/android/settings/fuelgauge/BatteryHistEntry.java b/src/com/android/settings/fuelgauge/BatteryHistEntry.java index 6130fffc4a0..d83d8149691 100644 --- a/src/com/android/settings/fuelgauge/BatteryHistEntry.java +++ b/src/com/android/settings/fuelgauge/BatteryHistEntry.java @@ -16,6 +16,7 @@ package com.android.settings.fuelgauge; import android.content.ContentValues; import android.database.Cursor; import android.os.BatteryConsumer; +import android.util.Log; import java.time.Duration; @@ -310,6 +311,14 @@ public class BatteryHistEntry { lowerHistEntry == null ? 0 : lowerHistEntry.mBackgroundUsageTimeInMs, upperHistEntry.mBackgroundUsageTimeInMs, ratio); + // Checks whether there is any abnoaml cases! + if (upperHistEntry.mConsumePower < consumePower + || upperHistEntry.mForegroundUsageTimeInMs < foregroundUsageTimeInMs + || upperHistEntry.mBackgroundUsageTimeInMs < backgroundUsageTimeInMs) { + Log.w(TAG, String.format( + "abnormal interpolation:\nupper:%s\nlower:%s", + upperHistEntry, lowerHistEntry)); + } final double batteryLevel = lowerHistEntry == null ? upperHistEntry.mBatteryLevel