From 0fbca54062408a7ba4003d1645ac20bc3acbde28 Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Tue, 7 Jun 2022 22:03:42 +0000 Subject: 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 --- .../android/wifi/dialog/WifiDialogActivity.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'WifiDialog/src') 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. -- cgit v1.2.3-59-g8ed1b