From 78a0f6f98ebbb54a4aae4003b608c473683d5e25 Mon Sep 17 00:00:00 2001 From: Jimmy Chen Date: Wed, 23 Feb 2022 16:12:01 +0800 Subject: [PATCH] p2p: Close the channel when onStop is called. P2P dialog is moved to an indenpendent activity, it will push Settings to background and trigger onPause(). As P2P dialog is a Dialog Activity, it won't trigger onStop, but SoftAp and NAN activity will. Moving channel closing to onStop to adapt to new P2P dialog design. Bug: 219406778 Test: make RunSettingsRoboTests ROBOTEST_FILTER=WifiP2pSettingsTest create a p2p connection between 2 devices with this build. Change-Id: I2fab5aa1021ec1a993f811c7310079db9d7f03c0 --- src/com/android/settings/wifi/p2p/WifiP2pSettings.java | 9 ++++++++- .../android/settings/wifi/p2p/WifiP2pSettingsTest.java | 9 +++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java index a926360bd9e..404cdd31a66 100644 --- a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java +++ b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java @@ -375,13 +375,20 @@ public class WifiP2pSettings extends DashboardFragment super.onPause(); if (mWifiP2pManager != null && mChannel != null) { mWifiP2pManager.stopPeerDiscovery(mChannel, null); + } + getActivity().unregisterReceiver(mReceiver); + } + + @Override + public void onStop() { + super.onStop(); + if (mWifiP2pManager != null && mChannel != null) { if (!mLastGroupFormed) { // Close the channel when p2p doesn't connected. mChannel.close(); mChannel = null; } } - getActivity().unregisterReceiver(mReceiver); } @Override diff --git a/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java index 332cf14c40c..448c109388b 100644 --- a/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java @@ -319,12 +319,18 @@ public class WifiP2pSettingsTest { assertThat(mFragment.onCreateDialog(-1 /* id */)).isNull(); } + @Test + public void onStop_notLastGroupFormed_shouldCloseChannel() { + mFragment.onStop(); + + assertThat(mFragment.mChannel).isNull(); + } + @Test public void peerDiscovery_whenOnPause_shouldStop() { mFragment.onPause(); verify(mWifiP2pManager, times(1)).stopPeerDiscovery(any(), any()); - assertThat(mFragment.mChannel).isNull(); } @Test @@ -332,7 +338,6 @@ public class WifiP2pSettingsTest { mFragment.onPause(); verify(mWifiP2pManager, times(1)).stopPeerDiscovery(any(), any()); - assertThat(mFragment.mChannel).isNull(); mFragment.onResume(); assertThat(mFragment.mChannel).isNotNull();