mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Fix view once
This commit is contained in:
@@ -119,6 +119,7 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
|
||||
let cameraState: CameraState
|
||||
let containerSize: CGSize
|
||||
let previewFrame: CGRect
|
||||
let safeInsets: UIEdgeInsets
|
||||
let isPreviewing: Bool
|
||||
let isMuted: Bool
|
||||
let totalDuration: Double
|
||||
@@ -135,6 +136,7 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
|
||||
cameraState: CameraState,
|
||||
containerSize: CGSize,
|
||||
previewFrame: CGRect,
|
||||
safeInsets: UIEdgeInsets,
|
||||
isPreviewing: Bool,
|
||||
isMuted: Bool,
|
||||
totalDuration: Double,
|
||||
@@ -150,6 +152,7 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
|
||||
self.cameraState = cameraState
|
||||
self.containerSize = containerSize
|
||||
self.previewFrame = previewFrame
|
||||
self.safeInsets = safeInsets
|
||||
self.isPreviewing = isPreviewing
|
||||
self.isMuted = isMuted
|
||||
self.totalDuration = totalDuration
|
||||
@@ -169,6 +172,9 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
|
||||
if lhs.previewFrame != rhs.previewFrame {
|
||||
return false
|
||||
}
|
||||
if lhs.safeInsets != rhs.safeInsets {
|
||||
return false
|
||||
}
|
||||
if lhs.cameraState != rhs.cameraState {
|
||||
return false
|
||||
}
|
||||
@@ -529,6 +535,11 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
|
||||
let state = context.state
|
||||
let availableSize = context.component.containerSize
|
||||
|
||||
var sideInset: CGFloat = 8.0
|
||||
if component.safeInsets.bottom <= 32.0 {
|
||||
sideInset += 18.0
|
||||
}
|
||||
|
||||
state.cameraState = component.cameraState
|
||||
|
||||
var viewOnceOffset: CGFloat = 102.0
|
||||
@@ -619,12 +630,12 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
|
||||
)
|
||||
|
||||
context.add(flipButtonBackground
|
||||
.position(CGPoint(x: flipButton.size.width / 2.0 + 8.0, y: availableSize.height - flipButton.size.height / 2.0 - 8.0))
|
||||
.position(CGPoint(x: flipButton.size.width / 2.0 + sideInset, y: availableSize.height - flipButton.size.height / 2.0 - 8.0))
|
||||
.appear(.default(scale: true, alpha: true))
|
||||
.disappear(.default(scale: true, alpha: true))
|
||||
)
|
||||
context.add(flipButton
|
||||
.position(CGPoint(x: flipButton.size.width / 2.0 + 8.0, y: availableSize.height - flipButton.size.height / 2.0 - 8.0))
|
||||
.position(CGPoint(x: flipButton.size.width / 2.0 + sideInset, y: availableSize.height - flipButton.size.height / 2.0 - 8.0))
|
||||
.appear(.default(scale: true, alpha: true))
|
||||
.disappear(.default(scale: true, alpha: true))
|
||||
)
|
||||
@@ -698,13 +709,13 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
|
||||
)
|
||||
|
||||
context.add(flashButtonBackground
|
||||
.position(CGPoint(x: flipButton.size.width + 8.0 + flashButton.size.width / 2.0 + 11.0, y: availableSize.height - flashButton.size.height / 2.0 - 8.0))
|
||||
.position(CGPoint(x: flipButton.size.width + sideInset + flashButton.size.width / 2.0 + 11.0, y: availableSize.height - flashButton.size.height / 2.0 - 8.0))
|
||||
.appear(.default(scale: true, alpha: true))
|
||||
.disappear(.default(scale: true, alpha: true))
|
||||
)
|
||||
|
||||
context.add(flashButton
|
||||
.position(CGPoint(x: flipButton.size.width + 8.0 + flashButton.size.width / 2.0 + 11.0, y: availableSize.height - flashButton.size.height / 2.0 - 8.0))
|
||||
.position(CGPoint(x: flipButton.size.width + sideInset + flashButton.size.width / 2.0 + 11.0, y: availableSize.height - flashButton.size.height / 2.0 - 8.0))
|
||||
.appear(.default(scale: true, alpha: true))
|
||||
.disappear(.default(scale: true, alpha: true))
|
||||
)
|
||||
@@ -751,7 +762,7 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
|
||||
transition: context.transition
|
||||
)
|
||||
context.add(viewOnceButton
|
||||
.position(CGPoint(x: availableSize.width - viewOnceButton.size.width / 2.0 - 8.0, y: availableSize.height - viewOnceButton.size.height / 2.0 - 8.0 - viewOnceOffset))
|
||||
.position(CGPoint(x: availableSize.width - viewOnceButton.size.width / 2.0 - sideInset, y: availableSize.height - viewOnceButton.size.height / 2.0 - 8.0 - viewOnceOffset))
|
||||
.appear(.default(scale: true, alpha: true))
|
||||
.disappear(.default(scale: true, alpha: true))
|
||||
)
|
||||
@@ -791,7 +802,7 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
|
||||
transition: context.transition
|
||||
)
|
||||
context.add(recordMoreButton
|
||||
.position(CGPoint(x: availableSize.width - recordMoreButton.size.width / 2.0 - 8.0, y: availableSize.height - recordMoreButton.size.height / 2.0 - 22.0))
|
||||
.position(CGPoint(x: availableSize.width - recordMoreButton.size.width / 2.0 - sideInset, y: availableSize.height - recordMoreButton.size.height / 2.0 - 22.0))
|
||||
.appear(.default(scale: true, alpha: true))
|
||||
.disappear(.default(scale: true, alpha: true))
|
||||
)
|
||||
@@ -1546,6 +1557,7 @@ public class VideoMessageCameraScreen: ViewController {
|
||||
cameraState: self.cameraState,
|
||||
containerSize: backgroundFrame.size,
|
||||
previewFrame: previewFrame,
|
||||
safeInsets: layout.safeInsets,
|
||||
isPreviewing: self.previewState != nil || self.transitioningToPreview,
|
||||
isMuted: self.previewState?.isMuted ?? true,
|
||||
totalDuration: self.previewState?.composition.duration.seconds ?? 0.0,
|
||||
|
||||
Reference in New Issue
Block a user