From 32924e2f58625301fbb95adb5e1c9d54f97cc1d5 Mon Sep 17 00:00:00 2001 From: Amin Shaikh Date: Mon, 27 Mar 2017 18:07:46 -0700 Subject: [PATCH] Use Collator to sort saved networks. Bug: 36570745 Test: m RunSettingsRoboTests && manually checking Saved networks Change-Id: I58bfc07c8456746bba88bffdc9c6c7df8650e012 (cherry picked from commit 0c0fc19aef603470fc42ca33771e57c3656510eb) --- .../wifi/SavedAccessPointsWifiSettings.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java index b8fb07d41f0..b9ffcaf8166 100644 --- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java +++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java @@ -19,6 +19,7 @@ package com.android.settings.wifi; import android.app.Dialog; import android.content.Context; import android.content.res.Resources; +import android.icu.text.Collator; import android.net.wifi.WifiManager; import android.os.Bundle; import android.provider.SearchIndexableResource; @@ -49,6 +50,19 @@ import java.util.List; public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment implements Indexable, WifiDialog.WifiDialogListener { private static final String TAG = "SavedAccessPointsWifiSettings"; + private static final Comparator SAVED_NETWORK_COMPARATOR = + new Comparator() { + final Collator mCollator = Collator.getInstance(); + @Override + public int compare(AccessPoint ap1, AccessPoint ap2) { + return mCollator.compare( + nullToEmpty(ap1.getConfigName()), nullToEmpty(ap2.getConfigName())); + } + + private String nullToEmpty(String string) { + return (string == null) ? "" : string; + } + }; private WifiDialog mDialog; private WifiManager mWifiManager; @@ -98,15 +112,7 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment final List accessPoints = WifiTracker.getCurrentAccessPoints(context, true, false, true); - Collections.sort(accessPoints, new Comparator() { - public int compare(AccessPoint ap1, AccessPoint ap2) { - if (ap1.getConfigName() != null) { - return ap1.getConfigName().compareToIgnoreCase(ap2.getConfigName()); - } else { - return -1; - } - } - }); + Collections.sort(accessPoints, SAVED_NETWORK_COMPARATOR); preferenceScreen.removeAll(); final int accessPointsSize = accessPoints.size();