Index: net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java |
diff --git a/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java b/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java |
index 90aa753186cdcfe49ed4bacb594a89db319c3398..c865756ff28abd67f3d3ff5ece06869a807cff24 100644 |
--- a/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java |
+++ b/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java |
@@ -39,6 +39,10 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver |
mConnectivityManager.getActiveNetworkInfo() != null; |
} |
+ boolean isConnected() { |
+ return mConnectivityManager.getActiveNetworkInfo().isConnected(); |
+ } |
+ |
int getNetworkType() { |
return mConnectivityManager.getActiveNetworkInfo().getType(); |
} |
@@ -71,10 +75,12 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver |
mObserver = observer; |
mContext = context; |
mConnectivityManagerDelegate = new ConnectivityManagerDelegate(context); |
- mConnectionType = currentConnectionType(context); |
+ mConnectionType = currentConnectionType(); |
if (ActivityStatus.getState() != ActivityStatus.PAUSED) { |
registerReceiver(); |
+ // Provide the observer with an initial connection type. |
+ mObserver.onConnectionTypeChanged(mConnectionType); |
} |
ActivityStatus.registerStateListener(this); |
} |
@@ -110,9 +116,10 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver |
} |
} |
- private int currentConnectionType(Context context) { |
+ private int currentConnectionType() { |
// Track exactly what type of connection we have. |
- if (!mConnectivityManagerDelegate.activeNetworkExists()) { |
+ if (!mConnectivityManagerDelegate.activeNetworkExists() || |
+ !mConnectivityManagerDelegate.isConnected()) { |
return NetworkChangeNotifier.CONNECTION_NONE; |
} |
@@ -158,7 +165,7 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver |
boolean noConnection = |
intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); |
int newConnectionType = noConnection ? |
- NetworkChangeNotifier.CONNECTION_NONE : currentConnectionType(context); |
+ NetworkChangeNotifier.CONNECTION_NONE : currentConnectionType(); |
if (newConnectionType != mConnectionType) { |
mConnectionType = newConnectionType; |