1664ed2dc2488c50194a80004af759a765f0ce18froger xue/*
2664ed2dc2488c50194a80004af759a765f0ce18froger xue * Copyright (C) 2017 The Android Open Source Project
3664ed2dc2488c50194a80004af759a765f0ce18froger xue *
4664ed2dc2488c50194a80004af759a765f0ce18froger xue * Licensed under the Apache License, Version 2.0 (the "License");
5664ed2dc2488c50194a80004af759a765f0ce18froger xue * you may not use this file except in compliance with the License.
6664ed2dc2488c50194a80004af759a765f0ce18froger xue * You may obtain a copy of the License at
7664ed2dc2488c50194a80004af759a765f0ce18froger xue *
8664ed2dc2488c50194a80004af759a765f0ce18froger xue *      http://www.apache.org/licenses/LICENSE-2.0
9664ed2dc2488c50194a80004af759a765f0ce18froger xue *
10664ed2dc2488c50194a80004af759a765f0ce18froger xue * Unless required by applicable law or agreed to in writing, software
11664ed2dc2488c50194a80004af759a765f0ce18froger xue * distributed under the License is distributed on an "AS IS" BASIS,
12664ed2dc2488c50194a80004af759a765f0ce18froger xue * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13664ed2dc2488c50194a80004af759a765f0ce18froger xue * See the License for the specific language governing permissions and
14664ed2dc2488c50194a80004af759a765f0ce18froger xue * limitations under the License
15664ed2dc2488c50194a80004af759a765f0ce18froger xue */
16664ed2dc2488c50194a80004af759a765f0ce18froger xue
17664ed2dc2488c50194a80004af759a765f0ce18froger xuepackage com.android.car.settings.wifi;
18664ed2dc2488c50194a80004af759a765f0ce18froger xue
19664ed2dc2488c50194a80004af759a765f0ce18froger xueimport android.content.Context;
20664ed2dc2488c50194a80004af759a765f0ce18froger xue
21664ed2dc2488c50194a80004af759a765f0ce18froger xueimport com.android.car.settings.R;
22664ed2dc2488c50194a80004af759a765f0ce18froger xueimport com.android.settingslib.wifi.AccessPoint;
23664ed2dc2488c50194a80004af759a765f0ce18froger xue
24664ed2dc2488c50194a80004af759a765f0ce18froger xueimport java.util.ArrayList;
25664ed2dc2488c50194a80004af759a765f0ce18froger xueimport java.util.Arrays;
26664ed2dc2488c50194a80004af759a765f0ce18froger xueimport java.util.List;
27664ed2dc2488c50194a80004af759a765f0ce18froger xue
28664ed2dc2488c50194a80004af759a765f0ce18froger xue/**
29fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue * Represents Security protocol for AccessPoint.
30664ed2dc2488c50194a80004af759a765f0ce18froger xue */
31664ed2dc2488c50194a80004af759a765f0ce18froger xuepublic class AccessPointSecurity {
32664ed2dc2488c50194a80004af759a765f0ce18froger xue    public static final int SECURITY_NONE_POSITION = 0;
33fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue    private final int mSecurityType;
34664ed2dc2488c50194a80004af759a765f0ce18froger xue    private final Context mContext;
35664ed2dc2488c50194a80004af759a765f0ce18froger xue    private static final List<Integer> SECURITY_TYPES = Arrays.asList(
36664ed2dc2488c50194a80004af759a765f0ce18froger xue            AccessPoint.SECURITY_NONE,
37664ed2dc2488c50194a80004af759a765f0ce18froger xue            AccessPoint.SECURITY_WEP,
38664ed2dc2488c50194a80004af759a765f0ce18froger xue            AccessPoint.SECURITY_PSK,
39664ed2dc2488c50194a80004af759a765f0ce18froger xue            AccessPoint.SECURITY_EAP);
40664ed2dc2488c50194a80004af759a765f0ce18froger xue
41fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue    public static List<AccessPointSecurity> getSecurityTypes(Context context) {
42664ed2dc2488c50194a80004af759a765f0ce18froger xue        List<AccessPointSecurity> securities = new ArrayList<>();
43664ed2dc2488c50194a80004af759a765f0ce18froger xue        for (int security : SECURITY_TYPES) {
44664ed2dc2488c50194a80004af759a765f0ce18froger xue            securities.add(new AccessPointSecurity(context, security));
45664ed2dc2488c50194a80004af759a765f0ce18froger xue        }
46664ed2dc2488c50194a80004af759a765f0ce18froger xue        return securities;
47664ed2dc2488c50194a80004af759a765f0ce18froger xue    }
48664ed2dc2488c50194a80004af759a765f0ce18froger xue
49fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue    private AccessPointSecurity(Context context, int securityType) {
50664ed2dc2488c50194a80004af759a765f0ce18froger xue        mContext = context;
51fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue        mSecurityType = securityType;
52fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue    }
53fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue
54fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue    public int getSecurityType() {
55fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue        return mSecurityType;
56664ed2dc2488c50194a80004af759a765f0ce18froger xue    }
57664ed2dc2488c50194a80004af759a765f0ce18froger xue
58664ed2dc2488c50194a80004af759a765f0ce18froger xue    @Override
59664ed2dc2488c50194a80004af759a765f0ce18froger xue    public String toString() {
60fe73ade9d187b097b60d7e9a027fac3eeedb4b4dLujiang Xue        switch(mSecurityType) {
61664ed2dc2488c50194a80004af759a765f0ce18froger xue            case AccessPoint.SECURITY_EAP:
62664ed2dc2488c50194a80004af759a765f0ce18froger xue                return mContext.getString(R.string.wifi_security_eap);
63664ed2dc2488c50194a80004af759a765f0ce18froger xue            case AccessPoint.SECURITY_PSK:
64664ed2dc2488c50194a80004af759a765f0ce18froger xue                return mContext.getString(R.string.wifi_security_psk_generic);
65664ed2dc2488c50194a80004af759a765f0ce18froger xue            case AccessPoint.SECURITY_WEP:
66664ed2dc2488c50194a80004af759a765f0ce18froger xue                return mContext.getString(R.string.wifi_security_wep);
67664ed2dc2488c50194a80004af759a765f0ce18froger xue            case AccessPoint.SECURITY_NONE:
68664ed2dc2488c50194a80004af759a765f0ce18froger xue            default:
69664ed2dc2488c50194a80004af759a765f0ce18froger xue                return mContext.getString(R.string.wifi_security_none);
70664ed2dc2488c50194a80004af759a765f0ce18froger xue        }
71664ed2dc2488c50194a80004af759a765f0ce18froger xue    }
72664ed2dc2488c50194a80004af759a765f0ce18froger xue}
73