mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
Fix controller stack after upgrading a supergroup
This commit is contained in:
@@ -782,11 +782,8 @@ public func channelAdminsController(context: AccountContext, peerId: PeerId, loa
|
|||||||
guard let controller = controller, let navigationController = controller.navigationController as? NavigationController else {
|
guard let controller = controller, let navigationController = controller.navigationController as? NavigationController else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(upgradedPeerId), keepStack: .never, animated: false, completion: {
|
|
||||||
navigationController.pushViewController(channelAdminsController(context: context, peerId: upgradedPeerId, loadCompleted: {
|
rebuildControllerStackAfterSupergroupUpgrade(controller: controller, navigationController: navigationController)
|
||||||
f()
|
|
||||||
}), animated: false)
|
|
||||||
}))
|
|
||||||
}
|
}
|
||||||
controller.visibleBottomContentOffsetChanged = { offset in
|
controller.visibleBottomContentOffsetChanged = { offset in
|
||||||
if case let .known(value) = offset, value < 40.0 {
|
if case let .known(value) = offset, value < 40.0 {
|
||||||
@@ -795,3 +792,19 @@ public func channelAdminsController(context: AccountContext, peerId: PeerId, loa
|
|||||||
}
|
}
|
||||||
return controller
|
return controller
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func rebuildControllerStackAfterSupergroupUpgrade(controller: ViewController, navigationController: NavigationController) {
|
||||||
|
var controllers = navigationController.viewControllers
|
||||||
|
for i in 0 ..< controllers.count {
|
||||||
|
if controllers[i] === controller {
|
||||||
|
for j in 0 ..< i {
|
||||||
|
if controllers[j] is ChatController {
|
||||||
|
controllers.removeSubrange(j + 1 ... i - 1)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
navigationController.setViewControllers(controllers, animated: false)
|
||||||
|
}
|
||||||
|
|||||||
@@ -858,9 +858,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
sourcePeerId.set(.single((upgradedPeerId, true)))
|
sourcePeerId.set(.single((upgradedPeerId, true)))
|
||||||
context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(upgradedPeerId), keepStack: .never, animated: false, completion: {
|
rebuildControllerStackAfterSupergroupUpgrade(controller: controller, navigationController: navigationController)
|
||||||
navigationController.pushViewController(controller, animated: false)
|
|
||||||
}))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
controller.visibleBottomContentOffsetChanged = { offset in
|
controller.visibleBottomContentOffsetChanged = { offset in
|
||||||
|
|||||||
Reference in New Issue
Block a user