Loading src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +13 −6 Original line number Diff line number Diff line Loading @@ -392,12 +392,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle mButtonsPref.setButton2Text(R.string.wifi_venue_website_button_text) .setButton2Icon(R.drawable.ic_settings_sign_in) .setButton2OnClickListener(view -> { final Intent infoIntent = new Intent(Intent.ACTION_VIEW); infoIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); infoIntent.setData(venueInfoUrl); mContext.startActivity(infoIntent); }); .setButton2OnClickListener(view -> launchCaptivePortal(venueInfoUrl)); // Only show the venue website when the network is connected. return mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED; } Loading @@ -414,6 +409,18 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle return data.getVenueInfoUrl(); } @VisibleForTesting void launchCaptivePortal(Uri uri) { if (uri == null) { Log.e(TAG, "Launch captive portal with a null Uri!"); return; } final Intent infoIntent = new Intent(Intent.ACTION_VIEW); infoIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); infoIntent.setData(uri); mContext.startActivity(infoIntent); } private void setupEntityHeader(PreferenceScreen screen) { LayoutPreference headerPref = screen.findPreference(KEY_HEADER); Loading tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java +19 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ public class WifiDetailPreferenceController2Test { private static final String FACTORY_MAC_ADDRESS = "FACTORY_MAC_ADDRESS"; private static final String SECURITY = "None"; private static final String FQDN = "fqdn"; private static final Uri TEST_URI = Uri.parse("content://test/test"); @Mock(answer = Answers.RETURNS_DEEP_STUBS) private PreferenceScreen mMockScreen; Loading Loading @@ -1876,6 +1877,24 @@ public class WifiDetailPreferenceController2Test { verify(mMockSignalStrengthPref).setTitle(R.string.hotspot_connection_strength); } @Test public void launchCaptivePortal_uriNull_doNothing() { setUpSpyController(); mController.launchCaptivePortal(null); verify(mContext, never()).startActivity(any()); } @Test public void launchCaptivePortal_uriNotNull_startActivity() { setUpSpyController(); mController.launchCaptivePortal(TEST_URI); verify(mContext).startActivity(any()); } private SubscriptionInfo mockSubscriptionInfo(int subId, String displayName, int carrierId) { SubscriptionInfo info = mock(SubscriptionInfo.class); when(info.getSubscriptionId()).thenReturn(subId); Loading Loading
src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +13 −6 Original line number Diff line number Diff line Loading @@ -392,12 +392,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle mButtonsPref.setButton2Text(R.string.wifi_venue_website_button_text) .setButton2Icon(R.drawable.ic_settings_sign_in) .setButton2OnClickListener(view -> { final Intent infoIntent = new Intent(Intent.ACTION_VIEW); infoIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); infoIntent.setData(venueInfoUrl); mContext.startActivity(infoIntent); }); .setButton2OnClickListener(view -> launchCaptivePortal(venueInfoUrl)); // Only show the venue website when the network is connected. return mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED; } Loading @@ -414,6 +409,18 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle return data.getVenueInfoUrl(); } @VisibleForTesting void launchCaptivePortal(Uri uri) { if (uri == null) { Log.e(TAG, "Launch captive portal with a null Uri!"); return; } final Intent infoIntent = new Intent(Intent.ACTION_VIEW); infoIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); infoIntent.setData(uri); mContext.startActivity(infoIntent); } private void setupEntityHeader(PreferenceScreen screen) { LayoutPreference headerPref = screen.findPreference(KEY_HEADER); Loading
tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java +19 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ public class WifiDetailPreferenceController2Test { private static final String FACTORY_MAC_ADDRESS = "FACTORY_MAC_ADDRESS"; private static final String SECURITY = "None"; private static final String FQDN = "fqdn"; private static final Uri TEST_URI = Uri.parse("content://test/test"); @Mock(answer = Answers.RETURNS_DEEP_STUBS) private PreferenceScreen mMockScreen; Loading Loading @@ -1876,6 +1877,24 @@ public class WifiDetailPreferenceController2Test { verify(mMockSignalStrengthPref).setTitle(R.string.hotspot_connection_strength); } @Test public void launchCaptivePortal_uriNull_doNothing() { setUpSpyController(); mController.launchCaptivePortal(null); verify(mContext, never()).startActivity(any()); } @Test public void launchCaptivePortal_uriNotNull_startActivity() { setUpSpyController(); mController.launchCaptivePortal(TEST_URI); verify(mContext).startActivity(any()); } private SubscriptionInfo mockSubscriptionInfo(int subId, String displayName, int carrierId) { SubscriptionInfo info = mock(SubscriptionInfo.class); when(info.getSubscriptionId()).thenReturn(subId); Loading