102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff/*
2651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff * Copyright (C) 2011 The Android Open Source Project
302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff *
402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * Licensed under the Apache License, Version 2.0 (the "License");
502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * you may not use this file except in compliance with the License.
602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * You may obtain a copy of the License at
702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff *
802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff *      http://www.apache.org/licenses/LICENSE-2.0
902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff *
1002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * Unless required by applicable law or agreed to in writing, software
1102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * distributed under the License is distributed on an "AS IS" BASIS,
1202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * See the License for the specific language governing permissions and
1402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * limitations under the License.
1502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff */
1602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
1702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriffpackage android.net.wifi;
1802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
1902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriffimport android.os.Parcelable;
2002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriffimport android.os.Parcel;
2102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
2202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriffimport java.util.BitSet;
2302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
2402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff/**
25489a9d81fd1458940e1ec01ba0cef36843732479Irfan Sheriff * A class representing Wi-Fi Protected Setup
266f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff *
276f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff * {@see WifiP2pConfig}
2802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff */
29651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriffpublic class WpsInfo implements Parcelable {
30651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff
31651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Push button configuration */
32651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int PBC     = 0;
33651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Display pin method configuration - pin is generated and displayed on device */
34651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int DISPLAY = 1;
35651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Keypad pin method configuration - pin is entered on device */
36651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int KEYPAD  = 2;
37651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Label pin method configuration - pin is labelled on device */
38651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int LABEL   = 3;
39651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Invalid configuration */
40651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int INVALID = 4;
4102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
426f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff    /** Wi-Fi Protected Setup. www.wi-fi.org/wifi-protected-setup has details */
43651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public int setup;
4402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
459cc2718abc0152d79e3e8bf23be94ddd3cc9db87Irfan Sheriff    /** @hide */
4602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public String BSSID;
4702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
486f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff    /** Passed with pin method configuration */
4902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public String pin;
5002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
51651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public WpsInfo() {
52651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff        setup = INVALID;
5302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        BSSID = null;
5402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        pin = null;
5502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
5602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
5702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public String toString() {
5802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        StringBuffer sbuf = new StringBuffer();
59651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff        sbuf.append(" setup: ").append(setup);
6002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append('\n');
6102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append(" BSSID: ").append(BSSID);
6202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append('\n');
6302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append(" pin: ").append(pin);
6402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append('\n');
6502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        return sbuf.toString();
6602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
6702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
68651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Implement the Parcelable interface */
6902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public int describeContents() {
7002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        return 0;
7102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
7202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
73651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /* Copy constructor */
74651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public WpsInfo(WpsInfo source) {
7502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        if (source != null) {
7602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            setup = source.setup;
7702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            BSSID = source.BSSID;
7802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            pin = source.pin;
7902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        }
8002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
8102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
82651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Implement the Parcelable interface */
8302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public void writeToParcel(Parcel dest, int flags) {
84651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff        dest.writeInt(setup);
8502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        dest.writeString(BSSID);
8602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        dest.writeString(pin);
8702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
8802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
89651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Implement the Parcelable interface */
90651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final Creator<WpsInfo> CREATOR =
91651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff        new Creator<WpsInfo>() {
92651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff            public WpsInfo createFromParcel(Parcel in) {
93651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff                WpsInfo config = new WpsInfo();
94651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff                config.setup = in.readInt();
9502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff                config.BSSID = in.readString();
9602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff                config.pin = in.readString();
9702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff                return config;
9802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            }
9902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
100651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff            public WpsInfo[] newArray(int size) {
101651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff                return new WpsInfo[size];
10202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            }
10302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        };
10402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff}
105