summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/hardware/display/WifiDisplay.java23
-rw-r--r--services/java/com/android/server/display/PersistentDataStore.java3
-rw-r--r--services/java/com/android/server/display/WifiDisplayController.java3
3 files changed, 25 insertions, 4 deletions
diff --git a/core/java/android/hardware/display/WifiDisplay.java b/core/java/android/hardware/display/WifiDisplay.java
index 2fd52b8f4e7a..339fd6b246cc 100644
--- a/core/java/android/hardware/display/WifiDisplay.java
+++ b/core/java/android/hardware/display/WifiDisplay.java
@@ -33,6 +33,7 @@ public final class WifiDisplay implements Parcelable {
private final String mDeviceAddress;
private final String mDeviceName;
private final String mDeviceAlias;
+ private final boolean mCanConnect;
public static final WifiDisplay[] EMPTY_ARRAY = new WifiDisplay[0];
@@ -41,7 +42,9 @@ public final class WifiDisplay implements Parcelable {
String deviceAddress = in.readString();
String deviceName = in.readString();
String deviceAlias = in.readString();
- return new WifiDisplay(deviceAddress, deviceName, deviceAlias);
+ boolean canConnect = (in.readInt() != 0);
+ return new WifiDisplay(deviceAddress, deviceName,
+ deviceAlias, canConnect);
}
public WifiDisplay[] newArray(int size) {
@@ -50,6 +53,11 @@ 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) {
if (deviceAddress == null) {
throw new IllegalArgumentException("deviceAddress must not be null");
}
@@ -60,6 +68,7 @@ public final class WifiDisplay implements Parcelable {
mDeviceAddress = deviceAddress;
mDeviceName = deviceName;
mDeviceAlias = deviceAlias;
+ mCanConnect = canConnect;
}
/**
@@ -88,6 +97,13 @@ public final class WifiDisplay implements Parcelable {
}
/**
+ * Gets the availability of the Wifi display device.
+ */
+ public boolean canConnect() {
+ return mCanConnect;
+ }
+
+ /**
* Gets the name to show in the UI.
* Uses the device alias if available, otherwise uses the device name.
*/
@@ -104,7 +120,8 @@ public final class WifiDisplay implements Parcelable {
return other != null
&& mDeviceAddress.equals(other.mDeviceAddress)
&& mDeviceName.equals(other.mDeviceName)
- && Objects.equal(mDeviceAlias, other.mDeviceAlias);
+ && Objects.equal(mDeviceAlias, other.mDeviceAlias)
+ && (mCanConnect == other.mCanConnect);
}
/**
@@ -127,6 +144,7 @@ public final class WifiDisplay implements Parcelable {
dest.writeString(mDeviceAddress);
dest.writeString(mDeviceName);
dest.writeString(mDeviceAlias);
+ dest.writeInt(mCanConnect ? 1 : 0);
}
@Override
@@ -141,6 +159,7 @@ public final class WifiDisplay implements Parcelable {
if (mDeviceAlias != null) {
result += ", alias " + mDeviceAlias;
}
+ result += ", canConnect " + mCanConnect;
return result;
}
}
diff --git a/services/java/com/android/server/display/PersistentDataStore.java b/services/java/com/android/server/display/PersistentDataStore.java
index 105c2534c574..d5d71322f4a9 100644
--- a/services/java/com/android/server/display/PersistentDataStore.java
+++ b/services/java/com/android/server/display/PersistentDataStore.java
@@ -105,7 +105,8 @@ final class PersistentDataStore {
alias = mRememberedWifiDisplays.get(index).getDeviceAlias();
}
if (!Objects.equal(display.getDeviceAlias(), alias)) {
- return new WifiDisplay(display.getDeviceAddress(), display.getDeviceName(), alias);
+ return new WifiDisplay(display.getDeviceAddress(), display.getDeviceName(),
+ alias, display.canConnect());
}
}
return display;
diff --git a/services/java/com/android/server/display/WifiDisplayController.java b/services/java/com/android/server/display/WifiDisplayController.java
index 8c8b360c480e..e595df400d59 100644
--- a/services/java/com/android/server/display/WifiDisplayController.java
+++ b/services/java/com/android/server/display/WifiDisplayController.java
@@ -897,7 +897,8 @@ final class WifiDisplayController implements DumpUtils.Dump {
}
private static WifiDisplay createWifiDisplay(WifiP2pDevice device) {
- return new WifiDisplay(device.deviceAddress, device.deviceName, null);
+ return new WifiDisplay(device.deviceAddress, device.deviceName, null,
+ device.wfdInfo.isSessionAvailable());
}
private final BroadcastReceiver mWifiP2pReceiver = new BroadcastReceiver() {