diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/os/BatteryStats.java | 36 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 68 |
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); |
