Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e39b508 authored by Tej Singh's avatar Tej Singh Committed by android-build-merger
Browse files

Merge "Atoms: Mobile Connection" into pi-dev

am: dba47fcd

Change-Id: I3008bae7f5ecebbbb79fbe141479d25c6c5f5867
parents d0232c6a dba47fcd
Loading
Loading
Loading
Loading
+52 −0
Original line number Diff line number Diff line
@@ -115,6 +115,8 @@ message Atom {
        HardwareFailed hardware_failed = 72;
        PhysicalDropDetected physical_drop_detected = 73;
        ChargeCyclesReported charge_cycles_reported = 74;
        MobileConnectionStateChanged mobile_connection_state_changed = 75;
        MobileRadioTechnologyChanged mobile_radio_technology_changed = 76;
    }

    // Pulled events will start at field 10000.
@@ -911,6 +913,56 @@ message ResourceConfigurationChanged {
    optional int32 uiMode = 17;
}


/**
 * Logs changes in the connection state of the mobile radio.
 *
 * Logged from:
 *    frameworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
 */
message MobileConnectionStateChanged {
    // States are from the state machine DataConnection.java.
    enum State {
        UNKNOWN = 0;
        // The connection is inactive, or disconnected.
        INACTIVE = 1;
        // The connection is being activated, or connecting.
        ACTIVATING = 2;
        // The connection is active, or connected.
        ACTIVE = 3;
        // The connection is disconnecting.
        DISCONNECTING = 4;
        // The connection is disconnecting after creating a connection.
        DISCONNECTION_ERROR_CREATING_CONNECTION = 5;
    }
    optional State state  = 1;
    // For multi-sim phones, this distinguishes between the sim cards.
    optional int32 sim_slot_index = 2;
    // Used to identify the connection. Starts at 0 and increments by 1 for
    // every new network created. Resets whenever the device reboots.
    optional int32 data_connection_id = 3;
    // A bitmask for the capabilities of this connection.
    // Eg. DEFAULT (internet), MMS, SUPL, DUN, IMS.
    // Default value (if we have no information): 0
    optional int64 capabilities = 4;
    // If this connection has internet.
    // This just checks if the DEFAULT bit of capabilities is set.
    optional bool has_internet = 5;
}

/**
 * Logs changes in mobile radio technology. eg: LTE, EDGE, CDMA.
 *
 * Logged from:
 *   frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java
 */
message MobileRadioTechnologyChanged {
    optional android.telephony.NetworkTypeEnum state = 1;
    // For multi-sim phones, this distinguishes between the sim cards.
    optional int32 sim_slot_index = 2;
}


/**
 * Logs when Bluetooth is enabled and disabled.
 *
+14 −22
Original line number Diff line number Diff line
@@ -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);
+7 −61
Original line number Diff line number Diff line
@@ -5352,69 +5352,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:
            if (dataType > 0 && dataType <= TelephonyManager.MAX_NETWORK_TYPE) {
                bin = dataType;
            } else {
                bin = DATA_CONNECTION_OTHER;
                    break;
            }
        }
        if (DEBUG) Log.i(TAG, "Phone Data Connection -> " + dataType + " = " + hasData);
+6 −26
Original line number Diff line number Diff line
@@ -208,32 +208,12 @@ message SystemProto {

  message DataConnection {
    option (android.msg_privacy).dest = DEST_AUTOMATIC;

    enum Name {
      NONE = 0;
      GPRS = 1;
      EDGE = 2;
      UMTS = 3;
      CDMA = 4;
      EVDO_0 = 5;
      EVDO_A = 6;
      ONE_X_RTT = 7; // 1xRTT.
      HSDPA = 8;
      HSUPA = 9;
      HSPA = 10;
      IDEN = 11;
      EVDO_B = 12;
      LTE = 13;
      EHRPD = 14;
      HSPAP = 15;
      GSM = 16;
      TD_SCDMA = 17;
      IWLAN = 18;
      LTE_CA = 19;
      OTHER = 20;
    };
    optional Name name = 1;
    optional TimerProto total = 2;
    oneof type {
      android.telephony.NetworkTypeEnum name = 1;
      // If is_none is not set, then the name is a valid network type.
      bool is_none = 2;
    }
    optional TimerProto total = 3;
  };
  repeated DataConnection data_connection = 8;

+25 −0
Original line number Diff line number Diff line
@@ -28,6 +28,31 @@ enum DataConnectionPowerStateEnum {
    DATA_CONNECTION_POWER_STATE_UNKNOWN = 2147483647; // Java Integer.MAX_VALUE;
}

// Network type enums, primarily used by android/telephony/TelephonyManager.java.
// Do not add negative types.
enum NetworkTypeEnum {
    NETWORK_TYPE_UNKNOWN = 0;
    NETWORK_TYPE_GPRS = 1;
    NETWORK_TYPE_EDGE = 2;
    NETWORK_TYPE_UMTS = 3;
    NETWORK_TYPE_CDMA = 4;
    NETWORK_TYPE_EVDO_0 = 5;
    NETWORK_TYPE_EVDO_A = 6;
    NETWORK_TYPE_1XRTT = 7;
    NETWORK_TYPE_HSDPA = 8;
    NETWORK_TYPE_HSUPA = 9;
    NETWORK_TYPE_HSPA = 10;
    NETWORK_TYPE_IDEN = 11;
    NETWORK_TYPE_EVDO_B = 12;
    NETWORK_TYPE_LTE = 13;
    NETWORK_TYPE_EHRPD = 14;
    NETWORK_TYPE_HSPAP = 15;
    NETWORK_TYPE_GSM = 16;
    NETWORK_TYPE_TD_SCDMA = 17;
    NETWORK_TYPE_IWLAN = 18;
    NETWORK_TYPE_LTE_CA = 19;
}

// Signal strength levels, primarily used by android/telephony/SignalStrength.java.
enum SignalStrengthEnum {
    SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0;
Loading