Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d44b8e46 authored by Sundeep Ghuman's avatar Sundeep Ghuman
Browse files

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
parent 79c7a85d
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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
+15 −0
Original line number Diff line number Diff line
@@ -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() {