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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -168,6 +168,21 @@ public class AccessPointTest {
|
||||
assertSortingWorks(firstAp, secondAp);
|
||||
}
|
||||
|
||||
@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() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user