From 817ef0c2cc52ea4f454b4647b8d85c519f98d8f9 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sat, 8 Oct 2022 14:53:21 -0400 Subject: [PATCH] New timeline key commands --- .../Timeline/TimelineViewController.swift | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Tusker/Screens/Timeline/TimelineViewController.swift b/Tusker/Screens/Timeline/TimelineViewController.swift index 8a9dd290..d5fa6740 100644 --- a/Tusker/Screens/Timeline/TimelineViewController.swift +++ b/Tusker/Screens/Timeline/TimelineViewController.swift @@ -12,7 +12,7 @@ import Combine // TODO: gonna need a thing to replicate all of EnhancedTableViewController -class TimelineViewController: UIViewController, TimelineLikeCollectionViewController { +class TimelineViewController: UIViewController, TimelineLikeCollectionViewController, RefreshableViewController { let timeline: Timeline weak var mastodonController: MastodonController! @@ -35,6 +35,8 @@ class TimelineViewController: UIViewController, TimelineLikeCollectionViewContro super.init(nibName: nil, bundle: nil) self.controller = TimelineLikeController(delegate: self) + + addKeyCommand(MenuController.refreshCommand(discoverabilityTitle: "Refresh Timeline")) } required init?(coder: NSCoder) { @@ -76,20 +78,13 @@ class TimelineViewController: UIViewController, TimelineLikeCollectionViewContro applyInitialSnapshot() #if !targetEnvironment(macCatalyst) - let refreshControl = UIRefreshControl(frame: .zero, primaryAction: UIAction(handler: { [unowned self] _ in - Task { - await self.controller.loadNewer() - self.collectionView.refreshControl!.endRefreshing() - } - })) - collectionView.refreshControl = refreshControl + collectionView.refreshControl = UIRefreshControl() + collectionView.refreshControl!.addTarget(self, action: #selector(refresh), for: .valueChanged) #endif } override func viewDidLoad() { super.viewDidLoad() - - // TODO: refresh key command } private func createDataSource() -> UICollectionViewDiffableDataSource { @@ -157,6 +152,15 @@ class TimelineViewController: UIViewController, TimelineLikeCollectionViewContro isShowingTimelineDescription = false } + @objc func refresh() { + Task { + await controller.loadNewer() + #if !targetEnvironment(macCatalyst) + collectionView.refreshControl?.endRefreshing() + #endif + } + } + } extension TimelineViewController {