diff options
| author | 2019-08-16 00:55:51 +0000 | |
|---|---|---|
| committer | 2019-08-16 00:55:51 +0000 | |
| commit | 4dda007c6a10d3fc03bce331af0030b5ae364a4b (patch) | |
| tree | 6e6de4c259a52a57cea652d77bd5f335ad7d3af3 | |
| parent | dc6026ee43ec8faa6e56d619e4f602cd0b9480ac (diff) | |
| parent | a1922b138dcd9153169417631cf61d5131ee51c1 (diff) | |
Merge "WifiDisplayController: Retrieve WifiP2pManager lazily"
| -rw-r--r-- | services/core/java/com/android/server/display/WifiDisplayController.java | 22 |
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(); } |