1
0
Fork 0

fixed 0-key and 1-key showing hardcoded punctuation list in Predictive mode, instead of what is defined in the respective Language class

This commit is contained in:
Dimo Karaivanov 2023-01-24 16:02:04 +02:00
parent c3aa0e8055
commit b5cd92f1f7
3 changed files with 15 additions and 7 deletions

View file

@ -289,14 +289,14 @@ public class ModePredictive extends InputMode {
* Similar to "loadSuggestions()", but loads suggestions that are not in the database.
* Returns "false", when there are no static suggestions for the current digitSequence.
*/
private boolean loadStaticSuggestions() {
private boolean loadStaticSuggestions(Language language) {
if (digitSequence.equals("0")) {
stem = "";
suggestions = Punctuation.Secondary;
suggestions = language.getKeyCharacters(0, false);
} else if (containsOnly1Regex.matcher(digitSequence).matches()) {
stem = "";
if (digitSequence.length() == 1) {
suggestions = Punctuation.Main;
suggestions = language.getKeyCharacters(1, false);
} else {
digitSequence = digitSequence.length() <= maxEmojiSequence.length() ? digitSequence : maxEmojiSequence;
suggestions = Punctuation.getEmoji(digitSequence.length() - 2);
@ -319,7 +319,7 @@ public class ModePredictive extends InputMode {
*/
@Override
public boolean loadSuggestions(Handler handler, Language language, String currentWord) {
if (loadStaticSuggestions()) {
if (loadStaticSuggestions(language)) {
super.onSuggestionsUpdated(handler);
return true;
}

View file

@ -89,19 +89,23 @@ public class Language {
);
}
public ArrayList<String> getKeyCharacters(int key) {
public ArrayList<String> getKeyCharacters(int key, boolean includeDigit) {
if (key < 0 || key >= characterMap.size()) {
return new ArrayList<>();
}
ArrayList<String> chars = new ArrayList<>(characterMap.get(key));
if (chars.size() > 0) {
if (includeDigit && chars.size() > 0) {
chars.add(String.valueOf(key));
}
return chars;
}
public ArrayList<String> getKeyCharacters(int key) {
return getKeyCharacters(key, true);
}
public String getDigitSequenceForWord(String word) throws InvalidLanguageCharactersException {
StringBuilder sequence = new StringBuilder();
String lowerCaseWord = word.toLowerCase(locale);

View file

@ -1,10 +1,12 @@
package io.github.sspanak.tt9.languages.definitions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Locale;
import io.github.sspanak.tt9.R;
import io.github.sspanak.tt9.languages.Punctuation;
public class Spanish extends English {
public Spanish() {
@ -18,11 +20,13 @@ public class Spanish extends English {
isPunctuationPartOfWords = false;
characterMap.set(1, new ArrayList<>(Punctuation.Main));
characterMap.get(1).addAll(Arrays.asList("¡", "¿"));
characterMap.get(2).addAll(Collections.singletonList("á"));
characterMap.get(3).addAll(Collections.singletonList("é"));
characterMap.get(4).addAll(Collections.singletonList("í"));
characterMap.get(6).clear(); characterMap.get(6).addAll(Arrays.asList("m", "n", "ñ", "o", "ó"));
characterMap.set(6, new ArrayList<>(Arrays.asList("m", "n", "ñ", "o", "ó")));
characterMap.get(8).addAll(Arrays.asList("ú", "ü"));
}
}