From 2b79e6ad663336419903be4a4e6df3e0b32b4cac Mon Sep 17 00:00:00 2001 From: sspanak Date: Tue, 27 May 2025 22:48:58 +0300 Subject: [PATCH] new dev bug: fixed number keys typing while the language selection dialog is displayed --- .../tt9/ui/dialogs/ChangeLanguageDialog.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/ChangeLanguageDialog.java b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/ChangeLanguageDialog.java index 9ec5d73e..a2d70955 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/ChangeLanguageDialog.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/ChangeLanguageDialog.java @@ -1,6 +1,7 @@ package io.github.sspanak.tt9.ui.dialogs; import android.content.DialogInterface; +import android.os.Handler; import android.view.KeyEvent; import android.view.View; import android.widget.LinearLayout; @@ -51,7 +52,7 @@ public class ChangeLanguageDialog extends PopupDialog { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (Key.isBack(keyCode)) { - close(); + closeAsync(); return true; } @@ -72,7 +73,10 @@ public class ChangeLanguageDialog extends PopupDialog { if (onLanguageChanged != null) { onLanguageChanged.accept(languageId); } - close(); + + + // close after returning to prevent the key event from leaking into the current input field + closeAsync(); return true; } @@ -93,6 +97,11 @@ public class ChangeLanguageDialog extends PopupDialog { } + private void closeAsync() { + new Handler().post(this::close); + } + + @Override protected void close() { detachRadioButtons();