updated downloadedview to use less ram!!

This commit is contained in:
neon443
2025-11-15 19:14:49 +00:00
parent 1aac4906ed
commit 7b911d932c
2 changed files with 7 additions and 2 deletions

View File

@@ -25,6 +25,7 @@ class EmojiHoarder: ObservableObject {
@Published var trie: Trie = Trie()
// @Published var filteredEmojis: [String] = []
@Published var downloadedEmojis: Set<String> = []
@Published var downloadedEmojisArr: [String] = []
@Published var searchTerm: String = ""
init(localOnly: Bool = false, skipIndex: Bool = false) {
@@ -119,9 +120,11 @@ class EmojiHoarder: ObservableObject {
func buildDownloadedEmojis() {
downloadedEmojis = []
downloadedEmojisArr = []
for emoji in emojis {
guard emoji.isLocal else { continue }
downloadedEmojis.insert(emoji.name)
downloadedEmojisArr.append(emoji.name)
}
}
@@ -175,6 +178,7 @@ class EmojiHoarder: ObservableObject {
try? await emoji.downloadImage()
await MainActor.run {
self.downloadedEmojis.insert(emoji.name)
self.downloadedEmojisArr.append(emoji.name)
self.trie.dict[emoji.name]?.refresh()
Haptic.success.trigger()
}
@@ -185,6 +189,7 @@ class EmojiHoarder: ObservableObject {
func delete(emoji: Emoji) {
emoji.deleteImage()
downloadedEmojis.remove(emoji.name)
downloadedEmojisArr.removeAll(where: { $0 == emoji.name })
self.trie.dict[emoji.name]?.refresh()
Haptic.heavy.trigger()
}

View File

@@ -28,8 +28,8 @@ struct DownloadedView: View {
let columns: Int = max(1, Int((UIScreen.main.bounds.width - 2*spacing) / (minColWidth + spacing)))
let layout = Array(repeating: col, count: columns)
LazyVGrid(columns: layout, spacing: spacing) {
ForEach(hoarder.emojis, id: \.self) { emoji in
if hoarder.downloadedEmojis.contains(emoji.name) {
ForEach(hoarder.downloadedEmojisArr, id: \.self) { name in
if let emoji = hoarder.trie.dict[name] {
ZStack {
Rectangle()
.foregroundStyle(isDark ? .black : .white)