mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-07-20 17:51:38 +00:00
ios: move caching images to background thread, dont use main thread scheduler for marking items read (#4840)
This commit is contained in:
@@ -797,9 +797,10 @@ struct ChatView: View {
|
||||
}
|
||||
|
||||
private func waitToMarkRead(_ op: @Sendable @escaping () async -> Void) {
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) {
|
||||
Task {
|
||||
_ = try? await Task.sleep(nanoseconds: 600_000000)
|
||||
if m.chatId == chat.chatInfo.id {
|
||||
Task(operation: op)
|
||||
await op()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -391,7 +391,9 @@ public func imageFromBase64(_ base64Encoded: String?) -> UIImage? {
|
||||
return img
|
||||
} else if let data = Data(base64Encoded: dropImagePrefix(base64Encoded)),
|
||||
let img = UIImage(data: data) {
|
||||
imageCache.setObject(img, forKey: base64Encoded as NSString)
|
||||
imageCacheQueue.async {
|
||||
imageCache.setObject(img, forKey: base64Encoded as NSString)
|
||||
}
|
||||
return img
|
||||
} else {
|
||||
return nil
|
||||
@@ -401,6 +403,8 @@ public func imageFromBase64(_ base64Encoded: String?) -> UIImage? {
|
||||
}
|
||||
}
|
||||
|
||||
private let imageCacheQueue = DispatchQueue.global(qos: .background)
|
||||
|
||||
private var imageCache: NSCache<NSString, UIImage> = {
|
||||
var cache = NSCache<NSString, UIImage>()
|
||||
cache.countLimit = 1000
|
||||
|
||||
Reference in New Issue
Block a user