summaryrefslogtreecommitdiff
path: root/WifiDialog/src
diff options
context:
space:
mode:
author Quang Luong <qal@google.com> 2022-06-07 22:03:42 +0000
committer Quang Luong <qal@google.com> 2022-06-07 22:29:24 +0000
commit0fbca54062408a7ba4003d1645ac20bc3acbde28 (patch)
tree1ecf3cb93f7169d854458fc38e2da01274243e2f /WifiDialog/src
parentbadb3789b6e869a887014c7355d01e9c9149ca51 (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.java27
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.