diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index b9a910bd2fd..83a08336c32 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -311,6 +311,25 @@
style="@style/wifi_item_content"
android:text="@string/wifi_show_password" />
+
+
+
+
+
+
Anonymous identity
Password
+
+ SAE password identifier
Show password
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index df6e470a92f..83b7baf54b4 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -131,6 +131,7 @@ public class WifiConfigController implements TextWatcher,
@VisibleForTesting
int mAccessPointSecurity;
private TextView mPasswordView;
+ private TextView mSaePasswordIdView;
private ImageButton mSsidScanButton;
private String mUnspecifiedCertString;
@@ -786,6 +787,11 @@ public class WifiConfigController implements TextWatcher,
String password = mPasswordView.getText().toString();
config.preSharedKey = '"' + password + '"';
}
+ if (mSaePasswordIdView.length() != 0) {
+ config.saePasswordId = mSaePasswordIdView.getText().toString();
+ } else {
+ config.saePasswordId = null;
+ }
break;
case AccessPoint.SECURITY_OWE:
@@ -968,6 +974,23 @@ public class WifiConfigController implements TextWatcher,
}
}
+ if (mSaePasswordIdView == null) {
+ mSaePasswordIdView = (TextView) mView.findViewById(R.id.sae_password_id);
+ mSaePasswordIdView.setOnEditorActionListener(this);
+ mSaePasswordIdView.setOnKeyListener(this);
+ }
+
+ if (mAccessPointSecurity == AccessPoint.SECURITY_SAE) {
+ mView.findViewById(R.id.sae_password_id_layout).setVisibility(View.VISIBLE);
+ if (mAccessPoint != null && mAccessPoint.isSaved()) {
+ if (!TextUtils.isEmpty(mAccessPoint.getConfig().saePasswordId)) {
+ mSaePasswordIdView.setText(mAccessPoint.getConfig().saePasswordId);
+ }
+ }
+ } else {
+ setSaePasswordIdInvisible();
+ }
+
if (mAccessPointSecurity != AccessPoint.SECURITY_EAP &&
mAccessPointSecurity != AccessPoint.SECURITY_EAP_SUITE_B) {
mView.findViewById(R.id.eap).setVisibility(View.GONE);
@@ -1249,6 +1272,11 @@ public class WifiConfigController implements TextWatcher,
mView.findViewById(R.id.show_password_layout).setVisibility(View.GONE);
}
+ private void setSaePasswordIdInvisible() {
+ mSaePasswordIdView.setText("");
+ mView.findViewById(R.id.sae_password_id_layout).setVisibility(View.GONE);
+ }
+
private void setEapMethodInvisible() {
mView.findViewById(R.id.eap).setVisibility(View.GONE);
}