diff --git a/AltStore.xcodeproj/project.pbxproj b/AltStore.xcodeproj/project.pbxproj index 35ef2b45..e5a894da 100644 --- a/AltStore.xcodeproj/project.pbxproj +++ b/AltStore.xcodeproj/project.pbxproj @@ -369,6 +369,7 @@ D58916FE28C7C55C00E39C8B /* LoggedError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D58916FD28C7C55C00E39C8B /* LoggedError.swift */; }; D58D5F2E26DFE68E00E55E38 /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = D58D5F2D26DFE68E00E55E38 /* LaunchAtLogin */; }; D593F1942717749A006E82DE /* PatchAppOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D593F1932717749A006E82DE /* PatchAppOperation.swift */; }; + D5A2193429B14F94002229FC /* PeekPopPreviewing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5A2193329B14F94002229FC /* PeekPopPreviewing.swift */; }; D5ACE84528E3B8450021CAB9 /* ClearAppCacheOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5ACE84428E3B8450021CAB9 /* ClearAppCacheOperation.swift */; }; D5CA0C4B280E141900469595 /* ManagedPatron.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5CA0C4A280E141900469595 /* ManagedPatron.swift */; }; D5CA0C4E280E249E00469595 /* AltStore9ToAltStore10.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = D5CA0C4D280E249E00469595 /* AltStore9ToAltStore10.xcmappingmodel */; }; @@ -871,6 +872,7 @@ D586D39A28EF58B0000E101F /* AltTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AltTests.swift; sourceTree = ""; }; D58916FD28C7C55C00E39C8B /* LoggedError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggedError.swift; sourceTree = ""; }; D593F1932717749A006E82DE /* PatchAppOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchAppOperation.swift; sourceTree = ""; }; + D5A2193329B14F94002229FC /* PeekPopPreviewing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeekPopPreviewing.swift; sourceTree = ""; }; D5ACE84428E3B8450021CAB9 /* ClearAppCacheOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearAppCacheOperation.swift; sourceTree = ""; }; D5CA0C4A280E141900469595 /* ManagedPatron.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedPatron.swift; sourceTree = ""; }; D5CA0C4C280E242500469595 /* AltStore 10.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "AltStore 10.xcdatamodel"; sourceTree = ""; }; @@ -1055,6 +1057,7 @@ children = ( BF41B807233433C100C593A3 /* LoadingState.swift */, D5DAE0932804B0B80034D8D4 /* ScreenshotProcessor.swift */, + D5A2193329B14F94002229FC /* PeekPopPreviewing.swift */, ); path = Types; sourceTree = ""; @@ -2735,6 +2738,7 @@ D5ACE84528E3B8450021CAB9 /* ClearAppCacheOperation.swift in Sources */, D5F2F6A92720B7C20081CCF5 /* PatchViewController.swift in Sources */, BF8F69C222E659F700049BA1 /* AppContentViewController.swift in Sources */, + D5A2193429B14F94002229FC /* PeekPopPreviewing.swift in Sources */, BF08858522DE7EC800DE9F1E /* UpdateCollectionViewCell.swift in Sources */, BF770E5822BC3D0F002A40FE /* RefreshGroup.swift in Sources */, BF18B0F122E25DF9005C4CF5 /* ToastView.swift in Sources */, diff --git a/AltStore/Browse/BrowseViewController.swift b/AltStore/Browse/BrowseViewController.swift index 0d68636d..df4ac03b 100644 --- a/AltStore/Browse/BrowseViewController.swift +++ b/AltStore/Browse/BrowseViewController.swift @@ -13,7 +13,7 @@ import Roxas import Nuke -class BrowseViewController: UICollectionViewController +class BrowseViewController: UICollectionViewController, PeekPopPreviewing { private lazy var dataSource = self.makeDataSource() private lazy var placeholderView = RSTPlaceholderView(frame: .zero) @@ -46,7 +46,7 @@ class BrowseViewController: UICollectionViewController self.collectionView.dataSource = self.dataSource self.collectionView.prefetchDataSource = self.dataSource - self.registerForPreviewing(with: self, sourceView: self.collectionView) + (self as PeekPopPreviewing).registerForPreviewing(with: self, sourceView: self.collectionView) self.update() } @@ -374,6 +374,7 @@ extension BrowseViewController: UICollectionViewDelegateFlowLayout extension BrowseViewController: UIViewControllerPreviewingDelegate { + @available(iOS, deprecated: 13.0) func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { guard @@ -389,6 +390,7 @@ extension BrowseViewController: UIViewControllerPreviewingDelegate return appViewController } + @available(iOS, deprecated: 13.0) func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) { self.navigationController?.pushViewController(viewControllerToCommit, animated: true) diff --git a/AltStore/My Apps/MyAppsViewController.swift b/AltStore/My Apps/MyAppsViewController.swift index 8ac4d4f7..1294adb8 100644 --- a/AltStore/My Apps/MyAppsViewController.swift +++ b/AltStore/My Apps/MyAppsViewController.swift @@ -31,7 +31,7 @@ extension MyAppsViewController } } -class MyAppsViewController: UICollectionViewController +class MyAppsViewController: UICollectionViewController, PeekPopPreviewing { private let coordinator = NSFileCoordinator() private let operationQueue = OperationQueue() @@ -114,11 +114,7 @@ class MyAppsViewController: UICollectionViewController self.sideloadingProgressView.bottomAnchor.constraint(equalTo: navigationBar.bottomAnchor)]) } - if #available(iOS 13, *) {} - else - { - self.registerForPreviewing(with: self, sourceView: self.collectionView) - } + (self as PeekPopPreviewing).registerForPreviewing(with: self, sourceView: self.collectionView) } override func viewWillAppear(_ animated: Bool) @@ -2243,6 +2239,7 @@ extension MyAppsViewController: UIDocumentPickerDelegate extension MyAppsViewController: UIViewControllerPreviewingDelegate { + @available(iOS, deprecated: 13.0) func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { guard @@ -2266,6 +2263,7 @@ extension MyAppsViewController: UIViewControllerPreviewingDelegate } } + @available(iOS, deprecated: 13.0) func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) { let point = CGPoint(x: previewingContext.sourceRect.midX, y: previewingContext.sourceRect.midY) diff --git a/AltStore/News/NewsViewController.swift b/AltStore/News/NewsViewController.swift index 6d4874ac..0e9fc396 100644 --- a/AltStore/News/NewsViewController.swift +++ b/AltStore/News/NewsViewController.swift @@ -41,7 +41,7 @@ private class AppBannerFooterView: UICollectionReusableView } } -class NewsViewController: UICollectionViewController +class NewsViewController: UICollectionViewController, PeekPopPreviewing { private lazy var dataSource = self.makeDataSource() private lazy var placeholderView = RSTPlaceholderView(frame: .zero) @@ -77,7 +77,7 @@ class NewsViewController: UICollectionViewController self.collectionView.register(NewsCollectionViewCell.nib, forCellWithReuseIdentifier: RSTCellContentGenericCellIdentifier) self.collectionView.register(AppBannerFooterView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionFooter, withReuseIdentifier: "AppBanner") - self.registerForPreviewing(with: self, sourceView: self.collectionView) + (self as PeekPopPreviewing).registerForPreviewing(with: self, sourceView: self.collectionView) self.update() } @@ -490,6 +490,7 @@ extension NewsViewController: UICollectionViewDelegateFlowLayout extension NewsViewController: UIViewControllerPreviewingDelegate { + @available(iOS, deprecated: 13.0) func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { if let indexPath = self.collectionView.indexPathForItem(at: location), let cell = self.collectionView.cellForItem(at: indexPath) @@ -536,6 +537,7 @@ extension NewsViewController: UIViewControllerPreviewingDelegate } } + @available(iOS, deprecated: 13.0) func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) { if let safariViewController = viewControllerToCommit as? SFSafariViewController diff --git a/AltStore/Types/PeekPopPreviewing.swift b/AltStore/Types/PeekPopPreviewing.swift new file mode 100644 index 00000000..86d741dc --- /dev/null +++ b/AltStore/Types/PeekPopPreviewing.swift @@ -0,0 +1,16 @@ +// +// PeekPopPreviewing.swift +// AltStore +// +// Created by Riley Testut on 3/2/23. +// Copyright © 2023 Riley Testut. All rights reserved. +// + +import UIKit + +// Conforming UIViewControllers to PeekPopPreviewing allows us to call deprecated registerForPreviewing(with:sourceView:) without warnings. +protocol PeekPopPreviewing +{ + @discardableResult + func registerForPreviewing(with delegate: UIViewControllerPreviewingDelegate, sourceView: UIView) -> UIViewControllerPreviewing +}