ensured correct default character order on the very first start
This commit is contained in:
parent
f195daad95
commit
a7b4c44913
4 changed files with 30 additions and 16 deletions
|
|
@ -185,6 +185,7 @@ abstract public class CommandHandler extends TextEditingHandler {
|
|||
validateLanguages();
|
||||
|
||||
detectRTL();
|
||||
settings.setDefaultCharOrder(mLanguage, false);
|
||||
|
||||
// for languages that do not have ABC or Predictive, make sure we remain in valid state
|
||||
if (mInputMode.changeLanguage(mLanguage)) {
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ public abstract class TypingHandler extends KeyPadHandler {
|
|||
return false;
|
||||
}
|
||||
|
||||
settings.setDefaultCharOrder(mLanguage, true);
|
||||
resetKeyRepeat();
|
||||
mInputMode = determineInputMode();
|
||||
determineTextCase();
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import io.github.sspanak.tt9.languages.Language;
|
|||
import io.github.sspanak.tt9.preferences.items.ItemClickable;
|
||||
import io.github.sspanak.tt9.preferences.settings.SettingsStore;
|
||||
import io.github.sspanak.tt9.util.ConsumerCompat;
|
||||
import io.github.sspanak.tt9.util.chars.Characters;
|
||||
|
||||
class ItemRestoreDefaultPunctuation extends ItemClickable {
|
||||
public static final String NAME = "punctuation_order_reset_defaults";
|
||||
|
|
@ -33,21 +32,7 @@ class ItemRestoreDefaultPunctuation extends ItemClickable {
|
|||
return false;
|
||||
}
|
||||
|
||||
settings.saveChars0(
|
||||
language,
|
||||
String.join("", language.getKeyCharacters(0))
|
||||
);
|
||||
|
||||
settings.saveChars1(
|
||||
language,
|
||||
String.join("", language.getKeyCharacters(1))
|
||||
);
|
||||
|
||||
settings.saveCharsExtra(
|
||||
language,
|
||||
SettingsStore.CHARS_GROUP_0,
|
||||
String.join("", Characters.getCurrencies(language))
|
||||
);
|
||||
settings.setDefaultCharOrder(language, true);
|
||||
|
||||
if (onClick != null) {
|
||||
onClick.accept(String.valueOf(language.getId()));
|
||||
|
|
|
|||
|
|
@ -29,6 +29,33 @@ class SettingsPunctuation extends SettingsInput {
|
|||
}
|
||||
|
||||
|
||||
public void setDefaultCharOrder(@NonNull Language language, boolean overwrite) {
|
||||
if (overwrite || noDefault0Chars(language)) {
|
||||
String chars = new String(FORBIDDEN_CHARS_0) + String.join("", language.getKeyCharacters(0));
|
||||
final int splitPosition = 7;
|
||||
saveChars0(language, String.join("", chars.substring(0, splitPosition)));
|
||||
saveCharsExtra(language, CHARS_GROUP_0, String.join("", Characters.getCurrencies(language)));
|
||||
saveCharsExtra(language, CHARS_AFTER_GROUP_0, chars.substring(splitPosition));
|
||||
}
|
||||
|
||||
if (overwrite || noDefault1Chars(language)) {
|
||||
saveChars1(language, String.join("", language.getKeyCharacters(1)));
|
||||
saveCharsExtra(language, CHARS_GROUP_1, "");
|
||||
saveCharsExtra(language, CHARS_AFTER_GROUP_1, "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private boolean noDefault0Chars(Language language) {
|
||||
return prefs.getString(CHARS_0_PREFIX + language.getId(), null) == null;
|
||||
}
|
||||
|
||||
|
||||
private boolean noDefault1Chars(Language language) {
|
||||
return prefs.getString(CHARS_1_PREFIX + language.getId(), null) == null;
|
||||
}
|
||||
|
||||
|
||||
public char[] getMandatoryChars0(Language language) {
|
||||
return LanguageKind.isCyrillic(language) || LanguageKind.isLatinBased(language) ? MANDATORY_CHARS_1_EU : new char[0];
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue