[Wi-Fi] Remove unsupported EAP methods for WPA3-Enterprise 192-bit - II
Refine code: 1. Change method name from getSpinnerAdapterWithEapMethods to getSpinnerAdapter and apply it to other Spinner adapters. 2. Change method name from getSpinnerArrayWithEapMethodsTts to getSpinnerAdapterWithEapMethodsTts and it will setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) for adapters. 3. Remove the code of ag/8693033 4. Improve indentation. Bug: 135127581 Test: WifiConfigControllerTest Change-Id: I653eda11ca1b8235c5ecaa1a826a2fddd004d2e1
This commit is contained in:
@@ -221,19 +221,13 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
mLevels = res.getStringArray(R.array.wifi_signal);
|
mLevels = res.getStringArray(R.array.wifi_signal);
|
||||||
if (Utils.isWifiOnly(mContext) || !mContext.getResources().getBoolean(
|
if (Utils.isWifiOnly(mContext) || !mContext.getResources().getBoolean(
|
||||||
com.android.internal.R.bool.config_eap_sim_based_auth_supported)) {
|
com.android.internal.R.bool.config_eap_sim_based_auth_supported)) {
|
||||||
mPhase2PeapAdapter = new ArrayAdapter<CharSequence>(
|
mPhase2PeapAdapter = getSpinnerAdapter(R.array.wifi_peap_phase2_entries);
|
||||||
mContext, android.R.layout.simple_spinner_item,
|
|
||||||
res.getStringArray(R.array.wifi_peap_phase2_entries));
|
|
||||||
} else {
|
} else {
|
||||||
mPhase2PeapAdapter = getSpinnerArrayWithEapMethodsTts(
|
mPhase2PeapAdapter = getSpinnerAdapterWithEapMethodsTts(
|
||||||
R.array.wifi_peap_phase2_entries_with_sim_auth);
|
R.array.wifi_peap_phase2_entries_with_sim_auth);
|
||||||
}
|
}
|
||||||
mPhase2PeapAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
|
|
||||||
mPhase2FullAdapter = new ArrayAdapter<CharSequence>(
|
mPhase2FullAdapter = getSpinnerAdapter(R.array.wifi_phase2_entries);
|
||||||
mContext, android.R.layout.simple_spinner_item,
|
|
||||||
res.getStringArray(R.array.wifi_phase2_entries));
|
|
||||||
mPhase2FullAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
|
|
||||||
mUnspecifiedCertString = mContext.getString(R.string.wifi_unspecified);
|
mUnspecifiedCertString = mContext.getString(R.string.wifi_unspecified);
|
||||||
mMultipleCertSetString = mContext.getString(R.string.wifi_multiple_cert_added);
|
mMultipleCertSetString = mContext.getString(R.string.wifi_multiple_cert_added);
|
||||||
@@ -680,12 +674,6 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
config.enterpriseConfig = new WifiEnterpriseConfig();
|
config.enterpriseConfig = new WifiEnterpriseConfig();
|
||||||
int eapMethod = mEapMethodSpinner.getSelectedItemPosition();
|
int eapMethod = mEapMethodSpinner.getSelectedItemPosition();
|
||||||
int phase2Method = mPhase2Spinner.getSelectedItemPosition();
|
int phase2Method = mPhase2Spinner.getSelectedItemPosition();
|
||||||
if (mAccessPointSecurity == AccessPoint.SECURITY_EAP_SUITE_B) {
|
|
||||||
if (eapMethod != WIFI_EAP_METHOD_TLS) {
|
|
||||||
Log.e(TAG, "WPA3-Enterprise 192-bit EAP method must be EAP-TLS");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
config.enterpriseConfig.setEapMethod(eapMethod);
|
config.enterpriseConfig.setEapMethod(eapMethod);
|
||||||
switch (eapMethod) {
|
switch (eapMethod) {
|
||||||
case Eap.PEAP:
|
case Eap.PEAP:
|
||||||
@@ -1005,21 +993,18 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
if (refreshEapMethods) {
|
if (refreshEapMethods) {
|
||||||
ArrayAdapter<CharSequence> eapMethodSpinnerAdapter;
|
ArrayAdapter<CharSequence> eapMethodSpinnerAdapter;
|
||||||
if (mAccessPointSecurity == AccessPoint.SECURITY_EAP_SUITE_B) {
|
if (mAccessPointSecurity == AccessPoint.SECURITY_EAP_SUITE_B) {
|
||||||
eapMethodSpinnerAdapter = getSpinnerAdapterWithEapMethods(R.array.wifi_eap_method);
|
eapMethodSpinnerAdapter = getSpinnerAdapter(R.array.wifi_eap_method);
|
||||||
mEapMethodSpinner.setAdapter(eapMethodSpinnerAdapter);
|
mEapMethodSpinner.setAdapter(eapMethodSpinnerAdapter);
|
||||||
// WAP3-Enterprise 192-bit only allows EAP method TLS
|
// WAP3-Enterprise 192-bit only allows EAP method TLS
|
||||||
mEapMethodSpinner.setSelection(Eap.TLS);
|
mEapMethodSpinner.setSelection(Eap.TLS);
|
||||||
mEapMethodSpinner.setEnabled(false);
|
mEapMethodSpinner.setEnabled(false);
|
||||||
} else if (Utils.isWifiOnly(mContext) || !mContext.getResources().getBoolean(
|
} else if (Utils.isWifiOnly(mContext) || !mContext.getResources().getBoolean(
|
||||||
com.android.internal.R.bool.config_eap_sim_based_auth_supported)) {
|
com.android.internal.R.bool.config_eap_sim_based_auth_supported)) {
|
||||||
eapMethodSpinnerAdapter = getSpinnerAdapterWithEapMethods(
|
eapMethodSpinnerAdapter = getSpinnerAdapter(R.array.eap_method_without_sim_auth);
|
||||||
R.array.eap_method_without_sim_auth);
|
|
||||||
mEapMethodSpinner.setAdapter(eapMethodSpinnerAdapter);
|
mEapMethodSpinner.setAdapter(eapMethodSpinnerAdapter);
|
||||||
mEapMethodSpinner.setEnabled(true);
|
mEapMethodSpinner.setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
eapMethodSpinnerAdapter = getSpinnerArrayWithEapMethodsTts(R.array.wifi_eap_method);
|
eapMethodSpinnerAdapter = getSpinnerAdapterWithEapMethodsTts(R.array.wifi_eap_method);
|
||||||
eapMethodSpinnerAdapter.setDropDownViewResource(
|
|
||||||
android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
mEapMethodSpinner.setAdapter(eapMethodSpinnerAdapter);
|
mEapMethodSpinner.setAdapter(eapMethodSpinnerAdapter);
|
||||||
mEapMethodSpinner.setEnabled(true);
|
mEapMethodSpinner.setEnabled(true);
|
||||||
}
|
}
|
||||||
@@ -1046,74 +1031,74 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Modifying an existing network
|
// Modifying an existing network
|
||||||
if (mAccessPoint != null && mAccessPoint.isSaved()) {
|
if (mAccessPoint != null && mAccessPoint.isSaved()) {
|
||||||
WifiEnterpriseConfig enterpriseConfig = mAccessPoint.getConfig().enterpriseConfig;
|
WifiEnterpriseConfig enterpriseConfig = mAccessPoint.getConfig().enterpriseConfig;
|
||||||
int eapMethod = enterpriseConfig.getEapMethod();
|
int eapMethod = enterpriseConfig.getEapMethod();
|
||||||
int phase2Method = enterpriseConfig.getPhase2Method();
|
int phase2Method = enterpriseConfig.getPhase2Method();
|
||||||
mEapMethodSpinner.setSelection(eapMethod);
|
mEapMethodSpinner.setSelection(eapMethod);
|
||||||
showEapFieldsByMethod(eapMethod);
|
showEapFieldsByMethod(eapMethod);
|
||||||
switch (eapMethod) {
|
switch (eapMethod) {
|
||||||
case Eap.PEAP:
|
case Eap.PEAP:
|
||||||
switch (phase2Method) {
|
switch (phase2Method) {
|
||||||
case Phase2.NONE:
|
case Phase2.NONE:
|
||||||
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_NONE);
|
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_NONE);
|
||||||
break;
|
break;
|
||||||
case Phase2.MSCHAPV2:
|
case Phase2.MSCHAPV2:
|
||||||
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_MSCHAPV2);
|
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_MSCHAPV2);
|
||||||
break;
|
break;
|
||||||
case Phase2.GTC:
|
case Phase2.GTC:
|
||||||
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_GTC);
|
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_GTC);
|
||||||
break;
|
break;
|
||||||
case Phase2.SIM:
|
case Phase2.SIM:
|
||||||
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_SIM);
|
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_SIM);
|
||||||
break;
|
break;
|
||||||
case Phase2.AKA:
|
case Phase2.AKA:
|
||||||
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_AKA);
|
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_AKA);
|
||||||
break;
|
break;
|
||||||
case Phase2.AKA_PRIME:
|
case Phase2.AKA_PRIME:
|
||||||
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_AKA_PRIME);
|
mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_AKA_PRIME);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Log.e(TAG, "Invalid phase 2 method " + phase2Method);
|
Log.e(TAG, "Invalid phase 2 method " + phase2Method);
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
mPhase2Spinner.setSelection(phase2Method);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!TextUtils.isEmpty(enterpriseConfig.getCaPath())) {
|
|
||||||
setSelection(mEapCaCertSpinner, mUseSystemCertsString);
|
|
||||||
} else {
|
|
||||||
String[] caCerts = enterpriseConfig.getCaCertificateAliases();
|
|
||||||
if (caCerts == null) {
|
|
||||||
setSelection(mEapCaCertSpinner, mDoNotValidateEapServerString);
|
|
||||||
} else if (caCerts.length == 1) {
|
|
||||||
setSelection(mEapCaCertSpinner, caCerts[0]);
|
|
||||||
} else {
|
|
||||||
// Reload the cert spinner with an extra "multiple certificates added" item.
|
|
||||||
loadCertificates(
|
|
||||||
mEapCaCertSpinner,
|
|
||||||
Credentials.CA_CERTIFICATE,
|
|
||||||
mDoNotValidateEapServerString,
|
|
||||||
true,
|
|
||||||
true);
|
|
||||||
setSelection(mEapCaCertSpinner, mMultipleCertSetString);
|
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
mEapDomainView.setText(enterpriseConfig.getDomainSuffixMatch());
|
default:
|
||||||
String userCert = enterpriseConfig.getClientCertificateAlias();
|
mPhase2Spinner.setSelection(phase2Method);
|
||||||
if (TextUtils.isEmpty(userCert)) {
|
break;
|
||||||
setSelection(mEapUserCertSpinner, mDoNotProvideEapUserCertString);
|
|
||||||
} else {
|
|
||||||
setSelection(mEapUserCertSpinner, userCert);
|
|
||||||
}
|
|
||||||
mEapIdentityView.setText(enterpriseConfig.getIdentity());
|
|
||||||
mEapAnonymousView.setText(enterpriseConfig.getAnonymousIdentity());
|
|
||||||
} else {
|
|
||||||
showEapFieldsByMethod(mEapMethodSpinner.getSelectedItemPosition());
|
|
||||||
}
|
}
|
||||||
|
if (!TextUtils.isEmpty(enterpriseConfig.getCaPath())) {
|
||||||
|
setSelection(mEapCaCertSpinner, mUseSystemCertsString);
|
||||||
|
} else {
|
||||||
|
String[] caCerts = enterpriseConfig.getCaCertificateAliases();
|
||||||
|
if (caCerts == null) {
|
||||||
|
setSelection(mEapCaCertSpinner, mDoNotValidateEapServerString);
|
||||||
|
} else if (caCerts.length == 1) {
|
||||||
|
setSelection(mEapCaCertSpinner, caCerts[0]);
|
||||||
|
} else {
|
||||||
|
// Reload the cert spinner with an extra "multiple certificates added" item.
|
||||||
|
loadCertificates(
|
||||||
|
mEapCaCertSpinner,
|
||||||
|
Credentials.CA_CERTIFICATE,
|
||||||
|
mDoNotValidateEapServerString,
|
||||||
|
true,
|
||||||
|
true);
|
||||||
|
setSelection(mEapCaCertSpinner, mMultipleCertSetString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mEapDomainView.setText(enterpriseConfig.getDomainSuffixMatch());
|
||||||
|
String userCert = enterpriseConfig.getClientCertificateAlias();
|
||||||
|
if (TextUtils.isEmpty(userCert)) {
|
||||||
|
setSelection(mEapUserCertSpinner, mDoNotProvideEapUserCertString);
|
||||||
|
} else {
|
||||||
|
setSelection(mEapUserCertSpinner, userCert);
|
||||||
|
}
|
||||||
|
mEapIdentityView.setText(enterpriseConfig.getIdentity());
|
||||||
|
mEapAnonymousView.setText(enterpriseConfig.getAnonymousIdentity());
|
||||||
|
} else {
|
||||||
|
showEapFieldsByMethod(mEapMethodSpinner.getSelectedItemPosition());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1417,10 +1402,8 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
spinner.setEnabled(true);
|
spinner.setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
|
final ArrayAdapter<CharSequence> adapter = getSpinnerAdapter(
|
||||||
context, android.R.layout.simple_spinner_item,
|
|
||||||
certs.toArray(new String[certs.size()]));
|
certs.toArray(new String[certs.size()]));
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
spinner.setAdapter(adapter);
|
spinner.setAdapter(adapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1642,12 +1625,16 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
return returnEntries;
|
return returnEntries;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArrayAdapter<CharSequence> getSpinnerAdapterWithEapMethods(
|
private ArrayAdapter<CharSequence> getSpinnerAdapter(
|
||||||
int contentStringArrayResId) {
|
int contentStringArrayResId) {
|
||||||
String[] eapMethods = mContext.getResources().getStringArray(
|
return getSpinnerAdapter(
|
||||||
contentStringArrayResId);
|
mContext.getResources().getStringArray(contentStringArrayResId));
|
||||||
|
}
|
||||||
|
|
||||||
|
private ArrayAdapter<CharSequence> getSpinnerAdapter(
|
||||||
|
String[] contentStringArray) {
|
||||||
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<>(mContext,
|
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<>(mContext,
|
||||||
android.R.layout.simple_spinner_item, eapMethods);
|
android.R.layout.simple_spinner_item, contentStringArray);
|
||||||
spinnerAdapter.setDropDownViewResource(
|
spinnerAdapter.setDropDownViewResource(
|
||||||
android.R.layout.simple_spinner_dropdown_item);
|
android.R.layout.simple_spinner_dropdown_item);
|
||||||
return spinnerAdapter;
|
return spinnerAdapter;
|
||||||
@@ -1657,10 +1644,11 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
* This function is to span the TTS strings to each EAP method items in the
|
* This function is to span the TTS strings to each EAP method items in the
|
||||||
* spinner to have detail TTS content for the TTS engine usage.
|
* spinner to have detail TTS content for the TTS engine usage.
|
||||||
*/
|
*/
|
||||||
private ArrayAdapter<CharSequence> getSpinnerArrayWithEapMethodsTts(int resid) {
|
private ArrayAdapter<CharSequence> getSpinnerAdapterWithEapMethodsTts(
|
||||||
|
int contentStringArrayResId) {
|
||||||
final Resources res = mContext.getResources();
|
final Resources res = mContext.getResources();
|
||||||
CharSequence[] sourceStrings = res.getStringArray(
|
CharSequence[] sourceStrings = res.getStringArray(
|
||||||
resid);
|
contentStringArrayResId);
|
||||||
CharSequence[] targetStrings = res.getStringArray(
|
CharSequence[] targetStrings = res.getStringArray(
|
||||||
R.array.wifi_eap_method_target_strings);
|
R.array.wifi_eap_method_target_strings);
|
||||||
CharSequence[] ttsStrings = res.getStringArray(
|
CharSequence[] ttsStrings = res.getStringArray(
|
||||||
@@ -1670,13 +1658,16 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
final CharSequence[] newTtsSourceStrings = findAndReplaceTargetStrings(
|
final CharSequence[] newTtsSourceStrings = findAndReplaceTargetStrings(
|
||||||
sourceStrings, targetStrings, ttsStrings);
|
sourceStrings, targetStrings, ttsStrings);
|
||||||
|
|
||||||
// Build new ttsspan text arrays for talkback.
|
// Build new TtsSpan text arrays for TalkBack.
|
||||||
final CharSequence[] accessibilityArray = createAccessibleEntries(
|
final CharSequence[] accessibilityArray = createAccessibleEntries(
|
||||||
sourceStrings, newTtsSourceStrings);
|
sourceStrings, newTtsSourceStrings);
|
||||||
|
|
||||||
// Return a new ArrayAdapter with the new talkback array.
|
// Return a new ArrayAdapter with the new TalkBack array.
|
||||||
return new ArrayAdapter<CharSequence>(
|
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<>(
|
||||||
mContext, android.R.layout.simple_spinner_item, accessibilityArray);
|
mContext, android.R.layout.simple_spinner_item, accessibilityArray);
|
||||||
|
spinnerAdapter.setDropDownViewResource(
|
||||||
|
android.R.layout.simple_spinner_dropdown_item);
|
||||||
|
return spinnerAdapter;
|
||||||
}
|
}
|
||||||
|
|
||||||
private SpannableString[] createAccessibleEntries(CharSequence entries[],
|
private SpannableString[] createAccessibleEntries(CharSequence entries[],
|
||||||
|
Reference in New Issue
Block a user