add remaining layouts

This commit is contained in:
Helium314 2023-11-30 21:47:11 +01:00
parent 493343f477
commit 6fc558962f
32 changed files with 1924 additions and 14 deletions

View file

@ -64,9 +64,14 @@ open class KeyboardBuilder<KP : KeyboardParams>(protected val mContext: Context,
// todo: further plan
// migrate other languages/layouts to this style
// missing layouts: nepali_romanized, nepali_traditional
// add a few individual key label flags: khmer, lao, thai, hindi_compact, marathi, nepali (both)
// that has nine letters in first row -> needs 0 extra (check layout)
// moreKeys for bangla and hindi layouts are completely mixed up -> maybe need to use layoutMoreKeys... but that's not nice
// integrated number rows should be removed / ignored when migrating, row will be added differently
// test the zwnj key
// test whether the layouts really are the same (screenshots for everything added, compare old and new parser)
// first try creating the keyParams with both parsers, and compare results, print differences
// some keyboard_layout_set have supportedScript that is enum synced with script id in ScriptUtils
// that's one more reason for using language tags...
// but currently it's still read from xml outside the keyboard parser, so that's fine for now

View file

@ -15,7 +15,7 @@ import org.dslul.openboard.inputmethod.latin.common.splitOnWhitespace
* merged with defaults.
*/
class SimpleKeyboardParser(private val params: KeyboardParams, private val context: Context) : KeyboardParser(params, context) {
private val addExtraKeys =
private val addExtraKeys = // todo (after removing old parser): add turkish layout that maps to qwerty, but enables extra keys
params.mId.isAlphabetKeyboard && params.mId.locale.language != "eo"
&& params.mId.mSubtype.keyboardLayoutSetName in listOf("nordic", "spanish", "german", "swiss", "serbian_qwertz")

View file

@ -95,7 +95,7 @@ public final class PreferencesSettingsFragment extends SubScreenFragment {
final Preference pref = findPreference(Settings.PREF_LOCALIZED_NUMBER_ROW);
if (pref == null) return;
// locales that have a number row defined (not good to have it hardcoded, but reading a bunch of files may be noticeably slow)
final String[] numberRowLocales = new String[] { "ar", "bn", "fa", "hi", "mr", "ne", "ur" };
final String[] numberRowLocales = new String[] { "ar", "bn", "fa", "hi", "mr", "ne", "ur", "th" };
for (final InputMethodSubtype subtype : SubtypeSettingsKt.getEnabledSubtypes(getSharedPreferences(), true)) {
if (ArraysKt.any(numberRowLocales, (l) -> l.equals(subtype.getLocale().substring(0, 2)))) {
pref.setVisible(true);