Various fixes

This commit is contained in:
Ilya Laktyushin
2023-06-25 00:33:07 +02:00
parent b4475f2d91
commit 6389d9040d
9 changed files with 169 additions and 111 deletions

View File

@@ -418,6 +418,22 @@ final class LockContentComponent: Component {
}
}
private func lastStateImage() -> UIImage {
let imagePath = NSTemporaryDirectory() + "galleryImage.jpg"
if let data = try? Data(contentsOf: URL(fileURLWithPath: imagePath)), let image = UIImage(data: data) {
return image
} else {
return UIImage(bundleImageName: "Camera/Placeholder")!
}
}
private func saveLastStateImage(_ image: UIImage) {
let imagePath = NSTemporaryDirectory() + "galleryImage.jpg"
if let data = image.jpegData(compressionQuality: 0.6) {
try? data.write(to: URL(fileURLWithPath: imagePath))
}
}
final class CaptureControlsComponent: Component {
enum SwipeHint {
case none
@@ -505,8 +521,13 @@ final class CaptureControlsComponent: Component {
self.assetDisposable.set((fetchPhotoLibraryImage(localIdentifier: lastGalleryAsset.localIdentifier, thumbnail: true)
|> deliverOnMainQueue).start(next: { [weak self] imageAndDegraded in
if let self, let (image, _) = imageAndDegraded {
let updated = self.cachedAssetImage?.0 != lastGalleryAsset.localIdentifier
self.cachedAssetImage = (lastGalleryAsset.localIdentifier, image)
self.updated(transition: .easeInOut(duration: 0.2))
if updated {
saveLastStateImage(image)
}
}
}))
}
@@ -514,6 +535,12 @@ final class CaptureControlsComponent: Component {
}
}
override init() {
self.cachedAssetImage = ("", lastStateImage())
super.init()
}
deinit {
self.assetDisposable.dispose()
}