From 90315996f41c5b8c5d62a7f6a5e293c16dfa71e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Sch=C3=A4ttgen?= Date: Wed, 25 Jun 2025 00:42:34 +0200 Subject: [PATCH] Add custom EditText to prevent Autofill service from popping up --- .../aegis/ui/AuthActivity.java | 22 +++++++++--- .../ui/components/NoAutofillEditText.java | 35 +++++++++++++++++++ app/src/main/res/layout/activity_auth.xml | 24 +++++++++++-- 3 files changed, 74 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/beemdevelopment/aegis/ui/components/NoAutofillEditText.java diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java index 57746cb1..a30c552c 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java @@ -42,6 +42,7 @@ import com.beemdevelopment.aegis.vault.slots.SlotException; import com.beemdevelopment.aegis.vault.slots.SlotIntegrityException; import com.beemdevelopment.aegis.vault.slots.SlotList; import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.google.android.material.textfield.TextInputLayout; import java.util.List; @@ -72,7 +73,22 @@ public class AuthActivity extends AegisActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_auth); - _textPassword = findViewById(R.id.text_password); + + TextInputLayout layoutStandard = findViewById(R.id.layout_standard); + TextInputLayout layoutNoAutofill = findViewById(R.id.layout_no_autofill); + EditText editStandard = findViewById(R.id.text_password); + EditText editNoAutofill = findViewById(R.id.text_password_no_autofill); + + if (_prefs.isPinKeyboardEnabled()) { + layoutStandard.setVisibility(View.GONE); + layoutNoAutofill.setVisibility(View.VISIBLE); + _textPassword = editNoAutofill; + } else { + layoutStandard.setVisibility(View.VISIBLE); + layoutNoAutofill.setVisibility(View.GONE); + _textPassword = editStandard; + } + LinearLayout boxBiometricInfo = findViewById(R.id.box_biometric_info); _decryptButton = findViewById(R.id.button_decrypt); TextView biometricsButton = findViewById(R.id.button_biometrics); @@ -86,10 +102,6 @@ public class AuthActivity extends AegisActivity { return false; }); - if (_prefs.isPinKeyboardEnabled()) { - _textPassword.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD); - } - Intent intent = getIntent(); if (savedInstanceState == null) { _inhibitBioPrompt = intent.getBooleanExtra("inhibitBioPrompt", false); diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/components/NoAutofillEditText.java b/app/src/main/java/com/beemdevelopment/aegis/ui/components/NoAutofillEditText.java new file mode 100644 index 00000000..818981d9 --- /dev/null +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/components/NoAutofillEditText.java @@ -0,0 +1,35 @@ +package com.beemdevelopment.aegis.ui.components; + +import android.content.Context; +import android.os.Build; +import android.util.AttributeSet; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.google.android.material.textfield.TextInputEditText; + +public class NoAutofillEditText extends TextInputEditText { + + public NoAutofillEditText(@NonNull Context context) { + super(context); + } + + public NoAutofillEditText(@NonNull Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public NoAutofillEditText(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + public int getAutofillType() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + return View.AUTOFILL_TYPE_NONE; + } else { + return super.getAutofillType(); + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_auth.xml b/app/src/main/res/layout/activity_auth.xml index 45e4ae12..f547fe82 100644 --- a/app/src/main/res/layout/activity_auth.xml +++ b/app/src/main/res/layout/activity_auth.xml @@ -42,19 +42,39 @@ android:orientation="vertical"> + app:passwordToggleTint="?attr/colorOnSurface" + android:visibility="visible"> + android:inputType="textPassword"/> + + + + +