diff options
author | Chong Zhang <chz@google.com> | 2013-06-12 17:56:16 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2013-06-14 15:48:02 -0700 |
commit | 94417b41c0090d6da5ae982259f69deb6c99d3d1 (patch) | |
tree | a4bd5d268bebb844eedb642843381b012b56e550 /src/com/android/settings/wfd | |
parent | bdd91eab5940515cb3a99b0c10b2d9863c249e4f (diff) | |
download | packages_apps_Settings-94417b41c0090d6da5ae982259f69deb6c99d3d1.tar.gz packages_apps_Settings-94417b41c0090d6da5ae982259f69deb6c99d3d1.tar.bz2 packages_apps_Settings-94417b41c0090d6da5ae982259f69deb6c99d3d1.zip |
wifi-display: use new getDisplays() method of WifiDisplayStatus
which returns a list of all displays including currently availabe
and remembered ones, each display has properties indicating it's
availability, remembered and canConnect status
Bug 9229799
Change-Id: I1f74b9c41abdfecc10e7bc1853929e982c44be2f
Diffstat (limited to 'src/com/android/settings/wfd')
-rwxr-xr-x | src/com/android/settings/wfd/WifiDisplaySettings.java | 44 |
1 files changed, 17 insertions, 27 deletions
diff --git a/src/com/android/settings/wfd/WifiDisplaySettings.java b/src/com/android/settings/wfd/WifiDisplaySettings.java index 34d16d9181..d04c3cb34f 100755 --- a/src/com/android/settings/wfd/WifiDisplaySettings.java +++ b/src/com/android/settings/wfd/WifiDisplaySettings.java @@ -207,8 +207,7 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { 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 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { } 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 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { } 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 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { 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 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { 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; |