mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-06-01 04:12:12 +00:00
simplify loading pinned clips
we don't need to read a file any more also makes sure pinned clips are initially loaded before fetching the primary clip
This commit is contained in:
parent
a58a7cc932
commit
290944635f
2 changed files with 10 additions and 23 deletions
|
@ -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<ClipboardHistoryEntry>) {
|
||||
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<ClipboardHistoryEntry> = Json.decodeFromString(pinnedClipString)
|
||||
latinIME.mHandler.postUpdateClipboardPinnedClips(pinnedClips)
|
||||
historyEntries.addAll(pinnedClips)
|
||||
sortHistoryEntries()
|
||||
if (onHistoryChangeListener != null) {
|
||||
pinnedClips.forEach {
|
||||
onHistoryChangeListener?.onClipboardHistoryEntryAdded(historyEntries.indexOf(it))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun savePinnedClips() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue