WifiP2pInfo.java revision 6f7d385d964949e507dcc9c88012372f48d0bce7
1ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff/*
2ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * Copyright (C) 2011 The Android Open Source Project
3ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff *
4ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * Licensed under the Apache License, Version 2.0 (the "License");
5ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * you may not use this file except in compliance with the License.
6ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * You may obtain a copy of the License at
7ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff *
8ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff *      http://www.apache.org/licenses/LICENSE-2.0
9ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff *
10ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * Unless required by applicable law or agreed to in writing, software
11ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * distributed under the License is distributed on an "AS IS" BASIS,
12ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * See the License for the specific language governing permissions and
14ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * limitations under the License.
15ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff */
16ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
17ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriffpackage android.net.wifi.p2p;
18ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
19ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriffimport android.os.Parcelable;
20ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriffimport android.os.Parcel;
21ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
22ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriffimport java.net.InetAddress;
23ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriffimport java.net.UnknownHostException;
24ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
25ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff/**
266f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff * A class representing connection information about a Wi-Fi p2p group
27ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff * @hide
286f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff *
296f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff * {@see WifiP2pManager}
30ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff */
31ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriffpublic class WifiP2pInfo implements Parcelable {
32ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
336f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff    /** Indicates if a p2p group has been successfully formed */
34ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    public boolean groupFormed;
35ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
366f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff    /** Indicates if the current device is the group owner */
37ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    public boolean isGroupOwner;
38ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
396f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff    /** Group owner address */
40ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    public InetAddress groupOwnerAddress;
41ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
429cc2718abc0152d79e3e8bf23be94ddd3cc9db87Irfan Sheriff    /** @hide */
439cc2718abc0152d79e3e8bf23be94ddd3cc9db87Irfan Sheriff    WifiP2pInfo() {
44ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    }
45ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
469cc2718abc0152d79e3e8bf23be94ddd3cc9db87Irfan Sheriff    /** @hide */
47ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    public String toString() {
48ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        StringBuffer sbuf = new StringBuffer();
49ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        sbuf.append("groupFormed: ").append(groupFormed)
50ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            .append("isGroupOwner: ").append(isGroupOwner)
51ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            .append("groupOwnerAddress: ").append(groupOwnerAddress);
52ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        return sbuf.toString();
53ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    }
54ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
55ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    /** Implement the Parcelable interface {@hide} */
56ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    public int describeContents() {
57ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        return 0;
58ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    }
59ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
60ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    /** copy constructor {@hide} */
61ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    public WifiP2pInfo(WifiP2pInfo source) {
62ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        if (source != null) {
63ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            groupFormed = source.groupFormed;
64ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            isGroupOwner = source.isGroupOwner;
65ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            groupOwnerAddress = source.groupOwnerAddress;
66ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff       }
67ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    }
68ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
69ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    /** Implement the Parcelable interface {@hide} */
70ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    public void writeToParcel(Parcel dest, int flags) {
71ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        dest.writeByte(groupFormed ? (byte)1 : (byte)0);
72ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        dest.writeByte(isGroupOwner ? (byte)1 : (byte)0);
73ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
74ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        if (groupOwnerAddress != null) {
75ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            dest.writeByte((byte)1);
76ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            dest.writeByteArray(groupOwnerAddress.getAddress());
77ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        } else {
78ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            dest.writeByte((byte)0);
79ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        }
80ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    }
81ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
82ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    /** Implement the Parcelable interface {@hide} */
83ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff    public static final Creator<WifiP2pInfo> CREATOR =
84ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        new Creator<WifiP2pInfo>() {
85ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            public WifiP2pInfo createFromParcel(Parcel in) {
86ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                WifiP2pInfo info = new WifiP2pInfo();
87ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                info.groupFormed = (in.readByte() == 1);
88ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                info.isGroupOwner = (in.readByte() == 1);
89ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                if (in.readByte() == 1) {
90ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                    try {
91ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                        info.groupOwnerAddress = InetAddress.getByAddress(in.createByteArray());
92ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                    } catch (UnknownHostException e) {}
93ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                }
94ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                return info;
95ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            }
96ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff
97ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            public WifiP2pInfo[] newArray(int size) {
98ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff                return new WifiP2pInfo[size];
99ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff            }
100ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff        };
101ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff}
102