From 565b3ac2c38f45f426e61c11f304e2a286efd42f Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Tue, 27 Feb 2024 20:13:00 -0800 Subject: [PATCH] Remove some no-longer-needed #available checks. --- iOS/Feeds/Cell/FeedTableViewCell.swift | 7 +- .../Cell/FeedTableViewSectionHeader.swift | 7 +- iOS/Feeds/FeedsViewController.swift | 95 ++++++------------- iOS/Timeline/TimelineTitleView.swift | 10 +- iOS/Timeline/TimelineViewController.swift | 23 ++--- 5 files changed, 45 insertions(+), 97 deletions(-) diff --git a/iOS/Feeds/Cell/FeedTableViewCell.swift b/iOS/Feeds/Cell/FeedTableViewCell.swift index adbe0203e..ba9c7f8c4 100644 --- a/iOS/Feeds/Cell/FeedTableViewCell.swift +++ b/iOS/Feeds/Cell/FeedTableViewCell.swift @@ -191,15 +191,16 @@ private extension FeedTableViewCell { } func addDisclosureView() { + disclosureButton = NonIntrinsicButton(type: .roundedRect) + disclosureButton!.addTarget(self, action: #selector(buttonPressed(_:)), for: UIControl.Event.touchUpInside) disclosureButton?.setImage(AppAssets.disclosureImage, for: .normal) disclosureButton?.tintColor = AppAssets.controlBackgroundColor disclosureButton?.imageView?.contentMode = .center disclosureButton?.imageView?.clipsToBounds = false - if #available(iOS 13.4, *) { - disclosureButton?.addInteraction(UIPointerInteraction()) - } + disclosureButton?.addInteraction(UIPointerInteraction()) + addSubviewAtInit(disclosureButton!) } diff --git a/iOS/Feeds/Cell/FeedTableViewSectionHeader.swift b/iOS/Feeds/Cell/FeedTableViewSectionHeader.swift index e9f130de3..ff48a475e 100644 --- a/iOS/Feeds/Cell/FeedTableViewSectionHeader.swift +++ b/iOS/Feeds/Cell/FeedTableViewSectionHeader.swift @@ -84,14 +84,15 @@ class FeedTableViewSectionHeader: UITableViewHeaderFooterView { private let unreadCountView = FeedUnreadCountView(frame: CGRect.zero) private lazy var disclosureButton: UIButton = { + let button = NonIntrinsicButton() + button.tintColor = UIColor.tertiaryLabel button.setImage(AppAssets.disclosureImage, for: .normal) button.contentMode = .center - if #available(iOS 13.4, *) { - button.addInteraction(UIPointerInteraction()) - } + button.addInteraction(UIPointerInteraction()) button.addTarget(self, action: #selector(toggleDisclosure), for: .touchUpInside) + return button }() diff --git a/iOS/Feeds/FeedsViewController.swift b/iOS/Feeds/FeedsViewController.swift index 40541c3c3..f19911a51 100644 --- a/iOS/Feeds/FeedsViewController.swift +++ b/iOS/Feeds/FeedsViewController.swift @@ -19,11 +19,7 @@ class FeedsViewController: UITableViewController, UndoableCommandRunner { private var refreshProgressView: RefreshProgressView? @IBOutlet weak var addNewItemButton: UIBarButtonItem! { didSet { - if #available(iOS 14, *) { - addNewItemButton.primaryAction = nil - } else { - addNewItemButton.action = #selector(FeedsViewController.add(_:)) - } + addNewItemButton.primaryAction = nil } } @@ -428,40 +424,6 @@ class FeedsViewController: UITableViewController, UndoableCommandRunner { coordinator.toggleReadFeedsFilter() } - @IBAction func add(_ sender: UIBarButtonItem) { - - if #available(iOS 14, *) { - - } else { - let title = NSLocalizedString("Add Item", comment: "Add Item") - let alertController = UIAlertController(title: title, message: nil, preferredStyle: .actionSheet) - - let cancelTitle = NSLocalizedString("Cancel", comment: "Cancel") - let cancelAction = UIAlertAction(title: cancelTitle, style: .cancel) - - let addFeedActionTitle = NSLocalizedString("Add Web Feed", comment: "Add Web Feed") - let addFeedAction = UIAlertAction(title: addFeedActionTitle, style: .default) { _ in - self.coordinator.showAddFeed() - } - - let addFolderActionTitle = NSLocalizedString("Add Folder", comment: "Add Folder") - let addFolderAction = UIAlertAction(title: addFolderActionTitle, style: .default) { _ in - self.coordinator.showAddFolder() - } - - alertController.addAction(addFeedAction) - - alertController.addAction(addFolderAction) - alertController.addAction(cancelAction) - - alertController.popoverPresentationController?.barButtonItem = sender - - present(alertController, animated: true) - } - - - } - @objc func toggleSectionHeader(_ sender: UITapGestureRecognizer) { guard let headerView = sender.view as? FeedTableViewSectionHeader else { return @@ -622,37 +584,34 @@ class FeedsViewController: UITableViewController, UndoableCommandRunner { configureContextMenu() } - @objc - func configureContextMenu(_: Any? = nil) { - if #available(iOS 14.0, *) { - - /* - Context Menu Order: - 1. Add Web Feed - 2. Add Folder - */ - - var menuItems: [UIAction] = [] - - let addFeedActionTitle = NSLocalizedString("Add Web Feed", comment: "Add Web Feed") - let addFeedAction = UIAction(title: addFeedActionTitle, image: AppAssets.plus) { _ in - self.coordinator.showAddFeed() - } - menuItems.append(addFeedAction) - - let addFolderActionTitle = NSLocalizedString("Add Folder", comment: "Add Folder") - let addFolderAction = UIAction(title: addFolderActionTitle, image: AppAssets.folderOutlinePlus) { _ in - self.coordinator.showAddFolder() - } - - menuItems.append(addFolderAction) - - let contextMenu = UIMenu(title: NSLocalizedString("Add Item", comment: "Add Item"), image: nil, identifier: nil, options: [], children: menuItems.reversed()) - - self.addNewItemButton.menu = contextMenu + @objc func configureContextMenu(_: Any? = nil) { + + /* + Context Menu Order: + 1. Add Web Feed + 2. Add Folder + */ + + var menuItems: [UIAction] = [] + + let addFeedActionTitle = NSLocalizedString("Add Web Feed", comment: "Add Web Feed") + let addFeedAction = UIAction(title: addFeedActionTitle, image: AppAssets.plus) { _ in + self.coordinator.showAddFeed() } + menuItems.append(addFeedAction) + + let addFolderActionTitle = NSLocalizedString("Add Folder", comment: "Add Folder") + let addFolderAction = UIAction(title: addFolderActionTitle, image: AppAssets.folderOutlinePlus) { _ in + self.coordinator.showAddFolder() + } + + menuItems.append(addFolderAction) + + let contextMenu = UIMenu(title: NSLocalizedString("Add Item", comment: "Add Item"), image: nil, identifier: nil, options: [], children: menuItems.reversed()) + + self.addNewItemButton.menu = contextMenu } - + func focus() { becomeFirstResponder() } diff --git a/iOS/Timeline/TimelineTitleView.swift b/iOS/Timeline/TimelineTitleView.swift index dc6084c92..60c1b3ee1 100644 --- a/iOS/Timeline/TimelineTitleView.swift +++ b/iOS/Timeline/TimelineTitleView.swift @@ -34,19 +34,14 @@ class TimelineTitleView: UIView { func buttonize() { heightAnchor.constraint(equalToConstant: 40.0).isActive = true accessibilityTraits = .button - if #available(iOS 13.4, *) { - addInteraction(pointerInteraction) - } + addInteraction(pointerInteraction) } func debuttonize() { heightAnchor.constraint(equalToConstant: 40.0).isActive = true accessibilityTraits.remove(.button) - if #available(iOS 13.4, *) { - removeInteraction(pointerInteraction) - } + removeInteraction(pointerInteraction) } - } extension TimelineTitleView: UIPointerInteractionDelegate { @@ -58,5 +53,4 @@ extension TimelineTitleView: UIPointerInteractionDelegate { return UIPointerStyle(effect: .automatic(UITargetedPreview(view: self)), shape: .roundedRect(rect)) } - } diff --git a/iOS/Timeline/TimelineViewController.swift b/iOS/Timeline/TimelineViewController.swift index bc3f15a09..609823b38 100644 --- a/iOS/Timeline/TimelineViewController.swift +++ b/iOS/Timeline/TimelineViewController.swift @@ -99,17 +99,14 @@ class TimelineViewController: UITableViewController, UndoableCommandRunner { self.tableView.scrollToRow(at: restoreIndexPath, at: .middle, animated: false) } } - + // Disable swipe back on iPad Mice - if #available(iOS 13.4, *) { - guard let gesture = self.navigationController?.interactivePopGestureRecognizer as? UIPanGestureRecognizer else { - return - } - gesture.allowedScrollTypesMask = [] + guard let gesture = self.navigationController?.interactivePopGestureRecognizer as? UIPanGestureRecognizer else { + return } - + gesture.allowedScrollTypesMask = [] } - + override func viewWillAppear(_ animated: Bool) { // If the nav bar is hidden, fade it in to avoid it showing stuff as it is getting laid out if navigationController?.navigationBar.isHidden ?? false { @@ -525,12 +522,7 @@ class TimelineViewController: UITableViewController, UndoableCommandRunner { } @objc private func reloadAllVisibleCells() { - if #available(iOS 15, *) { - reconfigureCells(coordinator.articles) - } else { - let visibleArticles = tableView.indexPathsForVisibleRows!.compactMap { return dataSource.itemIdentifier(for: $0) } - reloadCells(visibleArticles) - } + reconfigureCells(coordinator.articles) } private func reloadCells(_ articles: [Article]) { @@ -542,9 +534,10 @@ class TimelineViewController: UITableViewController, UndoableCommandRunner { } private func reconfigureCells(_ articles: [Article]) { - guard #available(iOS 15, *) else { return } + var snapshot = dataSource.snapshot() snapshot.reconfigureItems(articles) + dataSource.apply(snapshot, animatingDifferences: false) { [weak self] in self?.restoreSelectionIfNecessary(adjustScroll: false) }