11f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang/*
21f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * Copyright (C) 2012 The Android Open Source Project
31f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang *
41f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * Licensed under the Apache License, Version 2.0 (the "License");
51f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * you may not use this file except in compliance with the License.
61f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * You may obtain a copy of the License at
71f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang *
81f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang *      http://www.apache.org/licenses/LICENSE-2.0
91f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang *
101f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * Unless required by applicable law or agreed to in writing, software
111f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * distributed under the License is distributed on an "AS IS" BASIS,
121f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * See the License for the specific language governing permissions and
141f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * limitations under the License.
151f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang */
161f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
171f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhangpackage android.hardware.display;
181f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
191f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhangimport android.os.Parcel;
201f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhangimport android.os.Parcelable;
211f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
221f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang/**
231f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * This class contains information regarding a wifi display session
241f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * (such as session id, source ip address, etc.). This is needed for
251f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * Wifi Display Certification process.
261f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * <p>
271f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * This object is immutable.
281f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * </p>
291f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang *
301f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang * @hide
311f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang */
321f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhangpublic final class WifiDisplaySessionInfo implements Parcelable {
331f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    private final boolean mClient;
341f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    private final int mSessionId;
351f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    private final String mGroupId;
361f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    private final String mPassphrase;
371f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    private final String mIP;
381f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
391f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public static final Creator<WifiDisplaySessionInfo> CREATOR =
401f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang            new Creator<WifiDisplaySessionInfo>() {
411f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        @Override
421f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        public WifiDisplaySessionInfo createFromParcel(Parcel in) {
431f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang            boolean client = (in.readInt() != 0);
441f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang            int session = in.readInt();
451f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang            String group = in.readString();
461f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang            String pp = in.readString();
471f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang            String ip = in.readString();
481f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
491f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang            return new WifiDisplaySessionInfo(client, session, group, pp, ip);
501f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        }
511f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
521f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        @Override
531f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        public WifiDisplaySessionInfo[] newArray(int size) {
541f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang            return new WifiDisplaySessionInfo[size];
551f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        }
561f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    };
571f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
581f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public WifiDisplaySessionInfo() {
591f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        this(true, 0, "", "", "");
601f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
611f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
621f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public WifiDisplaySessionInfo(
631f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang            boolean client, int session, String group, String pp, String ip) {
641f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        mClient = client;
651f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        mSessionId = session;
661f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        mGroupId = group;
671f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        mPassphrase = pp;
681f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        mIP = ip;
691f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
701f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
711f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public boolean isClient() {
721f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        return mClient;
731f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
741f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
751f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public int getSessionId() {
761f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        return mSessionId;
771f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
781f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
791f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public String getGroupId() {
801f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        return mGroupId;
811f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
821f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
831f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public String getPassphrase() {
841f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        return mPassphrase;
851f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
861f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
871f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public String getIP() {
881f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        return mIP;
891f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
901f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
911f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    @Override
921f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public void writeToParcel(Parcel dest, int flags) {
931f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        dest.writeInt(mClient ? 1 : 0);
941f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        dest.writeInt(mSessionId);
951f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        dest.writeString(mGroupId);
961f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        dest.writeString(mPassphrase);
971f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        dest.writeString(mIP);
981f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
991f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
1001f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    @Override
1011f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public int describeContents() {
1021f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        return 0;
1031f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
1041f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang
1051f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    // For debugging purposes only.
1061f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    @Override
1071f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    public String toString() {
1081f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang        return "WifiDisplaySessionInfo:"
1091f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang                +"\n    Client/Owner: " + (mClient ? "Client":"Owner")
1101f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang                +"\n    GroupId: " + mGroupId
1111f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang                +"\n    Passphrase: " + mPassphrase
1121f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang                +"\n    SessionId: " + mSessionId
1131f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang                +"\n    IP Address: " + mIP
1141f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang                ;
1151f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang    }
1161f3ecaae6303d5ee6c5ca8499262c9962f036365Chong Zhang}
117