mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-04 05:26:48 +00:00
Camera fixes
This commit is contained in:
parent
b35294443c
commit
683e0d7603
@ -84,7 +84,15 @@ private let dualButtonTag = GenericComponentViewTag()
|
|||||||
private final class CameraScreenComponent: CombinedComponent {
|
private final class CameraScreenComponent: CombinedComponent {
|
||||||
typealias EnvironmentType = ViewControllerComponentContainer.Environment
|
typealias EnvironmentType = ViewControllerComponentContainer.Environment
|
||||||
|
|
||||||
|
final class ExternalState {
|
||||||
|
fileprivate(set) var isRecording: Bool = false
|
||||||
|
|
||||||
|
public init() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let context: AccountContext
|
let context: AccountContext
|
||||||
|
let externalState: ExternalState
|
||||||
let camera: Camera
|
let camera: Camera
|
||||||
let updateState: ActionSlot<CameraState>
|
let updateState: ActionSlot<CameraState>
|
||||||
let hasAppeared: Bool
|
let hasAppeared: Bool
|
||||||
@ -98,6 +106,7 @@ private final class CameraScreenComponent: CombinedComponent {
|
|||||||
|
|
||||||
init(
|
init(
|
||||||
context: AccountContext,
|
context: AccountContext,
|
||||||
|
externalState: ExternalState,
|
||||||
camera: Camera,
|
camera: Camera,
|
||||||
updateState: ActionSlot<CameraState>,
|
updateState: ActionSlot<CameraState>,
|
||||||
hasAppeared: Bool,
|
hasAppeared: Bool,
|
||||||
@ -110,6 +119,7 @@ private final class CameraScreenComponent: CombinedComponent {
|
|||||||
completion: ActionSlot<Signal<CameraScreen.Result, NoError>>
|
completion: ActionSlot<Signal<CameraScreen.Result, NoError>>
|
||||||
) {
|
) {
|
||||||
self.context = context
|
self.context = context
|
||||||
|
self.externalState = externalState
|
||||||
self.camera = camera
|
self.camera = camera
|
||||||
self.updateState = updateState
|
self.updateState = updateState
|
||||||
self.hasAppeared = hasAppeared
|
self.hasAppeared = hasAppeared
|
||||||
@ -447,6 +457,8 @@ private final class CameraScreenComponent: CombinedComponent {
|
|||||||
|
|
||||||
state.volumeButtonsListenerActive = component.hasAppeared && component.isVisible
|
state.volumeButtonsListenerActive = component.hasAppeared && component.isVisible
|
||||||
|
|
||||||
|
component.externalState.isRecording = state.cameraState.recording != .none
|
||||||
|
|
||||||
let isTablet: Bool
|
let isTablet: Bool
|
||||||
if case .regular = environment.metrics.widthClass {
|
if case .regular = environment.metrics.widthClass {
|
||||||
isTablet = true
|
isTablet = true
|
||||||
@ -951,6 +963,7 @@ public class CameraScreen: ViewController {
|
|||||||
|
|
||||||
fileprivate let backgroundView: UIView
|
fileprivate let backgroundView: UIView
|
||||||
fileprivate let containerView: UIView
|
fileprivate let containerView: UIView
|
||||||
|
private let componentExternalState = CameraScreenComponent.ExternalState()
|
||||||
fileprivate let componentHost: ComponentView<ViewControllerComponentContainer.Environment>
|
fileprivate let componentHost: ComponentView<ViewControllerComponentContainer.Environment>
|
||||||
private let previewContainerView: UIView
|
private let previewContainerView: UIView
|
||||||
|
|
||||||
@ -1248,7 +1261,7 @@ public class CameraScreen: ViewController {
|
|||||||
case .began:
|
case .began:
|
||||||
break
|
break
|
||||||
case .changed:
|
case .changed:
|
||||||
if !"".isEmpty {
|
if self.componentExternalState.isRecording {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if translation.x < -10.0 || self.isDismissing {
|
if translation.x < -10.0 || self.isDismissing {
|
||||||
@ -1628,6 +1641,7 @@ public class CameraScreen: ViewController {
|
|||||||
component: AnyComponent(
|
component: AnyComponent(
|
||||||
CameraScreenComponent(
|
CameraScreenComponent(
|
||||||
context: self.context,
|
context: self.context,
|
||||||
|
externalState: self.componentExternalState,
|
||||||
camera: self.camera,
|
camera: self.camera,
|
||||||
updateState: self.updateState,
|
updateState: self.updateState,
|
||||||
hasAppeared: self.hasAppeared,
|
hasAppeared: self.hasAppeared,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user