Merge changes from topic "removeNI"
* changes: [FUI07] Stop making NetworkState with NetworkInfo from external callers [FUI06] Stop using NetworkInfo in NetworkState from external callers
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
package android.net;
|
package android.net;
|
||||||
|
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.compat.annotation.UnsupportedAppUsage;
|
import android.compat.annotation.UnsupportedAppUsage;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
@@ -41,6 +42,7 @@ public class NetworkState implements Parcelable {
|
|||||||
public final Network network;
|
public final Network network;
|
||||||
public final String subscriberId;
|
public final String subscriberId;
|
||||||
public final String networkId;
|
public final String networkId;
|
||||||
|
public final int legacyNetworkType;
|
||||||
|
|
||||||
private NetworkState() {
|
private NetworkState() {
|
||||||
networkInfo = null;
|
networkInfo = null;
|
||||||
@@ -49,17 +51,35 @@ public class NetworkState implements Parcelable {
|
|||||||
network = null;
|
network = null;
|
||||||
subscriberId = null;
|
subscriberId = null;
|
||||||
networkId = null;
|
networkId = null;
|
||||||
|
legacyNetworkType = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public NetworkState(int legacyNetworkType, @NonNull LinkProperties linkProperties,
|
||||||
|
@NonNull NetworkCapabilities networkCapabilities, @NonNull Network network,
|
||||||
|
@Nullable String subscriberId, @Nullable String networkId) {
|
||||||
|
this(legacyNetworkType, new NetworkInfo(legacyNetworkType, 0, null, null), linkProperties,
|
||||||
|
networkCapabilities, network, subscriberId, networkId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Constructor that used internally in ConnectivityService mainline module.
|
||||||
public NetworkState(@NonNull NetworkInfo networkInfo, @NonNull LinkProperties linkProperties,
|
public NetworkState(@NonNull NetworkInfo networkInfo, @NonNull LinkProperties linkProperties,
|
||||||
@NonNull NetworkCapabilities networkCapabilities, @NonNull Network network,
|
@NonNull NetworkCapabilities networkCapabilities, @NonNull Network network,
|
||||||
String subscriberId, String networkId) {
|
String subscriberId, String networkId) {
|
||||||
|
this(networkInfo.getType(), networkInfo, linkProperties,
|
||||||
|
networkCapabilities, network, subscriberId, networkId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public NetworkState(int legacyNetworkType, @NonNull NetworkInfo networkInfo,
|
||||||
|
@NonNull LinkProperties linkProperties,
|
||||||
|
@NonNull NetworkCapabilities networkCapabilities, @NonNull Network network,
|
||||||
|
String subscriberId, String networkId) {
|
||||||
this.networkInfo = networkInfo;
|
this.networkInfo = networkInfo;
|
||||||
this.linkProperties = linkProperties;
|
this.linkProperties = linkProperties;
|
||||||
this.networkCapabilities = networkCapabilities;
|
this.networkCapabilities = networkCapabilities;
|
||||||
this.network = network;
|
this.network = network;
|
||||||
this.subscriberId = subscriberId;
|
this.subscriberId = subscriberId;
|
||||||
this.networkId = networkId;
|
this.networkId = networkId;
|
||||||
|
this.legacyNetworkType = legacyNetworkType;
|
||||||
|
|
||||||
// This object is an atomic view of a network, so the various components
|
// This object is an atomic view of a network, so the various components
|
||||||
// should always agree on roaming state.
|
// should always agree on roaming state.
|
||||||
@@ -80,6 +100,7 @@ public class NetworkState implements Parcelable {
|
|||||||
network = in.readParcelable(null);
|
network = in.readParcelable(null);
|
||||||
subscriberId = in.readString();
|
subscriberId = in.readString();
|
||||||
networkId = in.readString();
|
networkId = in.readString();
|
||||||
|
legacyNetworkType = in.readInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -95,6 +116,7 @@ public class NetworkState implements Parcelable {
|
|||||||
out.writeParcelable(network, flags);
|
out.writeParcelable(network, flags);
|
||||||
out.writeString(subscriberId);
|
out.writeString(subscriberId);
|
||||||
out.writeString(networkId);
|
out.writeString(networkId);
|
||||||
|
out.writeInt(legacyNetworkType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
|
|||||||
@@ -1894,7 +1894,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
final ArrayList<NetworkState> result = new ArrayList<>();
|
final ArrayList<NetworkState> result = new ArrayList<>();
|
||||||
for (Network network : getAllNetworks()) {
|
for (Network network : getAllNetworks()) {
|
||||||
final NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
|
final NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
|
||||||
if (nai != null) {
|
// TODO: Consider include SUSPENDED networks.
|
||||||
|
if (nai != null && nai.networkInfo.isConnected()) {
|
||||||
// TODO (b/73321673) : NetworkState contains a copy of the
|
// TODO (b/73321673) : NetworkState contains a copy of the
|
||||||
// NetworkCapabilities, which may contain UIDs of apps to which the
|
// NetworkCapabilities, which may contain UIDs of apps to which the
|
||||||
// network applies. Should the UIDs be cleared so as not to leak or
|
// network applies. Should the UIDs be cleared so as not to leak or
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ import org.junit.Before
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.junit.runners.JUnit4
|
import org.junit.runners.JUnit4
|
||||||
import org.mockito.Mockito.doReturn
|
|
||||||
import org.mockito.Mockito.mock
|
import org.mockito.Mockito.mock
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
import kotlin.test.assertFalse
|
import kotlin.test.assertFalse
|
||||||
@@ -60,16 +59,13 @@ class NetworkTemplateTest {
|
|||||||
subscriberId: String? = null,
|
subscriberId: String? = null,
|
||||||
ssid: String? = null
|
ssid: String? = null
|
||||||
): NetworkState {
|
): NetworkState {
|
||||||
val info = mock(NetworkInfo::class.java)
|
|
||||||
doReturn(type).`when`(info).type
|
|
||||||
doReturn(NetworkInfo.State.CONNECTED).`when`(info).state
|
|
||||||
val lp = LinkProperties()
|
val lp = LinkProperties()
|
||||||
val caps = NetworkCapabilities().apply {
|
val caps = NetworkCapabilities().apply {
|
||||||
setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED, false)
|
setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED, false)
|
||||||
setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, true)
|
setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, true)
|
||||||
setSSID(ssid)
|
setSSID(ssid)
|
||||||
}
|
}
|
||||||
return NetworkState(info, lp, caps, mock(Network::class.java), subscriberId, ssid)
|
return NetworkState(type, lp, caps, mock(Network::class.java), subscriberId, ssid)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun NetworkTemplate.assertMatches(ident: NetworkIdentity) =
|
private fun NetworkTemplate.assertMatches(ident: NetworkIdentity) =
|
||||||
|
|||||||
@@ -80,8 +80,6 @@ import android.net.INetworkStatsSession;
|
|||||||
import android.net.LinkProperties;
|
import android.net.LinkProperties;
|
||||||
import android.net.Network;
|
import android.net.Network;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
import android.net.NetworkInfo;
|
|
||||||
import android.net.NetworkInfo.DetailedState;
|
|
||||||
import android.net.NetworkState;
|
import android.net.NetworkState;
|
||||||
import android.net.NetworkStats;
|
import android.net.NetworkStats;
|
||||||
import android.net.NetworkStatsHistory;
|
import android.net.NetworkStatsHistory;
|
||||||
@@ -1456,8 +1454,6 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static NetworkState buildWifiState(boolean isMetered, @NonNull String iface) {
|
private static NetworkState buildWifiState(boolean isMetered, @NonNull String iface) {
|
||||||
final NetworkInfo info = new NetworkInfo(TYPE_WIFI, 0, null, null);
|
|
||||||
info.setDetailedState(DetailedState.CONNECTED, null, null);
|
|
||||||
final LinkProperties prop = new LinkProperties();
|
final LinkProperties prop = new LinkProperties();
|
||||||
prop.setInterfaceName(iface);
|
prop.setInterfaceName(iface);
|
||||||
final NetworkCapabilities capabilities = new NetworkCapabilities();
|
final NetworkCapabilities capabilities = new NetworkCapabilities();
|
||||||
@@ -1465,7 +1461,7 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
|||||||
capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, true);
|
capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, true);
|
||||||
capabilities.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
|
capabilities.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
|
||||||
capabilities.setSSID(TEST_SSID);
|
capabilities.setSSID(TEST_SSID);
|
||||||
return new NetworkState(info, prop, capabilities, WIFI_NETWORK, null, TEST_SSID);
|
return new NetworkState(TYPE_WIFI, prop, capabilities, WIFI_NETWORK, null, TEST_SSID);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static NetworkState buildMobile3gState(String subscriberId) {
|
private static NetworkState buildMobile3gState(String subscriberId) {
|
||||||
@@ -1473,17 +1469,14 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static NetworkState buildMobile3gState(String subscriberId, boolean isRoaming) {
|
private static NetworkState buildMobile3gState(String subscriberId, boolean isRoaming) {
|
||||||
final NetworkInfo info = new NetworkInfo(
|
|
||||||
TYPE_MOBILE, TelephonyManager.NETWORK_TYPE_UMTS, null, null);
|
|
||||||
info.setDetailedState(DetailedState.CONNECTED, null, null);
|
|
||||||
info.setRoaming(isRoaming);
|
|
||||||
final LinkProperties prop = new LinkProperties();
|
final LinkProperties prop = new LinkProperties();
|
||||||
prop.setInterfaceName(TEST_IFACE);
|
prop.setInterfaceName(TEST_IFACE);
|
||||||
final NetworkCapabilities capabilities = new NetworkCapabilities();
|
final NetworkCapabilities capabilities = new NetworkCapabilities();
|
||||||
capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED, false);
|
capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED, false);
|
||||||
capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, !isRoaming);
|
capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, !isRoaming);
|
||||||
capabilities.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
|
capabilities.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
|
||||||
return new NetworkState(info, prop, capabilities, MOBILE_NETWORK, subscriberId, null);
|
return new NetworkState(
|
||||||
|
TYPE_MOBILE, prop, capabilities, MOBILE_NETWORK, subscriberId, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private NetworkStats buildEmptyStats() {
|
private NetworkStats buildEmptyStats() {
|
||||||
@@ -1491,11 +1484,9 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static NetworkState buildVpnState() {
|
private static NetworkState buildVpnState() {
|
||||||
final NetworkInfo info = new NetworkInfo(TYPE_VPN, 0, null, null);
|
|
||||||
info.setDetailedState(DetailedState.CONNECTED, null, null);
|
|
||||||
final LinkProperties prop = new LinkProperties();
|
final LinkProperties prop = new LinkProperties();
|
||||||
prop.setInterfaceName(TUN_IFACE);
|
prop.setInterfaceName(TUN_IFACE);
|
||||||
return new NetworkState(info, prop, new NetworkCapabilities(), VPN_NETWORK, null, null);
|
return new NetworkState(TYPE_VPN, prop, new NetworkCapabilities(), VPN_NETWORK, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private long getElapsedRealtime() {
|
private long getElapsedRealtime() {
|
||||||
|
|||||||
Reference in New Issue
Block a user