Fixes AltStore still being refreshing even after pledge expires

This commit is contained in:
Riley Testut
2023-11-30 15:14:01 -06:00
parent a20950b693
commit 5732da1f2c
2 changed files with 33 additions and 8 deletions

View File

@@ -707,11 +707,30 @@ private extension MyAppsViewController
@IBAction func refreshAllApps(_ sender: UIBarButtonItem) @IBAction func refreshAllApps(_ sender: UIBarButtonItem)
{ {
let installedApps = InstalledApp.fetchAppsForRefreshingAll(in: DatabaseManager.shared.viewContext)
guard !installedApps.isEmpty else {
let error: Error
if let altstoreApp = InstalledApp.fetchAltStore(in: DatabaseManager.shared.viewContext),
let storeApp = altstoreApp.storeApp, storeApp.isPledgeRequired && !storeApp.isPledged
{
// Assume the reason there are no apps is because we are no longer pledged to AltStore beta.
error = OperationError(.pledgeInactive(appName: altstoreApp.name))
}
else
{
// Otherwise, fall back to generic noInstalledApps.
error = RefreshError(.noInstalledApps)
}
let toastView = ToastView(error: error)
toastView.show(in: self)
return
}
self.isRefreshingAllApps = true self.isRefreshingAllApps = true
self.collectionView.collectionViewLayout.invalidateLayout() self.collectionView.collectionViewLayout.invalidateLayout()
let installedApps = InstalledApp.fetchAppsForRefreshingAll(in: DatabaseManager.shared.viewContext)
self.refresh(installedApps) { (result) in self.refresh(installedApps) { (result) in
DispatchQueue.main.async { DispatchQueue.main.async {
self.isRefreshingAllApps = false self.isRefreshingAllApps = false

View File

@@ -248,10 +248,13 @@ public extension InstalledApp
{ {
// Refresh AltStore last since it causes app to quit. // Refresh AltStore last since it causes app to quit.
if let storeApp = altStoreApp.storeApp, !storeApp.isPledgeRequired || storeApp.isPledged if let storeApp = altStoreApp.storeApp
{ {
// Only add AltStore if it's the public version OR if it's the beta and we're pledged to it. if !storeApp.isPledgeRequired || storeApp.isPledged
installedApps.append(altStoreApp) {
// Only add AltStore if it's the public version OR if it's the beta and we're pledged to it.
installedApps.append(altStoreApp)
}
} }
else else
{ {
@@ -283,10 +286,13 @@ public extension InstalledApp
if let altStoreApp = InstalledApp.fetchAltStore(in: context), altStoreApp.refreshedDate < date if let altStoreApp = InstalledApp.fetchAltStore(in: context), altStoreApp.refreshedDate < date
{ {
if let storeApp = altStoreApp.storeApp, !storeApp.isPledgeRequired || storeApp.isPledged if let storeApp = altStoreApp.storeApp
{ {
// Only add AltStore if it's the public version OR if it's the beta and we're pledged to it. if !storeApp.isPledgeRequired || storeApp.isPledged
installedApps.append(altStoreApp) {
// Only add AltStore if it's the public version OR if it's the beta and we're pledged to it.
installedApps.append(altStoreApp)
}
} }
else else
{ {