|
@@ -38,9 +38,10 @@ extension KFImage {
|
|
|
init() {}
|
|
init() {}
|
|
|
|
|
|
|
|
var downloadTask: DownloadTask?
|
|
var downloadTask: DownloadTask?
|
|
|
|
|
+ private var loading = false
|
|
|
|
|
|
|
|
var loadingOrSucceeded: Bool {
|
|
var loadingOrSucceeded: Bool {
|
|
|
- return downloadTask != nil || loadedImage != nil
|
|
|
|
|
|
|
+ return loading || loadedImage != nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Published var loaded = false
|
|
@Published var loaded = false
|
|
@@ -58,6 +59,8 @@ extension KFImage {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ loading = true
|
|
|
|
|
+
|
|
|
progress = .init()
|
|
progress = .init()
|
|
|
downloadTask = KingfisherManager.shared
|
|
downloadTask = KingfisherManager.shared
|
|
|
.retrieveImage(
|
|
.retrieveImage(
|
|
@@ -71,10 +74,13 @@ extension KFImage {
|
|
|
|
|
|
|
|
guard let self = self else { return }
|
|
guard let self = self else { return }
|
|
|
|
|
|
|
|
- self.downloadTask = nil
|
|
|
|
|
|
|
+ CallbackQueue.mainCurrentOrAsync.execute {
|
|
|
|
|
+ self.downloadTask = nil
|
|
|
|
|
+ self.loading = false
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
switch result {
|
|
switch result {
|
|
|
case .success(let value):
|
|
case .success(let value):
|
|
|
-
|
|
|
|
|
CallbackQueue.mainCurrentOrAsync.execute {
|
|
CallbackQueue.mainCurrentOrAsync.execute {
|
|
|
self.loadedImage = value.image
|
|
self.loadedImage = value.image
|
|
|
let animation = context.fadeTransitionDuration(cacheType: value.cacheType)
|
|
let animation = context.fadeTransitionDuration(cacheType: value.cacheType)
|
|
@@ -110,6 +116,7 @@ extension KFImage {
|
|
|
func cancel() {
|
|
func cancel() {
|
|
|
downloadTask?.cancel()
|
|
downloadTask?.cancel()
|
|
|
downloadTask = nil
|
|
downloadTask = nil
|
|
|
|
|
+ loading = false
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|