diff options
| author | 2017-06-21 21:40:06 -0700 | |
|---|---|---|
| committer | 2017-06-21 21:51:11 -0700 | |
| commit | d44b8e4689f9ab1a36f9ba0c6e7756532b17596c (patch) | |
| tree | f6a5528556cb0b20cf3e04134b58aaf72872875f | |
| parent | 79c7a85d6059307ec56f19006e8c5cabb2f577ec (diff) | |
Add case sensitive sort to AccessPoint compareTo.
If APs differ only in case, further compare by case.
Bug: b/36719423
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
Change-Id: Ic36a2221a668fa59230bb0ddbee2055776d2dc44
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java | 9 | ||||
| -rw-r--r-- | packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java | 15 |
2 files changed, 23 insertions, 1 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java index 0f9b2ff4d5f2..994874ad376d 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java @@ -322,8 +322,15 @@ public class AccessPoint implements Comparable<AccessPoint> { if (difference != 0) { return difference; } + // Sort by ssid. - return getSsidStr().compareToIgnoreCase(other.getSsidStr()); + difference = getSsidStr().compareToIgnoreCase(other.getSsidStr()); + if (difference != 0) { + return difference; + } + + // Do a case sensitive comparison to distinguish SSIDs that differ in case only + return getSsidStr().compareTo(other.getSsidStr()); } @Override diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java index 72ac54421220..6fc7f1fcf0dd 100644 --- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java +++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java @@ -169,6 +169,21 @@ public class AccessPointTest { } @Test + public void testCompareTo_GivesSsidCasePrecendenceAfterAlphabetical() { + + final String firstName = "aaAaaa"; + final String secondName = "aaaaaa"; + final String thirdName = "BBBBBB"; + + AccessPoint firstAp = new TestAccessPointBuilder(mContext).setSsid(firstName).build(); + AccessPoint secondAp = new TestAccessPointBuilder(mContext).setSsid(secondName).build(); + AccessPoint thirdAp = new TestAccessPointBuilder(mContext).setSsid(thirdName).build(); + + assertSortingWorks(firstAp, secondAp); + assertSortingWorks(secondAp, thirdAp); + } + + @Test public void testCompareTo_AllSortingRulesCombined() { AccessPoint active = new TestAccessPointBuilder(mContext).setActive(true).build(); |