diff options
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/BatteryExternalStatsWorker.java | 14 |
2 files changed, 11 insertions, 7 deletions
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 1fc76351254b..72f6c122fe3a 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -609,9 +609,7 @@ public class BatteryStatsImpl extends BatteryStats { int UPDATE_RADIO = 0x04; int UPDATE_BT = 0x08; int UPDATE_RPM = 0x10; // 16 - int UPDATE_RAIL = 0x20; // 32 - int UPDATE_ALL = UPDATE_CPU | UPDATE_WIFI | UPDATE_RADIO | UPDATE_BT | UPDATE_RPM - | UPDATE_RAIL; + int UPDATE_ALL = UPDATE_CPU | UPDATE_WIFI | UPDATE_RADIO | UPDATE_BT | UPDATE_RPM; Future<?> scheduleSync(String reason, int flags); Future<?> scheduleCpuSyncDueToRemovedUid(int uid); diff --git a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java index 236797b57556..525531635df6 100644 --- a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java +++ b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java @@ -407,6 +407,7 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync { SynchronousResultReceiver wifiReceiver = null; SynchronousResultReceiver bluetoothReceiver = null; SynchronousResultReceiver modemReceiver = null; + boolean railUpdated = false; if ((updateFlags & BatteryStatsImpl.ExternalStatsSync.UPDATE_WIFI) != 0) { // We were asked to fetch WiFi data. @@ -426,6 +427,10 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync { // Oh well. } } + synchronized (mStats) { + mStats.updateRailStatsLocked(); + } + railUpdated = true; } if ((updateFlags & BatteryStatsImpl.ExternalStatsSync.UPDATE_BT) != 0) { @@ -447,6 +452,11 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync { modemReceiver = new SynchronousResultReceiver("telephony"); mTelephony.requestModemActivityInfo(modemReceiver); } + if (!railUpdated) { + synchronized (mStats) { + mStats.updateRailStatsLocked(); + } + } } final WifiActivityEnergyInfo wifiInfo = awaitControllerInfo(wifiReceiver); @@ -477,10 +487,6 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync { mStats.updateRpmStatsLocked(); } - if ((updateFlags & UPDATE_RAIL) != 0) { - mStats.updateRailStatsLocked(); - } - if (bluetoothInfo != null) { if (bluetoothInfo.isValid()) { mStats.updateBluetoothStateLocked(bluetoothInfo); |