better performance in stickerbroswer

Emoji.sticker can return nil
added tests to measure .sticker perfomance
delete redundant stickerbrowserviewcontroller
This commit is contained in:
neon443
2025-10-29 22:48:26 +00:00
parent 495abb99b4
commit 4ab2ee8b98
8 changed files with 209 additions and 37 deletions

View File

@@ -11,11 +11,17 @@ import Messages
class StickerBrowserDataSource: NSObject, MSStickerBrowserViewDataSource {
var hoarder: EmojiHoarder = EmojiHoarder()
var emojis: [MSSticker] = []
func numberOfStickers(in stickerBrowserView: MSStickerBrowserView) -> Int {
return hoarder.emojis.filter { $0.isLocal }.count
for emoji in hoarder.emojis {
guard let sticker = emoji.sticker else { continue }
emojis.append(sticker)
}
return emojis.count
}
func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView, stickerAt index: Int) -> MSSticker {
return hoarder.emojis.filter { $0.isLocal }[index].sticker
return emojis[index]
}
}