mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 05:19:13 +00:00
reduced usage of isLocal in favour of checking hoarder.downloadedEmojis
wrote tests to check that, Set checking is 1.5 to 2x faster
This commit is contained in:
@@ -21,7 +21,7 @@ class EmojiHoarder: ObservableObject {
|
|||||||
|
|
||||||
@Published var trie: Trie = Trie()
|
@Published var trie: Trie = Trie()
|
||||||
@Published var filteredEmojis: [String] = []
|
@Published var filteredEmojis: [String] = []
|
||||||
@Published var downloadedEmojis: [String] = []
|
@Published var downloadedEmojis: Set<String> = []
|
||||||
@Published var searchTerm: String = ""
|
@Published var searchTerm: String = ""
|
||||||
|
|
||||||
init(localOnly: Bool = false) {
|
init(localOnly: Bool = false) {
|
||||||
@@ -97,7 +97,7 @@ class EmojiHoarder: ObservableObject {
|
|||||||
downloadedEmojis = []
|
downloadedEmojis = []
|
||||||
for emoji in emojis {
|
for emoji in emojis {
|
||||||
guard emoji.isLocal else { continue }
|
guard emoji.isLocal else { continue }
|
||||||
downloadedEmojis.append(emoji.name)
|
downloadedEmojis.insert(emoji.name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ struct EmojiRow: View {
|
|||||||
)
|
)
|
||||||
.frame(maxWidth: 100, maxHeight: 100)
|
.frame(maxWidth: 100, maxHeight: 100)
|
||||||
Spacer()
|
Spacer()
|
||||||
if emoji.isLocal {
|
if hoarder.downloadedEmojis.contains(emoji.name) {
|
||||||
Button("", systemImage: "trash") {
|
Button("", systemImage: "trash") {
|
||||||
emoji.deleteImage()
|
emoji.deleteImage()
|
||||||
emoji.refresh()
|
emoji.refresh()
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ struct EmojiCollectionView: UIViewRepresentable {
|
|||||||
)
|
)
|
||||||
.frame(maxWidth: 100, maxHeight: 100)
|
.frame(maxWidth: 100, maxHeight: 100)
|
||||||
Spacer()
|
Spacer()
|
||||||
if hoarder.trie.dict[emojiName]!.isLocal {
|
if hoarder.downloadedEmojis.contains(emojiName) {
|
||||||
Button("", systemImage: "trash") {
|
Button("", systemImage: "trash") {
|
||||||
self.hoarder.trie.dict[emojiName]!.deleteImage()
|
self.hoarder.trie.dict[emojiName]!.deleteImage()
|
||||||
self.hoarder.trie.dict[emojiName]!.refresh()
|
self.hoarder.trie.dict[emojiName]!.refresh()
|
||||||
|
|||||||
@@ -140,4 +140,16 @@ struct PerformanceTests {
|
|||||||
let _ = hoarder.trie.search(prefix: term)
|
let _ = hoarder.trie.search(prefix: term)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test func testIsLocal() async throws {
|
||||||
|
for emoji in hoarder.emojis {
|
||||||
|
let x = emoji.isLocal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test func testDownloadedEmojis() async throws {
|
||||||
|
for emoji in hoarder.emojis {
|
||||||
|
let x = hoarder.downloadedEmojis.contains(emoji.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user