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
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user