From 7db288b9aa63634b8b5362b09cb94c2cebe2a223 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 23 Apr 2020 22:11:07 -0400 Subject: [PATCH] Make PINs work with password managers. --- app/build.gradle | 1 + .../thoughtcrime/securesms/lock/SignalPinReminderDialog.java | 3 +++ .../securesms/lock/v2/ConfirmKbsPinFragment.java | 4 ++++ .../thoughtcrime/securesms/lock/v2/CreateKbsPinFragment.java | 5 +++++ .../thoughtcrime/securesms/pin/PinRestoreEntryFragment.java | 3 +++ app/witness-verifications.gradle | 3 +++ 6 files changed, 19 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index b24ef3eb6..326641121 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -275,6 +275,7 @@ dependencies { implementation "androidx.camera:camera-camera2:1.0.0-beta01" implementation "androidx.camera:camera-lifecycle:1.0.0-beta01" implementation "androidx.concurrent:concurrent-futures:1.0.0" + implementation "androidx.autofill:autofill:1.0.0" implementation('com.google.firebase:firebase-messaging:17.3.4') { exclude group: 'com.google.firebase', module: 'firebase-core' diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/SignalPinReminderDialog.java b/app/src/main/java/org/thoughtcrime/securesms/lock/SignalPinReminderDialog.java index a3e4fd452..7c2561e03 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/SignalPinReminderDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/SignalPinReminderDialog.java @@ -21,7 +21,9 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; +import androidx.autofill.HintConstants; import androidx.core.app.DialogCompat; +import androidx.core.view.ViewCompat; import com.google.android.material.textfield.TextInputLayout; @@ -72,6 +74,7 @@ public final class SignalPinReminderDialog { ServiceUtil.getInputMethodManager(pinEditText.getContext()).showSoftInput(pinEditText, 0); } }); + ViewCompat.setAutofillHints(pinEditText, HintConstants.AUTOFILL_HINT_PASSWORD); switch (SignalStore.pinValues().getKeyboardType()) { case NUMERIC: diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmKbsPinFragment.java b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmKbsPinFragment.java index c5dd92bfe..7b60f959e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmKbsPinFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmKbsPinFragment.java @@ -4,11 +4,14 @@ import android.animation.Animator; import android.app.Activity; import android.content.Intent; import android.view.View; +import android.view.autofill.AutofillManager; import androidx.annotation.NonNull; import androidx.annotation.RawRes; import androidx.appcompat.app.AlertDialog; +import androidx.autofill.HintConstants; import androidx.core.content.ContextCompat; +import androidx.core.view.ViewCompat; import androidx.lifecycle.ViewModelProviders; import com.airbnb.lottie.LottieAnimationView; @@ -39,6 +42,7 @@ public class ConfirmKbsPinFragment extends BaseKbsPinFragment