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
(cherry picked from commit d78231ed07bf7c703de998a448c3c4e0d7c4b8c5)
Merged-in: I1311736efceaf6b78b2a5d3350caaefd7c520413
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 05e1fb3..6a2219d 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -881,7 +881,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;
@@ -5955,7 +5955,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
@@ -5979,27 +5979,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);
@@ -6018,13 +6018,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));
}