diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 1ce214b4b15..357b9c781b9 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -40,8 +40,10 @@ import android.os.HandlerThread; import android.os.Process; import android.provider.Settings; import android.support.v7.preference.Preference; +import android.support.v7.preference.PreferenceManager; import android.support.v7.preference.PreferenceViewHolder; import android.text.Spannable; +import android.text.TextUtils; import android.text.style.TextAppearanceSpan; import android.util.Log; import android.view.ContextMenu; @@ -169,6 +171,8 @@ public class WifiSettings extends RestrictedSettingsFragment @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); + getPreferenceManager().setPreferenceComparisonCallback( + new PreferenceManager.SimplePreferenceComparisonCallback()); addPreferencesFromResource(R.xml.wifi_settings); mAddPreference = new Preference(getContext()); mAddPreference.setIcon(R.drawable.ic_menu_add_inset); @@ -611,7 +615,6 @@ public class WifiSettings extends RestrictedSettingsFragment // AccessPoints are automatically sorted with TreeSet. final Collection accessPoints = mWifiTracker.getAccessPoints(); - getPreferenceScreen().removeAll(); boolean hasAvailableAccessPoints = false; int index = 0; @@ -620,6 +623,9 @@ public class WifiSettings extends RestrictedSettingsFragment // Ignore access points that are out of range. if (accessPoint.getLevel() != -1) { String key = accessPoint.getBssid(); + if (TextUtils.isEmpty(key)) { + key = accessPoint.getSsidStr(); + } hasAvailableAccessPoints = true; LongPressAccessPointPreference pref = (LongPressAccessPointPreference) getCachedPreference(key);