From 8695c412d753536a43abd25358020d1651a0ab5a Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Thu, 2 Mar 2023 15:48:33 -0600 Subject: [PATCH] Fixes peek & pop deprecation warnings --- AltStore.xcodeproj/project.pbxproj | 4 ++++ AltStore/Browse/BrowseViewController.swift | 6 ++++-- AltStore/My Apps/MyAppsViewController.swift | 10 ++++------ AltStore/News/NewsViewController.swift | 6 ++++-- AltStore/Types/PeekPopPreviewing.swift | 16 ++++++++++++++++ 5 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 AltStore/Types/PeekPopPreviewing.swift diff --git a/AltStore.xcodeproj/project.pbxproj b/AltStore.xcodeproj/project.pbxproj index ae1dd2e3..74dd3172 100644 --- a/AltStore.xcodeproj/project.pbxproj +++ b/AltStore.xcodeproj/project.pbxproj @@ -363,6 +363,7 @@ D586D39B28EF58B0000E101F /* AltTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D586D39A28EF58B0000E101F /* AltTests.swift */; }; D58916FE28C7C55C00E39C8B /* LoggedError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D58916FD28C7C55C00E39C8B /* LoggedError.swift */; }; 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 */; }; @@ -905,6 +906,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 = ""; }; @@ -1182,6 +1184,7 @@ children = ( BF41B807233433C100C593A3 /* LoadingState.swift */, D5DAE0932804B0B80034D8D4 /* ScreenshotProcessor.swift */, + D5A2193329B14F94002229FC /* PeekPopPreviewing.swift */, ); path = Types; sourceTree = ""; @@ -2690,6 +2693,7 @@ D5F2F6A92720B7C20081CCF5 /* PatchViewController.swift in Sources */, B39F16132918D7C5002E9404 /* Consts.swift in Sources */, BF8F69C222E659F700049BA1 /* AppContentViewController.swift in Sources */, + D5A2193429B14F94002229FC /* PeekPopPreviewing.swift in Sources */, BF08858522DE7EC800DE9F1E /* UpdateCollectionViewCell.swift in Sources */, BF770E5822BC3D0F002A40FE /* RefreshGroup.swift in Sources */, 19B9B7452845E6DF0076EF69 /* SelectTeamViewController.swift in Sources */, diff --git a/AltStore/Browse/BrowseViewController.swift b/AltStore/Browse/BrowseViewController.swift index 857b0222..a6fac8a1 100644 --- a/AltStore/Browse/BrowseViewController.swift +++ b/AltStore/Browse/BrowseViewController.swift @@ -14,7 +14,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) @@ -47,7 +47,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() } @@ -373,6 +373,7 @@ extension BrowseViewController: UICollectionViewDelegateFlowLayout extension BrowseViewController: UIViewControllerPreviewingDelegate { + @available(iOS, deprecated: 13.0) func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { guard @@ -388,6 +389,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 2d69225b..7a67a8c8 100644 --- a/AltStore/My Apps/MyAppsViewController.swift +++ b/AltStore/My Apps/MyAppsViewController.swift @@ -32,7 +32,7 @@ extension MyAppsViewController } } -final class MyAppsViewController: UICollectionViewController +class MyAppsViewController: UICollectionViewController, PeekPopPreviewing { private let coordinator = NSFileCoordinator() private let operationQueue = OperationQueue() @@ -115,11 +115,7 @@ final 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) @@ -2230,6 +2226,7 @@ extension MyAppsViewController: UIDocumentPickerDelegate extension MyAppsViewController: UIViewControllerPreviewingDelegate { + @available(iOS, deprecated: 13.0) func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { guard @@ -2253,6 +2250,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 b2441337..b12bf0bb 100644 --- a/AltStore/News/NewsViewController.swift +++ b/AltStore/News/NewsViewController.swift @@ -41,7 +41,7 @@ private final class AppBannerFooterView: UICollectionReusableView } } -final class NewsViewController: UICollectionViewController +class NewsViewController: UICollectionViewController, PeekPopPreviewing { private lazy var dataSource = self.makeDataSource() private lazy var placeholderView = RSTPlaceholderView(frame: .zero) @@ -77,7 +77,7 @@ final 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() } @@ -492,6 +492,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) @@ -538,6 +539,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 +}