From 2b35b512e336a54e32b6a379f2429876b3d1f647 Mon Sep 17 00:00:00 2001 From: Eric Schwarzenbach Date: Tue, 29 Aug 2017 16:47:17 -0700 Subject: [PATCH] Change AccessPointPreference key generation to match AccessPoint. AccessPointPreference now uses SSID + security to determine preference key, which matches the way WifiTracker groups scan results. This prevents mismatches between WifiSettings and WifiTracker. Bug: 64887518 Test: make -40 RunSettingsLibRoboTests Change-Id: I021a266cbb1037b7ac82efc72f0670088a521640 --- .../settingslib/wifi/AccessPointPreference.java | 6 +++--- .../settingslib/wifi/AccessPointPreferenceTest.java | 12 +++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java index 2c4f9c4321946..c24cdae2dca5c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java @@ -76,10 +76,10 @@ public class AccessPointPreference extends Preference { public static String generatePreferenceKey(AccessPoint accessPoint) { StringBuilder builder = new StringBuilder(); - if (TextUtils.isEmpty(accessPoint.getBssid())) { - builder.append(accessPoint.getSsidStr()); - } else { + if (TextUtils.isEmpty(accessPoint.getSsidStr())) { builder.append(accessPoint.getBssid()); + } else { + builder.append(accessPoint.getSsidStr()); } builder.append(',').append(accessPoint.getSecurity()); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java index 7fe69a73cb996..6cfdc28d54004 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java @@ -36,26 +36,28 @@ public class AccessPointPreferenceTest { private Context mContext = RuntimeEnvironment.application; @Test - public void generatePreferenceKey_shouldReturnSsidPlusSecurity() { + public void generatePreferenceKey_returnsSsidPlusSecurity() { String ssid = "ssid"; + String bssid = "00:00:00:00:00:00"; int security = AccessPoint.SECURITY_WEP; String expectedKey = ssid + ',' + security; TestAccessPointBuilder builder = new TestAccessPointBuilder(mContext); - builder.setSsid(ssid).setSecurity(security); + builder.setBssid(bssid).setSsid(ssid).setSecurity(security); assertThat(AccessPointPreference.generatePreferenceKey(builder.build())) .isEqualTo(expectedKey); } @Test - public void generatePreferenceKey_shouldReturnBssidPlusSecurity() { - String bssid = "bssid"; + public void generatePreferenceKey_emptySsidReturnsBssidPlusSecurity() { + String ssid = ""; + String bssid = "00:00:00:00:00:00"; int security = AccessPoint.SECURITY_WEP; String expectedKey = bssid + ',' + security; TestAccessPointBuilder builder = new TestAccessPointBuilder(mContext); - builder.setBssid(bssid).setSecurity(security); + builder.setBssid(bssid).setSsid(ssid).setSecurity(security); assertThat(AccessPointPreference.generatePreferenceKey(builder.build())) .isEqualTo(expectedKey);