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 b64b1586..41e31e38 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java @@ -57,6 +57,7 @@ public class AuthActivity extends AegisActivity { private SecretKey _bioKey; private BiometricSlot _bioSlot; private BiometricPrompt _bioPrompt; + private Button _decryptButton; private int _failedUnlockAttempts; @@ -70,14 +71,14 @@ public class AuthActivity extends AegisActivity { setContentView(R.layout.activity_auth); _textPassword = findViewById(R.id.text_password); LinearLayout boxBiometricInfo = findViewById(R.id.box_biometric_info); - Button decryptButton = findViewById(R.id.button_decrypt); + _decryptButton = findViewById(R.id.button_decrypt); TextView biometricsButton = findViewById(R.id.button_biometrics); getOnBackPressedDispatcher().addCallback(this, new BackPressHandler()); _textPassword.setOnEditorActionListener((v, actionId, event) -> { if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) { - decryptButton.performClick(); + _decryptButton.performClick(); } return false; }); @@ -148,7 +149,7 @@ public class AuthActivity extends AegisActivity { } } - decryptButton.setOnClickListener(v -> { + _decryptButton.setOnClickListener(v -> { InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); @@ -157,6 +158,8 @@ public class AuthActivity extends AegisActivity { PasswordSlotDecryptTask.Params params = new PasswordSlotDecryptTask.Params(slots, password); PasswordSlotDecryptTask task = new PasswordSlotDecryptTask(AuthActivity.this, new PasswordDerivationListener()); task.execute(getLifecycle(), params); + + _decryptButton.setEnabled(false); }); biometricsButton.setOnClickListener(v -> { @@ -337,6 +340,7 @@ public class AuthActivity extends AegisActivity { finish(result.getKey(), result.isSlotRepaired()); } else { + _decryptButton.setEnabled(true); onInvalidPassword(); } }