summaryrefslogtreecommitdiffstats
path: root/core/java/android/hardware
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2013-06-15 00:36:15 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-06-15 00:36:15 +0000
commite0dae4b493d3547b223f498a9f3e5aa2ddd856f6 (patch)
treed98a7b2850511f37218c515ab45614edcea59e49 /core/java/android/hardware
parent343233c4edc09013bdb9ac44d65054c029d4d885 (diff)
parentab87a63997a7dc771acfd0dcd7efda990dc3d5fe (diff)
downloadframeworks_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.java46
-rw-r--r--core/java/android/hardware/display/WifiDisplayStatus.java67
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)
+ "}";
}
}