Various fixes

This commit is contained in:
Ilya Laktyushin
2024-01-18 16:25:35 +04:00
parent 64d5a443d7
commit efa1212fa6
3 changed files with 20 additions and 4 deletions

View File

@@ -7,6 +7,7 @@ public final class CameraButton: Component {
let minSize: CGSize? let minSize: CGSize?
let tag: AnyObject? let tag: AnyObject?
let isEnabled: Bool let isEnabled: Bool
let isExclusive: Bool
let action: () -> Void let action: () -> Void
let longTapAction: (() -> Void)? let longTapAction: (() -> Void)?
@@ -15,6 +16,7 @@ public final class CameraButton: Component {
minSize: CGSize? = nil, minSize: CGSize? = nil,
tag: AnyObject? = nil, tag: AnyObject? = nil,
isEnabled: Bool = true, isEnabled: Bool = true,
isExclusive: Bool = true,
action: @escaping () -> Void, action: @escaping () -> Void,
longTapAction: (() -> Void)? = nil longTapAction: (() -> Void)? = nil
) { ) {
@@ -22,6 +24,7 @@ public final class CameraButton: Component {
self.minSize = minSize self.minSize = minSize
self.tag = tag self.tag = tag
self.isEnabled = isEnabled self.isEnabled = isEnabled
self.isExclusive = isExclusive
self.action = action self.action = action
self.longTapAction = longTapAction self.longTapAction = longTapAction
} }
@@ -32,6 +35,7 @@ public final class CameraButton: Component {
minSize: self.minSize, minSize: self.minSize,
tag: tag, tag: tag,
isEnabled: self.isEnabled, isEnabled: self.isEnabled,
isExclusive: self.isExclusive,
action: self.action, action: self.action,
longTapAction: self.longTapAction longTapAction: self.longTapAction
) )
@@ -50,6 +54,9 @@ public final class CameraButton: Component {
if lhs.isEnabled != rhs.isEnabled { if lhs.isEnabled != rhs.isEnabled {
return false return false
} }
if lhs.isExclusive != rhs.isExclusive {
return false
}
return true return true
} }
@@ -90,8 +97,6 @@ public final class CameraButton: Component {
super.init(frame: frame) super.init(frame: frame)
self.isExclusiveTouch = true
self.addSubview(self.containerView) self.addSubview(self.containerView)
self.containerView.addSubview(self.contentView) self.containerView.addSubview(self.contentView)
@@ -175,6 +180,8 @@ public final class CameraButton: Component {
self.component = component self.component = component
self.isExclusiveTouch = component.isExclusive
self.updateScale(transition: transition) self.updateScale(transition: transition)
self.isEnabled = component.isEnabled self.isEnabled = component.isEnabled
self.longTapGestureRecognizer?.isEnabled = component.longTapAction != nil self.longTapGestureRecognizer?.isEnabled = component.longTapAction != nil

View File

@@ -181,7 +181,7 @@ final class StoryInteractionGuideComponent: Component {
transition: transition, transition: transition,
component: AnyComponent(List(items)), component: AnyComponent(List(items)),
environment: {}, environment: {},
containerSize: CGSize(width: availableSize.width - sideInset * 2.0, height: availableSize.height) containerSize: CGSize(width: min(500.0, availableSize.width - sideInset * 2.0), height: availableSize.height)
) )
let textSpacing: CGFloat = 7.0 let textSpacing: CGFloat = 7.0

View File

@@ -171,6 +171,8 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
var cameraState: CameraState? var cameraState: CameraState?
var didDisplayViewOnce = false
private let hapticFeedback = HapticFeedback() private let hapticFeedback = HapticFeedback()
init( init(
@@ -355,7 +357,7 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
} }
if let controller = component.getController() { if let controller = component.getController() {
if controller.isSendingImmediately || controller.scheduledLock { if controller.scheduledLock {
showViewOnce = true showViewOnce = true
} }
if !controller.viewOnceAvailable { if !controller.viewOnceAvailable {
@@ -363,6 +365,12 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
} }
} }
if state.didDisplayViewOnce {
showViewOnce = true
} else if showViewOnce {
state.didDisplayViewOnce = true
}
if !component.isPreviewing { if !component.isPreviewing {
let flipButton = flipButton.update( let flipButton = flipButton.update(
component: CameraButton( component: CameraButton(
@@ -377,6 +385,7 @@ private final class VideoMessageCameraScreenComponent: CombinedComponent {
) )
), ),
minSize: CGSize(width: 44.0, height: 44.0), minSize: CGSize(width: 44.0, height: 44.0),
isExclusive: false,
action: { [weak state] in action: { [weak state] in
if let state { if let state {
state.togglePosition() state.togglePosition()