diff --git a/submodules/GraphCore/Sources/Charts/Controllers/Lines/BaseLinesChartController.swift b/submodules/GraphCore/Sources/Charts/Controllers/Lines/BaseLinesChartController.swift index 2094f3d084..b8b0963833 100644 --- a/submodules/GraphCore/Sources/Charts/Controllers/Lines/BaseLinesChartController.swift +++ b/submodules/GraphCore/Sources/Charts/Controllers/Lines/BaseLinesChartController.swift @@ -44,15 +44,6 @@ public class BaseLinesChartController: BaseChartController { self.setBackButtonVisibilityClosure?(isZoomed, animated) updateChartRangeTitle(animated: animated) - - let initial = initialChartsCollection - DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { - if let lastDate = initial.axisValues.last { - TimeInterval.animationDurationMultipler = 0.00001 - self.didTapZoomIn(date: lastDate, pointIndex: initial.axisValues.count - 1) - TimeInterval.animationDurationMultipler = 1.0 - } - } } func updateChartRangeTitle(animated: Bool) { diff --git a/submodules/StatisticsUI/Sources/ChannelStatsController.swift b/submodules/StatisticsUI/Sources/ChannelStatsController.swift index b413a660a3..3182fb15d4 100644 --- a/submodules/StatisticsUI/Sources/ChannelStatsController.swift +++ b/submodules/StatisticsUI/Sources/ChannelStatsController.swift @@ -18,12 +18,12 @@ import GraphUI private final class ChannelStatsControllerArguments { let context: AccountContext let loadDetailedGraph: (StatsGraph, Int64) -> Signal - let openMessage: (MessageId) -> Void + let openMessageStats: (MessageId) -> Void init(context: AccountContext, loadDetailedGraph: @escaping (StatsGraph, Int64) -> Signal, openMessage: @escaping (MessageId) -> Void) { self.context = context self.loadDetailedGraph = loadDetailedGraph - self.openMessage = openMessage + self.openMessageStats = openMessage } } @@ -329,7 +329,7 @@ private enum StatsEntry: ItemListNodeEntry { }, sectionId: self.section, style: .blocks) case let .post(_, _, _, _, message, interactions): return StatsMessageItem(context: arguments.context, presentationData: presentationData, message: message, views: interactions.views, forwards: interactions.forwards, sectionId: self.section, style: .blocks, action: { - arguments.openMessage(message.id) + arguments.openMessageStats(message.id) }) } } @@ -406,7 +406,7 @@ private func channelStatsControllerEntries(data: ChannelStats?, messages: [Messa } public func channelStatsController(context: AccountContext, peerId: PeerId, cachedPeerData: CachedPeerData) -> ViewController { - var navigateToMessageImpl: ((MessageId) -> Void)? + var openMessageStatsImpl: ((MessageId) -> Void)? let actionsDisposable = DisposableSet() let dataPromise = Promise(nil) @@ -439,7 +439,7 @@ public func channelStatsController(context: AccountContext, peerId: PeerId, cach let arguments = ChannelStatsControllerArguments(context: context, loadDetailedGraph: { graph, x -> Signal in return statsContext.loadDetailedGraph(graph, x: x) }, openMessage: { messageId in - navigateToMessageImpl?(messageId) + openMessageStatsImpl?(messageId) }) let messageView = context.account.viewTracker.aroundMessageHistoryViewForLocation(.peer(peerId), index: .upperBound, anchorIndex: .upperBound, count: 100, fixedCombinedReadStates: nil) @@ -495,9 +495,9 @@ public func channelStatsController(context: AccountContext, peerId: PeerId, cach controller.didDisappear = { [weak controller] _ in controller?.clearItemNodesHighlight(animated: true) } - navigateToMessageImpl = { [weak controller] messageId in + openMessageStatsImpl = { [weak controller] messageId in if let navigationController = controller?.navigationController as? NavigationController { - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(messageId.peerId), subject: .message(id: messageId, highlight: true), keepStack: .always, useExisting: false, purposefulAction: {}, peekData: nil)) + controller?.push(messageStatsController(context: context, messageId: messageId, cachedPeerData: cachedPeerData)) } } return controller diff --git a/submodules/StatisticsUI/Sources/MessageStatsController.swift b/submodules/StatisticsUI/Sources/MessageStatsController.swift index c220272475..fd98f70c06 100644 --- a/submodules/StatisticsUI/Sources/MessageStatsController.swift +++ b/submodules/StatisticsUI/Sources/MessageStatsController.swift @@ -39,7 +39,7 @@ private enum StatsEntry: ItemListNodeEntry { case overview(PresentationTheme, MessageStats, Int32?) case interactionsTitle(PresentationTheme, String) - case interactionsGraph(PresentationTheme, PresentationStrings, PresentationDateTimeFormat, StatsGraph, StatsGraph?, ChartType) + case interactionsGraph(PresentationTheme, PresentationStrings, PresentationDateTimeFormat, StatsGraph, ChartType) case publicForwardsTitle(PresentationTheme, String) case publicForward(Int32, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, Message) @@ -92,8 +92,8 @@ private enum StatsEntry: ItemListNodeEntry { } else { return false } - case let .interactionsGraph(lhsTheme, lhsStrings, lhsDateTimeFormat, lhsGraph, lhsDetailedGraph, lhsType): - if case let .interactionsGraph(rhsTheme, rhsStrings, rhsDateTimeFormat, rhsGraph, rhsDetailedGraph, rhsType) = rhs, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsDateTimeFormat == rhsDateTimeFormat, lhsGraph == rhsGraph, lhsDetailedGraph == rhsDetailedGraph, lhsType == rhsType { + case let .interactionsGraph(lhsTheme, lhsStrings, lhsDateTimeFormat, lhsGraph, lhsType): + if case let .interactionsGraph(rhsTheme, rhsStrings, rhsDateTimeFormat, rhsGraph, rhsType) = rhs, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsDateTimeFormat == rhsDateTimeFormat, lhsGraph == rhsGraph, lhsType == rhsType { return true } else { return false @@ -126,17 +126,13 @@ private enum StatsEntry: ItemListNodeEntry { return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) case let .overview(_, stats, publicShares): return MessageStatsOverviewItem(presentationData: presentationData, stats: stats, publicShares: publicShares, sectionId: self.section, style: .blocks) - case let .interactionsGraph(_, _, _, graph, detailedGraph, type): + case let .interactionsGraph(_, _, _, graph, type): return StatsGraphItem(presentationData: presentationData, graph: graph, type: type, getDetailsData: { date, completion in - if let detailedGraph = detailedGraph, case let .Loaded(_, data) = detailedGraph { - completion(data) - } else { - let _ = arguments.loadDetailedGraph(graph, Int64(date.timeIntervalSince1970) * 1000).start(next: { graph in - if let graph = graph, case let .Loaded(_, data) = graph { - completion(data) - } - }) - } + let _ = arguments.loadDetailedGraph(graph, Int64(date.timeIntervalSince1970) * 1000).start(next: { graph in + if let graph = graph, case let .Loaded(_, data) = graph { + completion(data) + } + }) }, sectionId: self.section, style: .blocks) case let .publicForward(_, _, _, _, message): var views: Int = 0 @@ -165,7 +161,7 @@ private func messageStatsControllerEntries(data: MessageStats?, messages: Search if !data.interactionsGraph.isEmpty { entries.append(.interactionsTitle(presentationData.theme, presentationData.strings.Stats_MessageInteractionsTitle.uppercased())) - entries.append(.interactionsGraph(presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, data.interactionsGraph, data.detailedInteractionsGraph, .twoAxisStep)) + entries.append(.interactionsGraph(presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, data.interactionsGraph, .twoAxisStep)) } if let messages = messages, !messages.messages.isEmpty {