package com.xconns.peerdevicenet; import android.os.Parcel; import android.os.Parcelable; public class NetInfo implements Parcelable { //network type names public final static int NoNet = -1; public final static int WiFi = 0; public final static int WiFiDirect = 1; public final static int WiFiHotspot = 2; public final static int Bluetooth = 3; public final static int Mobile = 4; public final static int Cloud = 5; public final static int Other = 6; public final static int NET_TYPES = 7; //network encryption name public final static int NoPass = 0; public final static int WPA = 1; public final static int WEP = 2; public final static String NetTypeName(int t) { switch (t) { case NoNet: return "NoNet"; case WiFi: return "Wi-Fi"; case WiFiDirect: return "Wi-Fi Direct"; case WiFiHotspot: return "Wi-Fi Hotspot"; case Bluetooth: return "Bluetooth"; case Mobile: return "Mobile"; case Cloud: return "Cloud"; case Other: return "Other"; } return null; } public final static String NetEncryptionName(int t) { switch (t) { case NoPass: return "NoPass"; case WPA: return "WPA"; case WEP: return "WEP"; } return null; } //net info public int type = NoNet; public String name = null; public int encrypt = NoPass; public String pass = null; public boolean hidden = false; public byte[] info = null; public String intfName = null; //local interface name for this net public String addr = null; //addr of this host in this net public boolean mcast = false; public NetInfo(int t, String n, int enc, String p, boolean h, byte[] i, String in, String a, boolean m) { type = t; name = n; encrypt = enc; pass = p; hidden = h; info = i; intfName = in; addr = a; mcast = m; } public static final Creator<NetInfo> CREATOR = new Creator<NetInfo>() { public NetInfo[] newArray(int size) { return new NetInfo[size]; } public NetInfo createFromParcel(Parcel in) { return new NetInfo(in); } }; public NetInfo() { // TODO Auto-generated constructor stub } @Override public String toString() { return String.format("type:%s, name:%s, pass:%s, intfName:%s, addr:%s, mcast:%b", type, name, pass, intfName, addr, mcast); } public int describeContents() { return 0; } public NetInfo(Parcel in) { readFromParcel(in); } public void readFromParcel(Parcel in) { type = in.readInt(); name = in.readString(); encrypt = in.readInt(); pass = in.readString(); hidden = (in.readByte()==0)?false:true; //in.readByteArray(info); info = in.createByteArray(); intfName = in.readString(); //local interface name for this net addr = in.readString(); //addr of this host in this net mcast = (in.readByte()==0)?false:true; } public void writeToParcel(Parcel out, int flags) { out.writeInt(type); out.writeString(name); out.writeInt(encrypt); out.writeString(pass); out.writeByte((byte)(hidden?1:0)); out.writeByteArray(info); out.writeString(intfName); out.writeString(addr); out.writeByte((byte)(mcast?1:0)); } }