From 165b4f01209e6cbdb83619c2b1fb1b860cc1dccc Mon Sep 17 00:00:00 2001 From: Andrew Grieve Date: Thu, 6 Nov 2014 16:21:52 -0500 Subject: [PATCH] CB-7976 Android: Use webView's context rather than Activity's context for intent receiver --- src/android/NetworkManager.java | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/android/NetworkManager.java b/src/android/NetworkManager.java index 1b2656e..4c85dda 100755 --- a/src/android/NetworkManager.java +++ b/src/android/NetworkManager.java @@ -76,19 +76,11 @@ public class NetworkManager extends CordovaPlugin { private static final String LOG_TAG = "NetworkManager"; private CallbackContext connectionCallbackContext; - private boolean registered = false; ConnectivityManager sockMan; BroadcastReceiver receiver; private JSONObject lastInfo = null; - /** - * Constructor. - */ - public NetworkManager() { - this.receiver = null; - } - /** * Sets the context of the Command. This can then be used to do things like * get file paths associated with the Activity. @@ -113,8 +105,7 @@ public class NetworkManager extends CordovaPlugin { updateConnectionInfo(sockMan.getActiveNetworkInfo()); } }; - cordova.getActivity().registerReceiver(this.receiver, intentFilter); - this.registered = true; + webView.getContext().registerReceiver(this.receiver, intentFilter); } } @@ -148,12 +139,13 @@ public class NetworkManager extends CordovaPlugin { * Stop network receiver. */ public void onDestroy() { - if (this.receiver != null && this.registered) { + if (this.receiver != null) { try { - this.cordova.getActivity().unregisterReceiver(this.receiver); - this.registered = false; + webView.getContext().unregisterReceiver(this.receiver); } catch (Exception e) { Log.e(LOG_TAG, "Error unregistering network receiver: " + e.getMessage(), e); + } finally { + receiver = null; } } } @@ -273,4 +265,3 @@ public class NetworkManager extends CordovaPlugin { return TYPE_UNKNOWN; } } -