diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java index f07ed4ad..1c10af29 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java @@ -68,7 +68,7 @@ public abstract class TypingHandler extends KeyPadHandler { return false; } - settings.setDefaultCharOrder(mLanguage, true); + settings.setDefaultCharOrder(mLanguage, false); resetKeyRepeat(); mInputMode = determineInputMode(); determineTextCase(); diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/punctuation/AbstractPreferenceCharList.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/punctuation/AbstractPreferenceCharList.java index 3b237e1f..d1154287 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/punctuation/AbstractPreferenceCharList.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/punctuation/AbstractPreferenceCharList.java @@ -15,7 +15,7 @@ import io.github.sspanak.tt9.preferences.settings.SettingsStore; abstract class AbstractPreferenceCharList extends TextInputPreference { @NonNull protected String currentChars = ""; protected Language language; - private Runnable onRender; + private boolean isInitialized = false; protected static SettingsStore settings; @@ -28,8 +28,9 @@ abstract class AbstractPreferenceCharList extends TextInputPreference { @Override public void onBindViewHolder(@NonNull PreferenceViewHolder holder) { super.onBindViewHolder(holder); - if (holder.itemView.findViewById(R.id.input_text_input_field) != null && onRender != null) { - onRender.run(); + if (!isInitialized && holder.itemView.findViewById(R.id.input_text_input_field) != null) { + isInitialized = true; + onLanguageChange(language); } } @@ -56,6 +57,9 @@ abstract class AbstractPreferenceCharList extends TextInputPreference { void onLanguageChange(Language language) { this.language = language; + if (!isInitialized) { + return; + } String all = getChars(); char[] mandatory = getMandatoryChars(); @@ -83,11 +87,6 @@ abstract class AbstractPreferenceCharList extends TextInputPreference { } - void setOnRender(Runnable onRender) { - this.onRender = onRender; - } - - protected String validateForbiddenChars() { StringBuilder forbiddenCharList = new StringBuilder(); diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/punctuation/PunctuationScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/punctuation/PunctuationScreen.java index 6cfa49e8..fd675a3b 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/punctuation/PunctuationScreen.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/punctuation/PunctuationScreen.java @@ -54,7 +54,7 @@ public class PunctuationScreen extends BaseScreenFragment { initLanguageList(); initResetDefaults(); initSaveButton(); - loadCharLists(); + onLanguageChanged(languageList.getValue()); resetFontSize(false); } @@ -115,17 +115,4 @@ public class PunctuationScreen extends BaseScreenFragment { } } } - - - private void loadCharLists() { - for (AbstractPreferenceCharList list : charLists) { - if (list == null) { - continue; - } - list.setOnRender(() -> { - list.setOnRender(null); - onLanguageChanged(languageList.getValue()); - }); - } - } }