Various fixes

This commit is contained in:
Ilya Laktyushin
2023-07-14 22:17:06 +02:00
parent 2e09bfe14f
commit 2e6bc7f69d
9 changed files with 132 additions and 61 deletions

View File

@@ -245,7 +245,16 @@ private final class CameraScreenComponent: CombinedComponent {
func setupRecentAssetSubscription() {
let mediaAssetsContext = MediaAssetsContext()
self.mediaAssetsContext = mediaAssetsContext
self.lastGalleryAssetsDisposable = (mediaAssetsContext.recentAssets()
self.lastGalleryAssetsDisposable = (
mediaAssetsContext.mediaAccess()
|> mapToSignal { [weak mediaAssetsContext] status in
if case .authorized = status, let mediaAssetsContext {
return mediaAssetsContext.recentAssets()
} else {
return .complete()
}
}
|> map { fetchResult in
return fetchResult?.lastObject
}
@@ -258,6 +267,13 @@ private final class CameraScreenComponent: CombinedComponent {
})
}
func requestMediaAccess(completion: @escaping () -> Void) {
guard let mediaAssetsContext = self.mediaAssetsContext else {
return
}
mediaAssetsContext.requestMediaAccess(completion: completion)
}
func setupVolumeButtonsHandler() {
guard self.volumeButtonsListener == nil else {
return
@@ -687,11 +703,13 @@ private final class CameraScreenComponent: CombinedComponent {
}
state.togglePosition(animateFlipAction)
},
galleryTapped: {
galleryTapped: { [weak state] in
guard let controller = environment.controller() as? CameraScreen else {
return
}
controller.presentGallery()
state?.requestMediaAccess {
controller.presentGallery()
}
},
swipeHintUpdated: { [weak state] hint in
if let state {