From 6c500e731b6c1f29e013b4a0babb693f3103cc61 Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Sun, 21 Nov 2021 14:56:25 -0500 Subject: [PATCH 1/8] Add icon to layout for paste Still TODOs for implementing the feature, creating a toggle to enable it, and icons for the button --- .../suggestions/SuggestionStripView.java | 15 ++++- app/src/main/res/layout/suggestions_strip.xml | 59 +++++++++++-------- 2 files changed, 48 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java index 2f2400de8..3d1112fcf 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java @@ -66,6 +66,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick private final ViewGroup mSuggestionsStrip; private final ImageButton mVoiceKey; + private final ImageButton mPasteKey; private final ImageButton mOtherKey; MainKeyboardView mMainKeyboardView; @@ -126,6 +127,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick mSuggestionsStrip = findViewById(R.id.suggestions_strip); mVoiceKey = findViewById(R.id.suggestions_strip_voice_key); + mPasteKey = findViewById(R.id.suggestions_strip_paste_key); mOtherKey = findViewById(R.id.suggestions_strip_other_key); mStripVisibilityGroup = new StripVisibilityGroup(this, mSuggestionsStrip); @@ -161,9 +163,13 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick R.styleable.Keyboard, defStyle, R.style.SuggestionStripView); final Drawable iconVoice = keyboardAttr.getDrawable(R.styleable.Keyboard_iconShortcutKey); final Drawable iconIncognito = keyboardAttr.getDrawable(R.styleable.Keyboard_iconIncognitoKey); + //TODO: create and set a different icon for this + final Drawable iconPaste = keyboardAttr.getDrawable(R.styleable.Keyboard_iconShortcutKey); keyboardAttr.recycle(); mVoiceKey.setImageDrawable(iconVoice); mVoiceKey.setOnClickListener(this); + mPasteKey.setImageDrawable(iconPaste); + mPasteKey.setOnClickListener(this); mOtherKey.setImageDrawable(iconIncognito); } @@ -181,7 +187,10 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick final int visibility = shouldBeVisible ? VISIBLE : (isFullscreenMode ? GONE : INVISIBLE); setVisibility(visibility); final SettingsValues currentSettingsValues = Settings.getInstance().getCurrent(); - mVoiceKey.setVisibility(currentSettingsValues.mShowsVoiceInputKey ? VISIBLE : INVISIBLE); + //TODO: set either mVoiceKey or mPasteKey to INVISIBLE if the other is GONE + mVoiceKey.setVisibility(currentSettingsValues.mShowsVoiceInputKey ? VISIBLE : GONE); + //TODO: read visibility from settings + mPasteKey.setVisibility(VISIBLE); mOtherKey.setVisibility(currentSettingsValues.mIncognitoModeEnabled ? VISIBLE : INVISIBLE); } @@ -413,6 +422,10 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick false /* isKeyRepeat */); return; } + if (view == mPasteKey) { + //TODO: fill in + return; + } final Object tag = view.getTag(); // {@link Integer} tag is set at diff --git a/app/src/main/res/layout/suggestions_strip.xml b/app/src/main/res/layout/suggestions_strip.xml index c6a412e39..722975571 100644 --- a/app/src/main/res/layout/suggestions_strip.xml +++ b/app/src/main/res/layout/suggestions_strip.xml @@ -20,34 +20,43 @@ - - - - + android:soundEffectsEnabled="false"> + + + + + + + From 69ef3c9991f8264039cf18740d821f8cd6ca3468 Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Sun, 21 Nov 2021 15:28:22 -0500 Subject: [PATCH 2/8] Add logic for pasting from clipboard --- .../latin/suggestions/SuggestionStripView.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java index 3d1112fcf..b02aaf224 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java @@ -16,6 +16,8 @@ package org.dslul.openboard.inputmethod.latin.suggestions; +import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; @@ -59,6 +61,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick public interface Listener { void pickSuggestionManually(SuggestedWordInfo word); void onCodeInput(int primaryCode, int x, int y, boolean isKeyRepeat); + void onTextInput(final String rawText); } static final boolean DBG = DebugFlags.DEBUG_ENABLED; @@ -164,7 +167,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick final Drawable iconVoice = keyboardAttr.getDrawable(R.styleable.Keyboard_iconShortcutKey); final Drawable iconIncognito = keyboardAttr.getDrawable(R.styleable.Keyboard_iconIncognitoKey); //TODO: create and set a different icon for this - final Drawable iconPaste = keyboardAttr.getDrawable(R.styleable.Keyboard_iconShortcutKey); + final Drawable iconPaste = keyboardAttr.getDrawable(R.styleable.Keyboard_iconSendKey); keyboardAttr.recycle(); mVoiceKey.setImageDrawable(iconVoice); mVoiceKey.setOnClickListener(this); @@ -423,7 +426,18 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick return; } if (view == mPasteKey) { - //TODO: fill in + ClipboardManager clipboardManager = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); + ClipData clipData = clipboardManager.getPrimaryClip(); + if (clipData != null && clipData.getItemCount() > 0 && clipData.getItemAt(0) != null) { + String clipString = clipData.getItemAt(0).coerceToText(getContext()).toString(); + if (clipString.length() == 1) { + mListener.onTextInput(clipString); + } else if (clipString.length() > 1) { + //awkward workaround + mListener.onTextInput(clipString.substring(0, clipString.length() - 1)); + mListener.onTextInput(clipString.substring(clipString.length() - 1)); + } + } return; } From 972a77ef3a8d8b23fba701ea259d8b1f61f37448 Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Sun, 21 Nov 2021 15:41:44 -0500 Subject: [PATCH 3/8] Add preference settings for paste button --- .../dslul/openboard/inputmethod/latin/settings/Settings.java | 3 +++ .../openboard/inputmethod/latin/settings/SettingsValues.java | 2 ++ .../inputmethod/latin/suggestions/SuggestionStripView.java | 4 +--- app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/xml/prefs_screen_preferences.xml | 5 +++++ 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java index 3b1d47b06..dcd39acba 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java @@ -56,6 +56,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang // PREF_VOICE_MODE_OBSOLETE is obsolete. Use PREF_VOICE_INPUT_KEY instead. public static final String PREF_VOICE_MODE_OBSOLETE = "voice_mode"; public static final String PREF_VOICE_INPUT_KEY = "pref_voice_input_key"; + public static final String PREF_CLIPBOARD_PASTE_KEY = "pref_clipboard_paste_key"; public static final String PREF_EDIT_PERSONAL_DICTIONARY = "edit_personal_dictionary"; // PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE is obsolete. Use PREF_AUTO_CORRECTION instead. public static final String PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE = @@ -77,6 +78,8 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang "pref_show_language_switch_key"; public static final String PREF_SHOW_EMOJI_KEY = "pref_show_emoji_key"; + public static final String PREF_SHOW_PASTE_KEY = + "pref_show_paste_key"; public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST = "pref_include_other_imes_in_language_switch_list"; public static final String PREF_CUSTOM_INPUT_STYLES = "custom_input_styles"; diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java index db584fb86..95dd4325b 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java @@ -73,6 +73,7 @@ public class SettingsValues { public final boolean mShowsHints; public final boolean mShowsLanguageSwitchKey; public final boolean mShowsEmojiKey; + public final boolean mShowsPasteKey; public final boolean mUsePersonalizedDicts; public final boolean mUseDoubleSpacePeriod; public final boolean mBlockPotentiallyOffensive; @@ -149,6 +150,7 @@ public class SettingsValues { mShowsHints = prefs.getBoolean(Settings.PREF_SHOW_HINTS, true); mShowsLanguageSwitchKey = prefs.getBoolean(Settings.PREF_SHOW_LANGUAGE_SWITCH_KEY, false); mShowsEmojiKey = prefs.getBoolean(Settings.PREF_SHOW_EMOJI_KEY, false); + mShowsPasteKey = prefs.getBoolean(Settings.PREF_SHOW_PASTE_KEY, false); mUsePersonalizedDicts = prefs.getBoolean(Settings.PREF_KEY_USE_PERSONALIZED_DICTS, true); mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true) && inputAttributes.mIsGeneralTextInput; diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java index b02aaf224..9a997834f 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java @@ -190,10 +190,8 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick final int visibility = shouldBeVisible ? VISIBLE : (isFullscreenMode ? GONE : INVISIBLE); setVisibility(visibility); final SettingsValues currentSettingsValues = Settings.getInstance().getCurrent(); - //TODO: set either mVoiceKey or mPasteKey to INVISIBLE if the other is GONE mVoiceKey.setVisibility(currentSettingsValues.mShowsVoiceInputKey ? VISIBLE : GONE); - //TODO: read visibility from settings - mPasteKey.setVisibility(VISIBLE); + mPasteKey.setVisibility(currentSettingsValues.mShowsPasteKey ? VISIBLE : (mVoiceKey.getVisibility() == GONE ? INVISIBLE : GONE)); mOtherKey.setVisibility(currentSettingsValues.mIncognitoModeEnabled ? VISIBLE : INVISIBLE); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d2d0881b4..ae6b3bb83 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -179,6 +179,9 @@ No voice input methods enabled. Check Languages & input settings. + + Clipboard paste key + Configure input methods diff --git a/app/src/main/res/xml/prefs_screen_preferences.xml b/app/src/main/res/xml/prefs_screen_preferences.xml index aefdcd215..a3c964f55 100644 --- a/app/src/main/res/xml/prefs_screen_preferences.xml +++ b/app/src/main/res/xml/prefs_screen_preferences.xml @@ -71,4 +71,9 @@ android:title="@string/voice_input" android:defaultValue="true" android:persistent="true" /> + From de924ce3a5defb1658cff84701dfb588983e4e47 Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Sun, 21 Nov 2021 17:17:13 -0500 Subject: [PATCH 4/8] Add paste icon --- .../inputmethod/keyboard/internal/KeyboardIconsSet.java | 2 ++ .../inputmethod/latin/suggestions/SuggestionStripView.java | 3 +-- app/src/main/res/drawable/sym_keyboard_paste_dark.xml | 5 +++++ app/src/main/res/drawable/sym_keyboard_paste_light.xml | 5 +++++ app/src/main/res/layout/suggestions_strip.xml | 1 + app/src/main/res/values-v31/keyboard-icons-lxx-dark.xml | 1 + app/src/main/res/values-v31/keyboard-icons-lxx-light.xml | 1 + app/src/main/res/values/attrs.xml | 1 + app/src/main/res/values/keyboard-icons-holo.xml | 1 + app/src/main/res/values/keyboard-icons-lxx-dark.xml | 1 + app/src/main/res/values/keyboard-icons-lxx-light.xml | 1 + 11 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/sym_keyboard_paste_dark.xml create mode 100644 app/src/main/res/drawable/sym_keyboard_paste_light.xml diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java index ac6c37f55..bbe8b3214 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java @@ -52,6 +52,7 @@ public final class KeyboardIconsSet { public static final String NAME_PREVIOUS_KEY = "previous_key"; public static final String NAME_TAB_KEY = "tab_key"; public static final String NAME_SHORTCUT_KEY = "shortcut_key"; + public static final String NAME_PASTE_KEY = "paste_key"; public static final String NAME_INCOGNITO_KEY = "incognito_key"; public static final String NAME_SHORTCUT_KEY_DISABLED = "shortcut_key_disabled"; public static final String NAME_LANGUAGE_SWITCH_KEY = "language_switch_key"; @@ -80,6 +81,7 @@ public final class KeyboardIconsSet { NAME_PREVIOUS_KEY, R.styleable.Keyboard_iconPreviousKey, NAME_TAB_KEY, R.styleable.Keyboard_iconTabKey, NAME_SHORTCUT_KEY, R.styleable.Keyboard_iconShortcutKey, + NAME_PASTE_KEY, R.styleable.Keyboard_iconPasteKey, NAME_INCOGNITO_KEY, R.styleable.Keyboard_iconIncognitoKey, NAME_SPACE_KEY_FOR_NUMBER_LAYOUT, R.styleable.Keyboard_iconSpaceKeyForNumberLayout, NAME_SHIFT_KEY_SHIFTED, R.styleable.Keyboard_iconShiftKeyShifted, diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java index 9a997834f..6e35ed482 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java @@ -166,8 +166,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick R.styleable.Keyboard, defStyle, R.style.SuggestionStripView); final Drawable iconVoice = keyboardAttr.getDrawable(R.styleable.Keyboard_iconShortcutKey); final Drawable iconIncognito = keyboardAttr.getDrawable(R.styleable.Keyboard_iconIncognitoKey); - //TODO: create and set a different icon for this - final Drawable iconPaste = keyboardAttr.getDrawable(R.styleable.Keyboard_iconSendKey); + final Drawable iconPaste = keyboardAttr.getDrawable(R.styleable.Keyboard_iconPasteKey); keyboardAttr.recycle(); mVoiceKey.setImageDrawable(iconVoice); mVoiceKey.setOnClickListener(this); diff --git a/app/src/main/res/drawable/sym_keyboard_paste_dark.xml b/app/src/main/res/drawable/sym_keyboard_paste_dark.xml new file mode 100644 index 000000000..c5bd90c58 --- /dev/null +++ b/app/src/main/res/drawable/sym_keyboard_paste_dark.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/sym_keyboard_paste_light.xml b/app/src/main/res/drawable/sym_keyboard_paste_light.xml new file mode 100644 index 000000000..29fa0da12 --- /dev/null +++ b/app/src/main/res/drawable/sym_keyboard_paste_light.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/suggestions_strip.xml b/app/src/main/res/layout/suggestions_strip.xml index 722975571..e33367331 100644 --- a/app/src/main/res/layout/suggestions_strip.xml +++ b/app/src/main/res/layout/suggestions_strip.xml @@ -55,6 +55,7 @@ diff --git a/app/src/main/res/values-v31/keyboard-icons-lxx-dark.xml b/app/src/main/res/values-v31/keyboard-icons-lxx-dark.xml index 2c15a98bc..e60af0d52 100644 --- a/app/src/main/res/values-v31/keyboard-icons-lxx-dark.xml +++ b/app/src/main/res/values-v31/keyboard-icons-lxx-dark.xml @@ -36,6 +36,7 @@ @drawable/sym_keyboard_previous_lxx_dark @drawable/sym_keyboard_voice_lxx_dark @drawable/sym_keyboard_voice_off_lxx_dark + @drawable/sym_keyboard_paste_dark @drawable/sym_keyboard_incognito_lxx_dark @drawable/sym_keyboard_space_lxx_dark @drawable/sym_keyboard_language_switch_lxx_dark diff --git a/app/src/main/res/values-v31/keyboard-icons-lxx-light.xml b/app/src/main/res/values-v31/keyboard-icons-lxx-light.xml index 37888ece5..80b0d806e 100644 --- a/app/src/main/res/values-v31/keyboard-icons-lxx-light.xml +++ b/app/src/main/res/values-v31/keyboard-icons-lxx-light.xml @@ -36,6 +36,7 @@ @drawable/sym_keyboard_previous_lxx_light @drawable/sym_keyboard_voice_lxx_light @drawable/sym_keyboard_voice_off_lxx_light + @drawable/sym_keyboard_paste_light @drawable/sym_keyboard_incognito_lxx_light @drawable/sym_keyboard_space_lxx_light @drawable/sym_keyboard_language_switch_lxx_light diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 2c6db9f17..8e7c81f1e 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -270,6 +270,7 @@ + diff --git a/app/src/main/res/values/keyboard-icons-holo.xml b/app/src/main/res/values/keyboard-icons-holo.xml index 5ef52f264..31979b1d7 100644 --- a/app/src/main/res/values/keyboard-icons-holo.xml +++ b/app/src/main/res/values/keyboard-icons-holo.xml @@ -29,6 +29,7 @@ @drawable/sym_keyboard_search_holo_dark @drawable/sym_keyboard_tab_holo_dark @drawable/sym_keyboard_voice_holo_dark + @drawable/sym_keyboard_paste_dark @drawable/sym_keyboard_incognito_dark @drawable/sym_keyboard_space_holo_dark @drawable/sym_keyboard_shift_locked_holo_dark diff --git a/app/src/main/res/values/keyboard-icons-lxx-dark.xml b/app/src/main/res/values/keyboard-icons-lxx-dark.xml index 6663cf3e7..9d86ec679 100644 --- a/app/src/main/res/values/keyboard-icons-lxx-dark.xml +++ b/app/src/main/res/values/keyboard-icons-lxx-dark.xml @@ -36,6 +36,7 @@ @drawable/sym_keyboard_previous_lxx_dark @drawable/sym_keyboard_voice_lxx_dark @drawable/sym_keyboard_voice_off_lxx_dark + @drawable/sym_keyboard_paste_dark @drawable/sym_keyboard_incognito_lxx_dark @drawable/sym_keyboard_space_lxx_dark @drawable/sym_keyboard_language_switch_lxx_dark diff --git a/app/src/main/res/values/keyboard-icons-lxx-light.xml b/app/src/main/res/values/keyboard-icons-lxx-light.xml index 9dc1e6455..f240b8b7f 100644 --- a/app/src/main/res/values/keyboard-icons-lxx-light.xml +++ b/app/src/main/res/values/keyboard-icons-lxx-light.xml @@ -36,6 +36,7 @@ @drawable/sym_keyboard_previous_lxx_light @drawable/sym_keyboard_voice_lxx_light @drawable/sym_keyboard_voice_off_lxx_light + @drawable/sym_keyboard_paste_light @drawable/sym_keyboard_incognito_lxx_light @drawable/sym_keyboard_space_lxx_light @drawable/sym_keyboard_language_switch_lxx_light From 31b4a284713881a30d1ae0f08490efd671497b75 Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Sun, 21 Nov 2021 22:04:09 -0500 Subject: [PATCH 5/8] Add copy functionality Current functionality is short-press to copy, long-press to paste. --- .../openboard/inputmethod/latin/LatinIME.java | 4 +++ .../suggestions/SuggestionStripView.java | 34 +++++++++++++------ app/src/main/res/layout/suggestions_strip.xml | 3 +- app/src/main/res/values/strings.xml | 1 + .../main/res/xml/prefs_screen_preferences.xml | 1 + 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java index 4e2f52edf..c478573ed 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java @@ -1117,6 +1117,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } } + public CharSequence getSelection() { + return mInputLogic.mConnection.getSelectedText(0); + } + /** * This is called when the user has clicked on the extracted text view, * when running in fullscreen mode. The default implementation hides diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java index 6e35ed482..58d21bf1e 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java @@ -62,6 +62,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick void pickSuggestionManually(SuggestedWordInfo word); void onCodeInput(int primaryCode, int x, int y, boolean isKeyRepeat); void onTextInput(final String rawText); + CharSequence getSelection(); } static final boolean DBG = DebugFlags.DEBUG_ENABLED; @@ -172,6 +173,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick mVoiceKey.setOnClickListener(this); mPasteKey.setImageDrawable(iconPaste); mPasteKey.setOnClickListener(this); + mPasteKey.setOnLongClickListener(this); mOtherKey.setImageDrawable(iconIncognito); } @@ -265,6 +267,23 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick @Override public boolean onLongClick(final View view) { + if (view == mPasteKey) { + ClipboardManager clipboardManager = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); + ClipData clipData = clipboardManager.getPrimaryClip(); + if (clipData != null && clipData.getItemCount() > 0 && clipData.getItemAt(0) != null) { + String clipString = clipData.getItemAt(0).coerceToText(getContext()).toString(); + if (clipString.length() == 1) { + mListener.onTextInput(clipString); + } else if (clipString.length() > 1) { + //awkward workaround + mListener.onTextInput(clipString.substring(0, clipString.length() - 1)); + mListener.onTextInput(clipString.substring(clipString.length() - 1)); + } + } + AudioAndHapticFeedbackManager.getInstance().performHapticAndAudioFeedback( + Constants.NOT_A_CODE, this); + return true; + } AudioAndHapticFeedbackManager.getInstance().performHapticAndAudioFeedback( Constants.NOT_A_CODE, this); return showMoreSuggestions(); @@ -423,17 +442,10 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick return; } if (view == mPasteKey) { - ClipboardManager clipboardManager = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); - ClipData clipData = clipboardManager.getPrimaryClip(); - if (clipData != null && clipData.getItemCount() > 0 && clipData.getItemAt(0) != null) { - String clipString = clipData.getItemAt(0).coerceToText(getContext()).toString(); - if (clipString.length() == 1) { - mListener.onTextInput(clipString); - } else if (clipString.length() > 1) { - //awkward workaround - mListener.onTextInput(clipString.substring(0, clipString.length() - 1)); - mListener.onTextInput(clipString.substring(clipString.length() - 1)); - } + CharSequence selectionSequence = mListener.getSelection(); + if (selectionSequence != null && selectionSequence.length() > 0) { + ClipboardManager clipboardManager = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); + clipboardManager.setPrimaryClip(ClipData.newPlainText(selectionSequence, selectionSequence)); } return; } diff --git a/app/src/main/res/layout/suggestions_strip.xml b/app/src/main/res/layout/suggestions_strip.xml index e33367331..7fcc1e314 100644 --- a/app/src/main/res/layout/suggestions_strip.xml +++ b/app/src/main/res/layout/suggestions_strip.xml @@ -41,7 +41,8 @@ Clipboard paste key + Press to copy, long-press to paste. Configure input methods diff --git a/app/src/main/res/xml/prefs_screen_preferences.xml b/app/src/main/res/xml/prefs_screen_preferences.xml index a3c964f55..7015894db 100644 --- a/app/src/main/res/xml/prefs_screen_preferences.xml +++ b/app/src/main/res/xml/prefs_screen_preferences.xml @@ -74,6 +74,7 @@ From ff7406fb9835f23d0567a5c460c3a09411497927 Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Mon, 22 Nov 2021 06:36:16 -0500 Subject: [PATCH 6/8] Show suggestion strip on password input when paste enabled --- .../java/org/dslul/openboard/inputmethod/latin/LatinIME.java | 3 ++- .../inputmethod/latin/suggestions/SuggestionStripView.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java index c478573ed..d789d58ca 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java @@ -1588,10 +1588,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen currentSettingsValues.mInputAttributes.mShouldShowSuggestions && currentSettingsValues.isSuggestionsEnabledPerUserSettings(); final boolean shouldShowSuggestionsStripUnlessPassword = currentSettingsValues.mShowsVoiceInputKey + || currentSettingsValues.mShowsPasteKey || shouldShowSuggestionCandidates || currentSettingsValues.isApplicationSpecifiedCompletionsOn(); final boolean shouldShowSuggestionsStrip = shouldShowSuggestionsStripUnlessPassword - && !currentSettingsValues.mInputAttributes.mIsPasswordField; + && (!currentSettingsValues.mInputAttributes.mIsPasswordField || currentSettingsValues.mShowsPasteKey); mSuggestionStripView.updateVisibility(shouldShowSuggestionsStrip, isFullscreenMode()); if (!shouldShowSuggestionsStrip) { return; diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java index 58d21bf1e..c636b0af0 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java @@ -443,7 +443,8 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick } if (view == mPasteKey) { CharSequence selectionSequence = mListener.getSelection(); - if (selectionSequence != null && selectionSequence.length() > 0) { + if (selectionSequence != null && selectionSequence.length() > 0 + && !Settings.getInstance().getCurrent().mInputAttributes.mIsPasswordField) { ClipboardManager clipboardManager = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); clipboardManager.setPrimaryClip(ClipData.newPlainText(selectionSequence, selectionSequence)); } From e0f95aa5c9b5d06b6bbe742545e9121fec6336a9 Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Mon, 22 Nov 2021 08:12:17 -0500 Subject: [PATCH 7/8] Renamed variables from "paste" to "clipboard" --- .../keyboard/internal/KeyboardIconsSet.java | 4 ++-- .../openboard/inputmethod/latin/LatinIME.java | 4 ++-- .../inputmethod/latin/settings/Settings.java | 6 +++--- .../latin/settings/SettingsValues.java | 4 ++-- .../latin/suggestions/SuggestionStripView.java | 18 +++++++++--------- ...ark.xml => sym_keyboard_clipboard_dark.xml} | 0 ...ht.xml => sym_keyboard_clipboard_light.xml} | 0 app/src/main/res/layout/suggestions_strip.xml | 2 +- .../res/values-v31/keyboard-icons-lxx-dark.xml | 2 +- .../values-v31/keyboard-icons-lxx-light.xml | 2 +- app/src/main/res/values/attrs.xml | 2 +- .../main/res/values/keyboard-icons-holo.xml | 2 +- .../res/values/keyboard-icons-lxx-dark.xml | 2 +- .../res/values/keyboard-icons-lxx-light.xml | 2 +- app/src/main/res/values/strings.xml | 4 ++-- .../main/res/xml/prefs_screen_preferences.xml | 6 +++--- 16 files changed, 30 insertions(+), 30 deletions(-) rename app/src/main/res/drawable/{sym_keyboard_paste_dark.xml => sym_keyboard_clipboard_dark.xml} (100%) rename app/src/main/res/drawable/{sym_keyboard_paste_light.xml => sym_keyboard_clipboard_light.xml} (100%) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java index bbe8b3214..5e2430a4f 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java @@ -52,7 +52,7 @@ public final class KeyboardIconsSet { public static final String NAME_PREVIOUS_KEY = "previous_key"; public static final String NAME_TAB_KEY = "tab_key"; public static final String NAME_SHORTCUT_KEY = "shortcut_key"; - public static final String NAME_PASTE_KEY = "paste_key"; + public static final String NAME_CLIPBOARD_KEY = "clipboard_key"; public static final String NAME_INCOGNITO_KEY = "incognito_key"; public static final String NAME_SHORTCUT_KEY_DISABLED = "shortcut_key_disabled"; public static final String NAME_LANGUAGE_SWITCH_KEY = "language_switch_key"; @@ -81,7 +81,7 @@ public final class KeyboardIconsSet { NAME_PREVIOUS_KEY, R.styleable.Keyboard_iconPreviousKey, NAME_TAB_KEY, R.styleable.Keyboard_iconTabKey, NAME_SHORTCUT_KEY, R.styleable.Keyboard_iconShortcutKey, - NAME_PASTE_KEY, R.styleable.Keyboard_iconPasteKey, + NAME_CLIPBOARD_KEY, R.styleable.Keyboard_iconClipboardKey, NAME_INCOGNITO_KEY, R.styleable.Keyboard_iconIncognitoKey, NAME_SPACE_KEY_FOR_NUMBER_LAYOUT, R.styleable.Keyboard_iconSpaceKeyForNumberLayout, NAME_SHIFT_KEY_SHIFTED, R.styleable.Keyboard_iconShiftKeyShifted, diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java index d789d58ca..1285380d0 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java @@ -1588,11 +1588,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen currentSettingsValues.mInputAttributes.mShouldShowSuggestions && currentSettingsValues.isSuggestionsEnabledPerUserSettings(); final boolean shouldShowSuggestionsStripUnlessPassword = currentSettingsValues.mShowsVoiceInputKey - || currentSettingsValues.mShowsPasteKey + || currentSettingsValues.mShowsClipboardKey || shouldShowSuggestionCandidates || currentSettingsValues.isApplicationSpecifiedCompletionsOn(); final boolean shouldShowSuggestionsStrip = shouldShowSuggestionsStripUnlessPassword - && (!currentSettingsValues.mInputAttributes.mIsPasswordField || currentSettingsValues.mShowsPasteKey); + && (!currentSettingsValues.mInputAttributes.mIsPasswordField || currentSettingsValues.mShowsClipboardKey); mSuggestionStripView.updateVisibility(shouldShowSuggestionsStrip, isFullscreenMode()); if (!shouldShowSuggestionsStrip) { return; diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java index dcd39acba..6522d5d7e 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java @@ -56,7 +56,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang // PREF_VOICE_MODE_OBSOLETE is obsolete. Use PREF_VOICE_INPUT_KEY instead. public static final String PREF_VOICE_MODE_OBSOLETE = "voice_mode"; public static final String PREF_VOICE_INPUT_KEY = "pref_voice_input_key"; - public static final String PREF_CLIPBOARD_PASTE_KEY = "pref_clipboard_paste_key"; + public static final String PREF_CLIPBOARD_CLIPBOARD_KEY = "pref_clipboard_clipboard_key"; public static final String PREF_EDIT_PERSONAL_DICTIONARY = "edit_personal_dictionary"; // PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE is obsolete. Use PREF_AUTO_CORRECTION instead. public static final String PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE = @@ -78,8 +78,8 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang "pref_show_language_switch_key"; public static final String PREF_SHOW_EMOJI_KEY = "pref_show_emoji_key"; - public static final String PREF_SHOW_PASTE_KEY = - "pref_show_paste_key"; + public static final String PREF_SHOW_CLIPBOARD_KEY = + "pref_show_clipboard_key"; public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST = "pref_include_other_imes_in_language_switch_list"; public static final String PREF_CUSTOM_INPUT_STYLES = "custom_input_styles"; diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java index 95dd4325b..9b51962e2 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java @@ -73,7 +73,7 @@ public class SettingsValues { public final boolean mShowsHints; public final boolean mShowsLanguageSwitchKey; public final boolean mShowsEmojiKey; - public final boolean mShowsPasteKey; + public final boolean mShowsClipboardKey; public final boolean mUsePersonalizedDicts; public final boolean mUseDoubleSpacePeriod; public final boolean mBlockPotentiallyOffensive; @@ -150,7 +150,7 @@ public class SettingsValues { mShowsHints = prefs.getBoolean(Settings.PREF_SHOW_HINTS, true); mShowsLanguageSwitchKey = prefs.getBoolean(Settings.PREF_SHOW_LANGUAGE_SWITCH_KEY, false); mShowsEmojiKey = prefs.getBoolean(Settings.PREF_SHOW_EMOJI_KEY, false); - mShowsPasteKey = prefs.getBoolean(Settings.PREF_SHOW_PASTE_KEY, false); + mShowsClipboardKey = prefs.getBoolean(Settings.PREF_SHOW_CLIPBOARD_KEY, false); mUsePersonalizedDicts = prefs.getBoolean(Settings.PREF_KEY_USE_PERSONALIZED_DICTS, true); mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true) && inputAttributes.mIsGeneralTextInput; diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java index c636b0af0..e2c1a2e0c 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java @@ -70,7 +70,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick private final ViewGroup mSuggestionsStrip; private final ImageButton mVoiceKey; - private final ImageButton mPasteKey; + private final ImageButton mClipboardKey; private final ImageButton mOtherKey; MainKeyboardView mMainKeyboardView; @@ -131,7 +131,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick mSuggestionsStrip = findViewById(R.id.suggestions_strip); mVoiceKey = findViewById(R.id.suggestions_strip_voice_key); - mPasteKey = findViewById(R.id.suggestions_strip_paste_key); + mClipboardKey = findViewById(R.id.suggestions_strip_clipboard_key); mOtherKey = findViewById(R.id.suggestions_strip_other_key); mStripVisibilityGroup = new StripVisibilityGroup(this, mSuggestionsStrip); @@ -167,13 +167,13 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick R.styleable.Keyboard, defStyle, R.style.SuggestionStripView); final Drawable iconVoice = keyboardAttr.getDrawable(R.styleable.Keyboard_iconShortcutKey); final Drawable iconIncognito = keyboardAttr.getDrawable(R.styleable.Keyboard_iconIncognitoKey); - final Drawable iconPaste = keyboardAttr.getDrawable(R.styleable.Keyboard_iconPasteKey); + final Drawable iconClipboard = keyboardAttr.getDrawable(R.styleable.Keyboard_iconClipboardKey); keyboardAttr.recycle(); mVoiceKey.setImageDrawable(iconVoice); mVoiceKey.setOnClickListener(this); - mPasteKey.setImageDrawable(iconPaste); - mPasteKey.setOnClickListener(this); - mPasteKey.setOnLongClickListener(this); + mClipboardKey.setImageDrawable(iconClipboard); + mClipboardKey.setOnClickListener(this); + mClipboardKey.setOnLongClickListener(this); mOtherKey.setImageDrawable(iconIncognito); } @@ -192,7 +192,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick setVisibility(visibility); final SettingsValues currentSettingsValues = Settings.getInstance().getCurrent(); mVoiceKey.setVisibility(currentSettingsValues.mShowsVoiceInputKey ? VISIBLE : GONE); - mPasteKey.setVisibility(currentSettingsValues.mShowsPasteKey ? VISIBLE : (mVoiceKey.getVisibility() == GONE ? INVISIBLE : GONE)); + mClipboardKey.setVisibility(currentSettingsValues.mShowsClipboardKey ? VISIBLE : (mVoiceKey.getVisibility() == GONE ? INVISIBLE : GONE)); mOtherKey.setVisibility(currentSettingsValues.mIncognitoModeEnabled ? VISIBLE : INVISIBLE); } @@ -267,7 +267,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick @Override public boolean onLongClick(final View view) { - if (view == mPasteKey) { + if (view == mClipboardKey) { ClipboardManager clipboardManager = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); ClipData clipData = clipboardManager.getPrimaryClip(); if (clipData != null && clipData.getItemCount() > 0 && clipData.getItemAt(0) != null) { @@ -441,7 +441,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick false /* isKeyRepeat */); return; } - if (view == mPasteKey) { + if (view == mClipboardKey) { CharSequence selectionSequence = mListener.getSelection(); if (selectionSequence != null && selectionSequence.length() > 0 && !Settings.getInstance().getCurrent().mInputAttributes.mIsPasswordField) { diff --git a/app/src/main/res/drawable/sym_keyboard_paste_dark.xml b/app/src/main/res/drawable/sym_keyboard_clipboard_dark.xml similarity index 100% rename from app/src/main/res/drawable/sym_keyboard_paste_dark.xml rename to app/src/main/res/drawable/sym_keyboard_clipboard_dark.xml diff --git a/app/src/main/res/drawable/sym_keyboard_paste_light.xml b/app/src/main/res/drawable/sym_keyboard_clipboard_light.xml similarity index 100% rename from app/src/main/res/drawable/sym_keyboard_paste_light.xml rename to app/src/main/res/drawable/sym_keyboard_clipboard_light.xml diff --git a/app/src/main/res/layout/suggestions_strip.xml b/app/src/main/res/layout/suggestions_strip.xml index 7fcc1e314..7f98671b5 100644 --- a/app/src/main/res/layout/suggestions_strip.xml +++ b/app/src/main/res/layout/suggestions_strip.xml @@ -54,7 +54,7 @@ android:contentDescription="@string/spoken_description_mic" style="?attr/suggestionWordStyle" /> @drawable/sym_keyboard_previous_lxx_dark @drawable/sym_keyboard_voice_lxx_dark @drawable/sym_keyboard_voice_off_lxx_dark - @drawable/sym_keyboard_paste_dark + @drawable/sym_keyboard_clipboard_dark @drawable/sym_keyboard_incognito_lxx_dark @drawable/sym_keyboard_space_lxx_dark @drawable/sym_keyboard_language_switch_lxx_dark diff --git a/app/src/main/res/values-v31/keyboard-icons-lxx-light.xml b/app/src/main/res/values-v31/keyboard-icons-lxx-light.xml index 80b0d806e..49f17d98e 100644 --- a/app/src/main/res/values-v31/keyboard-icons-lxx-light.xml +++ b/app/src/main/res/values-v31/keyboard-icons-lxx-light.xml @@ -36,7 +36,7 @@ @drawable/sym_keyboard_previous_lxx_light @drawable/sym_keyboard_voice_lxx_light @drawable/sym_keyboard_voice_off_lxx_light - @drawable/sym_keyboard_paste_light + @drawable/sym_keyboard_clipboard_light @drawable/sym_keyboard_incognito_lxx_light @drawable/sym_keyboard_space_lxx_light @drawable/sym_keyboard_language_switch_lxx_light diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 8e7c81f1e..7defaf7dc 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -270,7 +270,7 @@ - + diff --git a/app/src/main/res/values/keyboard-icons-holo.xml b/app/src/main/res/values/keyboard-icons-holo.xml index 31979b1d7..6cec98fc8 100644 --- a/app/src/main/res/values/keyboard-icons-holo.xml +++ b/app/src/main/res/values/keyboard-icons-holo.xml @@ -29,7 +29,7 @@ @drawable/sym_keyboard_search_holo_dark @drawable/sym_keyboard_tab_holo_dark @drawable/sym_keyboard_voice_holo_dark - @drawable/sym_keyboard_paste_dark + @drawable/sym_keyboard_clipboard_dark @drawable/sym_keyboard_incognito_dark @drawable/sym_keyboard_space_holo_dark @drawable/sym_keyboard_shift_locked_holo_dark diff --git a/app/src/main/res/values/keyboard-icons-lxx-dark.xml b/app/src/main/res/values/keyboard-icons-lxx-dark.xml index 9d86ec679..2a5d181e8 100644 --- a/app/src/main/res/values/keyboard-icons-lxx-dark.xml +++ b/app/src/main/res/values/keyboard-icons-lxx-dark.xml @@ -36,7 +36,7 @@ @drawable/sym_keyboard_previous_lxx_dark @drawable/sym_keyboard_voice_lxx_dark @drawable/sym_keyboard_voice_off_lxx_dark - @drawable/sym_keyboard_paste_dark + @drawable/sym_keyboard_clipboard_dark @drawable/sym_keyboard_incognito_lxx_dark @drawable/sym_keyboard_space_lxx_dark @drawable/sym_keyboard_language_switch_lxx_dark diff --git a/app/src/main/res/values/keyboard-icons-lxx-light.xml b/app/src/main/res/values/keyboard-icons-lxx-light.xml index f240b8b7f..89c8aa9cd 100644 --- a/app/src/main/res/values/keyboard-icons-lxx-light.xml +++ b/app/src/main/res/values/keyboard-icons-lxx-light.xml @@ -36,7 +36,7 @@ @drawable/sym_keyboard_previous_lxx_light @drawable/sym_keyboard_voice_lxx_light @drawable/sym_keyboard_voice_off_lxx_light - @drawable/sym_keyboard_paste_light + @drawable/sym_keyboard_clipboard_light @drawable/sym_keyboard_incognito_lxx_light @drawable/sym_keyboard_space_lxx_light @drawable/sym_keyboard_language_switch_lxx_light diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d1e6901a8..22285205f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -180,8 +180,8 @@ No voice input methods enabled. Check Languages & input settings. - Clipboard paste key - Press to copy, long-press to paste. + Clipboard key + Press to copy, long-press to paste. Configure input methods diff --git a/app/src/main/res/xml/prefs_screen_preferences.xml b/app/src/main/res/xml/prefs_screen_preferences.xml index 7015894db..1a3a869bf 100644 --- a/app/src/main/res/xml/prefs_screen_preferences.xml +++ b/app/src/main/res/xml/prefs_screen_preferences.xml @@ -72,9 +72,9 @@ android:defaultValue="true" android:persistent="true" /> From 0103f959d38606ecda2c680ecb0d71f5c05721c3 Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Mon, 22 Nov 2021 08:20:12 -0500 Subject: [PATCH 8/8] Show incognito icon on password input Since the suggestion strip can now show during password input if the clipboard button is on, show the incognito icon when this occurs. --- .../openboard/inputmethod/latin/settings/SettingsValues.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java index 9b51962e2..3db4e2449 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java @@ -190,7 +190,8 @@ public class SettingsValues { //&& !mInputAttributes.mInputTypeNoAutoCorrect; mSuggestionsEnabledPerUserSettings = !mInputAttributes.mIsPasswordField && readSuggestionsEnabled(prefs); - mIncognitoModeEnabled = Settings.readAlwaysIncognitoMode(prefs) || mInputAttributes.mNoLearning; + mIncognitoModeEnabled = Settings.readAlwaysIncognitoMode(prefs) || mInputAttributes.mNoLearning + || mInputAttributes.mIsPasswordField; mIsInternal = Settings.isInternal(prefs); mHasCustomKeyPreviewAnimationParams = prefs.getBoolean( DebugSettings.PREF_HAS_CUSTOM_KEY_PREVIEW_ANIMATION_PARAMS, false);