diff --git a/Ferrite.xcodeproj/project.pbxproj b/Ferrite.xcodeproj/project.pbxproj index 2bb192d..a216429 100644 --- a/Ferrite.xcodeproj/project.pbxproj +++ b/Ferrite.xcodeproj/project.pbxproj @@ -136,7 +136,6 @@ 0CAF1C7B286F5C8600296F86 /* SwiftSoup in Frameworks */ = {isa = PBXBuildFile; productRef = 0CAF1C7A286F5C8600296F86 /* SwiftSoup */; }; 0CB0115B29D36D9E009AFEDE /* SearchResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB0115A29D36D9E009AFEDE /* SearchResultsView.swift */; }; 0CB0AB5F29BD2A200015422C /* KodiServerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB0AB5E29BD2A200015422C /* KodiServerView.swift */; }; - 0CB6516328C5A57300DCA721 /* ConditionalId.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB6516228C5A57300DCA721 /* ConditionalId.swift */; }; 0CB6516528C5A5D700DCA721 /* InlinedList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB6516428C5A5D700DCA721 /* InlinedList.swift */; }; 0CB6516A28C5B4A600DCA721 /* InlineHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB6516928C5B4A600DCA721 /* InlineHeader.swift */; }; 0CB725322C123E6F0047FC0B /* CloudDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB725312C123E6F0047FC0B /* CloudDownloadView.swift */; }; @@ -292,7 +291,6 @@ 0CAF1C68286F5C0E00296F86 /* Ferrite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ferrite.app; sourceTree = BUILT_PRODUCTS_DIR; }; 0CB0115A29D36D9E009AFEDE /* SearchResultsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultsView.swift; sourceTree = ""; }; 0CB0AB5E29BD2A200015422C /* KodiServerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KodiServerView.swift; sourceTree = ""; }; - 0CB6516228C5A57300DCA721 /* ConditionalId.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConditionalId.swift; sourceTree = ""; }; 0CB6516428C5A5D700DCA721 /* InlinedList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InlinedList.swift; sourceTree = ""; }; 0CB6516928C5B4A600DCA721 /* InlineHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InlineHeader.swift; sourceTree = ""; }; 0CB725312C123E6F0047FC0B /* CloudDownloadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudDownloadView.swift; sourceTree = ""; }; @@ -486,7 +484,6 @@ isa = PBXGroup; children = ( 0C70E40128C3CE9C00A5C72D /* ConditionalContextMenu.swift */, - 0CB6516228C5A57300DCA721 /* ConditionalId.swift */, 0CD5E78828CD932B001BF684 /* DisabledAppearance.swift */, 0CBAB83528D12ED500AC903E /* DisableInteraction.swift */, 0CB6516428C5A5D700DCA721 /* InlinedList.swift */, @@ -855,7 +852,6 @@ 0CB6516528C5A5D700DCA721 /* InlinedList.swift in Sources */, 0C8DC35429CE2AB5008A83AD /* SourceSettingsBaseUrlView.swift in Sources */, 0C32FB532890D19D002BD219 /* AboutView.swift in Sources */, - 0CB6516328C5A57300DCA721 /* ConditionalId.swift in Sources */, 0C70E40628C40C4E00A5C72D /* NotificationCenter.swift in Sources */, 0C84F4832895BFED0074B7C9 /* Source+CoreDataProperties.swift in Sources */, 0C2D9653299316CC00A504B6 /* Tag.swift in Sources */, diff --git a/Ferrite/Extensions/UIDevice.swift b/Ferrite/Extensions/UIDevice.swift index 3c416ed..350abc7 100644 --- a/Ferrite/Extensions/UIDevice.swift +++ b/Ferrite/Extensions/UIDevice.swift @@ -9,10 +9,6 @@ import UIKit extension UIDevice { var hasNotch: Bool { - if #available(iOS 11.0, *) { - return UIApplication.shared.currentUIWindow?.safeAreaInsets.bottom ?? 0 > 0 - } else { - return false - } + UIApplication.shared.currentUIWindow?.safeAreaInsets.bottom ?? 0 > 0 } } diff --git a/Ferrite/Extensions/View.swift b/Ferrite/Extensions/View.swift index bf43c28..e3a6c03 100644 --- a/Ferrite/Extensions/View.swift +++ b/Ferrite/Extensions/View.swift @@ -25,10 +25,6 @@ extension View { modifier(ConditionalContextMenuModifier(internalContent, id: id)) } - func conditionalId(_ id: some Hashable) -> some View { - modifier(ConditionalIdModifier(id: id)) - } - func disabledAppearance(_ disabled: Bool, dimmedOpacity: Double? = nil, animation: Animation? = nil) -> some View { modifier(DisabledAppearanceModifier(disabled: disabled, dimmedOpacity: dimmedOpacity, animation: animation)) } diff --git a/Ferrite/Views/CommonViews/InlineHeader.swift b/Ferrite/Views/CommonViews/InlineHeader.swift index 491e36d..fb5dadb 100644 --- a/Ferrite/Views/CommonViews/InlineHeader.swift +++ b/Ferrite/Views/CommonViews/InlineHeader.swift @@ -17,11 +17,6 @@ struct InlineHeader: View { } var body: some View { - if #available(iOS 16, *) { - Text(title) - } else { - Text(title) - .listRowInsets(EdgeInsets(top: 10, leading: 15, bottom: 0, trailing: 0)) - } + Text(title) } } diff --git a/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift b/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift index c18f3de..8255094 100644 --- a/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift +++ b/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift @@ -20,20 +20,9 @@ struct ConditionalContextMenuModifier: View } func body(content: Content) -> some View { - if #available(iOS 16, *) { - content - .contextMenu { - internalContent() - } - } else { - content - .background { - Color.clear - .contextMenu { - internalContent() - } - .id(id) - } - } + content + .contextMenu { + internalContent() + } } } diff --git a/Ferrite/Views/CommonViews/Modifiers/ConditionalId.swift b/Ferrite/Views/CommonViews/Modifiers/ConditionalId.swift deleted file mode 100644 index d9d89d6..0000000 --- a/Ferrite/Views/CommonViews/Modifiers/ConditionalId.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// ConditionalId.swift -// Ferrite -// -// Created by Brian Dashore on 9/4/22. -// -// Applies an ID below iOS 16 -// This is due to ID workarounds making iOS 16 apps crash -// - -import SwiftUI - -struct ConditionalIdModifier: ViewModifier { - let id: ID - - func body(content: Content) -> some View { - if #available(iOS 16, *) { - content - } else { - content - .id(id) - } - } -} diff --git a/Ferrite/Views/CommonViews/NavView.swift b/Ferrite/Views/CommonViews/NavView.swift index 6c8297b..a0209de 100644 --- a/Ferrite/Views/CommonViews/NavView.swift +++ b/Ferrite/Views/CommonViews/NavView.swift @@ -14,16 +14,8 @@ struct NavView: View { @ViewBuilder var content: Content var body: some View { - // NavigationStack issues are fixed on iOS 17 - if #available(iOS 17, *) { - NavigationStack { - content - } - } else { - NavigationView { - content - } - .navigationViewStyle(.stack) + NavigationStack { + content } } } diff --git a/Ferrite/Views/ComponentViews/Settings/PluginList/SettingsPluginListView.swift b/Ferrite/Views/ComponentViews/Settings/PluginList/SettingsPluginListView.swift index 931b950..d115904 100644 --- a/Ferrite/Views/ComponentViews/Settings/PluginList/SettingsPluginListView.swift +++ b/Ferrite/Views/ComponentViews/Settings/PluginList/SettingsPluginListView.swift @@ -69,12 +69,8 @@ struct SettingsPluginListView: View { } } .sheet(isPresented: $presentEditSheet) { - if #available(iOS 16, *) { - PluginListEditorView() - .presentationDetents([.medium]) - } else { - PluginListEditorView() - } + PluginListEditorView() + .presentationDetents([.medium]) } .navigationTitle("Plugin Lists") .navigationBarTitleDisplayMode(.inline) diff --git a/Ferrite/Views/MainView.swift b/Ferrite/Views/MainView.swift index 63530c6..2075200 100644 --- a/Ferrite/Views/MainView.swift +++ b/Ferrite/Views/MainView.swift @@ -54,12 +54,8 @@ struct MainView: View { case .batch: BatchChoiceView() case .activity: - if #available(iOS 16, *) { - ShareSheet(activityItems: navModel.activityItems) - .presentationDetents([.medium, .large]) - } else { - ShareSheet(activityItems: navModel.activityItems) - } + ShareSheet(activityItems: navModel.activityItems) + .presentationDetents([.medium, .large]) } } .onAppear { diff --git a/Ferrite/Views/RepresentableViews/ExpandedSearchable.swift b/Ferrite/Views/RepresentableViews/ExpandedSearchable.swift index 58b1748..8cc87a2 100644 --- a/Ferrite/Views/RepresentableViews/ExpandedSearchable.swift +++ b/Ferrite/Views/RepresentableViews/ExpandedSearchable.swift @@ -212,10 +212,7 @@ struct SearchBar: UIViewControllerRepresentable { private func setup() { parent?.navigationItem.searchController = searchController parent?.navigationItem.hidesSearchBarWhenScrolling = false - - if #available(iOS 16, *) { - parent?.navigationItem.preferredSearchBarPlacement = .stacked - } + parent?.navigationItem.preferredSearchBarPlacement = .stacked // Makes search bar appear when application starts parent?.navigationController?.navigationBar.sizeToFit() diff --git a/Ferrite/Views/SheetViews/ActionChoiceView.swift b/Ferrite/Views/SheetViews/ActionChoiceView.swift index 4753a26..5ed9e27 100644 --- a/Ferrite/Views/SheetViews/ActionChoiceView.swift +++ b/Ferrite/Views/SheetViews/ActionChoiceView.swift @@ -123,13 +123,8 @@ struct ActionChoiceView: View { } .tint(.primary) .sheet(isPresented: $navModel.showLocalActivitySheet) { - // TODO: Fix share sheet - if #available(iOS 16, *) { - ShareSheet(activityItems: navModel.activityItems) - .presentationDetents([.medium, .large]) - } else { - ShareSheet(activityItems: navModel.activityItems) - } + ShareSheet(activityItems: navModel.activityItems) + .presentationDetents([.medium, .large]) } .alert("Action successful", isPresented: $pluginManager.showActionSuccessAlert) { Button("OK", role: .cancel) {}