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

Commit 6b4e15b1 authored by Pierre Imai's avatar Pierre Imai
Browse files

Record the transport types for connectivity events.

BUG: 25691077
Change-Id: I40b6de5446325e717c0356603fd66cd395db9acb
parent 282c458c
Loading
Loading
Loading
Loading
+16 −4
Original line number Original line Diff line number Diff line
@@ -25,18 +25,30 @@ import android.os.Parcelable;
public class ConnectivityServiceChangeEvent extends IpConnectivityEvent implements Parcelable {
public class ConnectivityServiceChangeEvent extends IpConnectivityEvent implements Parcelable {
    public static final String TAG = "ConnectivityServiceChangeEvent";
    public static final String TAG = "ConnectivityServiceChangeEvent";


    private int mNetId;
    // The ID of the network that has become the new default or NETID_UNSET if none.
    private final int mNetId;
    // The ID of the network that was the default before or NETID_UNSET if none.
    private final int mPrevNetId;
    // The list of transport types of the new default network, for example TRANSPORT_WIFI, as
    // defined in NetworkCapabilities.java.
    private final int[] mTransportTypes;


    public ConnectivityServiceChangeEvent(int netId) {
    public ConnectivityServiceChangeEvent(int netId, int prevNetId, int[] transportTypes) {
        mNetId = netId;
        mNetId = netId;
        mPrevNetId = prevNetId;
        mTransportTypes = transportTypes;
    }
    }


    public ConnectivityServiceChangeEvent(Parcel in) {
    public ConnectivityServiceChangeEvent(Parcel in) {
        mNetId = in.readInt();
        mNetId = in.readInt();
        mPrevNetId = in.readInt();
        mTransportTypes = in.createIntArray();
    }
    }


    public void writeToParcel(Parcel out, int flags) {
    public void writeToParcel(Parcel out, int flags) {
        out.writeInt(mNetId);
        out.writeInt(mNetId);
        out.writeInt(mPrevNetId);
        out.writeIntArray(mTransportTypes);
    }
    }


    public static final Parcelable.Creator<ConnectivityServiceChangeEvent> CREATOR
    public static final Parcelable.Creator<ConnectivityServiceChangeEvent> CREATOR
@@ -50,8 +62,8 @@ public class ConnectivityServiceChangeEvent extends IpConnectivityEvent implemen
        }
        }
    };
    };


    public static void logEvent(int netId) {
    public static void logEvent(int netId, int prevNetId, int[] transportTypes) {
        IpConnectivityEvent.logEvent(IpConnectivityEvent.IPCE_CONSRV_DEFAULT_NET_CHANGE,
        IpConnectivityEvent.logEvent(IpConnectivityEvent.IPCE_CONSRV_DEFAULT_NET_CHANGE,
                new ConnectivityServiceChangeEvent(netId));
                new ConnectivityServiceChangeEvent(netId, prevNetId, transportTypes));
    }
    }
};
};
+5 −3
Original line number Original line Diff line number Diff line
@@ -4427,9 +4427,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
        teardownUnneededNetwork(oldNetwork);
        teardownUnneededNetwork(oldNetwork);
    }
    }


    private void makeDefault(NetworkAgentInfo newNetwork) {
    private void makeDefault(NetworkAgentInfo newNetwork, NetworkAgentInfo prevNetwork) {
        int prevNetId = (prevNetwork == null) ? NETID_UNSET : prevNetwork.network.netId;
        if (DBG) log("Switching to new default network: " + newNetwork);
        if (DBG) log("Switching to new default network: " + newNetwork);
        ConnectivityServiceChangeEvent.logEvent(newNetwork.network.netId);
        setupDataActivityTracking(newNetwork);
        setupDataActivityTracking(newNetwork);
        try {
        try {
            mNetd.setDefaultNetId(newNetwork.network.netId);
            mNetd.setDefaultNetId(newNetwork.network.netId);
@@ -4440,6 +4440,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
        handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
        handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
        updateTcpBufferSizes(newNetwork);
        updateTcpBufferSizes(newNetwork);
        setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
        setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
        ConnectivityServiceChangeEvent.logEvent(newNetwork.network.netId, prevNetId,
                newNetwork.networkCapabilities.getTransportTypes());
    }
    }


    // Handles a network appearing or improving its score.
    // Handles a network appearing or improving its score.
@@ -4590,7 +4592,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }
        }
        if (isNewDefault) {
        if (isNewDefault) {
            // Notify system services that this network is up.
            // Notify system services that this network is up.
            makeDefault(newNetwork);
            makeDefault(newNetwork, oldDefaultNetwork);
            synchronized (ConnectivityService.this) {
            synchronized (ConnectivityService.this) {
                // have a new default network, release the transition wakelock in
                // have a new default network, release the transition wakelock in
                // a second if it's held.  The second pause is to allow apps
                // a second if it's held.  The second pause is to allow apps