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 Sheriff/**
23489a9d81fd1458940e1ec01ba0cef36843732479Irfan Sheriff * A class representing Wi-Fi Protected Setup
246f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff *
256f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff * {@see WifiP2pConfig}
2602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff */
27651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriffpublic class WpsInfo implements Parcelable {
28651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff
29651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Push button configuration */
30651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int PBC     = 0;
31651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Display pin method configuration - pin is generated and displayed on device */
32651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int DISPLAY = 1;
33651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Keypad pin method configuration - pin is entered on device */
34651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int KEYPAD  = 2;
35651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Label pin method configuration - pin is labelled on device */
36651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int LABEL   = 3;
37651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Invalid configuration */
38651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final int INVALID = 4;
3902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
406f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff    /** Wi-Fi Protected Setup. www.wi-fi.org/wifi-protected-setup has details */
41651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public int setup;
4202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
43674ca8a1f47c07033645a1016e68a2e82597e2faVinit Deshpande    /** Passed with pin method KEYPAD */
4402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public String BSSID;
4502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
466f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff    /** Passed with pin method configuration */
4702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public String pin;
4802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
49651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public WpsInfo() {
50651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff        setup = INVALID;
5102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        BSSID = null;
5202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        pin = null;
5302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
5402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
5502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public String toString() {
5602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        StringBuffer sbuf = new StringBuffer();
57651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff        sbuf.append(" setup: ").append(setup);
5802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append('\n');
5902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append(" BSSID: ").append(BSSID);
6002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append('\n');
6102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append(" pin: ").append(pin);
6202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        sbuf.append('\n');
6302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        return sbuf.toString();
6402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
6502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
66651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Implement the Parcelable interface */
6702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public int describeContents() {
6802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        return 0;
6902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
7002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
71651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /* Copy constructor */
72651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public WpsInfo(WpsInfo source) {
7302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        if (source != null) {
7402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            setup = source.setup;
7502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            BSSID = source.BSSID;
7602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            pin = source.pin;
7702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        }
7802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
7902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
80651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Implement the Parcelable interface */
8102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    public void writeToParcel(Parcel dest, int flags) {
82651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff        dest.writeInt(setup);
8302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        dest.writeString(BSSID);
8402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        dest.writeString(pin);
8502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff    }
8602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
87651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    /** Implement the Parcelable interface */
88651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff    public static final Creator<WpsInfo> CREATOR =
89651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff        new Creator<WpsInfo>() {
90651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff            public WpsInfo createFromParcel(Parcel in) {
91651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff                WpsInfo config = new WpsInfo();
92651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff                config.setup = in.readInt();
9302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff                config.BSSID = in.readString();
9402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff                config.pin = in.readString();
9502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff                return config;
9602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            }
9702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff
98651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff            public WpsInfo[] newArray(int size) {
99651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff                return new WpsInfo[size];
10002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff            }
10102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff        };
10202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff}
103