summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/os/BatteryStats.java36
-rw-r--r--core/java/com/android/internal/os/BatteryStatsImpl.java68
2 files changed, 21 insertions, 83 deletions
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index 7bc5d5bd33bf..b16e7d7add0d 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -23,6 +23,7 @@ import android.content.pm.ApplicationInfo;
import android.server.ServerProtoEnums;
import android.service.batterystats.BatteryStatsServiceDumpProto;
import android.telephony.SignalStrength;
+import android.telephony.TelephonyManager;
import android.text.format.DateFormat;
import android.util.ArrayMap;
import android.util.LongSparseArray;
@@ -2270,27 +2271,8 @@ public abstract class BatteryStats implements Parcelable {
*/
public abstract int getMobileRadioActiveUnknownCount(int which);
- public static final int DATA_CONNECTION_NONE = SystemProto.DataConnection.NONE; // 0
- public static final int DATA_CONNECTION_GPRS = SystemProto.DataConnection.GPRS; // 1
- public static final int DATA_CONNECTION_EDGE = SystemProto.DataConnection.EDGE; // 2
- public static final int DATA_CONNECTION_UMTS = SystemProto.DataConnection.UMTS; // 3
- public static final int DATA_CONNECTION_CDMA = SystemProto.DataConnection.CDMA; // 4
- public static final int DATA_CONNECTION_EVDO_0 = SystemProto.DataConnection.EVDO_0; // 5
- public static final int DATA_CONNECTION_EVDO_A = SystemProto.DataConnection.EVDO_A; // 6
- public static final int DATA_CONNECTION_1xRTT = SystemProto.DataConnection.ONE_X_RTT; // 7
- public static final int DATA_CONNECTION_HSDPA = SystemProto.DataConnection.HSDPA; // 8
- public static final int DATA_CONNECTION_HSUPA = SystemProto.DataConnection.HSUPA; // 9
- public static final int DATA_CONNECTION_HSPA = SystemProto.DataConnection.HSPA; // 10
- public static final int DATA_CONNECTION_IDEN = SystemProto.DataConnection.IDEN; // 11
- public static final int DATA_CONNECTION_EVDO_B = SystemProto.DataConnection.EVDO_B; // 12
- public static final int DATA_CONNECTION_LTE = SystemProto.DataConnection.LTE; // 13
- public static final int DATA_CONNECTION_EHRPD = SystemProto.DataConnection.EHRPD; // 14
- public static final int DATA_CONNECTION_HSPAP = SystemProto.DataConnection.HSPAP; // 15
- public static final int DATA_CONNECTION_GSM = SystemProto.DataConnection.GSM; // 16
- public static final int DATA_CONNECTION_TD_SCDMA = SystemProto.DataConnection.TD_SCDMA; // 17
- public static final int DATA_CONNECTION_IWLAN = SystemProto.DataConnection.IWLAN; // 18
- public static final int DATA_CONNECTION_LTE_CA = SystemProto.DataConnection.LTE_CA; // 19
- public static final int DATA_CONNECTION_OTHER = SystemProto.DataConnection.OTHER; // 20
+ public static final int DATA_CONNECTION_NONE = 0;
+ public static final int DATA_CONNECTION_OTHER = TelephonyManager.MAX_NETWORK_TYPE + 1;
static final String[] DATA_CONNECTION_NAMES = {
"none", "gprs", "edge", "umts", "cdma", "evdo_0", "evdo_A",
@@ -7613,8 +7595,18 @@ public abstract class BatteryStats implements Parcelable {
// Phone data connection (DATA_CONNECTION_TIME_DATA and DATA_CONNECTION_COUNT_DATA)
for (int i = 0; i < NUM_DATA_CONNECTION_TYPES; ++i) {
+ // Map OTHER to TelephonyManager.NETWORK_TYPE_UNKNOWN and mark NONE as a boolean.
+ boolean isNone = (i == DATA_CONNECTION_NONE);
+ int telephonyNetworkType = i;
+ if (i == DATA_CONNECTION_OTHER) {
+ telephonyNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
+ }
final long pdcToken = proto.start(SystemProto.DATA_CONNECTION);
- proto.write(SystemProto.DataConnection.NAME, i);
+ if (isNone) {
+ proto.write(SystemProto.DataConnection.IS_NONE, isNone);
+ } else {
+ proto.write(SystemProto.DataConnection.NAME, telephonyNetworkType);
+ }
dumpTimer(proto, SystemProto.DataConnection.TOTAL, getPhoneDataConnectionTimer(i),
rawRealtimeUs, which);
proto.end(pdcToken);
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 4ab2fecbe964..71bb196ec0f2 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -5284,69 +5284,15 @@ public class BatteryStatsImpl extends BatteryStats {
}
public void notePhoneDataConnectionStateLocked(int dataType, boolean hasData) {
+ // BatteryStats uses 0 to represent no network type.
+ // Telephony does not have a concept of no network type, and uses 0 to represent unknown.
+ // Unknown is included in DATA_CONNECTION_OTHER.
int bin = DATA_CONNECTION_NONE;
if (hasData) {
- switch (dataType) {
- case TelephonyManager.NETWORK_TYPE_EDGE:
- bin = DATA_CONNECTION_EDGE;
- break;
- case TelephonyManager.NETWORK_TYPE_GPRS:
- bin = DATA_CONNECTION_GPRS;
- break;
- case TelephonyManager.NETWORK_TYPE_UMTS:
- bin = DATA_CONNECTION_UMTS;
- break;
- case TelephonyManager.NETWORK_TYPE_CDMA:
- bin = DATA_CONNECTION_CDMA;
- break;
- case TelephonyManager.NETWORK_TYPE_EVDO_0:
- bin = DATA_CONNECTION_EVDO_0;
- break;
- case TelephonyManager.NETWORK_TYPE_EVDO_A:
- bin = DATA_CONNECTION_EVDO_A;
- break;
- case TelephonyManager.NETWORK_TYPE_1xRTT:
- bin = DATA_CONNECTION_1xRTT;
- break;
- case TelephonyManager.NETWORK_TYPE_HSDPA:
- bin = DATA_CONNECTION_HSDPA;
- break;
- case TelephonyManager.NETWORK_TYPE_HSUPA:
- bin = DATA_CONNECTION_HSUPA;
- break;
- case TelephonyManager.NETWORK_TYPE_HSPA:
- bin = DATA_CONNECTION_HSPA;
- break;
- case TelephonyManager.NETWORK_TYPE_IDEN:
- bin = DATA_CONNECTION_IDEN;
- break;
- case TelephonyManager.NETWORK_TYPE_EVDO_B:
- bin = DATA_CONNECTION_EVDO_B;
- break;
- case TelephonyManager.NETWORK_TYPE_LTE:
- bin = DATA_CONNECTION_LTE;
- break;
- case TelephonyManager.NETWORK_TYPE_EHRPD:
- bin = DATA_CONNECTION_EHRPD;
- break;
- case TelephonyManager.NETWORK_TYPE_HSPAP:
- bin = DATA_CONNECTION_HSPAP;
- break;
- case TelephonyManager.NETWORK_TYPE_GSM:
- bin = DATA_CONNECTION_GSM;
- break;
- case TelephonyManager.NETWORK_TYPE_TD_SCDMA:
- bin = DATA_CONNECTION_TD_SCDMA;
- break;
- case TelephonyManager.NETWORK_TYPE_IWLAN:
- bin = DATA_CONNECTION_IWLAN;
- break;
- case TelephonyManager.NETWORK_TYPE_LTE_CA:
- bin = DATA_CONNECTION_LTE_CA;
- break;
- default:
- bin = DATA_CONNECTION_OTHER;
- break;
+ if (dataType > 0 && dataType <= TelephonyManager.MAX_NETWORK_TYPE) {
+ bin = dataType;
+ } else {
+ bin = DATA_CONNECTION_OTHER;
}
}
if (DEBUG) Log.i(TAG, "Phone Data Connection -> " + dataType + " = " + hasData);