diff options
author | Chong Zhang <chz@google.com> | 2013-06-15 00:36:15 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-06-15 00:36:15 +0000 |
commit | e0dae4b493d3547b223f498a9f3e5aa2ddd856f6 (patch) | |
tree | d98a7b2850511f37218c515ab45614edcea59e49 /core/java/android/hardware | |
parent | 343233c4edc09013bdb9ac44d65054c029d4d885 (diff) | |
parent | ab87a63997a7dc771acfd0dcd7efda990dc3d5fe (diff) | |
download | frameworks_base-e0dae4b493d3547b223f498a9f3e5aa2ddd856f6.zip frameworks_base-e0dae4b493d3547b223f498a9f3e5aa2ddd856f6.tar.gz frameworks_base-e0dae4b493d3547b223f498a9f3e5aa2ddd856f6.tar.bz2 |
Merge "MediaRouter: grey out wifi displays that's in use"
Diffstat (limited to 'core/java/android/hardware')
-rw-r--r-- | core/java/android/hardware/display/WifiDisplay.java | 46 | ||||
-rw-r--r-- | core/java/android/hardware/display/WifiDisplayStatus.java | 67 |
2 files changed, 54 insertions, 59 deletions
diff --git a/core/java/android/hardware/display/WifiDisplay.java b/core/java/android/hardware/display/WifiDisplay.java index 339fd6b..af5a84e 100644 --- a/core/java/android/hardware/display/WifiDisplay.java +++ b/core/java/android/hardware/display/WifiDisplay.java @@ -33,7 +33,9 @@ public final class WifiDisplay implements Parcelable { private final String mDeviceAddress; private final String mDeviceName; private final String mDeviceAlias; + private final boolean mIsAvailable; private final boolean mCanConnect; + private final boolean mIsRemembered; public static final WifiDisplay[] EMPTY_ARRAY = new WifiDisplay[0]; @@ -42,9 +44,11 @@ public final class WifiDisplay implements Parcelable { String deviceAddress = in.readString(); String deviceName = in.readString(); String deviceAlias = in.readString(); + boolean isAvailable = (in.readInt() != 0); boolean canConnect = (in.readInt() != 0); - return new WifiDisplay(deviceAddress, deviceName, - deviceAlias, canConnect); + boolean isRemembered = (in.readInt() != 0); + return new WifiDisplay(deviceAddress, deviceName, deviceAlias, + isAvailable, canConnect, isRemembered); } public WifiDisplay[] newArray(int size) { @@ -52,12 +56,8 @@ public final class WifiDisplay implements Parcelable { } }; - public WifiDisplay(String deviceAddress, String deviceName, String deviceAlias) { - this(deviceAddress, deviceName, deviceAlias, false); - } - - public WifiDisplay(String deviceAddress, String deviceName, - String deviceAlias, boolean canConnect) { + public WifiDisplay(String deviceAddress, String deviceName, String deviceAlias, + boolean available, boolean canConnect, boolean remembered) { if (deviceAddress == null) { throw new IllegalArgumentException("deviceAddress must not be null"); } @@ -68,7 +68,9 @@ public final class WifiDisplay implements Parcelable { mDeviceAddress = deviceAddress; mDeviceName = deviceName; mDeviceAlias = deviceAlias; + mIsAvailable = available; mCanConnect = canConnect; + mIsRemembered = remembered; } /** @@ -97,13 +99,27 @@ public final class WifiDisplay implements Parcelable { } /** - * Gets the availability of the Wifi display device. + * Returns true if device is available, false otherwise. + */ + public boolean isAvailable() { + return mIsAvailable; + } + + /** + * Returns true if device can be connected to (not in use), false otherwise. */ public boolean canConnect() { return mCanConnect; } /** + * Returns true if device has been remembered, false otherwise. + */ + public boolean isRemembered() { + return mIsRemembered; + } + + /** * Gets the name to show in the UI. * Uses the device alias if available, otherwise uses the device name. */ @@ -116,12 +132,15 @@ public final class WifiDisplay implements Parcelable { return o instanceof WifiDisplay && equals((WifiDisplay)o); } + /** + * Returns true if the two displays have the same identity (address, name and alias). + * This method does not compare the current status of the displays. + */ public boolean equals(WifiDisplay other) { return other != null && mDeviceAddress.equals(other.mDeviceAddress) && mDeviceName.equals(other.mDeviceName) - && Objects.equal(mDeviceAlias, other.mDeviceAlias) - && (mCanConnect == other.mCanConnect); + && Objects.equal(mDeviceAlias, other.mDeviceAlias); } /** @@ -144,7 +163,9 @@ public final class WifiDisplay implements Parcelable { dest.writeString(mDeviceAddress); dest.writeString(mDeviceName); dest.writeString(mDeviceAlias); + dest.writeInt(mIsAvailable ? 1 : 0); dest.writeInt(mCanConnect ? 1 : 0); + dest.writeInt(mIsRemembered ? 1 : 0); } @Override @@ -159,7 +180,8 @@ public final class WifiDisplay implements Parcelable { if (mDeviceAlias != null) { result += ", alias " + mDeviceAlias; } - result += ", canConnect " + mCanConnect; + result += ", isAvailable " + mIsAvailable + ", canConnect " + mCanConnect + + ", isRemembered " + mIsRemembered; return result; } } diff --git a/core/java/android/hardware/display/WifiDisplayStatus.java b/core/java/android/hardware/display/WifiDisplayStatus.java index f7e72c4..77acdc0 100644 --- a/core/java/android/hardware/display/WifiDisplayStatus.java +++ b/core/java/android/hardware/display/WifiDisplayStatus.java @@ -20,6 +20,8 @@ import android.os.Parcel; import android.os.Parcelable; import java.util.Arrays; +import java.util.ArrayList; +import java.util.List; /** * Describes the current global state of Wifi display connectivity, including the @@ -35,8 +37,7 @@ public final class WifiDisplayStatus implements Parcelable { private final int mScanState; private final int mActiveDisplayState; private final WifiDisplay mActiveDisplay; - private final WifiDisplay[] mAvailableDisplays; - private final WifiDisplay[] mRememberedDisplays; + private final WifiDisplay[] mDisplays; /** Feature state: Wifi display is not available on this device. */ public static final int FEATURE_STATE_UNAVAILABLE = 0; @@ -70,18 +71,13 @@ public final class WifiDisplayStatus implements Parcelable { activeDisplay = WifiDisplay.CREATOR.createFromParcel(in); } - WifiDisplay[] availableDisplays = WifiDisplay.CREATOR.newArray(in.readInt()); - for (int i = 0; i < availableDisplays.length; i++) { - availableDisplays[i] = WifiDisplay.CREATOR.createFromParcel(in); - } - - WifiDisplay[] rememberedDisplays = WifiDisplay.CREATOR.newArray(in.readInt()); - for (int i = 0; i < rememberedDisplays.length; i++) { - rememberedDisplays[i] = WifiDisplay.CREATOR.createFromParcel(in); + WifiDisplay[] displays = WifiDisplay.CREATOR.newArray(in.readInt()); + for (int i = 0; i < displays.length; i++) { + displays[i] = WifiDisplay.CREATOR.createFromParcel(in); } return new WifiDisplayStatus(featureState, scanState, activeDisplayState, - activeDisplay, availableDisplays, rememberedDisplays); + activeDisplay, displays); } public WifiDisplayStatus[] newArray(int size) { @@ -91,25 +87,20 @@ public final class WifiDisplayStatus implements Parcelable { public WifiDisplayStatus() { this(FEATURE_STATE_UNAVAILABLE, SCAN_STATE_NOT_SCANNING, DISPLAY_STATE_NOT_CONNECTED, - null, WifiDisplay.EMPTY_ARRAY, WifiDisplay.EMPTY_ARRAY); + null, WifiDisplay.EMPTY_ARRAY); } public WifiDisplayStatus(int featureState, int scanState, - int activeDisplayState, WifiDisplay activeDisplay, - WifiDisplay[] availableDisplays, WifiDisplay[] rememberedDisplays) { - if (availableDisplays == null) { - throw new IllegalArgumentException("availableDisplays must not be null"); - } - if (rememberedDisplays == null) { - throw new IllegalArgumentException("rememberedDisplays must not be null"); + int activeDisplayState, WifiDisplay activeDisplay, WifiDisplay[] displays) { + if (displays == null) { + throw new IllegalArgumentException("displays must not be null"); } mFeatureState = featureState; mScanState = scanState; mActiveDisplayState = activeDisplayState; mActiveDisplay = activeDisplay; - mAvailableDisplays = availableDisplays; - mRememberedDisplays = rememberedDisplays; + mDisplays = displays; } /** @@ -152,24 +143,12 @@ public final class WifiDisplayStatus implements Parcelable { } /** - * Gets the list of all available Wifi displays as reported by the most recent - * scan, never null. - * <p> - * Some of these displays may already be remembered, others may be unknown. - * </p> - */ - public WifiDisplay[] getAvailableDisplays() { - return mAvailableDisplays; - } - - /** - * Gets the list of all remembered Wifi displays, never null. - * <p> - * Not all remembered displays will necessarily be available. - * </p> + * Gets the list of Wifi displays, returns a combined list of all available + * Wifi displays as reported by the most recent scan, and all remembered + * Wifi displays (not necessarily available at the time). */ - public WifiDisplay[] getRememberedDisplays() { - return mRememberedDisplays; + public WifiDisplay[] getDisplays() { + return mDisplays; } @Override @@ -185,13 +164,8 @@ public final class WifiDisplayStatus implements Parcelable { dest.writeInt(0); } - dest.writeInt(mAvailableDisplays.length); - for (WifiDisplay display : mAvailableDisplays) { - display.writeToParcel(dest, flags); - } - - dest.writeInt(mRememberedDisplays.length); - for (WifiDisplay display : mRememberedDisplays) { + dest.writeInt(mDisplays.length); + for (WifiDisplay display : mDisplays) { display.writeToParcel(dest, flags); } } @@ -208,8 +182,7 @@ public final class WifiDisplayStatus implements Parcelable { + ", scanState=" + mScanState + ", activeDisplayState=" + mActiveDisplayState + ", activeDisplay=" + mActiveDisplay - + ", availableDisplays=" + Arrays.toString(mAvailableDisplays) - + ", rememberedDisplays=" + Arrays.toString(mRememberedDisplays) + + ", displays=" + Arrays.toString(mDisplays) + "}"; } } |