summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-08-16 00:55:51 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-08-16 00:55:51 +0000
commit4dda007c6a10d3fc03bce331af0030b5ae364a4b (patch)
tree6e6de4c259a52a57cea652d77bd5f335ad7d3af3
parentdc6026ee43ec8faa6e56d619e4f602cd0b9480ac (diff)
parenta1922b138dcd9153169417631cf61d5131ee51c1 (diff)
Merge "WifiDisplayController: Retrieve WifiP2pManager lazily"
-rw-r--r--services/core/java/com/android/server/display/WifiDisplayController.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/display/WifiDisplayController.java b/services/core/java/com/android/server/display/WifiDisplayController.java
index fc59b5b0ffec..d9d46b8d1f3b 100644
--- a/services/core/java/com/android/server/display/WifiDisplayController.java
+++ b/services/core/java/com/android/server/display/WifiDisplayController.java
@@ -94,8 +94,8 @@ final class WifiDisplayController implements DumpUtils.Dump {
private final Handler mHandler;
private final Listener mListener;
- private final WifiP2pManager mWifiP2pManager;
- private final Channel mWifiP2pChannel;
+ private WifiP2pManager mWifiP2pManager;
+ private Channel mWifiP2pChannel;
private boolean mWifiP2pEnabled;
private boolean mWfdEnabled;
@@ -164,9 +164,6 @@ final class WifiDisplayController implements DumpUtils.Dump {
mHandler = handler;
mListener = listener;
- mWifiP2pManager = (WifiP2pManager)context.getSystemService(Context.WIFI_P2P_SERVICE);
- mWifiP2pChannel = mWifiP2pManager.initialize(context, handler.getLooper(), null);
-
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
intentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
@@ -191,6 +188,18 @@ final class WifiDisplayController implements DumpUtils.Dump {
updateSettings();
}
+ /**
+ * Used to lazily retrieve WifiP2pManager service.
+ */
+ private void retrieveWifiP2pManagerAndChannel() {
+ if (mWifiP2pManager == null) {
+ mWifiP2pManager = (WifiP2pManager)mContext.getSystemService(Context.WIFI_P2P_SERVICE);
+ }
+ if (mWifiP2pChannel == null && mWifiP2pManager != null) {
+ mWifiP2pChannel = mWifiP2pManager.initialize(mContext, mHandler.getLooper(), null);
+ }
+ }
+
private void updateSettings() {
final ContentResolver resolver = mContext.getContentResolver();
mWifiDisplayOnSetting = Settings.Global.getInt(resolver,
@@ -803,6 +812,9 @@ final class WifiDisplayController implements DumpUtils.Dump {
private void handleStateChanged(boolean enabled) {
mWifiP2pEnabled = enabled;
+ if (enabled) {
+ retrieveWifiP2pManagerAndChannel();
+ }
updateWfdEnableState();
}