Expose ModemActivitiyInfo to system API
ModemActivityInfo is used for batteryStatusService which is part of
system service. To prepare telephony to be an mainline module, we
should expose ModemActivityInfo to systemAPI
1. remove getConsumedPower API as we are missing modem support, API
today only report 0
2. isValid API is introduced to cover modem issues before. Do not
expose this for now.
Bug: 140908357
Test: Build
Change-Id: I1311736efceaf6b78b2a5d3350caaefd7c520413
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 345d7ec..9c49e3b 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -866,7 +866,7 @@
}
// Result cannot be null. Return ModemActivityInfo with all fields set to 0.
if (request.result == null) {
- request.result = new ModemActivityInfo(0, 0, 0, null, 0, 0);
+ request.result = new ModemActivityInfo(0, 0, 0, null, 0);
}
notifyRequester(request);
break;
@@ -5643,7 +5643,7 @@
}
private final ModemActivityInfo mLastModemActivityInfo =
- new ModemActivityInfo(0, 0, 0, new int[0], 0, 0);
+ new ModemActivityInfo(0, 0, 0, new int[0], 0);
/**
* Responds to the ResultReceiver with the {@link android.telephony.ModemActivityInfo} object
@@ -5667,27 +5667,27 @@
null, workSource);
if (isModemActivityInfoValid(info)) {
int[] mergedTxTimeMs = new int[ModemActivityInfo.TX_POWER_LEVELS];
+ int[] txTimeMs = info.getTransmitTimeMillis();
+ int[] lastModemTxTimeMs = mLastModemActivityInfo.getTransmitTimeMillis();
for (int i = 0; i < mergedTxTimeMs.length; i++) {
- mergedTxTimeMs[i] = info.getTxTimeMillis()[i]
- + mLastModemActivityInfo.getTxTimeMillis()[i];
+ mergedTxTimeMs[i] = txTimeMs[i] + lastModemTxTimeMs[i];
}
mLastModemActivityInfo.setTimestamp(info.getTimestamp());
mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
+ mLastModemActivityInfo.getSleepTimeMillis());
mLastModemActivityInfo.setIdleTimeMillis(
info.getIdleTimeMillis() + mLastModemActivityInfo.getIdleTimeMillis());
- mLastModemActivityInfo.setTxTimeMillis(mergedTxTimeMs);
- mLastModemActivityInfo.setRxTimeMillis(
- info.getRxTimeMillis() + mLastModemActivityInfo.getRxTimeMillis());
- mLastModemActivityInfo.setEnergyUsed(
- info.getEnergyUsed() + mLastModemActivityInfo.getEnergyUsed());
+ mLastModemActivityInfo.setTransmitTimeMillis(mergedTxTimeMs);
+ mLastModemActivityInfo.setReceiveTimeMillis(
+ info.getReceiveTimeMillis() + mLastModemActivityInfo
+ .getReceiveTimeMillis());
}
+
ret = new ModemActivityInfo(mLastModemActivityInfo.getTimestamp(),
mLastModemActivityInfo.getSleepTimeMillis(),
mLastModemActivityInfo.getIdleTimeMillis(),
- mLastModemActivityInfo.getTxTimeMillis(),
- mLastModemActivityInfo.getRxTimeMillis(),
- mLastModemActivityInfo.getEnergyUsed());
+ mLastModemActivityInfo.getTransmitTimeMillis(),
+ mLastModemActivityInfo.getReceiveTimeMillis());
}
Bundle bundle = new Bundle();
bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY, ret);
@@ -5706,13 +5706,14 @@
int activityDurationMs =
(int) (info.getTimestamp() - mLastModemActivityInfo.getTimestamp());
int totalTxTimeMs = 0;
- for (int i = 0; i < info.getTxTimeMillis().length; i++) {
- totalTxTimeMs += info.getTxTimeMillis()[i];
+ int[] txTimeMs = info.getTransmitTimeMillis();
+ for (int i = 0; i < info.getTransmitPowerInfo().size(); i++) {
+ totalTxTimeMs += txTimeMs[i];
}
return (info.isValid()
&& (info.getSleepTimeMillis() <= activityDurationMs)
&& (info.getIdleTimeMillis() <= activityDurationMs)
- && (info.getRxTimeMillis() <= activityDurationMs)
+ && (info.getReceiveTimeMillis() <= activityDurationMs)
&& (totalTxTimeMs <= activityDurationMs));
}