From 98a40d3ca6645e42f2c6e25c5f07b6d987287881 Mon Sep 17 00:00:00 2001 From: Nathan Harold Date: Tue, 19 Apr 2016 17:17:59 -0700 Subject: [PATCH] Additional checks for ModemActivityInfo.isValid() Added checks in isValid for: -A non-empty report -Valid individual TxTime values -Valid RxTime -Valid EnergyUsed Bug: 28278425 Bug: 28247832 Change-Id: I294fc200e81c828fbdd0e92b9ac4ae96fd7db6dc --- .../android/telephony/ModemActivityInfo.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/telephony/java/android/telephony/ModemActivityInfo.java b/telephony/java/android/telephony/ModemActivityInfo.java index 84883d81533b3..03ce2d8e6f6d7 100644 --- a/telephony/java/android/telephony/ModemActivityInfo.java +++ b/telephony/java/android/telephony/ModemActivityInfo.java @@ -151,12 +151,24 @@ public class ModemActivityInfo implements Parcelable { * @return if the record is valid */ public boolean isValid() { - int totalTxTimeMs = 0; - int txTime [] = getTxTimeMillis(); - for (int i = 0; i < TX_POWER_LEVELS; i++) { - totalTxTimeMs += txTime[i]; + for (int txVal : getTxTimeMillis()) { + if(txVal < 0) { + return false; + } } - return ((getIdleTimeMillis() >= 0) && (totalTxTimeMs >= 0) - && (getSleepTimeMillis() >= 0) && (getIdleTimeMillis() >= 0)); + + return ((getIdleTimeMillis() >= 0) && (getSleepTimeMillis() >= 0) + && (getRxTimeMillis() >= 0) && (getEnergyUsed() >= 0) && !isEmpty()); + } + + private boolean isEmpty() { + for (int txVal : getTxTimeMillis()) { + if(txVal != 0) { + return false; + } + } + + return ((getIdleTimeMillis() == 0) && (getSleepTimeMillis() == 0) + && (getRxTimeMillis() == 0) && (getEnergyUsed() == 0)); } }