Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16b98318 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Avoid launching captive portal pages when uri is empty" into main

parents 1e733f01 0256fe81
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -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;
    }
@@ -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);

+19 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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);