mirror of
https://github.com/Ferrite-iOS/Ferrite.git
synced 2026-03-11 17:45:40 +00:00
Tree: Remove iOS 16 conditionals
iOS 16 is now the minimum version for the project. Signed-off-by: kingbri <bdashore3@proton.me>
This commit is contained in:
parent
68a7c60c2d
commit
f40f71bca3
11 changed files with 15 additions and 91 deletions
|
|
@ -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 = "<group>"; };
|
||||
0CB0AB5E29BD2A200015422C /* KodiServerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KodiServerView.swift; sourceTree = "<group>"; };
|
||||
0CB6516228C5A57300DCA721 /* ConditionalId.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConditionalId.swift; sourceTree = "<group>"; };
|
||||
0CB6516428C5A5D700DCA721 /* InlinedList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InlinedList.swift; sourceTree = "<group>"; };
|
||||
0CB6516928C5B4A600DCA721 /* InlineHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InlineHeader.swift; sourceTree = "<group>"; };
|
||||
0CB725312C123E6F0047FC0B /* CloudDownloadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudDownloadView.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -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 */,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,20 +20,9 @@ struct ConditionalContextMenuModifier<InternalContent: View, ID: Hashable>: 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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<ID: Hashable>: ViewModifier {
|
||||
let id: ID
|
||||
|
||||
func body(content: Content) -> some View {
|
||||
if #available(iOS 16, *) {
|
||||
content
|
||||
} else {
|
||||
content
|
||||
.id(id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -14,16 +14,8 @@ struct NavView<Content: View>: 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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -212,10 +212,7 @@ struct SearchBar<ScopeContent: View>: 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()
|
||||
|
|
|
|||
|
|
@ -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) {}
|
||||
|
|
|
|||
Loading…
Reference in a new issue