diff --git a/readeck.xcodeproj/project.pbxproj b/readeck.xcodeproj/project.pbxproj index 893e0b2..0462659 100644 --- a/readeck.xcodeproj/project.pbxproj +++ b/readeck.xcodeproj/project.pbxproj @@ -437,7 +437,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = URLShare/URLShare.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 25; + CURRENT_PROJECT_VERSION = 26; DEVELOPMENT_TEAM = 8J69P655GN; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = URLShare/Info.plist; @@ -450,7 +450,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.1; PRODUCT_BUNDLE_IDENTIFIER = de.ilyashallak.readeck.URLShare; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; @@ -470,7 +470,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = URLShare/URLShare.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 25; + CURRENT_PROJECT_VERSION = 26; DEVELOPMENT_TEAM = 8J69P655GN; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = URLShare/Info.plist; @@ -483,7 +483,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.1; PRODUCT_BUNDLE_IDENTIFIER = de.ilyashallak.readeck.URLShare; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; @@ -625,7 +625,7 @@ CODE_SIGN_ENTITLEMENTS = readeck/readeck.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 25; + CURRENT_PROJECT_VERSION = 26; DEVELOPMENT_ASSET_PATHS = "\"readeck/Preview Content\""; DEVELOPMENT_TEAM = 8J69P655GN; ENABLE_HARDENED_RUNTIME = YES; @@ -648,7 +648,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.1; - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.1; PRODUCT_BUNDLE_IDENTIFIER = de.ilyashallak.readeck; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -669,7 +669,7 @@ CODE_SIGN_ENTITLEMENTS = readeck/readeck.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 25; + CURRENT_PROJECT_VERSION = 26; DEVELOPMENT_ASSET_PATHS = "\"readeck/Preview Content\""; DEVELOPMENT_TEAM = 8J69P655GN; ENABLE_HARDENED_RUNTIME = YES; @@ -692,7 +692,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.1; - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.1; PRODUCT_BUNDLE_IDENTIFIER = de.ilyashallak.readeck; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/readeck/UI/Menu/PhoneTabView.swift b/readeck/UI/Menu/PhoneTabView.swift index 99b7e93..51f5d3c 100644 --- a/readeck/UI/Menu/PhoneTabView.swift +++ b/readeck/UI/Menu/PhoneTabView.swift @@ -121,11 +121,12 @@ struct PhoneTabView: View { .badge(offlineBookmarksBadgeCount) } } + .tabBarMinimizeBehaviorIfAvailable() .accentColor(.accentColor) + .searchToolbarBehaviorIfAvailable() } } - - + // MARK: - Tab Content @ViewBuilder @@ -153,8 +154,6 @@ struct PhoneTabView: View { ZStack { NavigationLink { BookmarkDetailView(bookmarkId: bookmark.id) - .toolbar(.hidden, for: .tabBar) - .navigationBarBackButtonHidden(false) } label: { EmptyView() } @@ -244,19 +243,39 @@ struct PhoneTabView: View { EmptyView() // search is directly implemented case .settings: SettingsView() - .toolbar(.hidden, for: .tabBar) case .article: BookmarksView(state: .all, type: [.article], selectedBookmark: .constant(nil)) - .toolbar(.hidden, for: .tabBar) case .videos: BookmarksView(state: .all, type: [.video], selectedBookmark: .constant(nil)) - .toolbar(.hidden, for: .tabBar) case .pictures: BookmarksView(state: .all, type: [.photo], selectedBookmark: .constant(nil)) - .toolbar(.hidden, for: .tabBar) case .tags: LabelsView(selectedTag: .constant(nil)) - .toolbar(.hidden, for: .tabBar) + } + } +} + + + +// MARK: - View Extension for iOS 26+ Compatibility +extension View { + @ViewBuilder + func searchToolbarBehaviorIfAvailable() -> some View { + if #available(iOS 26, *) { + self + .searchToolbarBehavior(.minimize) + } else { + self + } + } + + @ViewBuilder + func tabBarMinimizeBehaviorIfAvailable() -> some View { + if #available(iOS 26.0, *) { + self + .tabBarMinimizeBehavior(.onScrollDown) + } else { + self } } }