Merge "wifi-display: use new getDisplays() method of WifiDisplayStatus"
diff --git a/src/com/android/settings/wfd/WifiDisplaySettings.java b/src/com/android/settings/wfd/WifiDisplaySettings.java
index 34d16d9..d04c3cb 100755
--- a/src/com/android/settings/wfd/WifiDisplaySettings.java
+++ b/src/com/android/settings/wfd/WifiDisplaySettings.java
@@ -207,8 +207,7 @@
         preferenceScreen.removeAll();
 
         if (featureState == WifiDisplayStatus.FEATURE_STATE_ON) {
-            final WifiDisplay[] pairedDisplays = mWifiDisplayStatus.getRememberedDisplays();
-            final WifiDisplay[] availableDisplays = mWifiDisplayStatus.getAvailableDisplays();
+            final WifiDisplay[] displays = mWifiDisplayStatus.getDisplays();
 
             if (mPairedDevicesCategory == null) {
                 mPairedDevicesCategory = new PreferenceCategory(getActivity());
@@ -218,13 +217,6 @@
             }
             preferenceScreen.addPreference(mPairedDevicesCategory);
 
-            for (WifiDisplay d : pairedDisplays) {
-                mPairedDevicesCategory.addPreference(createWifiDisplayPreference(d, true));
-            }
-            if (mPairedDevicesCategory.getPreferenceCount() == 0) {
-                preferenceScreen.removePreference(mPairedDevicesCategory);
-            }
-
             if (mAvailableDevicesCategory == null) {
                 mAvailableDevicesCategory = new ProgressCategory(getActivity(), null,
                         R.string.wifi_display_no_devices_found);
@@ -234,11 +226,16 @@
             }
             preferenceScreen.addPreference(mAvailableDevicesCategory);
 
-            for (WifiDisplay d : availableDisplays) {
-                if (!contains(pairedDisplays, d.getDeviceAddress())) {
-                    mAvailableDevicesCategory.addPreference(createWifiDisplayPreference(d, false));
+            for (WifiDisplay d : displays) {
+                if (d.isRemembered()) {
+                    mPairedDevicesCategory.addPreference(createWifiDisplayPreference(d));
+                } else if (d.isAvailable()){
+                    mAvailableDevicesCategory.addPreference(createWifiDisplayPreference(d));
                 }
             }
+            if (mPairedDevicesCategory.getPreferenceCount() == 0) {
+                preferenceScreen.removePreference(mPairedDevicesCategory);
+            }
             if (mWifiDisplayStatus.getScanState() == WifiDisplayStatus.SCAN_STATE_SCANNING) {
                 mAvailableDevicesCategory.setProgress(true);
             } else {
@@ -253,7 +250,7 @@
         getActivity().invalidateOptionsMenu();
     }
 
-    private Preference createWifiDisplayPreference(final WifiDisplay d, boolean paired) {
+    private Preference createWifiDisplayPreference(final WifiDisplay d) {
         WifiDisplayPreference p = new WifiDisplayPreference(getActivity(), d);
         if (d.equals(mWifiDisplayStatus.getActiveDisplay())) {
             switch (mWifiDisplayStatus.getActiveDisplayState()) {
@@ -264,22 +261,15 @@
                     p.setSummary(R.string.wifi_display_status_connecting);
                     break;
             }
-        } else if (paired && contains(mWifiDisplayStatus.getAvailableDisplays(),
-                d.getDeviceAddress())) {
-            p.setSummary(R.string.wifi_display_status_available);
-            for (WifiDisplay display : mWifiDisplayStatus.getAvailableDisplays()) {
-                if (display.getDeviceAddress().equals(d.getDeviceAddress()) &&
-                        !display.canConnect()) {
-                    p.setSummary(R.string.wifi_display_status_in_use);
-                    p.setEnabled(false);
-                    break;
-                }
+        } else if (d.isAvailable()) {
+            if (!d.canConnect()) {
+                p.setSummary(R.string.wifi_display_status_in_use);
+                p.setEnabled(false);
+            } else if (d.isRemembered()) {
+                p.setSummary(R.string.wifi_display_status_available);
             }
-        } else if (!paired && !d.canConnect()) {
-            p.setSummary(R.string.wifi_display_status_in_use);
-            p.setEnabled(false);
         }
-        if (paired) {
+        if (d.isRemembered()) {
             p.setWidgetLayoutResource(R.layout.wifi_display_preference);
         }
         return p;