Index: net/android/java/src/org/chromium/net/NetworkChangeNotifier.java |
diff --git a/net/android/java/src/org/chromium/net/NetworkChangeNotifier.java b/net/android/java/src/org/chromium/net/NetworkChangeNotifier.java |
index 563ef5c0d2cda697938fedf3371f573a51ffa5ba..dec5c92900299258b84eb4ed3b7ff2d71b765280 100644 |
--- a/net/android/java/src/org/chromium/net/NetworkChangeNotifier.java |
+++ b/net/android/java/src/org/chromium/net/NetworkChangeNotifier.java |
@@ -111,20 +111,15 @@ public class NetworkChangeNotifier { |
/** |
* Enables auto detection of the current network state based on notifications from the system. |
* Note that passing true here requires the embedding app have the platform ACCESS_NETWORK_STATE |
- * permission. |
+ * permission. Also note that in this case the auto detection is enabled based on the status of |
+ * the application (@see ApplicationStatus). |
* |
* @param shouldAutoDetect true if the NetworkChangeNotifier should listen for system changes in |
* network connectivity. |
*/ |
public static void setAutoDetectConnectivityState(boolean shouldAutoDetect) { |
- getInstance().setAutoDetectConnectivityStateInternal(shouldAutoDetect, false); |
- } |
- |
- private void destroyAutoDetector() { |
- if (mAutoDetector != null) { |
- mAutoDetector.destroy(); |
- mAutoDetector = null; |
- } |
+ getInstance().setAutoDetectConnectivityStateInternal( |
+ shouldAutoDetect, new RegistrationPolicyApplicationStatus()); |
} |
/** |
@@ -136,34 +131,47 @@ public class NetworkChangeNotifier { |
* might perform expensive work depending on the network connectivity. |
*/ |
public static void registerToReceiveNotificationsAlways() { |
- getInstance().setAutoDetectConnectivityStateInternal(true, true); |
+ getInstance().setAutoDetectConnectivityStateInternal( |
+ true, new RegistrationPolicyAlwaysRegister()); |
+ } |
+ |
+ /** |
+ * Registers to receive network change notification based on the provided registration policy. |
+ */ |
+ public static void setAutoDetectConnectivityState(RegistrationPolicy policy) { |
+ getInstance().setAutoDetectConnectivityStateInternal(true, policy); |
+ } |
+ |
+ private void destroyAutoDetector() { |
+ if (mAutoDetector != null) { |
+ mAutoDetector.destroy(); |
+ mAutoDetector = null; |
+ } |
} |
private void setAutoDetectConnectivityStateInternal( |
- boolean shouldAutoDetect, boolean alwaysWatchForChanges) { |
- if (shouldAutoDetect) { |
- if (mAutoDetector == null) { |
- mAutoDetector = new NetworkChangeNotifierAutoDetect( |
- new NetworkChangeNotifierAutoDetect.Observer() { |
- @Override |
- public void onConnectionTypeChanged(int newConnectionType) { |
- updateCurrentConnectionType(newConnectionType); |
- } |
- @Override |
- public void onMaxBandwidthChanged(double maxBandwidthMbps) { |
- updateCurrentMaxBandwidth(maxBandwidthMbps); |
- } |
- }, |
- mContext, |
- alwaysWatchForChanges); |
- final NetworkChangeNotifierAutoDetect.NetworkState networkState = |
- mAutoDetector.getCurrentNetworkState(); |
- updateCurrentConnectionType(mAutoDetector.getCurrentConnectionType(networkState)); |
- updateCurrentMaxBandwidth(mAutoDetector.getCurrentMaxBandwidthInMbps(networkState)); |
- } |
- } else { |
+ boolean shouldAutoDetect, RegistrationPolicy policy) { |
pauljensen
2015/10/01 12:06:36
It looks like you refactored the body of this func
timvolodine
2015/10/05 17:26:45
sure no problem, this is not essential anyway. don
|
+ if (!shouldAutoDetect) { |
destroyAutoDetector(); |
+ return; |
} |
+ if (mAutoDetector != null) return; |
+ |
+ mAutoDetector = |
+ new NetworkChangeNotifierAutoDetect(new NetworkChangeNotifierAutoDetect.Observer() { |
+ @Override |
+ public void onConnectionTypeChanged(int newConnectionType) { |
+ updateCurrentConnectionType(newConnectionType); |
+ } |
+ @Override |
+ public void onMaxBandwidthChanged(double maxBandwidthMbps) { |
+ updateCurrentMaxBandwidth(maxBandwidthMbps); |
+ } |
+ }, mContext, policy); |
+ final NetworkChangeNotifierAutoDetect.NetworkState networkState = |
+ mAutoDetector.getCurrentNetworkState(); |
+ updateCurrentConnectionType(mAutoDetector.getCurrentConnectionType(networkState)); |
+ updateCurrentMaxBandwidth(mAutoDetector.getCurrentMaxBandwidthInMbps(networkState)); |
} |
/** |