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

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

Issue 10905264: Fix race condition in NetworkChangeNotifier on Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address Szymon's comments 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 c9e101630e1c0eef25f277f077a1d838d765a41c..243175817da70dfcb44df3e3e7a44828cc2e69f0 100644
--- a/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java
+++ b/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java
@@ -28,14 +28,21 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver
private final NetworkConnectivityIntentFilter mIntentFilter =
new NetworkConnectivityIntentFilter();
- private final NetworkChangeNotifier mOwner;
+ private final Observer mObserver;
private final Context mContext;
private boolean mRegistered;
private int mConnectionType;
- public NetworkChangeNotifierAutoDetect(NetworkChangeNotifier owner, Context context) {
- mOwner = owner;
+ /**
+ * Observer notified on the UI thread whenever a new connection type was detected.
+ */
+ public static interface Observer {
+ public void onConnectionTypeChanged(int newConnectionType);
+ }
+
+ public NetworkChangeNotifierAutoDetect(Observer observer, Context context) {
+ mObserver = observer;
mContext = context;
mConnectionType = currentConnectionType(context);
@@ -46,10 +53,6 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver
status.registerListener(this);
}
- public int connectionType() {
- return mConnectionType;
- }
-
public void destroy() {
unregisterReceiver();
}
@@ -129,8 +132,8 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver
if (newConnectionType != mConnectionType) {
mConnectionType = newConnectionType;
- Log.d(TAG, "Network connectivity changed, type is: " + mConnectionType);
- mOwner.notifyNativeObservers();
+ Log.d(TAG, "Network connectivity changed, type is: " + newConnectionType);
+ mObserver.onConnectionTypeChanged(newConnectionType);
}
}

Powered by Google App Engine
This is Rietveld 408576698