Fixes AltStore still being refreshing even after pledge expires

This commit is contained in:
Riley Testut
2023-11-30 15:14:01 -06:00
committed by Magesh K
parent e370034e0b
commit 850b6890e2
2 changed files with 33 additions and 8 deletions

View File

@@ -739,11 +739,30 @@ private extension MyAppsViewController
{ {
guard minimuxerStatus else { return } guard minimuxerStatus else { return }
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

@@ -267,11 +267,14 @@ 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
{
if !storeApp.isPledgeRequired || storeApp.isPledged
{ {
// Only add AltStore if it's the public version OR if it's the beta and we're pledged to it. // Only add AltStore if it's the public version OR if it's the beta and we're pledged to it.
installedApps.append(altStoreApp) installedApps.append(altStoreApp)
} }
}
else else
{ {
// No associated storeApp, so add it just to be safe. // No associated storeApp, so add it just to be safe.
@@ -302,11 +305,14 @@ 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
{
if !storeApp.isPledgeRequired || storeApp.isPledged
{ {
// Only add AltStore if it's the public version OR if it's the beta and we're pledged to it. // Only add AltStore if it's the public version OR if it's the beta and we're pledged to it.
installedApps.append(altStoreApp) installedApps.append(altStoreApp)
} }
}
else else
{ {
// No associated storeApp, so add it just to be safe. // No associated storeApp, so add it just to be safe.