+ private void updateSelectedNetworkInformation() {
+ if(view == null)
+ return;
+ if(selectedNetworkIndex >= wifiPresets.length)
+ return;
+
+ WifiNetworkSettingsSet settings = wifiPresets[selectedNetworkIndex];
+ TextView ssidInfoView = (TextView) view.findViewById(R.id.ssidInfo);
+ TextView securityInfoView = (TextView) view.findViewById(R.id.securityInfo);
+ TextView eapInfoView = (TextView) view.findViewById(R.id.eapInfo);
+ TextView phase2InfoView = (TextView) view.findViewById(R.id.phase2Info);
+ TextView cacertInfoView = (TextView) view.findViewById(R.id.cacertInfo);
+
+ TableRow eapInfoRow = (TableRow) view.findViewById(R.id.eapInfoRow);
+ TableRow phase2InfoRow = (TableRow) view.findViewById(R.id.phase2InfoRow);
+ TableRow cacertInfoRow = (TableRow) view.findViewById(R.id.cacertInfoRow);
+ TableRow pskInfoRow = (TableRow) view.findViewById(R.id.pskInfoRow);
+
+ RelativeLayout insecureNetWarning = (RelativeLayout) view.findViewById(R.id.insecureNetWarning);
+
+
+ ssidInfoView.setText(settings.ssid);
+
+ eapInfoRow.setVisibility(View.GONE);
+ phase2InfoRow.setVisibility(View.GONE);
+ cacertInfoRow.setVisibility(View.GONE);
+ pskInfoRow.setVisibility(View.GONE);
+ insecureNetWarning.setVisibility(View.GONE);
+
+ switch(settings.authType) {
+ case WIFI_AUTHTYPE_NONE:
+ securityInfoView.setText(R.string.wifiopts_security_open);
+
+ insecureNetWarning.setVisibility(View.VISIBLE);
+ break;
+ case WIFI_AUTHTYPE_WEP:
+ securityInfoView.setText(R.string.wifiopts_security_wep);
+ insecureNetWarning.setVisibility(View.VISIBLE);
+ // unsupported!
+ break;
+ case WIFI_AUTHTYPE_WPA:
+ securityInfoView.setText(R.string.wifiopts_security_wpa);
+
+ pskInfoRow.setVisibility(View.VISIBLE);
+ break;
+ case WIFI_AUTHTYPE_WPA_ENTERPRISE:
+ securityInfoView.setText(R.string.wifiopts_security_wpa_enterprise);
+
+ eapInfoRow.setVisibility(View.VISIBLE);
+ phase2InfoRow.setVisibility(View.VISIBLE);
+ cacertInfoRow.setVisibility(View.VISIBLE);
+ break;
+ }
+
+ if(settings.authType == WifiNetworkAuthenticationTypes.WIFI_AUTHTYPE_WPA_ENTERPRISE) {
+ int eapStringId = 0;
+ switch(settings.eapMethod) {
+ case WifiEnterpriseConfig.Eap.PEAP:
+ eapStringId = R.string.wifiopts_eap_peap;
+ break;
+ case WifiEnterpriseConfig.Eap.TLS:
+ eapStringId = R.string.wifiopts_eap_tls;
+ break;
+ case WifiEnterpriseConfig.Eap.TTLS:
+ eapStringId = R.string.wifiopts_eap_ttls;
+ break;
+ case WifiEnterpriseConfig.Eap.PWD:
+ eapStringId = R.string.wifiopts_eap_pwd;
+ break;
+ }
+ if(eapStringId > 0)
+ eapInfoView.setText(eapStringId);
+ else
+ eapInfoView.setText("");
+
+ int phase2StringId = 0;
+ switch(settings.phase2Method) {
+ case WifiEnterpriseConfig.Phase2.MSCHAPV2:
+ phase2StringId = R.string.wifiopts_phase2_mschapv2;
+ break;
+ case WifiEnterpriseConfig.Phase2.GTC:
+ phase2StringId = R.string.wifiopts_phase2_gtc;
+ break;
+ }
+ if(phase2StringId > 0)
+ phase2InfoView.setText(phase2StringId);
+ else
+ phase2InfoView.setText("");
+
+ cacertInfoView.setText(settings.caName);
+ } else {
+
+ }
+ updateWifiConnectButton();
+ }
+
+ private void updateWifiState() {
+ NetworkInfo myNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
+ WifiInfo myWifiInfo = wifiManager.getConnectionInfo();
+
+ Resources resources = AppContext.getMainActivity().getResources();
+ String status;
+ if(myNetworkInfo.isConnectedOrConnecting()) {
+ int statusId = (myNetworkInfo.isConnected() ? R.string.wifisettings_status_connected : R.string.wifisettings_status_connecting);
+
+ String ssid = myWifiInfo.getSSID();
+
+ status = String.format(resources.getString(statusId), ssid);
+ } else {
+ status = resources.getString(R.string.wifisettings_status_disconnected);
+ }
+
+ TextView statusTextView = (TextView)view.findViewById(R.id.wifiStatusText);
+ statusTextView.setText(status);
+ updateWifiConnectButton();
+ }
+
+ private void updateWifiScanState() {
+ networkScanned = true;
+ List<ScanResult> scanResultList = wifiManager.getScanResults();
+ for(int i = 0; i < wifiPresets.length; i++) {
+ boolean networkFound = false;
+ for(ScanResult result : scanResultList) {
+ if(result.SSID != null && result.SSID.equalsIgnoreCase(wifiPresets[i].ssid)) {
+ networkFound = true;
+ break;
+ }
+ }
+ wifiPresets[i].isInScanResult = networkFound;
+ }
+ updateWifiConnectButton();
+ }
+
+ private void updateWifiConnectButton() {
+ if(selectedNetworkIndex >= wifiPresets.length)
+ return;
+ WifiNetworkSettingsSet preset = wifiPresets[selectedNetworkIndex];
+
+ boolean buttonEnabled = false;
+ int buttonTextId = 0;
+ NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
+ WifiInfo wifiInfo = wifiManager.getConnectionInfo();
+
+ if(!wifiManager.isWifiEnabled()) {
+ buttonTextId = R.string.wifisettings_connect_button_disabled;
+ } else if(networkInfo.isConnectedOrConnecting() && wifiInfo.getSSID() != null && wifiInfo.getSSID().equalsIgnoreCase(preset.ssid)) {
+ buttonTextId = R.string.wifisettings_connect_button_ready;
+ } else if(!networkScanned) {
+ buttonTextId = R.string.wifisettings_connect_button_scan;
+ } else if(!preset.isInScanResult) {
+ buttonTextId = R.string.wifisettings_connect_button_notfound;
+ buttonEnabled = true;
+ } else {
+ buttonEnabled = true;
+ buttonTextId = R.string.wifisettings_connect_button;
+ }
+
+ Button connectBtn = (Button) view.findViewById(R.id.wifiConnectBtn);
+ connectBtn.setEnabled(buttonEnabled);
+ connectBtn.setText(buttonTextId);
+ }