1 /*
2  * Copyright (C) 2012 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.hardware.display;
18 
19 import android.os.Parcel;
20 import android.os.Parcelable;
21 
22 /**
23  * This class contains information regarding a wifi display session
24  * (such as session id, source ip address, etc.). This is needed for
25  * Wifi Display Certification process.
26  * <p>
27  * This object is immutable.
28  * </p>
29  *
30  * @hide
31  */
32 public final class WifiDisplaySessionInfo implements Parcelable {
33     private final boolean mClient;
34     private final int mSessionId;
35     private final String mGroupId;
36     private final String mPassphrase;
37     private final String mIP;
38 
39     public static final @android.annotation.NonNull Creator<WifiDisplaySessionInfo> CREATOR =
40             new Creator<WifiDisplaySessionInfo>() {
41         @Override
42         public WifiDisplaySessionInfo createFromParcel(Parcel in) {
43             boolean client = (in.readInt() != 0);
44             int session = in.readInt();
45             String group = in.readString();
46             String pp = in.readString();
47             String ip = in.readString();
48 
49             return new WifiDisplaySessionInfo(client, session, group, pp, ip);
50         }
51 
52         @Override
53         public WifiDisplaySessionInfo[] newArray(int size) {
54             return new WifiDisplaySessionInfo[size];
55         }
56     };
57 
WifiDisplaySessionInfo()58     public WifiDisplaySessionInfo() {
59         this(true, 0, "", "", "");
60     }
61 
WifiDisplaySessionInfo( boolean client, int session, String group, String pp, String ip)62     public WifiDisplaySessionInfo(
63             boolean client, int session, String group, String pp, String ip) {
64         mClient = client;
65         mSessionId = session;
66         mGroupId = group;
67         mPassphrase = pp;
68         mIP = ip;
69     }
70 
isClient()71     public boolean isClient() {
72         return mClient;
73     }
74 
getSessionId()75     public int getSessionId() {
76         return mSessionId;
77     }
78 
getGroupId()79     public String getGroupId() {
80         return mGroupId;
81     }
82 
getPassphrase()83     public String getPassphrase() {
84         return mPassphrase;
85     }
86 
getIP()87     public String getIP() {
88         return mIP;
89     }
90 
91     @Override
writeToParcel(Parcel dest, int flags)92     public void writeToParcel(Parcel dest, int flags) {
93         dest.writeInt(mClient ? 1 : 0);
94         dest.writeInt(mSessionId);
95         dest.writeString(mGroupId);
96         dest.writeString(mPassphrase);
97         dest.writeString(mIP);
98     }
99 
100     @Override
describeContents()101     public int describeContents() {
102         return 0;
103     }
104 
105     // For debugging purposes only.
106     @Override
toString()107     public String toString() {
108         return "WifiDisplaySessionInfo:"
109                 +"\n    Client/Owner: " + (mClient ? "Client":"Owner")
110                 +"\n    GroupId: " + mGroupId
111                 +"\n    Passphrase: " + mPassphrase
112                 +"\n    SessionId: " + mSessionId
113                 +"\n    IP Address: " + mIP
114                 ;
115     }
116 }
117