| Index: talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java
|
| diff --git a/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java b/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java
|
| index baadd279a57af8846a0ab15336e125574c60ed97..c77ad73eeae984163f450b1847843c2a4447ec99 100644
|
| --- a/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java
|
| +++ b/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java
|
| @@ -186,6 +186,19 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver {
|
| return connectivityManager.getAllNetworks();
|
| }
|
|
|
| + NetworkInformation[] getAllNetworkInfos() {
|
| + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP ||
|
| + connectivityManager == null) {
|
| + return new NetworkInformation[0];
|
| + }
|
| + Network[] networks = getAllNetworks();
|
| + NetworkInformation[] netInfos = new NetworkInformation[networks.length];
|
| + for (int i = 0; i < networks.length; ++i) {
|
| + netInfos[i] = networkToInfo(networks[i]);
|
| + }
|
| + return netInfos;
|
| + }
|
| +
|
| /**
|
| * Returns the NetID of the current default network. Returns
|
| * INVALID_NET_ID if no current default network connected.
|
| @@ -226,6 +239,17 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver {
|
| return defaultNetId;
|
| }
|
|
|
| + @SuppressLint("NewApi")
|
| + private NetworkInformation networkToInfo(Network network) {
|
| + LinkProperties linkProperties = connectivityManager.getLinkProperties(network);
|
| + NetworkInformation networkInformation = new NetworkInformation(
|
| + linkProperties.getInterfaceName(),
|
| + getConnectionType(getNetworkState(network)),
|
| + networkToNetId(network),
|
| + getIPAddresses(linkProperties));
|
| + return networkInformation;
|
| + }
|
| +
|
| /**
|
| * Returns true if {@code network} can provide Internet access. Can be used to
|
| * ignore specialized networks (e.g. IMS, FOTA).
|
| @@ -250,12 +274,7 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver {
|
| @Override
|
| public void onAvailable(Network network) {
|
| super.onAvailable(network);
|
| - LinkProperties linkProperties = connectivityManager.getLinkProperties(network);
|
| - NetworkInformation networkInformation = new NetworkInformation(
|
| - linkProperties.getInterfaceName(),
|
| - getConnectionType(getNetworkState(network)),
|
| - networkToNetId(network),
|
| - getIPAddresses(linkProperties));
|
| + NetworkInformation networkInformation = networkToInfo(network);
|
| Logging.d(TAG, "Network " + networkInformation.name + " is connected ");
|
| observer.onNetworkConnect(networkInformation);
|
| }
|
| @@ -428,6 +447,10 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver {
|
| return connectivityManagerDelegate.getDefaultNetId();
|
| }
|
|
|
| + public NetworkInformation[] getAllNetworkInfos() {
|
| + return connectivityManagerDelegate.getAllNetworkInfos();
|
| + }
|
| +
|
| public static ConnectionType getConnectionType(NetworkState networkState) {
|
| if (!networkState.isConnected()) {
|
| return ConnectionType.CONNECTION_NONE;
|
|
|