diff --git a/app/src/main/java/helium314/keyboard/latin/ClipboardHistoryManager.kt b/app/src/main/java/helium314/keyboard/latin/ClipboardHistoryManager.kt index 625791eb7..a26d900d8 100644 --- a/app/src/main/java/helium314/keyboard/latin/ClipboardHistoryManager.kt +++ b/app/src/main/java/helium314/keyboard/latin/ClipboardHistoryManager.kt @@ -9,6 +9,7 @@ import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import helium314.keyboard.compat.ClipboardManagerCompat import helium314.keyboard.latin.settings.Settings +import helium314.keyboard.latin.utils.DeviceProtectedUtils import kotlin.collections.ArrayList class ClipboardHistoryManager( @@ -23,20 +24,10 @@ class ClipboardHistoryManager( clipboardManager.addPrimaryClipChangedListener(this) if (historyEntries.isEmpty()) loadPinnedClips() - if (latinIME.mSettings.current?.mClipboardHistoryEnabled == true) + if (Settings.readClipboardHistoryEnabled(DeviceProtectedUtils.getSharedPreferences(latinIME))) fetchPrimaryClip() } - fun onPinnedClipsAvailable(pinnedClips: List) { - historyEntries.addAll(pinnedClips) - sortHistoryEntries() - if (onHistoryChangeListener != null) { - pinnedClips.forEach { - onHistoryChangeListener?.onClipboardHistoryEntryAdded(historyEntries.indexOf(it)) - } - } - } - fun onDestroy() { clipboardManager.removePrimaryClipChangedListener(this) } @@ -145,7 +136,13 @@ class ClipboardHistoryManager( val pinnedClipString = Settings.readPinnedClipString(latinIME) if (pinnedClipString.isEmpty()) return val pinnedClips: List = Json.decodeFromString(pinnedClipString) - latinIME.mHandler.postUpdateClipboardPinnedClips(pinnedClips) + historyEntries.addAll(pinnedClips) + sortHistoryEntries() + if (onHistoryChangeListener != null) { + pinnedClips.forEach { + onHistoryChangeListener?.onClipboardHistoryEntryAdded(historyEntries.indexOf(it)) + } + } } private fun savePinnedClips() { diff --git a/app/src/main/java/helium314/keyboard/latin/LatinIME.java b/app/src/main/java/helium314/keyboard/latin/LatinIME.java index cc40c8cb3..6f268aed7 100644 --- a/app/src/main/java/helium314/keyboard/latin/LatinIME.java +++ b/app/src/main/java/helium314/keyboard/latin/LatinIME.java @@ -199,9 +199,8 @@ public class LatinIME extends InputMethodService implements private static final int MSG_WAIT_FOR_DICTIONARY_LOAD = 8; private static final int MSG_DEALLOCATE_MEMORY = 9; private static final int MSG_SWITCH_LANGUAGE_AUTOMATICALLY = 10; - private static final int MSG_UPDATE_CLIPBOARD_PINNED_CLIPS = 11; // Update this when adding new messages - private static final int MSG_LAST = MSG_UPDATE_CLIPBOARD_PINNED_CLIPS; + private static final int MSG_LAST = MSG_SWITCH_LANGUAGE_AUTOMATICALLY; private static final int ARG1_NOT_GESTURE_INPUT = 0; private static final int ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT = 1; @@ -292,11 +291,6 @@ public class LatinIME extends InputMethodService implements case MSG_SWITCH_LANGUAGE_AUTOMATICALLY: latinIme.switchToSubtype((InputMethodSubtype) msg.obj); break; - case MSG_UPDATE_CLIPBOARD_PINNED_CLIPS: - @SuppressWarnings("unchecked") - List entries = (List) msg.obj; - latinIme.mClipboardHistoryManager.onPinnedClipsAvailable(entries); - break; } } @@ -411,10 +405,6 @@ public class LatinIME extends InputMethodService implements obtainMessage(MSG_SWITCH_LANGUAGE_AUTOMATICALLY, subtype).sendToTarget(); } - public void postUpdateClipboardPinnedClips(final List clips) { - obtainMessage(MSG_UPDATE_CLIPBOARD_PINNED_CLIPS, clips).sendToTarget(); - } - // Working variables for the following methods. private boolean mIsOrientationChanging; private boolean mPendingSuccessiveImsCallback;