diff options
| author | 2015-07-29 00:34:38 +0000 | |
|---|---|---|
| committer | 2015-07-29 00:34:38 +0000 | |
| commit | c96e6f19937ac36c8147a52863a43b35895aeb0b (patch) | |
| tree | 2fd586376c4d18ab0e5177b5c76cb6183f10fe43 | |
| parent | fbcbad138d1b4c55e86ff671821b4feb7fc48f50 (diff) | |
| parent | c691d3ccf4eb29376225bcbeb35bc532a3071ed1 (diff) | |
Merge "BatteryStats: Use proper power calculator when energy data is received" into mnc-dev
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsHelper.java | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/core/java/com/android/internal/os/BatteryStatsHelper.java b/core/java/com/android/internal/os/BatteryStatsHelper.java index 9caf78a6b3a3..f178c8cf7ece 100644 --- a/core/java/com/android/internal/os/BatteryStatsHelper.java +++ b/core/java/com/android/internal/os/BatteryStatsHelper.java @@ -126,6 +126,9 @@ public final class BatteryStatsHelper { PowerCalculator mCameraPowerCalculator; PowerCalculator mFlashlightPowerCalculator; + boolean mHasWifiPowerReporting = false; + boolean mHasBluetoothPowerReporting = false; + public static boolean checkWifiOnly(Context context) { ConnectivityManager cm = (ConnectivityManager)context.getSystemService( Context.CONNECTIVITY_SERVICE); @@ -349,21 +352,23 @@ public final class BatteryStatsHelper { } mMobileRadioPowerCalculator.reset(mStats); - if (mWifiPowerCalculator == null) { - if (checkHasWifiPowerReporting(mStats, mPowerProfile)) { - mWifiPowerCalculator = new WifiPowerCalculator(mPowerProfile); - } else { - mWifiPowerCalculator = new WifiPowerEstimator(mPowerProfile); - } + // checkHasWifiPowerReporting can change if we get energy data at a later point, so + // always check this field. + final boolean hasWifiPowerReporting = checkHasWifiPowerReporting(mStats, mPowerProfile); + if (mWifiPowerCalculator == null || hasWifiPowerReporting != mHasWifiPowerReporting) { + mWifiPowerCalculator = hasWifiPowerReporting ? + new WifiPowerCalculator(mPowerProfile) : + new WifiPowerEstimator(mPowerProfile); + mHasWifiPowerReporting = hasWifiPowerReporting; } mWifiPowerCalculator.reset(); - if (mBluetoothPowerCalculator == null) { - if (checkHasBluetoothPowerReporting(mStats, mPowerProfile)) { - mBluetoothPowerCalculator = new BluetoothPowerCalculator(mPowerProfile); - } else { - mBluetoothPowerCalculator = new BluetoothPowerCalculator(mPowerProfile); - } + final boolean hasBluetoothPowerReporting = checkHasBluetoothPowerReporting(mStats, + mPowerProfile); + if (mBluetoothPowerCalculator == null || + hasBluetoothPowerReporting != mHasBluetoothPowerReporting) { + mBluetoothPowerCalculator = new BluetoothPowerCalculator(mPowerProfile); + mHasBluetoothPowerReporting = hasBluetoothPowerReporting; } mBluetoothPowerCalculator.reset(); |