mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
Fixes showing “Update” button on app store page when no supported update is available
This commit is contained in:
@@ -346,7 +346,7 @@ private extension AppViewController
|
|||||||
|
|
||||||
if let installedApp = self.app.installedApp
|
if let installedApp = self.app.installedApp
|
||||||
{
|
{
|
||||||
if let latestVersion = self.app.latestAvailableVersion, !installedApp.matches(latestVersion)
|
if let latestVersion = self.app.latestSupportedVersion, !installedApp.matches(latestVersion)
|
||||||
{
|
{
|
||||||
button.setTitle(NSLocalizedString("UPDATE", comment: ""), for: .normal)
|
button.setTitle(NSLocalizedString("UPDATE", comment: ""), for: .normal)
|
||||||
}
|
}
|
||||||
@@ -364,7 +364,7 @@ private extension AppViewController
|
|||||||
button.progress = progress
|
button.progress = progress
|
||||||
}
|
}
|
||||||
|
|
||||||
if let versionDate = self.app.latestAvailableVersion?.date, versionDate > Date()
|
if let versionDate = self.app.latestSupportedVersion?.date, versionDate > Date()
|
||||||
{
|
{
|
||||||
self.bannerView.button.countdownDate = versionDate
|
self.bannerView.button.countdownDate = versionDate
|
||||||
self.navigationBarDownloadButton.countdownDate = versionDate
|
self.navigationBarDownloadButton.countdownDate = versionDate
|
||||||
@@ -500,7 +500,7 @@ extension AppViewController
|
|||||||
{
|
{
|
||||||
if let installedApp = self.app.installedApp
|
if let installedApp = self.app.installedApp
|
||||||
{
|
{
|
||||||
if let latestVersion = self.app.latestAvailableVersion, !installedApp.matches(latestVersion)
|
if let latestVersion = self.app.latestSupportedVersion, !installedApp.matches(latestVersion)
|
||||||
{
|
{
|
||||||
self.updateApp(installedApp)
|
self.updateApp(installedApp)
|
||||||
}
|
}
|
||||||
@@ -561,7 +561,7 @@ extension AppViewController
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = AppManager.shared.update(installedApp, to: .latestAvailableVersionWithFallback, presentingViewController: self) { (result) in
|
_ = AppManager.shared.update(installedApp, presentingViewController: self) { (result) in
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
switch result
|
switch result
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,12 +27,6 @@ extension AppManager
|
|||||||
|
|
||||||
static let expirationWarningNotificationID = "altstore-expiration-warning"
|
static let expirationWarningNotificationID = "altstore-expiration-warning"
|
||||||
static let enableJITResultNotificationID = "altstore-enable-jit"
|
static let enableJITResultNotificationID = "altstore-enable-jit"
|
||||||
|
|
||||||
enum PreferredAppVersion
|
|
||||||
{
|
|
||||||
case latestSupportedVersion
|
|
||||||
case latestAvailableVersionWithFallback
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@available(iOS 13, *)
|
@available(iOS 13, *)
|
||||||
@@ -558,16 +552,9 @@ extension AppManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
@discardableResult
|
@discardableResult
|
||||||
func update(_ installedApp: InstalledApp, to preferredAppVersion: PreferredAppVersion = .latestSupportedVersion, presentingViewController: UIViewController?, context: AuthenticatedOperationContext = AuthenticatedOperationContext(), completionHandler: @escaping (Result<InstalledApp, Error>) -> Void) -> Progress
|
func update(_ installedApp: InstalledApp, presentingViewController: UIViewController?, context: AuthenticatedOperationContext = AuthenticatedOperationContext(), completionHandler: @escaping (Result<InstalledApp, Error>) -> Void) -> Progress
|
||||||
{
|
{
|
||||||
let preferredApp: AppProtocol?
|
guard let appVersion = installedApp.storeApp?.latestSupportedVersion else {
|
||||||
switch preferredAppVersion
|
|
||||||
{
|
|
||||||
case .latestSupportedVersion: preferredApp = installedApp.storeApp?.latestSupportedVersion
|
|
||||||
case .latestAvailableVersionWithFallback: preferredApp = installedApp.storeApp // Use StoreApp directly to correctly handle min/max OS versions in DownloadAppOperation.
|
|
||||||
}
|
|
||||||
|
|
||||||
guard let app = preferredApp else {
|
|
||||||
completionHandler(.failure(OperationError.appNotFound(name: installedApp.name)))
|
completionHandler(.failure(OperationError.appNotFound(name: installedApp.name)))
|
||||||
return Progress.discreteProgress(totalUnitCount: 1)
|
return Progress.discreteProgress(totalUnitCount: 1)
|
||||||
}
|
}
|
||||||
@@ -585,7 +572,7 @@ extension AppManager
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let operation = AppOperation.update(app)
|
let operation = AppOperation.update(appVersion)
|
||||||
assert(operation.app as AnyObject !== installedApp) // Make sure we never accidentally "update" to already installed app.
|
assert(operation.app as AnyObject !== installedApp) // Make sure we never accidentally "update" to already installed app.
|
||||||
|
|
||||||
self.perform([operation], presentingViewController: presentingViewController, group: group)
|
self.perform([operation], presentingViewController: presentingViewController, group: group)
|
||||||
|
|||||||
Reference in New Issue
Block a user