diff --git a/app/src/main/java/helium314/keyboard/latin/LatinIME.java b/app/src/main/java/helium314/keyboard/latin/LatinIME.java index 3d6bed4ae..c6ea8b7d0 100644 --- a/app/src/main/java/helium314/keyboard/latin/LatinIME.java +++ b/app/src/main/java/helium314/keyboard/latin/LatinIME.java @@ -302,7 +302,7 @@ public class LatinIME extends InputMethodService implements if (latinIme == null) { return; } - if (!latinIme.mSettings.getCurrent().isSuggestionsEnabledPerUserSettings()) { + if (!latinIme.mSettings.getCurrent().needsToLookupSuggestions()) { return; } removeMessages(MSG_RESUME_SUGGESTIONS); diff --git a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java index f3ccf5157..855d625c3 100644 --- a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java +++ b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java @@ -59,12 +59,10 @@ import helium314.keyboard.latin.utils.ScriptUtils; import helium314.keyboard.latin.utils.StatsUtils; import helium314.keyboard.latin.utils.TextRange; import helium314.keyboard.latin.utils.TimestampKt; -import helium314.keyboard.latin.utils.ToolbarMode; import java.util.ArrayList; import java.util.Arrays; import java.util.Locale; -import java.util.Set; import java.util.TreeSet; import java.util.concurrent.TimeUnit; import java.util.regex.Pattern; @@ -1229,7 +1227,7 @@ public final class InputLogic { // // Note: restartSuggestionsOnWordTouchedByCursor is already called for normal // (non-revert) backspace handling. - if (inputTransaction.getMSettingsValues().isSuggestionsEnabledPerUserSettings() + if (inputTransaction.getMSettingsValues().needsToLookupSuggestions() && inputTransaction.getMSettingsValues().mSpacingAndPunctuations.mCurrentLanguageHasSpaces) { restartSuggestionsOnWordTouchedByCursor(inputTransaction.getMSettingsValues(), currentKeyboardScript); } @@ -1364,7 +1362,7 @@ public final class InputLogic { } if (mConnection.hasSlowInputConnection()) { mSuggestionStripViewAccessor.setNeutralSuggestionStrip(); - } else if (inputTransaction.getMSettingsValues().isSuggestionsEnabledPerUserSettings() + } else if (inputTransaction.getMSettingsValues().needsToLookupSuggestions() && inputTransaction.getMSettingsValues().mSpacingAndPunctuations.mCurrentLanguageHasSpaces) { restartSuggestionsOnWordTouchedByCursor(inputTransaction.getMSettingsValues(), currentKeyboardScript); } @@ -1373,7 +1371,7 @@ public final class InputLogic { String getWordAtCursor(final SettingsValues settingsValues, final String currentKeyboardScript) { if (!mConnection.hasSelection() - && settingsValues.isSuggestionsEnabledPerUserSettings() + && settingsValues.needsToLookupSuggestions() && settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces) { final TextRange range = mConnection.getWordRangeAtCursor(settingsValues.mSpacingAndPunctuations, currentKeyboardScript); if (range != null) { @@ -1689,7 +1687,7 @@ public final class InputLogic { && mLatinIME.tryShowClipboardSuggestion())) { mSuggestionStripViewAccessor.setSuggestions(suggestedWords); } - if (! suggestedWords.isEmpty() && isEmojiSearch()) { + if (shouldAutoShowSuggestions(settingsValues, suggestedWords)) { mSuggestionStripViewAccessor.showSuggestionStrip(); } } @@ -1822,12 +1820,16 @@ public final class InputLogic { mIsAutoCorrectionIndicatorOn = false; if (suggestedWords != null) { mSuggestionStripViewAccessor.setSuggestions(suggestedWords); - if (! suggestedWords.isEmpty() && isEmojiSearch()) { + if (shouldAutoShowSuggestions(Settings.getValues(), suggestedWords)) { mSuggestionStripViewAccessor.showSuggestionStrip(); } } } + private boolean shouldAutoShowSuggestions(SettingsValues settingsValues, SuggestedWords suggestedWords) { + return ! suggestedWords.isEmpty() && settingsValues.isSuggestionsEnabledPerUserSettings() && isEmojiSearch(); + } + /** * Reverts a previous commit with auto-correction. *
@@ -2611,8 +2613,7 @@ public final class InputLogic {
}
private void updateEmojiDictionary(Locale locale) {
- if (Settings.getValues().mInlineEmojiSearch
- && Set.of(ToolbarMode.SUGGESTION_STRIP, ToolbarMode.EXPANDABLE).contains(Settings.getValues().mToolbarMode)) {
+ if (Settings.getValues().mInlineEmojiSearch && Settings.getValues().needsToLookupSuggestions()) {
if (mEmojiDictionaryFacilitator == null || ! mEmojiDictionaryFacilitator.isForLocale(locale)) {
closeEmojiDictionary();
var dictFile = DictionaryInfoUtils.getCachedDictForLocaleAndType(locale, "emoji", mLatinIME);
diff --git a/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java b/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java
index fd8dd8046..f9c1776f2 100644
--- a/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java
+++ b/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java
@@ -239,8 +239,8 @@ public class SettingsValues {
&& ((inputAttributes.mInputType & InputType.TYPE_MASK_VARIATION) != InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT
|| !prefs.getBoolean(Settings.PREF_ALWAYS_SHOW_SUGGESTIONS_EXCEPT_WEB_TEXT, Defaults.PREF_ALWAYS_SHOW_SUGGESTIONS_EXCEPT_WEB_TEXT));
final boolean suggestionsEnabled = prefs.getBoolean(Settings.PREF_SHOW_SUGGESTIONS, Defaults.PREF_SHOW_SUGGESTIONS);
- mSuggestionsEnabledPerUserSettings = ((mInputAttributes.mShouldShowSuggestions && suggestionsEnabled)
- || mOverrideShowingSuggestions) && !mSuggestionStripHiddenPerUserSettings;
+ mSuggestionsEnabledPerUserSettings = suggestionsEnabled && (mInputAttributes.mShouldShowSuggestions || mOverrideShowingSuggestions)
+ && !mSuggestionStripHiddenPerUserSettings;
mSecondaryStripVisible = mToolbarMode != ToolbarMode.HIDDEN || ! mToolbarHidingGlobal;
mIncognitoModeEnabled = prefs.getBoolean(Settings.PREF_ALWAYS_INCOGNITO_MODE, Defaults.PREF_ALWAYS_INCOGNITO_MODE) || mInputAttributes.mNoLearning
|| mInputAttributes.mIsPasswordField;
diff --git a/app/src/main/java/helium314/keyboard/settings/screens/PreferencesScreen.kt b/app/src/main/java/helium314/keyboard/settings/screens/PreferencesScreen.kt
index 9d96298e3..d2460cab7 100644
--- a/app/src/main/java/helium314/keyboard/settings/screens/PreferencesScreen.kt
+++ b/app/src/main/java/helium314/keyboard/settings/screens/PreferencesScreen.kt
@@ -58,8 +58,6 @@ fun PreferencesScreen(
Settings.PREF_SOUND_ON,
if (prefs.getBoolean(Settings.PREF_SOUND_ON, Defaults.PREF_SOUND_ON))
Settings.PREF_KEYPRESS_SOUND_VOLUME else null,
- if (Settings.readToolbarMode(prefs) in setOf(ToolbarMode.SUGGESTION_STRIP, ToolbarMode.EXPANDABLE))
- Settings.PREF_INLINE_EMOJI_SEARCH else null,
Settings.PREF_SHOW_EMOJI_DESCRIPTIONS,
R.string.settings_category_additional_keys,
Settings.PREF_SHOW_NUMBER_ROW,
@@ -115,12 +113,6 @@ fun createPreferencesSettings(context: Context) = listOf(
Setting(context, Settings.PREF_SOUND_ON, R.string.sound_on_keypress) {
SwitchPreference(it, Defaults.PREF_SOUND_ON)
},
- Setting(
- context, Settings.PREF_INLINE_EMOJI_SEARCH, R.string.inline_emoji_search,
- R.string.inline_emoji_search_summary
- ) {
- SwitchPreference(it, Defaults.PREF_INLINE_EMOJI_SEARCH)
- },
Setting(
context, Settings.PREF_SHOW_EMOJI_DESCRIPTIONS, R.string.show_emoji_descriptions,
R.string.show_emoji_descriptions_summary
diff --git a/app/src/main/java/helium314/keyboard/settings/screens/TextCorrectionScreen.kt b/app/src/main/java/helium314/keyboard/settings/screens/TextCorrectionScreen.kt
index 60ca68027..3b33e86ee 100644
--- a/app/src/main/java/helium314/keyboard/settings/screens/TextCorrectionScreen.kt
+++ b/app/src/main/java/helium314/keyboard/settings/screens/TextCorrectionScreen.kt
@@ -76,6 +76,7 @@ fun TextCorrectionScreen(
if (suggestionsEnabled && prefs.getBoolean(Settings.PREF_ALWAYS_SHOW_SUGGESTIONS, Defaults.PREF_ALWAYS_SHOW_SUGGESTIONS))
Settings.PREF_ALWAYS_SHOW_SUGGESTIONS_EXCEPT_WEB_TEXT else null,
if (suggestionsEnabled) Settings.PREF_CENTER_SUGGESTION_TEXT_TO_ENTER else null,
+ if (suggestionsEnabled || autocorrectEnabled) Settings.PREF_INLINE_EMOJI_SEARCH else null,
Settings.PREF_KEY_USE_PERSONALIZED_DICTS,
Settings.PREF_BIGRAM_PREDICTIONS,
Settings.PREF_SUGGEST_CLIPBOARD_CONTENT,
@@ -233,6 +234,12 @@ fun createCorrectionSettings(context: Context) = listOf(
) { setting ->
SwitchPreference(setting, Defaults.PREF_USE_APPS)
},
+ Setting(
+ context, Settings.PREF_INLINE_EMOJI_SEARCH, R.string.inline_emoji_search,
+ R.string.inline_emoji_search_summary
+ ) {
+ SwitchPreference(it, Defaults.PREF_INLINE_EMOJI_SEARCH)
+ },
Setting(context, Settings.PREF_ADD_TO_PERSONAL_DICTIONARY,
R.string.add_to_personal_dictionary, R.string.add_to_personal_dictionary_summary
) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5a6234842..f498874c2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -20,7 +20,7 @@