diff --git a/res/values/strings.xml b/res/values/strings.xml index c3d525609b3..a12c22ccd8d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2268,6 +2268,8 @@ Device MAC address Randomized MAC address + + Randomized MAC address (last used) IP address diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java index 9676f5898ff..a2b143ea516 100644 --- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java @@ -738,10 +738,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle } mMacAddressPref.setVisible(true); - - mMacAddressPref.setTitle((mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC) - ? R.string.wifi_advanced_randomized_mac_address_title - : R.string.wifi_advanced_device_mac_address_title); + mMacAddressPref.setTitle(getMacAddressTitle()); if (macAddress.equals(WifiInfo.DEFAULT_MAC_ADDRESS)) { mMacAddressPref.setSummary(R.string.device_info_not_available); @@ -750,6 +747,15 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle } } + private int getMacAddressTitle() { + if (mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC) { + return mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED + ? R.string.wifi_advanced_randomized_mac_address_title + : R.string.wifi_advanced_randomized_mac_address_disconnected_title; + } + return R.string.wifi_advanced_device_mac_address_title; + } + private void updatePreference(Preference pref, String detailText) { if (!TextUtils.isEmpty(detailText)) { pref.setSummary(detailText); diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java index 1f4254e4c4a..c5f2a7f5d92 100644 --- a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java @@ -814,6 +814,22 @@ public class WifiDetailPreferenceController2Test { verify(mMockMacAddressPref).setTitle(R.string.wifi_advanced_device_mac_address_title); } + @Test + public void macAddressPref_shouldVisibleAsRandomizedForConnectedNetwork() { + setUpForConnectedNetwork(); + setUpSpyController(); + when(mMockWifiEntry.isSaved()).thenReturn(true); + when(mMockWifiEntry.getPrivacy()).thenReturn(WifiEntry.PRIVACY_RANDOMIZED_MAC); + when(mMockWifiEntry.getMacAddress()).thenReturn(RANDOMIZED_MAC_ADDRESS); + + displayAndResume(); + + verify(mMockMacAddressPref).setVisible(true); + verify(mMockMacAddressPref).setSummary(RANDOMIZED_MAC_ADDRESS); + verify(mMockMacAddressPref).setTitle( + R.string.wifi_advanced_randomized_mac_address_title); + } + @Test public void macAddressPref_shouldVisibleAsRandomizedForDisconnectedNetwork() { setUpForDisconnectedNetwork(); @@ -825,7 +841,8 @@ public class WifiDetailPreferenceController2Test { verify(mMockMacAddressPref).setVisible(true); verify(mMockMacAddressPref).setSummary(RANDOMIZED_MAC_ADDRESS); - verify(mMockMacAddressPref).setTitle(R.string.wifi_advanced_randomized_mac_address_title); + verify(mMockMacAddressPref).setTitle( + R.string.wifi_advanced_randomized_mac_address_disconnected_title); } @Test