This commit is contained in:
Isaac 2025-12-26 20:29:30 +08:00
parent 7ed08c0141
commit 4a13c3830a
234 changed files with 1442 additions and 1764 deletions

View file

@ -243,7 +243,7 @@ class CallListCallItemNode: ItemListRevealOptionsItemNode {
self.accessibilityArea = AccessibilityAreaNode()
super.init(layerBacked: false, dynamicBounce: false, rotated: false, seeThrough: false)
super.init(layerBacked: false, rotated: false, seeThrough: false)
self.addSubnode(self.backgroundNode)
self.addSubnode(self.containerNode)

View file

@ -103,7 +103,7 @@ public final class CallListController: TelegramBaseController {
self.segmentedTitleView = ItemListControllerSegmentedTitleView(theme: self.presentationData.theme, segments: [self.presentationData.strings.Calls_All, self.presentationData.strings.Calls_Missed], selectedIndex: 0)
super.init(context: context, navigationBarPresentationData: NavigationBarPresentationData(presentationData: self.presentationData, style: .glass), mediaAccessoryPanelVisibility: .none, locationBroadcastPanelSource: .none, groupCallPanelSource: .none)
super.init(context: context, navigationBarPresentationData: NavigationBarPresentationData(presentationData: self.presentationData, style: .glass))
self.tabBarItemContextActionType = .always
@ -423,10 +423,15 @@ public final class CallListController: TelegramBaseController {
self.displayNodeDidLoad()
}
override public var navigationEdgeEffectExtension: CGFloat {
return self.controllerNode.navigationEdgeEffectExtension
}
override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
super.containerLayoutUpdated(layout, transition: transition)
self.controllerNode.containerLayoutUpdated(layout, navigationBarHeight: self.navigationLayout(layout: layout).navigationFrame.maxY, transition: transition)
let navigationLayout = self.navigationLayout(layout: layout)
self.controllerNode.containerLayoutUpdated(layout, navigationBarHeight: navigationLayout.navigationFrame.maxY, transition: transition)
}
@objc func callPressed() {

View file

@ -235,6 +235,10 @@ final class CallListControllerNode: ASDisplayNode {
private let openGroupCallDisposable = MetaDisposable()
var navigationEdgeEffectExtension: CGFloat {
return max(0.0, self.listNode.edgeEffectExtension)
}
private var previousContentOffset: ListViewVisibleContentOffset?
init(controller: CallListController, context: AccountContext, mode: CallListControllerMode, presentationData: PresentationData, call: @escaping (EngineMessage) -> Void, joinGroupCall: @escaping (EnginePeer.Id, EngineGroupCallDescription) -> Void, openInfo: @escaping (EnginePeer.Id, [EngineMessage]) -> Void, emptyStateUpdated: @escaping (Bool) -> Void, openNewCall: @escaping () -> Void) {
@ -682,6 +686,13 @@ final class CallListControllerNode: ASDisplayNode {
}
}
}
self.listNode.onEdgeEffectExtensionUpdated = { [weak self] transition in
guard let self else {
return
}
self.controller?.updateNavigationEdgeEffectExtension(transition: transition)
}
}
deinit {
@ -959,5 +970,7 @@ final class CallListControllerNode: ASDisplayNode {
let edgeEffectFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - edgeEffectHeight), size: CGSize(width: layout.size.width, height: edgeEffectHeight))
transition.updateFrame(view: self.edgeEffectView, frame: edgeEffectFrame)
self.edgeEffectView.update(content: self.presentationData.theme.list.plainBackgroundColor, rect: edgeEffectFrame, edge: .bottom, edgeSize: edgeEffectFrame.height, transition: ComponentTransition(transition))
self.controller?.updateNavigationEdgeEffectExtension(transition: transition)
}
}

View file

@ -208,7 +208,7 @@ class CallListGroupCallItemNode: ItemListRevealOptionsItemNode {
self.accessibilityArea = AccessibilityAreaNode()
super.init(layerBacked: false, dynamicBounce: false, rotated: false, seeThrough: false)
super.init(layerBacked: false, rotated: false, seeThrough: false)
self.addSubnode(self.backgroundNode)
self.addSubnode(self.indicatorNode)

View file

@ -70,7 +70,7 @@ class CallListHoleItemNode: ListViewItemNode {
self.labelNode = TextNode()
super.init(layerBacked: false, dynamicBounce: false)
super.init(layerBacked: false)
self.addSubnode(self.separatorNode)
self.addSubnode(self.labelNode)