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

Commit a2297dc1 authored by Quang Luong's avatar Quang Luong
Browse files

Add SSID to Network Details page for Passpoint

Added SSID to Network Details page under the Advanced portion only
when the network is for Passpoint, whose network title is not the
SSID of the underlying connected AP.

Bug: 129092023
Test: atest RunSettingsRoboTests

Change-Id: I13308d46e727fc01fec7a079d8e32ab9f1763e21
parent 533d8b6b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2284,6 +2284,8 @@
    </plurals>
    <!-- Wi-Fi settings screen, advanced, settings section.  This is a header shown above advanced wifi settings. [CHAR LIMIT=30] -->
    <string name="wifi_advanced_titlebar">Advanced Wi\u2011Fi</string>
    <!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's SSID. [CHAR LIMIT=20] -->
    <string name="wifi_advanced_ssid_title">SSID</string>
    <!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's MAC address. -->
    <string name="wifi_advanced_mac_address_title">MAC address</string>
    <!-- Title of the screen to adjust IP settings -->
+5 −0
Original line number Diff line number Diff line
@@ -84,6 +84,11 @@
    <PreferenceCategory
            android:key="ip_details_category"
            android:title="@string/wifi_setup_detail">
        <Preference
                android:key="ssid"
                android:title="@string/wifi_advanced_ssid_title"
                android:selectable="false"
                settings:enableCopying="true"/>
        <Preference
                android:key="mac_address"
                android:title="@string/wifi_advanced_mac_address_title"
+15 −0
Original line number Diff line number Diff line
@@ -115,6 +115,8 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
    @VisibleForTesting
    static final String KEY_SECURITY_PREF = "security";
    @VisibleForTesting
    static final String KEY_SSID_PREF = "ssid";
    @VisibleForTesting
    static final String KEY_MAC_ADDRESS_PREF = "mac_address";
    @VisibleForTesting
    static final String KEY_IP_ADDRESS_PREF = "ip_address";
@@ -170,6 +172,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
    private Preference mRxLinkSpeedPref;
    private Preference mFrequencyPref;
    private Preference mSecurityPref;
    private Preference mSsidPref;
    private Preference mMacAddressPref;
    private Preference mIpAddressPref;
    private Preference mGatewayPref;
@@ -399,6 +402,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
        mFrequencyPref = screen.findPreference(KEY_FREQUENCY_PREF);
        mSecurityPref = screen.findPreference(KEY_SECURITY_PREF);

        mSsidPref = screen.findPreference(KEY_SSID_PREF);
        mMacAddressPref = screen.findPreference(KEY_MAC_ADDRESS_PREF);
        mIpAddressPref = screen.findPreference(KEY_IP_ADDRESS_PREF);
        mGatewayPref = screen.findPreference(KEY_GATEWAY_PREF);
@@ -497,6 +501,8 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
        refreshRxSpeed();
        // IP related information
        refreshIpLayerInfo();
        // SSID Pref
        refreshSsid();
        // MAC Address Pref
        refreshMacAddress();
    }
@@ -645,6 +651,15 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
                R.string.rx_link_speed, mWifiInfo.getRxLinkSpeedMbps()));
    }

    private void refreshSsid() {
        if (mAccessPoint.isPasspoint() || mAccessPoint.isOsuProvider()) {
            mSsidPref.setVisible(true);
            mSsidPref.setSummary(mAccessPoint.getSsidStr());
        } else {
            mSsidPref.setVisible(false);
        }
    }

    private void refreshMacAddress() {
        String macAddress = getMacAddress();
        if (macAddress == null) {
+50 −0
Original line number Diff line number Diff line
@@ -105,6 +105,7 @@ public class WifiDetailPreferenceControllerTest {
    private static final int RSSI = -55;
    private static final int TX_LINK_SPEED = 123;
    private static final int RX_LINK_SPEED = 54;
    private static final String SSID = "ssid";
    private static final String MAC_ADDRESS = WifiInfo.DEFAULT_MAC_ADDRESS;
    private static final String SECURITY = "None";

@@ -154,6 +155,8 @@ public class WifiDetailPreferenceControllerTest {
    @Mock
    private Preference mockSecurityPref;
    @Mock
    private Preference mockSsidPref;
    @Mock
    private Preference mockMacAddressPref;
    @Mock
    private Preference mockIpAddressPref;
@@ -245,6 +248,7 @@ public class WifiDetailPreferenceControllerTest {
        when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
        when(mockAccessPoint.getLevel()).thenReturn(LEVEL);
        when(mockAccessPoint.getSecurityString(false)).thenReturn(SECURITY);
        when(mockAccessPoint.getSsidStr()).thenReturn(SSID);
        when(mockConnectivityManager.getNetworkInfo(any(Network.class)))
                .thenReturn(mockNetworkInfo);
        doNothing().when(mockConnectivityManager).registerNetworkCallback(
@@ -314,6 +318,8 @@ public class WifiDetailPreferenceControllerTest {
                .thenReturn(mockFrequencyPref);
        when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_SECURITY_PREF))
                .thenReturn(mockSecurityPref);
        when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_SSID_PREF))
                .thenReturn(mockSsidPref);
        when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_MAC_ADDRESS_PREF))
                .thenReturn(mockMacAddressPref);
        when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_IP_ADDRESS_PREF))
@@ -462,6 +468,50 @@ public class WifiDetailPreferenceControllerTest {
        verify(mockRxLinkSpeedPref).setVisible(false);
    }

    @Test
    public void ssidPref_shouldHaveDetailTextSet() {
        when(mockAccessPoint.isPasspoint()).thenReturn(true);
        when(mockAccessPoint.isOsuProvider()).thenReturn(false);

        displayAndResume();

        verify(mockSsidPref, times(1)).setSummary(SSID);

        when(mockAccessPoint.isPasspoint()).thenReturn(false);
        when(mockAccessPoint.isOsuProvider()).thenReturn(true);

        displayAndResume();

        verify(mockSsidPref, times(2)).setSummary(SSID);
    }

    @Test
    public void ssidPref_shouldShowIfPasspointOrOsu() {
        when(mockAccessPoint.isPasspoint()).thenReturn(true);
        when(mockAccessPoint.isOsuProvider()).thenReturn(false);

        displayAndResume();

        verify(mockSsidPref, times(1)).setVisible(true);

        when(mockAccessPoint.isPasspoint()).thenReturn(false);
        when(mockAccessPoint.isOsuProvider()).thenReturn(true);

        displayAndResume();

        verify(mockSsidPref, times(2)).setVisible(true);
    }

    @Test
    public void ssidPref_shouldNotShowIfNotPasspoint() {
        when(mockAccessPoint.isPasspoint()).thenReturn(false);
        when(mockAccessPoint.isOsuProvider()).thenReturn(false);

        displayAndResume();

        verify(mockSsidPref).setVisible(false);
    }

    @Test
    public void macAddressPref_shouldHaveDetailTextSet() {
        displayAndResume();