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
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
index a926360..404cdd3 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
@@ -375,13 +375,20 @@
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 332cf14..448c109 100644
--- a/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java
@@ -320,11 +320,17 @@
}
@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 @@
mFragment.onPause();
verify(mWifiP2pManager, times(1)).stopPeerDiscovery(any(), any());
- assertThat(mFragment.mChannel).isNull();
mFragment.onResume();
assertThat(mFragment.mChannel).isNotNull();