// // TimelinesPageViewController.swift // Tusker // // Created by Shadowfacts on 9/14/19. // Copyright © 2019 Shadowfacts. All rights reserved. // import UIKit import SwiftUI class TimelinesPageViewController: SegmentedPageViewController { private let homeTitle = NSLocalizedString("Home", comment: "home timeline tab title") private let federatedTitle = NSLocalizedString("Federated", comment: "federated timeline tab title") private let localTitle = NSLocalizedString("Local", comment: "local timeline tab title") weak var mastodonController: MastodonController! init(mastodonController: MastodonController) { self.mastodonController = mastodonController let home = TimelineViewController(for: .home, mastodonController: mastodonController) home.title = homeTitle let federated = TimelineViewController(for: .public(local: false), mastodonController: mastodonController) federated.title = federatedTitle let local = TimelineViewController(for: .public(local: true), mastodonController: mastodonController) local.title = localTitle super.init(titles: [ homeTitle, federatedTitle, localTitle ], pageControllers: [ home, federated, local ]) title = homeTitle tabBarItem.image = UIImage(systemName: "house.fill") let filtersItem = UIBarButtonItem(image: UIImage(systemName: "line.3.horizontal.decrease.circle"), style: .plain, target: self, action: #selector(filtersPressed)) filtersItem.accessibilityLabel = "Filters" navigationItem.leftBarButtonItem = filtersItem } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } func stateRestorationActivity() -> NSUserActivity? { return (pageControllers[currentIndex] as! TimelineViewController).stateRestorationActivity() } func restoreActivity(_ activity: NSUserActivity) { guard let timeline = UserActivityManager.getTimeline(from: activity) else { return } let index: Int switch timeline { case .home: index = 0 case .public(local: false): index = 1 case .public(local: true): index = 2 default: return } selectPage(at: index, animated: false) let timelineVC = pageControllers[index] as! TimelineViewController timelineVC.restoreActivity(activity) } @objc private func filtersPressed() { present(UIHostingController(rootView: FiltersView(mastodonController: mastodonController)), animated: true) } }