1
0
Fork 0

new dev bug: fixed the language selection dialog better

This commit is contained in:
sspanak 2025-05-28 16:49:44 +03:00 committed by Dimo Karaivanov
parent 2b79e6ad66
commit c2c2e2b75e

View file

@ -1,7 +1,6 @@
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,8 +50,12 @@ public class ChangeLanguageDialog extends PopupDialog {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
return true;
}
if (Key.isBack(keyCode)) {
closeAsync();
close();
return true;
}
@ -62,21 +65,19 @@ public class ChangeLanguageDialog extends PopupDialog {
languageId = getSelected();
} else if (Key.isNumber(keyCode)) {
languageId = getByIndex(Key.codeToNumber(settings, keyCode) - 1);
} else if (event.getAction() == KeyEvent.ACTION_UP && (keyCode == KeyEvent.KEYCODE_DPAD_DOWN || keyCode == KeyEvent.KEYCODE_DPAD_UP)) {
} else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN || keyCode == KeyEvent.KEYCODE_DPAD_UP) {
for (LanguageRadioButton radio : radioButtonsCache) radio.autoHighlightCompat(); // yet another device hack
}
if (languageId == -1) {
return false;
return true;
}
if (onLanguageChanged != null) {
onLanguageChanged.accept(languageId);
}
// close after returning to prevent the key event from leaking into the current input field
closeAsync();
close();
return true;
}
@ -97,11 +98,6 @@ public class ChangeLanguageDialog extends PopupDialog {
}
private void closeAsync() {
new Handler().post(this::close);
}
@Override
protected void close() {
detachRadioButtons();