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 276f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff * 286f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff * {@see WifiP2pManager} 29ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff */ 30ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriffpublic class WifiP2pInfo implements Parcelable { 31ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 326f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff /** Indicates if a p2p group has been successfully formed */ 33ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public boolean groupFormed; 34ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 356f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff /** Indicates if the current device is the group owner */ 36ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public boolean isGroupOwner; 37ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 386f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff /** Group owner address */ 39ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public InetAddress groupOwnerAddress; 40ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 41651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public WifiP2pInfo() { 42ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 43ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 44ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public String toString() { 45ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff StringBuffer sbuf = new StringBuffer(); 46ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff sbuf.append("groupFormed: ").append(groupFormed) 47ab4cd45133ccea6a66fb081f9b2a8d14eb3e4f1dAndreas Huber .append(" isGroupOwner: ").append(isGroupOwner) 48ab4cd45133ccea6a66fb081f9b2a8d14eb3e4f1dAndreas Huber .append(" groupOwnerAddress: ").append(groupOwnerAddress); 49ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff return sbuf.toString(); 50ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 51ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 52651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Implement the Parcelable interface */ 53ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public int describeContents() { 54ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff return 0; 55ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 56ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 57651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** copy constructor */ 58ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public WifiP2pInfo(WifiP2pInfo source) { 59ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff if (source != null) { 60ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff groupFormed = source.groupFormed; 61ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff isGroupOwner = source.isGroupOwner; 62ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff groupOwnerAddress = source.groupOwnerAddress; 63ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 64ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 65ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 66651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Implement the Parcelable interface */ 67ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public void writeToParcel(Parcel dest, int flags) { 68ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff dest.writeByte(groupFormed ? (byte)1 : (byte)0); 69ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff dest.writeByte(isGroupOwner ? (byte)1 : (byte)0); 70ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 71ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff if (groupOwnerAddress != null) { 72ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff dest.writeByte((byte)1); 73ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff dest.writeByteArray(groupOwnerAddress.getAddress()); 74ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } else { 75ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff dest.writeByte((byte)0); 76ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 77ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 78ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 79651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Implement the Parcelable interface */ 80ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public static final Creator<WifiP2pInfo> CREATOR = 81ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff new Creator<WifiP2pInfo>() { 82ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public WifiP2pInfo createFromParcel(Parcel in) { 83ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff WifiP2pInfo info = new WifiP2pInfo(); 84ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff info.groupFormed = (in.readByte() == 1); 85ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff info.isGroupOwner = (in.readByte() == 1); 86ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff if (in.readByte() == 1) { 87ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff try { 88ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff info.groupOwnerAddress = InetAddress.getByAddress(in.createByteArray()); 89ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } catch (UnknownHostException e) {} 90ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 91ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff return info; 92ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 93ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff 94ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff public WifiP2pInfo[] newArray(int size) { 95ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff return new WifiP2pInfo[size]; 96ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff } 97ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff }; 98ea5b16ac5751022de73e8f1225407eb01e7f1824Irfan Sheriff} 99