From 5c2637d6d0f34868fb3275078c4c0796841516ce Mon Sep 17 00:00:00 2001 From: clownshen Date: Mon, 1 Apr 2019 16:01:06 +0800 Subject: [PATCH] Only show Sign In button for connected network The Sign In button may appeared in details page for disconnected network if current network is Captive Portal network. Should hide the button for disconnected network. Bug: 129514576 Test: make RunSettingsRoboTests -j32 ROBOTEST_FILTER=com.android.settings.wifi.details.WifiDetailPreferenceControllerTest Test: manual test Change-Id: I8b4f79e7ba731ce83c49576fffd3e78a27598be3 --- .../WifiDetailPreferenceController.java | 2 +- .../WifiDetailPreferenceControllerTest.java | 22 ++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java index c0921fc9e40..13905c8abbe 100644 --- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java @@ -838,7 +838,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController * Returns whether the user can sign into the network represented by this preference. */ private boolean canSignIntoNetwork() { - return WifiUtils.canSignIntoNetwork(mNetworkCapabilities); + return mAccessPoint.isActive() && WifiUtils.canSignIntoNetwork(mNetworkCapabilities); } /** diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java index 307712e686b..2166e979131 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java @@ -1404,6 +1404,27 @@ public class WifiDetailPreferenceControllerTest { .action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_SIGNIN); } + @Test + public void testSignInButton_shouldHideSignInButtonForDisconnectedNetwork() { + setUpForDisconnectedNetwork(); + NetworkCapabilities nc = makeNetworkCapabilities(); + nc.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL); + when(mockConnectivityManager.getNetworkCapabilities(mockNetwork)) + .thenReturn(new NetworkCapabilities(nc)); + + // verify onResume + displayAndResume(); + + verify(mockButtonsPref, never()).setButton2Visible(true); + verify(mockButtonsPref).setButton2Visible(false); + + // verify onCapabilitiesChanged + updateNetworkCapabilities(nc); + + verify(mockButtonsPref, never()).setButton2Visible(true); + verify(mockButtonsPref).setButton2Visible(false); + } + @Test public void testRefreshRssiViews_shouldNotUpdateIfLevelIsSame() { displayAndResume(); @@ -1437,7 +1458,6 @@ public class WifiDetailPreferenceControllerTest { verify(mockSignalStrengthPref, times(2)).setVisible(false); } - private ActionButtonsPreference createMock() { final ActionButtonsPreference pref = mock(ActionButtonsPreference.class); when(pref.setButton1Text(anyInt())).thenReturn(pref);