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