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 @@ Focused emoji suggestions - Show only emoji suggestions when a word is preceded by a colon + Suggest only emojis when a word is preceded by a colon Show emoji description on long press