summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sundeep Ghuman <sghuman@google.com> 2017-06-21 21:40:06 -0700
committer Sundeep Ghuman <sghuman@google.com> 2017-06-21 21:51:11 -0700
commitd44b8e4689f9ab1a36f9ba0c6e7756532b17596c (patch)
treef6a5528556cb0b20cf3e04134b58aaf72872875f
parent79c7a85d6059307ec56f19006e8c5cabb2f577ec (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.java9
-rw-r--r--packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java15
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();