diff options
author | Irfan Sheriff <isheriff@google.com> | 2010-11-24 07:36:32 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-11-24 07:36:32 -0800 |
commit | f48945a7aeaaea3a570f9429a32111e19541b3b1 (patch) | |
tree | 1de675e2f6ac982ffac74cda5c73bc7928a1ceda | |
parent | 5cc45764330ca4e4bd2953cefb9f572e41caa7b3 (diff) | |
parent | 52727dd1fbca7612c2179b50689cd77f8f939b1a (diff) | |
download | packages_apps_settings-f48945a7aeaaea3a570f9429a32111e19541b3b1.zip packages_apps_settings-f48945a7aeaaea3a570f9429a32111e19541b3b1.tar.gz packages_apps_settings-f48945a7aeaaea3a570f9429a32111e19541b3b1.tar.bz2 |
Merge "Restore compareTo behavior of access point list"
-rw-r--r-- | src/com/android/settings/wifi/AccessPoint.java | 54 | ||||
-rw-r--r-- | src/com/android/settings/wifi/WifiSettings.java | 7 |
2 files changed, 30 insertions, 31 deletions
diff --git a/src/com/android/settings/wifi/AccessPoint.java b/src/com/android/settings/wifi/AccessPoint.java index c932978..774ac58 100644 --- a/src/com/android/settings/wifi/AccessPoint.java +++ b/src/com/android/settings/wifi/AccessPoint.java @@ -35,33 +35,6 @@ class AccessPoint extends Preference { private static final int[] STATE_SECURED = {R.attr.state_encrypted}; private static final int[] STATE_NONE = {}; - public static final class Comparater - implements Comparator<AccessPoint> { - @Override - public int compare(AccessPoint accessPoint1, AccessPoint accessPoint2) { - // Active one goes first. - if (accessPoint1.mInfo != accessPoint2.mInfo) { - return (accessPoint1.mInfo != null) ? -1 : 1; - } - - // Reachable one goes before unreachable one. - if ((accessPoint1.mRssi ^ accessPoint2.mRssi) < 0) { - return (accessPoint1.mRssi != Integer.MAX_VALUE) ? -1 : 1; - } - // Configured one goes before unconfigured one. - if ((accessPoint1.networkId ^ accessPoint2.networkId) < 0) { - return (accessPoint1.networkId != -1) ? -1 : 1; - } - // Sort by signal strength. - int difference = WifiManager.compareSignalLevel( - accessPoint2.mRssi, accessPoint1.mRssi); - if (difference != 0) { - return difference; - } - // Sort by ssid. - return accessPoint1.ssid.compareToIgnoreCase(accessPoint2.ssid); - } - } static final int SECURITY_NONE = 0; static final int SECURITY_WEP = 1; @@ -140,6 +113,33 @@ class AccessPoint extends Preference { super.onBindView(view); } + @Override + public int compareTo(Preference preference) { + if (!(preference instanceof AccessPoint)) { + return 1; + } + AccessPoint other = (AccessPoint) preference; + // Active one goes first. + if (mInfo != other.mInfo) { + return (mInfo != null) ? -1 : 1; + } + // Reachable one goes before unreachable one. + if ((mRssi ^ other.mRssi) < 0) { + return (mRssi != Integer.MAX_VALUE) ? -1 : 1; + } + // Configured one goes before unconfigured one. + if ((networkId ^ other.networkId) < 0) { + return (networkId != -1) ? -1 : 1; + } + // Sort by signal strength. + int difference = WifiManager.compareSignalLevel(other.mRssi, mRssi); + if (difference != 0) { + return difference; + } + // Sort by ssid. + return ssid.compareToIgnoreCase(other.ssid); + } + boolean update(ScanResult result) { // We do not call refresh() since this is called before onBindView(). diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 1f7a1da..fefbdfc 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -56,9 +56,9 @@ import android.view.View; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.Toast; +import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.TreeSet; /** * This currently provides three types of UI. @@ -184,7 +184,7 @@ public class WifiSettings extends SettingsPreferenceFragment final ProgressCategoryBase preference = (ProgressCategoryBase) findPreference("access_points"); mAccessPoints = preference; - mAccessPoints.setOrderingAsAdded(true); + mAccessPoints.setOrderingAsAdded(false); mAddNetwork = findPreference("add_network"); registerForContextMenu(getListView()); @@ -379,8 +379,7 @@ public class WifiSettings extends SettingsPreferenceFragment } private Collection<AccessPoint> constructAccessPoints() { - Collection<AccessPoint> accessPoints = - new TreeSet<AccessPoint>(new AccessPoint.Comparater()); + Collection<AccessPoint> accessPoints = new ArrayList<AccessPoint>(); final List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks(); if (configs != null) { |