diff options
author | 2022-06-07 22:03:42 +0000 | |
---|---|---|
committer | 2022-06-07 22:29:24 +0000 | |
commit | 0fbca54062408a7ba4003d1645ac20bc3acbde28 (patch) | |
tree | 1ecf3cb93f7169d854458fc38e2da01274243e2f /WifiDialog/src | |
parent | badb3789b6e869a887014c7355d01e9c9149ca51 (diff) |
Add P2P dialog PIN length validation
Add validation to P2P dialog PIN length, disabling the positive button
unless the PIN length is 4 or 8.
Bug: 234326049
Test: adb shell cmd wifi launch-dialog-p2p-invitation-received name -p,
verify positive button only appears if the input length is 4 or 8.
Change-Id: I0f8b01305c0b4b54e57dd6fcd8b5d6cbca2433b2
Diffstat (limited to 'WifiDialog/src')
-rw-r--r-- | WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java b/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java index 62497d99fb..5fa0177296 100644 --- a/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java +++ b/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java @@ -34,9 +34,11 @@ import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.Process; import android.os.Vibrator; +import android.text.Editable; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; +import android.text.TextWatcher; import android.text.method.LinkMovementMethod; import android.text.style.URLSpan; import android.util.ArraySet; @@ -564,6 +566,31 @@ public class WifiDialogActivity extends Activity { getWifiManager().replyToP2pInvitationReceivedDialog(dialogId, false, null); }) .create(); + if (pinEditText != null) { + dialog.setOnShowListener(dialogShow -> { + dialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(false); + }); + pinEditText.addTextChangedListener(new TextWatcher() { + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + // No-op. + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + // No-op. + } + + @Override + public void afterTextChanged(Editable s) { + if (s.length() == 4 || s.length() == 8) { + dialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(true); + } else { + dialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(false); + } + } + }); + } if ((getResources().getConfiguration().uiMode & Configuration.UI_MODE_TYPE_APPLIANCE) == Configuration.UI_MODE_TYPE_APPLIANCE) { // For appliance devices, add a key listener which accepts. |