Various fixes

This commit is contained in:
Ilya Laktyushin 2024-03-04 22:35:26 +04:00
parent f7ca39103c
commit 8007e25fc4
2 changed files with 37 additions and 13 deletions

View File

@ -228,6 +228,8 @@ public class PremiumLimitsListScreen: ViewController {
if scrollView.contentSize.width > scrollView.contentSize.height || scrollView.contentSize.height > 1500.0 { if scrollView.contentSize.width > scrollView.contentSize.height || scrollView.contentSize.height > 1500.0 {
return false return false
} }
} else if otherGestureRecognizer.view is PremiumCoinComponent.View {
return false
} }
return true return true
} }

View File

@ -302,7 +302,7 @@ func openResolvedUrlImpl(
}) })
dismissInput() dismissInput()
case let .share(url, text, to): case let .share(url, text, to):
let continueWithPeer: (PeerId) -> Void = { peerId in let continueWithPeer: (PeerId, Int64?) -> Void = { peerId, threadId in
let textInputState: ChatTextInputState? let textInputState: ChatTextInputState?
if let text = text, !text.isEmpty { if let text = text, !text.isEmpty {
if let url = url, !url.isEmpty { if let url = url, !url.isEmpty {
@ -320,15 +320,42 @@ func openResolvedUrlImpl(
textInputState = nil textInputState = nil
} }
let updateControllers = { [weak navigationController] in
guard let navigationController else {
return
}
let chatController: Signal<ChatController, NoError>
if let threadId {
chatController = chatControllerForForumThreadImpl(context: context, peerId: peerId, threadId: threadId)
} else {
chatController = .single(ChatControllerImpl(context: context, chatLocation: .peer(id: peerId)))
}
let _ = (chatController
|> deliverOnMainQueue).start(next: { [weak navigationController] chatController in
guard let navigationController else {
return
}
var controllers = navigationController.viewControllers.filter { controller in
if controller is PeerSelectionController {
return false
}
return true
}
controllers.append(chatController)
navigationController.setViewControllers(controllers, animated: true)
})
}
if let textInputState = textInputState { if let textInputState = textInputState {
let _ = (ChatInterfaceState.update(engine: context.engine, peerId: peerId, threadId: nil, { currentState in let _ = (ChatInterfaceState.update(engine: context.engine, peerId: peerId, threadId: threadId, { currentState in
return currentState.withUpdatedComposeInputState(textInputState) return currentState.withUpdatedComposeInputState(textInputState)
}) })
|> deliverOnMainQueue).startStandalone(completed: { |> deliverOnMainQueue).startStandalone(completed: {
navigationController?.pushViewController(ChatControllerImpl(context: context, chatLocation: .peer(id: peerId))) updateControllers()
}) })
} else { } else {
navigationController?.pushViewController(ChatControllerImpl(context: context, chatLocation: .peer(id: peerId))) updateControllers()
} }
} }
@ -344,7 +371,7 @@ func openResolvedUrlImpl(
|> deliverOnMainQueue).startStandalone(next: { peer in |> deliverOnMainQueue).startStandalone(next: { peer in
if let peer = peer { if let peer = peer {
context.sharedContext.applicationBindings.dismissNativeController() context.sharedContext.applicationBindings.dismissNativeController()
continueWithPeer(peer.id) continueWithPeer(peer.id, nil)
} }
}) })
} else { } else {
@ -352,7 +379,7 @@ func openResolvedUrlImpl(
|> deliverOnMainQueue).startStandalone(next: { peer in |> deliverOnMainQueue).startStandalone(next: { peer in
if let peer = peer { if let peer = peer {
context.sharedContext.applicationBindings.dismissNativeController() context.sharedContext.applicationBindings.dismissNativeController()
continueWithPeer(peer.id) continueWithPeer(peer.id, nil)
} }
}) })
/*let query = to.trimmingCharacters(in: CharacterSet(charactersIn: "0123456789").inverted) /*let query = to.trimmingCharacters(in: CharacterSet(charactersIn: "0123456789").inverted)
@ -377,13 +404,8 @@ func openResolvedUrlImpl(
context.sharedContext.applicationBindings.dismissNativeController() context.sharedContext.applicationBindings.dismissNativeController()
} else { } else {
let controller = context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: context, filter: [.onlyWriteable, .excludeDisabled], selectForumThreads: true)) let controller = context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: context, filter: [.onlyWriteable, .excludeDisabled], selectForumThreads: true))
controller.peerSelected = { [weak controller] peer, _ in controller.peerSelected = { peer, threadId in
let peerId = peer.id continueWithPeer(peer.id, threadId)
if let strongController = controller {
strongController.dismiss()
continueWithPeer(peerId)
}
} }
context.sharedContext.applicationBindings.dismissNativeController() context.sharedContext.applicationBindings.dismissNativeController()
navigationController?.pushViewController(controller) navigationController?.pushViewController(controller)