diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/NoAutofillEditText.kt b/app/src/main/java/org/thoughtcrime/securesms/components/NoAutofillEditText.kt
new file mode 100644
index 0000000000..5bd11078df
--- /dev/null
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/NoAutofillEditText.kt
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2025 Signal Messenger, LLC
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+package org.thoughtcrime.securesms.components
+
+import android.content.Context
+import android.util.AttributeSet
+import com.google.android.material.textfield.TextInputEditText
+
+/**
+ * An EditText that completely disables Android's auto-fill functionality.
+ */
+class NoAutofillEditText : TextInputEditText {
+ constructor(context: Context) : super(context, null)
+ constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
+ constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
+
+ override fun getAutofillType(): Int = AUTOFILL_TYPE_NONE
+}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberRegistrationLockFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberRegistrationLockFragment.kt
index ca9401acf7..f00e30b4a7 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberRegistrationLockFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberRegistrationLockFragment.kt
@@ -205,7 +205,7 @@ class ChangeNumberRegistrationLockFragment : LoggingFragment(R.layout.fragment_c
private fun onIncorrectKbsRegistrationLockPin(svrTriesRemaining: Int) {
binding.kbsLockPinConfirm.cancelSpinning()
- binding.kbsLockPinInput.getText().clear()
+ binding.kbsLockPinInput.getText()?.clear()
enableAndFocusPinEntry()
if (svrTriesRemaining == 0) {
diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/PinKeyboardType.kt b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/PinKeyboardType.kt
index 4919f61387..012a64dd61 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/PinKeyboardType.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/PinKeyboardType.kt
@@ -29,7 +29,7 @@ enum class PinKeyboardType(val code: String) {
private val inputType: Int by lazy {
when (this) {
NUMERIC -> InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_VARIATION_PASSWORD
- ALPHA_NUMERIC -> InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS or InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
+ ALPHA_NUMERIC -> InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD
}
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/registrationlock/RegistrationLockFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/registrationlock/RegistrationLockFragment.kt
index 7b53d65d50..cc4861e525 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/registrationlock/RegistrationLockFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/registrationlock/RegistrationLockFragment.kt
@@ -185,7 +185,7 @@ class RegistrationLockFragment : LoggingFragment(R.layout.fragment_registration_
private fun onIncorrectKbsRegistrationLockPin(svrTriesRemaining: Int) {
binding.kbsLockPinConfirm.cancelSpinning()
- binding.kbsLockPinInput.getText().clear()
+ binding.kbsLockPinInput.getText()?.clear()
enableAndFocusPinEntry()
if (svrTriesRemaining == 0) {
diff --git a/app/src/main/java/org/thoughtcrime/securesms/registrationv3/ui/registrationlock/RegistrationLockFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/registrationv3/ui/registrationlock/RegistrationLockFragment.kt
index 895ba839d8..6a529245ee 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/registrationv3/ui/registrationlock/RegistrationLockFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/registrationv3/ui/registrationlock/RegistrationLockFragment.kt
@@ -185,7 +185,7 @@ class RegistrationLockFragment : LoggingFragment(R.layout.fragment_registration_
private fun onIncorrectKbsRegistrationLockPin(svrTriesRemaining: Int) {
binding.kbsLockPinConfirm.cancelSpinning()
- binding.kbsLockPinInput.getText().clear()
+ binding.kbsLockPinInput.getText()?.clear()
enableAndFocusPinEntry()
if (svrTriesRemaining == 0) {
diff --git a/app/src/main/res/layout/base_kbs_pin_fragment.xml b/app/src/main/res/layout/base_kbs_pin_fragment.xml
index db85dc6979..0e03df8f4d 100644
--- a/app/src/main/res/layout/base_kbs_pin_fragment.xml
+++ b/app/src/main/res/layout/base_kbs_pin_fragment.xml
@@ -63,7 +63,7 @@
app:layout_constraintTop_toBottomOf="@+id/edit_kbs_pin_description"
app:materialThemeOverlay="@style/Signal.ThemeOverlay.TextInputLayout">
-
-
-
-
-
-