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();
|
validateLanguages();
|
||||||
|
|
||||||
detectRTL();
|
detectRTL();
|
||||||
|
settings.setDefaultCharOrder(mLanguage, false);
|
||||||
|
|
||||||
// for languages that do not have ABC or Predictive, make sure we remain in valid state
|
// for languages that do not have ABC or Predictive, make sure we remain in valid state
|
||||||
if (mInputMode.changeLanguage(mLanguage)) {
|
if (mInputMode.changeLanguage(mLanguage)) {
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@ public abstract class TypingHandler extends KeyPadHandler {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
settings.setDefaultCharOrder(mLanguage, true);
|
||||||
resetKeyRepeat();
|
resetKeyRepeat();
|
||||||
mInputMode = determineInputMode();
|
mInputMode = determineInputMode();
|
||||||
determineTextCase();
|
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.items.ItemClickable;
|
||||||
import io.github.sspanak.tt9.preferences.settings.SettingsStore;
|
import io.github.sspanak.tt9.preferences.settings.SettingsStore;
|
||||||
import io.github.sspanak.tt9.util.ConsumerCompat;
|
import io.github.sspanak.tt9.util.ConsumerCompat;
|
||||||
import io.github.sspanak.tt9.util.chars.Characters;
|
|
||||||
|
|
||||||
class ItemRestoreDefaultPunctuation extends ItemClickable {
|
class ItemRestoreDefaultPunctuation extends ItemClickable {
|
||||||
public static final String NAME = "punctuation_order_reset_defaults";
|
public static final String NAME = "punctuation_order_reset_defaults";
|
||||||
|
|
@ -33,21 +32,7 @@ class ItemRestoreDefaultPunctuation extends ItemClickable {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
settings.saveChars0(
|
settings.setDefaultCharOrder(language, true);
|
||||||
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))
|
|
||||||
);
|
|
||||||
|
|
||||||
if (onClick != null) {
|
if (onClick != null) {
|
||||||
onClick.accept(String.valueOf(language.getId()));
|
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) {
|
public char[] getMandatoryChars0(Language language) {
|
||||||
return LanguageKind.isCyrillic(language) || LanguageKind.isLatinBased(language) ? MANDATORY_CHARS_1_EU : new char[0];
|
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