mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
Various improvements
This commit is contained in:
@@ -1020,6 +1020,7 @@ private final class CameraScreenComponent: CombinedComponent {
|
||||
hasAccess: hasAllRequiredAccess,
|
||||
hideControls: component.cameraState.collageProgress > 1.0 - .ulpOfOne,
|
||||
collageProgress: component.cameraState.collageProgress,
|
||||
collageCount: component.cameraState.isCollageEnabled ? component.cameraState.collageGrid.count : nil,
|
||||
tintColor: controlsTintColor,
|
||||
shutterState: shutterState,
|
||||
lastGalleryAsset: state.lastGalleryAsset,
|
||||
@@ -1683,6 +1684,7 @@ public class CameraScreenImpl: ViewController, CameraScreen {
|
||||
fileprivate var additionalPreviewView: CameraSimplePreviewView
|
||||
|
||||
fileprivate let previewBlurView: BlurView
|
||||
fileprivate let mainPreviewBlurView: BlurView
|
||||
private var mainPreviewSnapshotView: UIView?
|
||||
private var additionalPreviewSnapshotView: UIView?
|
||||
fileprivate let previewFrameLeftDimView: UIView
|
||||
@@ -1795,6 +1797,9 @@ public class CameraScreenImpl: ViewController, CameraScreen {
|
||||
self.previewBlurView = BlurView()
|
||||
self.previewBlurView.isUserInteractionEnabled = false
|
||||
|
||||
self.mainPreviewBlurView = BlurView()
|
||||
self.mainPreviewBlurView.isUserInteractionEnabled = false
|
||||
|
||||
var isDualCameraEnabled = Camera.isDualCameraSupported(forRoundVideo: false)
|
||||
if isDualCameraEnabled {
|
||||
if let isDualCameraEnabledValue = UserDefaults.standard.object(forKey: "TelegramStoryCameraIsDualEnabled") as? NSNumber {
|
||||
@@ -2122,9 +2127,17 @@ public class CameraScreenImpl: ViewController, CameraScreen {
|
||||
}
|
||||
}
|
||||
if case .position = modeChange {
|
||||
UIView.transition(with: self.previewContainerView, duration: 0.4, options: [.transitionFlipFromLeft, .curveEaseOut], animations: {
|
||||
self.previewBlurView.effect = UIBlurEffect(style: .dark)
|
||||
})
|
||||
if self.cameraState.isCollageEnabled {
|
||||
self.mainPreviewBlurView.frame = self.mainPreviewContainerView.bounds
|
||||
self.mainPreviewContainerView.addSubview(self.mainPreviewBlurView)
|
||||
UIView.transition(with: self.mainPreviewContainerView, duration: 0.4, options: [.transitionFlipFromLeft, .curveEaseOut], animations: {
|
||||
self.mainPreviewBlurView.effect = UIBlurEffect(style: .dark)
|
||||
})
|
||||
} else {
|
||||
UIView.transition(with: self.previewContainerView, duration: 0.4, options: [.transitionFlipFromLeft, .curveEaseOut], animations: {
|
||||
self.previewBlurView.effect = UIBlurEffect(style: .dark)
|
||||
})
|
||||
}
|
||||
} else {
|
||||
self.previewContainerView.insertSubview(self.previewBlurView, belowSubview: self.additionalPreviewContainerView)
|
||||
|
||||
@@ -2137,6 +2150,13 @@ public class CameraScreenImpl: ViewController, CameraScreen {
|
||||
self.previewBlurView.effect = UIBlurEffect(style: .dark)
|
||||
}
|
||||
} else {
|
||||
if self.mainPreviewBlurView.effect != nil {
|
||||
UIView.animate(withDuration: 0.4, animations: {
|
||||
self.mainPreviewBlurView.effect = nil
|
||||
}, completion: { _ in
|
||||
self.mainPreviewBlurView.removeFromSuperview()
|
||||
})
|
||||
}
|
||||
if self.previewBlurView.effect != nil {
|
||||
UIView.animate(withDuration: 0.4, animations: {
|
||||
self.previewBlurView.effect = nil
|
||||
@@ -2971,7 +2991,7 @@ public class CameraScreenImpl: ViewController, CameraScreen {
|
||||
}
|
||||
self.updatingCollageProgress = true
|
||||
self.controller?.updateCameraState({ state in
|
||||
return state.updatedCollageProgress(collageState.progress)
|
||||
return state.updatedCollageProgress(collageState.innerProgress)
|
||||
}, transition: .spring(duration: 0.3))
|
||||
self.updatingCollageProgress = false
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user