Fix autosuggest.

Move setting.
This commit is contained in:
eranl 2025-06-13 19:10:19 +03:00
parent 5c705a9482
commit ac4ce0856e
6 changed files with 21 additions and 21 deletions

View file

@ -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);

View file

@ -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.
* <p>
@ -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);

View file

@ -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;

View file

@ -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

View file

@ -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
) {

View file

@ -20,7 +20,7 @@
<!-- Option to perform inline emoji search -->
<string name="inline_emoji_search">Focused emoji suggestions</string>
<!-- Description for option to perform inline emoji search -->
<string name="inline_emoji_search_summary">Show only emoji suggestions when a word is preceded by a colon</string>
<string name="inline_emoji_search_summary">Suggest only emojis when a word is preceded by a colon</string>
<!-- Option to show emoji descriptions on long press -->
<string name="show_emoji_descriptions">Show emoji description on long press</string>
<!-- Description for option to show emoji descriptions on long press -->