diff --git a/api/system-current.txt b/api/system-current.txt index 64dd6b42c51bf..697166d33812d 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -26033,11 +26033,11 @@ package android.net.metrics { field public final int state; } - public final class ConnectivityServiceChangeEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable { + public final class DefaultNetworkEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable { method public int describeContents(); method public static void logEvent(int, int[], int, boolean, boolean); method public void writeToParcel(android.os.Parcel, int); - field public static final android.os.Parcelable.Creator CREATOR; + field public static final android.os.Parcelable.Creator CREATOR; field public final int netId; field public final boolean prevIPv4; field public final boolean prevIPv6; diff --git a/core/java/android/net/metrics/ConnectivityServiceChangeEvent.java b/core/java/android/net/metrics/DefaultNetworkEvent.java similarity index 69% rename from core/java/android/net/metrics/ConnectivityServiceChangeEvent.java rename to core/java/android/net/metrics/DefaultNetworkEvent.java index fce68bb1db695..f3c357b076c8c 100644 --- a/core/java/android/net/metrics/ConnectivityServiceChangeEvent.java +++ b/core/java/android/net/metrics/DefaultNetworkEvent.java @@ -24,8 +24,7 @@ import android.os.Parcelable; * {@hide} */ @SystemApi -public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent - implements Parcelable { +public final class DefaultNetworkEvent extends IpConnectivityEvent implements Parcelable { // The ID of the network that has become the new default or NETID_UNSET if none. public final int netId; // The list of transport types of the new default network, for example TRANSPORT_WIFI, as @@ -37,7 +36,7 @@ public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent public final boolean prevIPv4; public final boolean prevIPv6; - private ConnectivityServiceChangeEvent(int netId, int[] transportTypes, + private DefaultNetworkEvent(int netId, int[] transportTypes, int prevNetId, boolean prevIPv4, boolean prevIPv6) { this.netId = netId; this.transportTypes = transportTypes; @@ -46,7 +45,7 @@ public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent this.prevIPv6 = prevIPv6; } - private ConnectivityServiceChangeEvent(Parcel in) { + private DefaultNetworkEvent(Parcel in) { this.netId = in.readInt(); this.transportTypes = in.createIntArray(); this.prevNetId = in.readInt(); @@ -66,21 +65,21 @@ public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent return 0; } - public static final Parcelable.Creator CREATOR - = new Parcelable.Creator() { - public ConnectivityServiceChangeEvent createFromParcel(Parcel in) { - return new ConnectivityServiceChangeEvent(in); + public static final Parcelable.Creator CREATOR + = new Parcelable.Creator() { + public DefaultNetworkEvent createFromParcel(Parcel in) { + return new DefaultNetworkEvent(in); } - public ConnectivityServiceChangeEvent[] newArray(int size) { - return new ConnectivityServiceChangeEvent[size]; + public DefaultNetworkEvent[] newArray(int size) { + return new DefaultNetworkEvent[size]; } }; - public static void logEvent(int netId, int[] transportTypes, - int prevNetId, boolean prevIPv4, boolean prevIPv6) { - logEvent(IPCE_CONSRV_DEFAULT_NET_CHANGE, - new ConnectivityServiceChangeEvent( - netId, transportTypes, prevNetId, prevIPv4, prevIPv6)); + public static void logEvent( + int netId, int[] transports, int prevNetId, boolean hadIPv4, boolean hadIPv6) { + final DefaultNetworkEvent ev = + new DefaultNetworkEvent(netId, transports, prevNetId, hadIPv4, hadIPv6); + logEvent(IPCE_CONSRV_DEFAULT_NET_CHANGE, ev); } }; diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 71506bea846d6..0f217967db6a4 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -71,7 +71,7 @@ import android.net.ProxyInfo; import android.net.RouteInfo; import android.net.UidRange; import android.net.Uri; -import android.net.metrics.ConnectivityServiceChangeEvent; +import android.net.metrics.DefaultNetworkEvent; import android.os.Binder; import android.os.Build; import android.os.Bundle; @@ -2217,7 +2217,7 @@ public class ConnectivityService extends IConnectivityManager.Stub rematchAllNetworksAndRequests(null, 0); if (wasDefault && getDefaultNetwork() == null) { // Log that we lost the default network and there is no replacement. - logConnectivityServiceChangeEvent(null, nai); + logDefaultNetworkEvent(null, nai); } if (nai.created) { // Tell netd to clean up the configuration for this network @@ -4452,8 +4452,7 @@ public class ConnectivityService extends IConnectivityManager.Stub handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy()); updateTcpBufferSizes(newNetwork); setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers()); - - logConnectivityServiceChangeEvent(newNetwork, prevNetwork); + logDefaultNetworkEvent(newNetwork, prevNetwork); } // Handles a network appearing or improving its score. @@ -5075,21 +5074,24 @@ public class ConnectivityService extends IConnectivityManager.Stub return new NetworkMonitor(context, handler, nai, defaultRequest); } - private static void logConnectivityServiceChangeEvent( - NetworkAgentInfo next, NetworkAgentInfo prev) { - final int newNetId = (next == null) ? NETID_UNSET : next.network.netId; - final int[] newTransportTypes = (next == null) - ? new int[0] - : next.networkCapabilities.getTransportTypes(); + private static void logDefaultNetworkEvent(NetworkAgentInfo newNai, NetworkAgentInfo prevNai) { + int newNetid = NETID_UNSET; + int prevNetid = NETID_UNSET; + int[] transports = new int[0]; + boolean hadIPv4 = false; + boolean hadIPv6 = false; - final int oldNetId = (prev == null) ? NETID_UNSET : prev.network.netId; - final boolean hadIPv4 = (prev != null) && - prev.linkProperties.hasIPv4Address() && - prev.linkProperties.hasIPv4DefaultRoute(); - final boolean hadIPv6 = (prev != null) && - prev.linkProperties.hasGlobalIPv6Address() && - prev.linkProperties.hasIPv6DefaultRoute(); - ConnectivityServiceChangeEvent.logEvent(newNetId, newTransportTypes, - oldNetId, hadIPv4, hadIPv6); + if (newNai != null) { + newNetid = newNai.network.netId; + transports = newNai.networkCapabilities.getTransportTypes(); + } + if (prevNai != null) { + prevNetid = prevNai.network.netId; + final LinkProperties lp = prevNai.linkProperties; + hadIPv4 = lp.hasIPv4Address() && lp.hasIPv4DefaultRoute(); + hadIPv6 = lp.hasGlobalIPv6Address() && lp.hasIPv6DefaultRoute(); + } + + DefaultNetworkEvent.logEvent(newNetid, transports, prevNetid, hadIPv4, hadIPv6); } }