mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
Story search
This commit is contained in:
@@ -34,7 +34,7 @@ private func generateShadowImage(theme: PresentationTheme, highlighted: Bool) ->
|
||||
})?.stretchableImage(withLeftCapWidth: 13, topCapHeight: 0)
|
||||
}
|
||||
|
||||
final class LocationMapHeaderNode: ASDisplayNode {
|
||||
public final class LocationMapHeaderNode: ASDisplayNode {
|
||||
private var presentationData: PresentationData
|
||||
private let toggleMapModeSelection: () -> Void
|
||||
private let goToUserLocation: () -> Void
|
||||
@@ -44,8 +44,8 @@ final class LocationMapHeaderNode: ASDisplayNode {
|
||||
private var displayingPlacesButton = false
|
||||
private var proximityNotification: Bool?
|
||||
|
||||
let mapNode: LocationMapNode
|
||||
var trackingMode: LocationTrackingMode = .none
|
||||
public let mapNode: LocationMapNode
|
||||
public var trackingMode: LocationTrackingMode = .none
|
||||
|
||||
private let optionsBackgroundNode: ASImageNode
|
||||
private let optionsSeparatorNode: ASDisplayNode
|
||||
@@ -59,7 +59,7 @@ final class LocationMapHeaderNode: ASDisplayNode {
|
||||
|
||||
private var validLayout: (ContainerViewLayout, CGFloat, CGFloat, CGFloat, CGSize)?
|
||||
|
||||
init(presentationData: PresentationData, toggleMapModeSelection: @escaping () -> Void, goToUserLocation: @escaping () -> Void, setupProximityNotification: @escaping (Bool) -> Void = { _ in }, showPlacesInThisArea: @escaping () -> Void = {}) {
|
||||
public init(presentationData: PresentationData, toggleMapModeSelection: @escaping () -> Void, goToUserLocation: @escaping () -> Void, setupProximityNotification: @escaping (Bool) -> Void = { _ in }, showPlacesInThisArea: @escaping () -> Void = {}) {
|
||||
self.presentationData = presentationData
|
||||
self.toggleMapModeSelection = toggleMapModeSelection
|
||||
self.goToUserLocation = goToUserLocation
|
||||
@@ -131,7 +131,7 @@ final class LocationMapHeaderNode: ASDisplayNode {
|
||||
self.placesButtonNode.addTarget(self, action: #selector(self.placesPressed), forControlEvents: .touchUpInside)
|
||||
}
|
||||
|
||||
func updateState(mapMode: LocationMapMode, trackingMode: LocationTrackingMode, displayingMapModeOptions: Bool, displayingPlacesButton: Bool, proximityNotification: Bool?, animated: Bool) {
|
||||
public func updateState(mapMode: LocationMapMode, trackingMode: LocationTrackingMode, displayingMapModeOptions: Bool, displayingPlacesButton: Bool, proximityNotification: Bool?, animated: Bool) {
|
||||
self.mapNode.mapMode = mapMode
|
||||
self.trackingMode = trackingMode
|
||||
self.infoButtonNode.isSelected = displayingMapModeOptions
|
||||
@@ -149,7 +149,7 @@ final class LocationMapHeaderNode: ASDisplayNode {
|
||||
}
|
||||
}
|
||||
|
||||
func updatePresentationData(_ presentationData: PresentationData) {
|
||||
public func updatePresentationData(_ presentationData: PresentationData) {
|
||||
self.presentationData = presentationData
|
||||
|
||||
self.optionsBackgroundNode.image = generateBackgroundImage(theme: presentationData.theme)
|
||||
@@ -177,13 +177,13 @@ final class LocationMapHeaderNode: ASDisplayNode {
|
||||
}
|
||||
}
|
||||
|
||||
func updateLayout(layout: ContainerViewLayout, navigationBarHeight: CGFloat, topPadding: CGFloat, offset: CGFloat, size: CGSize, transition: ContainedViewLayoutTransition) {
|
||||
public func updateLayout(layout: ContainerViewLayout, navigationBarHeight: CGFloat, topPadding: CGFloat, offset: CGFloat, size: CGSize, transition: ContainedViewLayoutTransition) {
|
||||
self.validLayout = (layout, navigationBarHeight, topPadding, offset, size)
|
||||
|
||||
let mapHeight: CGFloat = floor(layout.size.height * 1.3)
|
||||
let mapFrame = CGRect(x: 0.0, y: floorToScreenPixels((size.height - mapHeight + navigationBarHeight) / 2.0) + offset, width: size.width, height: mapHeight)
|
||||
transition.updateFrame(node: self.mapNode, frame: mapFrame)
|
||||
self.mapNode.updateLayout(size: mapFrame.size)
|
||||
self.mapNode.updateLayout(size: mapFrame.size, topPadding: layout.intrinsicInsets.top)
|
||||
|
||||
let inset: CGFloat = 6.0
|
||||
|
||||
@@ -191,6 +191,8 @@ final class LocationMapHeaderNode: ASDisplayNode {
|
||||
let placesButtonFrame = CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - placesButtonSize.width) / 2.0), y: self.displayingPlacesButton ? navigationBarHeight + topPadding + inset : 0.0), size: placesButtonSize)
|
||||
transition.updateFrame(node: self.placesBackgroundNode, frame: placesButtonFrame)
|
||||
transition.updateFrame(node: self.placesButtonNode, frame: CGRect(origin: CGPoint(), size: placesButtonSize))
|
||||
transition.updateAlpha(node: self.placesBackgroundNode, alpha: self.displayingPlacesButton ? 1.0 : 0.0)
|
||||
transition.updateAlpha(node: self.placesButtonNode, alpha: self.displayingPlacesButton ? 1.0 : 0.0)
|
||||
|
||||
transition.updateFrame(node: self.shadowNode, frame: CGRect(x: 0.0, y: size.height - 14.0, width: size.width, height: 14.0))
|
||||
|
||||
@@ -214,7 +216,7 @@ final class LocationMapHeaderNode: ASDisplayNode {
|
||||
alphaTransition.updateAlpha(node: self.optionsBackgroundNode, alpha: optionsAlpha)
|
||||
}
|
||||
|
||||
var forceIsHidden: Bool = false {
|
||||
public var forceIsHidden: Bool = false {
|
||||
didSet {
|
||||
if let (layout, navigationBarHeight, topPadding, offset, size) = self.validLayout {
|
||||
self.updateLayout(layout: layout, navigationBarHeight: navigationBarHeight, topPadding: topPadding, offset: offset, size: size, transition: .immediate)
|
||||
@@ -222,11 +224,11 @@ final class LocationMapHeaderNode: ASDisplayNode {
|
||||
}
|
||||
}
|
||||
|
||||
func updateHighlight(_ highlighted: Bool) {
|
||||
public func updateHighlight(_ highlighted: Bool) {
|
||||
self.shadowNode.image = generateShadowImage(theme: self.presentationData.theme, highlighted: highlighted)
|
||||
}
|
||||
|
||||
func proximityButtonFrame() -> CGRect? {
|
||||
public func proximityButtonFrame() -> CGRect? {
|
||||
if self.notificationButtonNode.alpha > 0.0 {
|
||||
return self.optionsBackgroundNode.view.convert(self.notificationButtonNode.frame, to: self.view)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user