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();