148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh/* 248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * Copyright (C) 2010 The Android Open Source Project 348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * 448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * Licensed under the Apache License, Version 2.0 (the "License"); 548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * you may not use this file except in compliance with the License. 648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * You may obtain a copy of the License at 748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * 848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * http://www.apache.org/licenses/LICENSE-2.0 948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * 1048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * Unless required by applicable law or agreed to in writing, software 1148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * distributed under the License is distributed on an "AS IS" BASIS, 1248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * See the License for the specific language governing permissions and 1448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * limitations under the License. 1548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh */ 1648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 1748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehpackage com.android.settings.wifi; 1848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 1948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport com.android.settings.R; 2048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 2148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.content.Context; 2248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.net.NetworkInfo.DetailedState; 2348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.net.wifi.WifiConfiguration; 2448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.net.wifi.WifiConfiguration.KeyMgmt; 2548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.net.wifi.WifiInfo; 2648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.net.wifi.WifiManager; 2748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.net.wifi.ScanResult; 2848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.preference.Preference; 2948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.text.TextUtils; 3048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.view.View; 3148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.widget.ImageView; 3248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 3348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehclass AccessPoint extends Preference { 3448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh private static final int[] STATE_SECURED = {R.attr.state_encrypted}; 3548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh private static final int[] STATE_NONE = {}; 3648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 3748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh static final int SECURITY_NONE = 0; 3848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh static final int SECURITY_WEP = 1; 3948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh static final int SECURITY_PSK = 2; 4048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh static final int SECURITY_EAP = 3; 4148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 4248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh final String ssid; 4348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh final int security; 4448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh final int networkId; 4548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 4648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh private WifiConfiguration mConfig; 4748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh private int mRssi; 4848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh private WifiInfo mInfo; 4948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh private DetailedState mState; 5048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh private ImageView mSignal; 5148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 5265cff177222560f43b7da367c45ec425e86e9eecIrfan Sheriff static int getSecurity(WifiConfiguration config) { 5348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) { 5448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return SECURITY_PSK; 5548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 5648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (config.allowedKeyManagement.get(KeyMgmt.WPA_EAP) || 5748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh config.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) { 5848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return SECURITY_EAP; 5948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 6048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return (config.wepKeys[0] != null) ? SECURITY_WEP : SECURITY_NONE; 6148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 6248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 6348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh private static int getSecurity(ScanResult result) { 6448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (result.capabilities.contains("WEP")) { 6548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return SECURITY_WEP; 6648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } else if (result.capabilities.contains("PSK")) { 6748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return SECURITY_PSK; 6848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } else if (result.capabilities.contains("EAP")) { 6948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return SECURITY_EAP; 7048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 7148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return SECURITY_NONE; 7248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 7348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 7448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh AccessPoint(Context context, WifiConfiguration config) { 7548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh super(context); 7648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh setWidgetLayoutResource(R.layout.preference_widget_wifi_signal); 778c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang ssid = (config.SSID == null ? "" : removeDoubleQuotes(config.SSID)); 7848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh security = getSecurity(config); 7948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh networkId = config.networkId; 8048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mConfig = config; 8148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mRssi = Integer.MAX_VALUE; 8248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 8348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 8448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh AccessPoint(Context context, ScanResult result) { 8548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh super(context); 8648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh setWidgetLayoutResource(R.layout.preference_widget_wifi_signal); 8748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh ssid = result.SSID; 8848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh security = getSecurity(result); 8948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh networkId = -1; 9048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mRssi = result.level; 9148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 9248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 9348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh @Override 9448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh protected void onBindView(View view) { 9548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh setTitle(ssid); 9648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mSignal = (ImageView) view.findViewById(R.id.signal); 9748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (mRssi == Integer.MAX_VALUE) { 9848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mSignal.setImageDrawable(null); 9948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } else { 10048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mSignal.setImageResource(R.drawable.wifi_signal); 10148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mSignal.setImageState((security != SECURITY_NONE) ? 10248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh STATE_SECURED : STATE_NONE, true); 10348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 10448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh refresh(); 10548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh super.onBindView(view); 10648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 10748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 10848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh @Override 10948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh public int compareTo(Preference preference) { 11048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (!(preference instanceof AccessPoint)) { 11148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return 1; 11248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 11348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh AccessPoint other = (AccessPoint) preference; 11448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh // Active one goes first. 11548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (mInfo != other.mInfo) { 11648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return (mInfo != null) ? -1 : 1; 11748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 11848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh // Reachable one goes before unreachable one. 11948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if ((mRssi ^ other.mRssi) < 0) { 12048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return (mRssi != Integer.MAX_VALUE) ? -1 : 1; 12148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 12248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh // Configured one goes before unconfigured one. 12348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if ((networkId ^ other.networkId) < 0) { 12448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return (networkId != -1) ? -1 : 1; 12548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 12648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh // Sort by signal strength. 12748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh int difference = WifiManager.compareSignalLevel(other.mRssi, mRssi); 12848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (difference != 0) { 12948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return difference; 13048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 13148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh // Sort by ssid. 13248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return ssid.compareToIgnoreCase(other.ssid); 13348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 13448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 13548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh boolean update(ScanResult result) { 13648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh // We do not call refresh() since this is called before onBindView(). 13748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (ssid.equals(result.SSID) && security == getSecurity(result)) { 13848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (WifiManager.compareSignalLevel(result.level, mRssi) > 0) { 13948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mRssi = result.level; 14048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 14148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return true; 14248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 14348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return false; 14448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 14548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 14648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh void update(WifiInfo info, DetailedState state) { 14748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh boolean reorder = false; 14848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (info != null && networkId != -1 && networkId == info.getNetworkId()) { 14948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh reorder = (mInfo == null); 15048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mRssi = info.getRssi(); 15148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mInfo = info; 15248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mState = state; 15348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh refresh(); 15448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } else if (mInfo != null) { 15548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh reorder = true; 15648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mInfo = null; 15748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mState = null; 15848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh refresh(); 15948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 16048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (reorder) { 16148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh notifyHierarchyChanged(); 16248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 16348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 16448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 16548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh int getLevel() { 16648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (mRssi == Integer.MAX_VALUE) { 16748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return -1; 16848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 16948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return WifiManager.calculateSignalLevel(mRssi, 4); 17048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 17148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 17248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh WifiConfiguration getConfig() { 17348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return mConfig; 17448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 17548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 17648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh WifiInfo getInfo() { 17748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return mInfo; 17848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 17948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 18048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh DetailedState getState() { 18148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return mState; 18248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 18348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 1848c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang static String removeDoubleQuotes(String string) { 1858c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang int length = string.length(); 1868c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang if ((length > 1) && (string.charAt(0) == '"') 1878c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang && (string.charAt(length - 1) == '"')) { 1888c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang return string.substring(1, length - 1); 1898c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang } 1908c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang return string; 1918c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang } 1928c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang 1938c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang static String convertToQuotedString(String string) { 1948c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang return "\"" + string + "\""; 1958c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang } 1968c81257f70fabeaa505e292bd0c2226dd5eefc4cChung-yih Wang 19748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh private void refresh() { 19848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (mSignal == null) { 19948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh return; 20048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 20148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh Context context = getContext(); 20248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh mSignal.setImageLevel(getLevel()); 20348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 20448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (mState != null) { 20548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh setSummary(Summary.get(context, mState)); 20648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } else { 20748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh String status = null; 20848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (mRssi == Integer.MAX_VALUE) { 20948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh status = context.getString(R.string.wifi_not_in_range); 21048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } else if (mConfig != null) { 21148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh status = context.getString((mConfig.status == WifiConfiguration.Status.DISABLED) ? 21248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh R.string.wifi_disabled : R.string.wifi_remembered); 21348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 21448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh 21548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh if (security == SECURITY_NONE) { 21648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh setSummary(status); 21748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } else { 21848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh String format = context.getString((status == null) ? 21948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh R.string.wifi_secured : R.string.wifi_secured_with_status); 22048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh String[] type = context.getResources().getStringArray(R.array.wifi_security); 22148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh setSummary(String.format(format, type[security], status)); 22248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 22348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 22448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh } 22548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh} 226