diff --git a/submodules/ContextUI/Sources/ContextController.swift b/submodules/ContextUI/Sources/ContextController.swift index 444aa04be6..3208dee1e5 100644 --- a/submodules/ContextUI/Sources/ContextController.swift +++ b/submodules/ContextUI/Sources/ContextController.swift @@ -1234,11 +1234,7 @@ private final class ContextControllerNode: ViewControllerTracingNode, UIScrollVi case let .controller(controller): let controllerPoint = self.view.convert(point, to: controller.controller.view) if let result = controller.controller.view.hitTest(controllerPoint, with: event) { - if result is UIScrollView { - return result - } else if result is ListViewBackingView { - return result - } + return result } } } diff --git a/submodules/Display/Display/Navigation/NavigationContainer.swift b/submodules/Display/Display/Navigation/NavigationContainer.swift index 975497b759..adfeb6129c 100644 --- a/submodules/Display/Display/Navigation/NavigationContainer.swift +++ b/submodules/Display/Display/Navigation/NavigationContainer.swift @@ -320,7 +320,9 @@ final class NavigationContainer: ASDisplayNode, UIGestureRecognizerDelegate { if let top = self.state.top { var updatedLayout = layout if let topTransition = self.state.transition, top.value.view.disableAutomaticKeyboardHandling.isEmpty { - updatedLayout = updatedLayout.withUpdatedInputHeight(nil) + if !viewTreeContainsFirstResponder(view: top.value.view) { + updatedLayout = updatedLayout.withUpdatedInputHeight(nil) + } } self.applyLayout(layout: updatedLayout, to: top, isMaster: true, transition: transition) updatedStatusBarStyle = top.value.statusBar.statusBarStyle diff --git a/submodules/Display/Display/Navigation/NavigationModalContainer.swift b/submodules/Display/Display/Navigation/NavigationModalContainer.swift index 3cfcab03f7..ab2e1567b4 100644 --- a/submodules/Display/Display/Navigation/NavigationModalContainer.swift +++ b/submodules/Display/Display/Navigation/NavigationModalContainer.swift @@ -18,6 +18,7 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes var updateDismissProgress: ((CGFloat, ContainedViewLayoutTransition) -> Void)? var interactivelyDismissed: ((Bool) -> Void)? + private var isUpdatingState = false private var ignoreScrolling = false private var isDismissed = false private var isInteractiveDimissEnabled = true @@ -63,7 +64,9 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes } if !strongSelf.isReady { strongSelf.isReady = true - strongSelf.isReadyUpdated?() + if !strongSelf.isUpdatingState { + strongSelf.isReadyUpdated?() + } } } @@ -282,6 +285,8 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes return } + self.isUpdatingState = true + self.validLayout = layout transition.updateFrame(node: self.dim, frame: CGRect(origin: CGPoint(), size: layout.size)) @@ -347,6 +352,8 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes transition.updateFrameAsPositionAndBounds(node: self.container, frame: containerFrame.offsetBy(dx: 0.0, dy: layout.size.height)) transition.updateTransformScale(node: self.container, scale: containerScale) self.container.update(layout: containerLayout, canBeClosed: true, controllers: controllers, transition: transition) + + self.isUpdatingState = false } func animateIn(transition: ContainedViewLayoutTransition) { diff --git a/submodules/Display/Display/Navigation/NavigationOverlayContainer.swift b/submodules/Display/Display/Navigation/NavigationOverlayContainer.swift index 608a999b24..4689df4688 100644 --- a/submodules/Display/Display/Navigation/NavigationOverlayContainer.swift +++ b/submodules/Display/Display/Navigation/NavigationOverlayContainer.swift @@ -12,6 +12,8 @@ final class NavigationOverlayContainer: ASDisplayNode { private var validLayout: ContainerViewLayout? + private var isUpdatingState: Bool = false + var keyboardViewManager: KeyboardViewManager? { didSet { if self.keyboardViewManager !== oldValue { @@ -44,7 +46,9 @@ final class NavigationOverlayContainer: ASDisplayNode { } if !strongSelf.isReady { strongSelf.isReady = true - strongSelf.isReadyUpdated?() + if !strongSelf.isUpdatingState { + strongSelf.isReadyUpdated?() + } } }) } @@ -58,6 +62,8 @@ final class NavigationOverlayContainer: ASDisplayNode { } func update(layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { + self.isUpdatingState = true + let updateLayout = self.validLayout != layout self.validLayout = layout @@ -66,6 +72,8 @@ final class NavigationOverlayContainer: ASDisplayNode { transition.updateFrame(node: self.controller.displayNode, frame: CGRect(origin: CGPoint(), size: layout.size)) self.controller.containerLayoutUpdated(layout, transition: transition) } + + self.isUpdatingState = false } func transitionIn() { diff --git a/submodules/SettingsUI/Sources/TabBarAccountSwitchController.swift b/submodules/SettingsUI/Sources/TabBarAccountSwitchController.swift index ead8fcfb44..6c3beaa573 100644 --- a/submodules/SettingsUI/Sources/TabBarAccountSwitchController.swift +++ b/submodules/SettingsUI/Sources/TabBarAccountSwitchController.swift @@ -43,7 +43,7 @@ public final class TabBarAccountSwitchController: ViewController { super.init(navigationBarPresentationData: nil) - self.statusBar.statusBarStyle = .Hide + self.statusBar.statusBarStyle = .Ignore self.statusBar.ignoreInCall = true self.lockOrientation = true diff --git a/submodules/WalletUI/Sources/WalletSplashScreen.swift b/submodules/WalletUI/Sources/WalletSplashScreen.swift index a93b8fee3f..7deb6f3b90 100644 --- a/submodules/WalletUI/Sources/WalletSplashScreen.swift +++ b/submodules/WalletUI/Sources/WalletSplashScreen.swift @@ -93,7 +93,7 @@ public final class WalletSplashScreen: ViewController { guard let strongSelf = self else { return } - strongSelf.sendGrams(walletInfo: walletInfo, decryptedSecret: decryptedSecret, address: address, amount: amount, textMessage: textMessage, forceIfDestinationNotInitialized: false, randomId: randomId, serverSalt: serverSalt) + strongSelf.sendGrams(walletInfo: walletInfo, decryptedSecret: decryptedSecret, address: address, amount: amount, textMessage: textMessage, forceIfDestinationNotInitialized: true, randomId: randomId, serverSalt: serverSalt) }, error: { [weak self] error in guard let strongSelf = self else { return