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();