From 026306b6df99c6e5027db321d2e13751166448c0 Mon Sep 17 00:00:00 2001 From: James Magahern Date: Thu, 16 Dec 2021 16:32:47 -0800 Subject: [PATCH] Settings: Tweaks for Catalyst --- .../RedirectRulesSettingsViewController.swift | 18 +++++++++++++++++- App/Settings/Settings.swift | 5 ++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/App/Settings/RedirectRulesSettingsViewController.swift b/App/Settings/RedirectRulesSettingsViewController.swift index b7d9e0a..81a09e5 100644 --- a/App/Settings/RedirectRulesSettingsViewController.swift +++ b/App/Settings/RedirectRulesSettingsViewController.swift @@ -6,6 +6,7 @@ // import UIKit +import MachO class RedirectRulesSettingsViewController: UICollectionViewController { @@ -51,7 +52,16 @@ class RedirectRulesSettingsViewController: UICollectionViewController init() { let config = UICollectionLayoutListConfiguration(appearance: .insetGrouped) - let layout = UICollectionViewCompositionalLayout.list(using: config) + let layout = UICollectionViewCompositionalLayout { section, layoutEnvironment in + let listSection = NSCollectionLayoutSection.list(using: config, layoutEnvironment: layoutEnvironment) + + #if targetEnvironment(macCatalyst) + listSection.contentInsets = NSDirectionalEdgeInsets(top: 24.0, leading: 164.0, bottom: 24.0, trailing: 164.0) + #endif + + return listSection + } + super.init(collectionViewLayout: layout) tabBarItem.title = "Redirect Rules" @@ -71,6 +81,8 @@ class RedirectRulesSettingsViewController: UICollectionViewController } override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { + collectionView.deselectItem(at: indexPath, animated: true) + let item = dataSource.itemIdentifier(for: indexPath) if item == Items.addButton.rawValue { let createRuleViewController = CreateRedirectRuleViewController() @@ -180,5 +192,9 @@ class CreateRedirectRuleViewController: UICollectionViewController snapshot.appendItems([ Item.fromHost, Item.toHost ], toSection: .hosts) dataSource.applySnapshotUsingReloadData(snapshot) } + + override func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool { + false + } } diff --git a/App/Settings/Settings.swift b/App/Settings/Settings.swift index 29df91f..fc09bed 100644 --- a/App/Settings/Settings.swift +++ b/App/Settings/Settings.swift @@ -68,7 +68,10 @@ class Settings public var redirectRules: [String: String] = [:] func redirectRule(for url: URL) -> URL? { - if var components = URLComponents(url: url, resolvingAgainstBaseURL: false), let host = url.host { + if var components = URLComponents(url: url, resolvingAgainstBaseURL: false), var host = url.host { + // Remove "www." if necessary. + host = host.replacingOccurrences(of: "www.", with: "") + if let alternateHost = redirectRules[host] { components.host = alternateHost return components.url