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();
|
preferenceScreen.removeAll();
|
||||||
|
|
||||||
if (featureState == WifiDisplayStatus.FEATURE_STATE_ON) {
|
if (featureState == WifiDisplayStatus.FEATURE_STATE_ON) {
|
||||||
final WifiDisplay[] pairedDisplays = mWifiDisplayStatus.getRememberedDisplays();
|
final WifiDisplay[] displays = mWifiDisplayStatus.getDisplays();
|
||||||
final WifiDisplay[] availableDisplays = mWifiDisplayStatus.getAvailableDisplays();
|
|
||||||
|
|
||||||
if (mPairedDevicesCategory == null) {
|
if (mPairedDevicesCategory == null) {
|
||||||
mPairedDevicesCategory = new PreferenceCategory(getActivity());
|
mPairedDevicesCategory = new PreferenceCategory(getActivity());
|
||||||
@@ -218,13 +217,6 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment {
|
|||||||
}
|
}
|
||||||
preferenceScreen.addPreference(mPairedDevicesCategory);
|
preferenceScreen.addPreference(mPairedDevicesCategory);
|
||||||
|
|
||||||
for (WifiDisplay d : pairedDisplays) {
|
|
||||||
mPairedDevicesCategory.addPreference(createWifiDisplayPreference(d, true));
|
|
||||||
}
|
|
||||||
if (mPairedDevicesCategory.getPreferenceCount() == 0) {
|
|
||||||
preferenceScreen.removePreference(mPairedDevicesCategory);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mAvailableDevicesCategory == null) {
|
if (mAvailableDevicesCategory == null) {
|
||||||
mAvailableDevicesCategory = new ProgressCategory(getActivity(), null,
|
mAvailableDevicesCategory = new ProgressCategory(getActivity(), null,
|
||||||
R.string.wifi_display_no_devices_found);
|
R.string.wifi_display_no_devices_found);
|
||||||
@@ -234,11 +226,16 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment {
|
|||||||
}
|
}
|
||||||
preferenceScreen.addPreference(mAvailableDevicesCategory);
|
preferenceScreen.addPreference(mAvailableDevicesCategory);
|
||||||
|
|
||||||
for (WifiDisplay d : availableDisplays) {
|
for (WifiDisplay d : displays) {
|
||||||
if (!contains(pairedDisplays, d.getDeviceAddress())) {
|
if (d.isRemembered()) {
|
||||||
mAvailableDevicesCategory.addPreference(createWifiDisplayPreference(d, false));
|
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) {
|
if (mWifiDisplayStatus.getScanState() == WifiDisplayStatus.SCAN_STATE_SCANNING) {
|
||||||
mAvailableDevicesCategory.setProgress(true);
|
mAvailableDevicesCategory.setProgress(true);
|
||||||
} else {
|
} else {
|
||||||
@@ -253,7 +250,7 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment {
|
|||||||
getActivity().invalidateOptionsMenu();
|
getActivity().invalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Preference createWifiDisplayPreference(final WifiDisplay d, boolean paired) {
|
private Preference createWifiDisplayPreference(final WifiDisplay d) {
|
||||||
WifiDisplayPreference p = new WifiDisplayPreference(getActivity(), d);
|
WifiDisplayPreference p = new WifiDisplayPreference(getActivity(), d);
|
||||||
if (d.equals(mWifiDisplayStatus.getActiveDisplay())) {
|
if (d.equals(mWifiDisplayStatus.getActiveDisplay())) {
|
||||||
switch (mWifiDisplayStatus.getActiveDisplayState()) {
|
switch (mWifiDisplayStatus.getActiveDisplayState()) {
|
||||||
@@ -264,22 +261,15 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment {
|
|||||||
p.setSummary(R.string.wifi_display_status_connecting);
|
p.setSummary(R.string.wifi_display_status_connecting);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (paired && contains(mWifiDisplayStatus.getAvailableDisplays(),
|
} else if (d.isAvailable()) {
|
||||||
d.getDeviceAddress())) {
|
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);
|
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 (!paired && !d.canConnect()) {
|
if (d.isRemembered()) {
|
||||||
p.setSummary(R.string.wifi_display_status_in_use);
|
|
||||||
p.setEnabled(false);
|
|
||||||
}
|
|
||||||
if (paired) {
|
|
||||||
p.setWidgetLayoutResource(R.layout.wifi_display_preference);
|
p.setWidgetLayoutResource(R.layout.wifi_display_preference);
|
||||||
}
|
}
|
||||||
return p;
|
return p;
|
||||||
|
Reference in New Issue
Block a user