From 30035b6683d9daad1b6a3278c96537dcfe1d4abe Mon Sep 17 00:00:00 2001 From: timvolodine Date: Tue, 22 Sep 2015 04:56:35 -0700 Subject: [PATCH] Fix NetworkChangeNotifierAutoDetect destroy method. Make sure to unregister NetworkChangeNotifierAutoDetect from listening to ApplicationStatus when it is destroyed. Currently the NetworkChangeNotifierAutoDetect will still function after NetworkChangeNotifier.setAutoDetectConnectivityState(false) is invoked and the application changes state. BUG=534468 Review URL: https://codereview.chromium.org/1358523002 Cr-Commit-Position: refs/heads/master@{#350143} --- .../java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java b/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java index b63583ddbf84..466d03f194e8 100644 --- a/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java +++ b/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java @@ -147,6 +147,7 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver private ConnectivityManagerDelegate mConnectivityManagerDelegate; private WifiManagerDelegate mWifiManagerDelegate; private boolean mRegistered; + private final boolean mApplicationStateRegistered; private int mConnectionType; private String mWifiSSID; private double mMaxBandwidthMbps; @@ -180,9 +181,11 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver if (alwaysWatchForChanges) { registerReceiver(); + mApplicationStateRegistered = false; } else { ApplicationStatus.registerApplicationStateListener(this); onApplicationStateChange(getApplicationState()); + mApplicationStateRegistered = true; } } @@ -218,6 +221,7 @@ public class NetworkChangeNotifierAutoDetect extends BroadcastReceiver } public void destroy() { + if (mApplicationStateRegistered) ApplicationStatus.unregisterApplicationStateListener(this); unregisterReceiver(); } -- 2.11.4.GIT