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
This commit is contained in:
Quang Luong
2019-03-21 16:37:55 -07:00
parent 533d8b6b9d
commit a2297dc1d1
4 changed files with 72 additions and 0 deletions

View File

@@ -2284,6 +2284,8 @@
</plurals> </plurals>
<!-- Wi-Fi settings screen, advanced, settings section. This is a header shown above advanced wifi settings. [CHAR LIMIT=30] --> <!-- 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> <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. --> <!-- 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> <string name="wifi_advanced_mac_address_title">MAC address</string>
<!-- Title of the screen to adjust IP settings --> <!-- Title of the screen to adjust IP settings -->

View File

@@ -84,6 +84,11 @@
<PreferenceCategory <PreferenceCategory
android:key="ip_details_category" android:key="ip_details_category"
android:title="@string/wifi_setup_detail"> android:title="@string/wifi_setup_detail">
<Preference
android:key="ssid"
android:title="@string/wifi_advanced_ssid_title"
android:selectable="false"
settings:enableCopying="true"/>
<Preference <Preference
android:key="mac_address" android:key="mac_address"
android:title="@string/wifi_advanced_mac_address_title" android:title="@string/wifi_advanced_mac_address_title"

View File

@@ -115,6 +115,8 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
@VisibleForTesting @VisibleForTesting
static final String KEY_SECURITY_PREF = "security"; static final String KEY_SECURITY_PREF = "security";
@VisibleForTesting @VisibleForTesting
static final String KEY_SSID_PREF = "ssid";
@VisibleForTesting
static final String KEY_MAC_ADDRESS_PREF = "mac_address"; static final String KEY_MAC_ADDRESS_PREF = "mac_address";
@VisibleForTesting @VisibleForTesting
static final String KEY_IP_ADDRESS_PREF = "ip_address"; static final String KEY_IP_ADDRESS_PREF = "ip_address";
@@ -170,6 +172,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
private Preference mRxLinkSpeedPref; private Preference mRxLinkSpeedPref;
private Preference mFrequencyPref; private Preference mFrequencyPref;
private Preference mSecurityPref; private Preference mSecurityPref;
private Preference mSsidPref;
private Preference mMacAddressPref; private Preference mMacAddressPref;
private Preference mIpAddressPref; private Preference mIpAddressPref;
private Preference mGatewayPref; private Preference mGatewayPref;
@@ -399,6 +402,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
mFrequencyPref = screen.findPreference(KEY_FREQUENCY_PREF); mFrequencyPref = screen.findPreference(KEY_FREQUENCY_PREF);
mSecurityPref = screen.findPreference(KEY_SECURITY_PREF); mSecurityPref = screen.findPreference(KEY_SECURITY_PREF);
mSsidPref = screen.findPreference(KEY_SSID_PREF);
mMacAddressPref = screen.findPreference(KEY_MAC_ADDRESS_PREF); mMacAddressPref = screen.findPreference(KEY_MAC_ADDRESS_PREF);
mIpAddressPref = screen.findPreference(KEY_IP_ADDRESS_PREF); mIpAddressPref = screen.findPreference(KEY_IP_ADDRESS_PREF);
mGatewayPref = screen.findPreference(KEY_GATEWAY_PREF); mGatewayPref = screen.findPreference(KEY_GATEWAY_PREF);
@@ -497,6 +501,8 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
refreshRxSpeed(); refreshRxSpeed();
// IP related information // IP related information
refreshIpLayerInfo(); refreshIpLayerInfo();
// SSID Pref
refreshSsid();
// MAC Address Pref // MAC Address Pref
refreshMacAddress(); refreshMacAddress();
} }
@@ -645,6 +651,15 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
R.string.rx_link_speed, mWifiInfo.getRxLinkSpeedMbps())); 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() { private void refreshMacAddress() {
String macAddress = getMacAddress(); String macAddress = getMacAddress();
if (macAddress == null) { if (macAddress == null) {

View File

@@ -105,6 +105,7 @@ public class WifiDetailPreferenceControllerTest {
private static final int RSSI = -55; private static final int RSSI = -55;
private static final int TX_LINK_SPEED = 123; private static final int TX_LINK_SPEED = 123;
private static final int RX_LINK_SPEED = 54; 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 MAC_ADDRESS = WifiInfo.DEFAULT_MAC_ADDRESS;
private static final String SECURITY = "None"; private static final String SECURITY = "None";
@@ -154,6 +155,8 @@ public class WifiDetailPreferenceControllerTest {
@Mock @Mock
private Preference mockSecurityPref; private Preference mockSecurityPref;
@Mock @Mock
private Preference mockSsidPref;
@Mock
private Preference mockMacAddressPref; private Preference mockMacAddressPref;
@Mock @Mock
private Preference mockIpAddressPref; private Preference mockIpAddressPref;
@@ -245,6 +248,7 @@ public class WifiDetailPreferenceControllerTest {
when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig); when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
when(mockAccessPoint.getLevel()).thenReturn(LEVEL); when(mockAccessPoint.getLevel()).thenReturn(LEVEL);
when(mockAccessPoint.getSecurityString(false)).thenReturn(SECURITY); when(mockAccessPoint.getSecurityString(false)).thenReturn(SECURITY);
when(mockAccessPoint.getSsidStr()).thenReturn(SSID);
when(mockConnectivityManager.getNetworkInfo(any(Network.class))) when(mockConnectivityManager.getNetworkInfo(any(Network.class)))
.thenReturn(mockNetworkInfo); .thenReturn(mockNetworkInfo);
doNothing().when(mockConnectivityManager).registerNetworkCallback( doNothing().when(mockConnectivityManager).registerNetworkCallback(
@@ -314,6 +318,8 @@ public class WifiDetailPreferenceControllerTest {
.thenReturn(mockFrequencyPref); .thenReturn(mockFrequencyPref);
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_SECURITY_PREF)) when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_SECURITY_PREF))
.thenReturn(mockSecurityPref); .thenReturn(mockSecurityPref);
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_SSID_PREF))
.thenReturn(mockSsidPref);
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_MAC_ADDRESS_PREF)) when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_MAC_ADDRESS_PREF))
.thenReturn(mockMacAddressPref); .thenReturn(mockMacAddressPref);
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_IP_ADDRESS_PREF)) when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_IP_ADDRESS_PREF))
@@ -462,6 +468,50 @@ public class WifiDetailPreferenceControllerTest {
verify(mockRxLinkSpeedPref).setVisible(false); 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 @Test
public void macAddressPref_shouldHaveDetailTextSet() { public void macAddressPref_shouldHaveDetailTextSet() {
displayAndResume(); displayAndResume();