Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 799d4af8 authored by Chong Zhang's avatar Chong Zhang Committed by Android (Google) Code Review
Browse files

Merge "wifi-display: set display to unavailable if p2p device is unavailable"

parents 8c8391ad 21f60399
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -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;
    }

    /**
@@ -87,6 +96,13 @@ public final class WifiDisplay implements Parcelable {
        return mDeviceAlias;
    }

    /**
     * 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;
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -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;
+2 −1
Original line number Diff line number Diff line
@@ -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() {