CB-7976 Android: Use webView's context rather than Activity's context for intent receiver
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,20 +76,12 @@
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 @@
updateConnectionInfo(sockMan.getActiveNetworkInfo());
}
};
- cordova.getActivity().registerReceiver(this.receiver, intentFilter);
- this.registered = true;
+ webView.getContext().registerReceiver(this.receiver, intentFilter);
}
}
@@ -148,12 +139,13 @@
* 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 @@
return TYPE_UNKNOWN;
}
}
-