Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1490)

Unified Diff: net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java

Issue 10968016: [Android] Add Java observers to the NetworkChangeNotifier (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Double rebase Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 911869493e26471773c6f6036cdf8ac1b804526f..c5fd0330f514e08fae45368e1d84414e1bb73d04 100644
--- a/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java
+++ b/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java
@@ -23,6 +23,31 @@ import org.chromium.base.ActivityStatus;
public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver
implements ActivityStatus.Listener {
+ /** Queries the ConnectivityManager for information about the current connection. */
+ static class ConnectivityManagerDelegate {
+ private ConnectivityManager mConnectivityManager;
+
+ ConnectivityManagerDelegate(Context context) {
+ if (context != null) {
+ mConnectivityManager = (ConnectivityManager)
+ context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ }
+ }
+
+ boolean activeNetworkExists() {
+ return mConnectivityManager != null &&
+ mConnectivityManager.getActiveNetworkInfo() != null;
+ }
+
+ int getNetworkType() {
+ return mConnectivityManager.getActiveNetworkInfo().getType();
+ }
+
+ int getNetworkSubtype() {
+ return mConnectivityManager.getActiveNetworkInfo().getSubtype();
+ }
+ }
+
private static final String TAG = "NetworkChangeNotifierAutoDetect";
private final NetworkConnectivityIntentFilter mIntentFilter =
@@ -31,6 +56,7 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver
private final Observer mObserver;
private final Context mContext;
+ private ConnectivityManagerDelegate mConnectivityManagerDelegate;
private boolean mRegistered;
private int mConnectionType;
@@ -44,6 +70,7 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver
public NetworkChangeNotifierAutoDetect(Observer observer, Context context) {
mObserver = observer;
mContext = context;
+ mConnectivityManagerDelegate = new ConnectivityManagerDelegate(context);
mConnectionType = currentConnectionType(context);
ActivityStatus status = ActivityStatus.getInstance();
@@ -53,6 +80,13 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver
status.registerListener(this);
}
+ /**
+ * Allows overriding the ConnectivityManagerDelegate for tests.
+ */
+ void setConnectivityManagerDelegateForTests(ConnectivityManagerDelegate delegate) {
+ mConnectivityManagerDelegate = delegate;
+ }
+
public void destroy() {
unregisterReceiver();
}
@@ -79,14 +113,11 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver
private int currentConnectionType(Context context) {
// Track exactly what type of connection we have.
- ConnectivityManager connectivityManager = (ConnectivityManager)
- context.getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
- if (activeNetworkInfo == null) {
+ if (!mConnectivityManagerDelegate.activeNetworkExists()) {
return NetworkChangeNotifier.CONNECTION_NONE;
}
- switch (activeNetworkInfo.getType()) {
+ switch (mConnectivityManagerDelegate.getNetworkType()) {
case ConnectivityManager.TYPE_ETHERNET:
return NetworkChangeNotifier.CONNECTION_ETHERNET;
case ConnectivityManager.TYPE_WIFI:
@@ -95,7 +126,7 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver
return NetworkChangeNotifier.CONNECTION_4G;
case ConnectivityManager.TYPE_MOBILE:
// Use information from TelephonyManager to classify the connection.
- switch (activeNetworkInfo.getSubtype()) {
+ switch (mConnectivityManagerDelegate.getNetworkSubtype()) {
case TelephonyManager.NETWORK_TYPE_GPRS:
case TelephonyManager.NETWORK_TYPE_EDGE:
case TelephonyManager.NETWORK_TYPE_CDMA:

Powered by Google App Engine
This is Rietveld 408576698