diff options
2 files changed, 17 insertions, 11 deletions
diff --git a/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java index 6d519ee200c2..90981ada7c31 100644 --- a/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java +++ b/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java @@ -86,8 +86,7 @@ public class WifiPowerStatsCollector extends PowerStatsCollector { private ConsumedEnergyRetriever mConsumedEnergyRetriever; private IntSupplier mVoltageSupplier; private int[] mEnergyConsumerIds = new int[0]; - private WifiActivityEnergyInfo mLastWifiActivityInfo = - new WifiActivityEnergyInfo(0, 0, 0, 0, 0, 0); + private WifiActivityEnergyInfo mLastWifiActivityInfo; private NetworkStats mLastNetworkStats; private long[] mLastConsumedEnergyUws; private int mLastVoltageMv; @@ -206,14 +205,21 @@ public class WifiPowerStatsCollector extends PowerStatsCollector { return null; } - long rxDuration = activityInfo.getControllerRxDurationMillis() - - mLastWifiActivityInfo.getControllerRxDurationMillis(); - long txDuration = activityInfo.getControllerTxDurationMillis() - - mLastWifiActivityInfo.getControllerTxDurationMillis(); - long scanDuration = activityInfo.getControllerScanDurationMillis() - - mLastWifiActivityInfo.getControllerScanDurationMillis(); - long idleDuration = activityInfo.getControllerIdleDurationMillis() - - mLastWifiActivityInfo.getControllerIdleDurationMillis(); + long rxDuration = 0; + long txDuration = 0; + long scanDuration = 0; + long idleDuration = 0; + + if (mLastWifiActivityInfo != null) { + rxDuration = activityInfo.getControllerRxDurationMillis() + - mLastWifiActivityInfo.getControllerRxDurationMillis(); + txDuration = activityInfo.getControllerTxDurationMillis() + - mLastWifiActivityInfo.getControllerTxDurationMillis(); + scanDuration = activityInfo.getControllerScanDurationMillis() + - mLastWifiActivityInfo.getControllerScanDurationMillis(); + idleDuration = activityInfo.getControllerIdleDurationMillis() + - mLastWifiActivityInfo.getControllerIdleDurationMillis(); + } mLayout.setDeviceRxTime(mDeviceStats, rxDuration); mLayout.setDeviceTxTime(mDeviceStats, txDuration); diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/WifiPowerStatsCollectorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/WifiPowerStatsCollectorTest.java index 362607b91763..b13fc530399b 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/WifiPowerStatsCollectorTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/WifiPowerStatsCollectorTest.java @@ -355,7 +355,7 @@ public class WifiPowerStatsCollectorTest { assertThat(stats.getNumBytesRx()).isEqualTo(13321); assertThat(stats.getNumPacketsTx()).isEqualTo(263); assertThat(stats.getNumBytesTx()).isEqualTo(7234); - assertThat(stats.getScanTimeMillis()).isEqualTo(2200); + assertThat(stats.getScanTimeMillis()).isEqualTo(200); assertThat(stats.getRxTimeMillis()).isEqualTo(6000); assertThat(stats.getTxTimeMillis()).isEqualTo(1000); assertThat(stats.getIdleTimeMillis()).isEqualTo(300); |