| Index: talk/app/webrtc/java/android/org/webrtc/NetworkMonitor.java
|
| diff --git a/talk/app/webrtc/java/android/org/webrtc/NetworkMonitor.java b/talk/app/webrtc/java/android/org/webrtc/NetworkMonitor.java
|
| index 0f3df42fbd64f1da81ccdb5e221b1fbbe8dbc74d..427070efad43db7f46855c2f712e50f4932e80a0 100644
|
| --- a/talk/app/webrtc/java/android/org/webrtc/NetworkMonitor.java
|
| +++ b/talk/app/webrtc/java/android/org/webrtc/NetworkMonitor.java
|
| @@ -154,19 +154,27 @@ public class NetworkMonitor {
|
| if (autoDetector == null) {
|
| autoDetector = new NetworkMonitorAutoDetect(
|
| new NetworkMonitorAutoDetect.Observer() {
|
| +
|
| @Override
|
| public void onConnectionTypeChanged(ConnectionType newConnectionType) {
|
| updateCurrentConnectionType(newConnectionType);
|
| }
|
| +
|
| @Override
|
| public void onNetworkConnect(NetworkInformation networkInfo) {
|
| - updateNetworkInformation(networkInfo);
|
| + notifyObserversOfNetworkConnect(networkInfo);
|
| + }
|
| +
|
| + @Override
|
| + public void onNetworkDisconnect(int networkHandle) {
|
| + notifyObserversOfNetworkDisconnect(networkHandle);
|
| }
|
| },
|
| applicationContext);
|
| final NetworkMonitorAutoDetect.NetworkState networkState =
|
| autoDetector.getCurrentNetworkState();
|
| updateCurrentConnectionType(autoDetector.getConnectionType(networkState));
|
| + updateActiveNetworkList();
|
| }
|
| }
|
|
|
| @@ -187,12 +195,28 @@ public class NetworkMonitor {
|
| }
|
| }
|
|
|
| - private void updateNetworkInformation(NetworkInformation networkInfo) {
|
| + private void notifyObserversOfNetworkConnect(NetworkInformation networkInfo) {
|
| for (long nativeObserver : nativeNetworkObservers) {
|
| nativeNotifyOfNetworkConnect(nativeObserver, networkInfo);
|
| }
|
| }
|
|
|
| + private void notifyObserversOfNetworkDisconnect(int networkHandle) {
|
| + for (long nativeObserver : nativeNetworkObservers) {
|
| + nativeNotifyOfNetworkDisconnect(nativeObserver, networkHandle);
|
| + }
|
| + }
|
| +
|
| + private void updateActiveNetworkList() {
|
| + NetworkInformation[] networkInfos = autoDetector.getActiveNetworkList();
|
| + if (networkInfos.length == 0) {
|
| + return;
|
| + }
|
| + for (long nativeObserver : nativeNetworkObservers) {
|
| + nativeNotifyOfActiveNetworkList(nativeObserver, networkInfos);
|
| + }
|
| + }
|
| +
|
| /**
|
| * Adds an observer for any connection type changes.
|
| */
|
| @@ -224,11 +248,11 @@ public class NetworkMonitor {
|
| && connectionType != ConnectionType.CONNECTION_NONE;
|
| }
|
|
|
| - private native long nativeCreateNetworkMonitor();
|
| -
|
| private native void nativeNotifyConnectionTypeChanged(long nativePtr);
|
| -
|
| private native void nativeNotifyOfNetworkConnect(long nativePtr, NetworkInformation networkInfo);
|
| + private native void nativeNotifyOfNetworkDisconnect(long nativePtr, int networkHandle);
|
| + private native void nativeNotifyOfActiveNetworkList(long nativePtr,
|
| + NetworkInformation[] networkInfos);
|
|
|
| // For testing only.
|
| static void resetInstanceForTests(Context context) {
|
|
|