resolve merge conflicts of 55d7fcbfc2
to master.
Change-Id: Ib0876ea153e8a8f7c8ad5438915d39c9ae97e51b
This commit is contained in:
@@ -1630,6 +1630,8 @@
|
|||||||
<string name="wifi_unchanged">(unchanged)</string>
|
<string name="wifi_unchanged">(unchanged)</string>
|
||||||
<!-- Hint for unspecified fields -->
|
<!-- Hint for unspecified fields -->
|
||||||
<string name="wifi_unspecified">(unspecified)</string>
|
<string name="wifi_unspecified">(unspecified)</string>
|
||||||
|
<!-- Hint for multiple certificates being added to the configuration -->
|
||||||
|
<string name="wifi_multiple_cert_added">(Multiple certificates added)</string>
|
||||||
<!-- Substring of status line when Wi-Fi Protected Setup (WPS) is available and
|
<!-- Substring of status line when Wi-Fi Protected Setup (WPS) is available and
|
||||||
string is listed first [CHAR LIMIT=20]-->
|
string is listed first [CHAR LIMIT=20]-->
|
||||||
<string name="wifi_wps_available_first_item">WPS available</string>
|
<string name="wifi_wps_available_first_item">WPS available</string>
|
||||||
|
@@ -64,6 +64,8 @@ import com.android.settingslib.wifi.AccessPoint;
|
|||||||
|
|
||||||
import java.net.Inet4Address;
|
import java.net.Inet4Address;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -115,6 +117,8 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
|
|
||||||
private String unspecifiedCert = "unspecified";
|
private String unspecifiedCert = "unspecified";
|
||||||
private static final int unspecifiedCertIndex = 0;
|
private static final int unspecifiedCertIndex = 0;
|
||||||
|
private String multipleCertSet = "multipleCert";
|
||||||
|
private static final int multipleCertSetIndex = 1;
|
||||||
|
|
||||||
private Spinner mSecuritySpinner;
|
private Spinner mSecuritySpinner;
|
||||||
private Spinner mEapMethodSpinner;
|
private Spinner mEapMethodSpinner;
|
||||||
@@ -178,6 +182,7 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
PHASE2_FULL_ADAPTER.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
PHASE2_FULL_ADAPTER.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||||
|
|
||||||
unspecifiedCert = mContext.getString(R.string.wifi_unspecified);
|
unspecifiedCert = mContext.getString(R.string.wifi_unspecified);
|
||||||
|
multipleCertSet = mContext.getString(R.string.wifi_multiple_cert_added);
|
||||||
mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
|
mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
|
||||||
mIpSettingsSpinner.setOnItemSelectedListener(this);
|
mIpSettingsSpinner.setOnItemSelectedListener(this);
|
||||||
mProxySettingsSpinner = (Spinner) mView.findViewById(R.id.proxy_settings);
|
mProxySettingsSpinner = (Spinner) mView.findViewById(R.id.proxy_settings);
|
||||||
@@ -476,8 +481,20 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
String caCert = (String) mEapCaCertSpinner.getSelectedItem();
|
String caCert = (String) mEapCaCertSpinner.getSelectedItem();
|
||||||
if (caCert.equals(unspecifiedCert)) caCert = "";
|
if (caCert.equals(unspecifiedCert)) {
|
||||||
config.enterpriseConfig.setCaCertificateAlias(caCert);
|
config.enterpriseConfig.setCaCertificateAliases(null);
|
||||||
|
} else if (caCert.equals(multipleCertSet)) {
|
||||||
|
if (mAccessPoint != null) {
|
||||||
|
if (!mAccessPoint.isSaved()) {
|
||||||
|
Log.e(TAG, "Multiple certs can only be set when editing saved network");
|
||||||
|
}
|
||||||
|
config.enterpriseConfig.setCaCertificateAliases(
|
||||||
|
mAccessPoint.getConfig().enterpriseConfig.getCaCertificateAliases());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
config.enterpriseConfig.setCaCertificateAliases(new String[] {caCert});
|
||||||
|
}
|
||||||
|
|
||||||
String clientCert = (String) mEapUserCertSpinner.getSelectedItem();
|
String clientCert = (String) mEapUserCertSpinner.getSelectedItem();
|
||||||
if (clientCert.equals(unspecifiedCert)) clientCert = "";
|
if (clientCert.equals(unspecifiedCert)) clientCert = "";
|
||||||
config.enterpriseConfig.setClientCertificateAlias(clientCert);
|
config.enterpriseConfig.setClientCertificateAlias(clientCert);
|
||||||
@@ -686,8 +703,8 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
mEapIdentityView = (TextView) mView.findViewById(R.id.identity);
|
mEapIdentityView = (TextView) mView.findViewById(R.id.identity);
|
||||||
mEapAnonymousView = (TextView) mView.findViewById(R.id.anonymous);
|
mEapAnonymousView = (TextView) mView.findViewById(R.id.anonymous);
|
||||||
|
|
||||||
loadCertificates(mEapCaCertSpinner, Credentials.CA_CERTIFICATE);
|
loadCertificates(mEapCaCertSpinner, Credentials.CA_CERTIFICATE, false);
|
||||||
loadCertificates(mEapUserCertSpinner, Credentials.USER_PRIVATE_KEY);
|
loadCertificates(mEapUserCertSpinner, Credentials.USER_PRIVATE_KEY, false);
|
||||||
|
|
||||||
// Modifying an existing network
|
// Modifying an existing network
|
||||||
if (mAccessPoint != null && mAccessPoint.isSaved()) {
|
if (mAccessPoint != null && mAccessPoint.isSaved()) {
|
||||||
@@ -717,7 +734,17 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
mPhase2Spinner.setSelection(phase2Method);
|
mPhase2Spinner.setSelection(phase2Method);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
setSelection(mEapCaCertSpinner, enterpriseConfig.getCaCertificateAlias());
|
String[] caCerts = enterpriseConfig.getCaCertificateAliases();
|
||||||
|
if (caCerts == null) {
|
||||||
|
setSelection(mEapCaCertSpinner, unspecifiedCert);
|
||||||
|
} 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, true);
|
||||||
|
mEapCaCertSpinner.setSelection(multipleCertSetIndex);
|
||||||
|
}
|
||||||
setSelection(mEapUserCertSpinner, enterpriseConfig.getClientCertificateAlias());
|
setSelection(mEapUserCertSpinner, enterpriseConfig.getClientCertificateAlias());
|
||||||
mEapIdentityView.setText(enterpriseConfig.getIdentity());
|
mEapIdentityView.setText(enterpriseConfig.getIdentity());
|
||||||
mEapAnonymousView.setText(enterpriseConfig.getAnonymousIdentity());
|
mEapAnonymousView.setText(enterpriseConfig.getAnonymousIdentity());
|
||||||
@@ -949,21 +976,20 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadCertificates(Spinner spinner, String prefix) {
|
private void loadCertificates(Spinner spinner, String prefix, boolean showMultipleCerts) {
|
||||||
final Context context = mConfigUi.getContext();
|
final Context context = mConfigUi.getContext();
|
||||||
|
|
||||||
String[] certs = KeyStore.getInstance().list(prefix, android.os.Process.WIFI_UID);
|
ArrayList<String> certs = new ArrayList<String>();
|
||||||
if (certs == null || certs.length == 0) {
|
certs.add(unspecifiedCert);
|
||||||
certs = new String[] {unspecifiedCert};
|
if (showMultipleCerts) {
|
||||||
} else {
|
certs.add(multipleCertSet);
|
||||||
final String[] array = new String[certs.length + 1];
|
|
||||||
array[0] = unspecifiedCert;
|
|
||||||
System.arraycopy(certs, 0, array, 1, certs.length);
|
|
||||||
certs = array;
|
|
||||||
}
|
}
|
||||||
|
certs.addAll(
|
||||||
|
Arrays.asList(KeyStore.getInstance().list(prefix, android.os.Process.WIFI_UID)));
|
||||||
|
|
||||||
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
|
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
|
||||||
context, android.R.layout.simple_spinner_item, certs);
|
context, android.R.layout.simple_spinner_item,
|
||||||
|
certs.toArray(new String[certs.size()]));
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||||
spinner.setAdapter(adapter);
|
spinner.setAdapter(adapter);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user