mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
Updates apps’ pledge status upon (de-)authenticating with Patreon
No longer deactivates apps whenever pledge expires.
This commit is contained in:
@@ -208,10 +208,23 @@ private extension PatreonViewController
|
|||||||
let account = try result.get()
|
let account = try result.get()
|
||||||
try account.managedObjectContext?.save()
|
try account.managedObjectContext?.save()
|
||||||
|
|
||||||
|
// Update sources to show any Patreon-only apps.
|
||||||
|
AppManager.shared.fetchSources { result in
|
||||||
|
do
|
||||||
|
{
|
||||||
|
let (_, context) = try result.get()
|
||||||
|
try context.save()
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Logger.main.error("Failed to update sources after authenticating Patreon account. \(error.localizedDescription, privacy: .public)")
|
||||||
|
}
|
||||||
|
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
self.update()
|
self.update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
catch is CancellationError
|
catch is CancellationError
|
||||||
{
|
{
|
||||||
// Clear in-app browser cache in case they are signed into wrong account.
|
// Clear in-app browser cache in case they are signed into wrong account.
|
||||||
|
|||||||
@@ -245,7 +245,8 @@ public extension PatreonAPI
|
|||||||
let accounts = PatreonAccount.all(in: context, requestProperties: [\.returnsObjectsAsFaults: true])
|
let accounts = PatreonAccount.all(in: context, requestProperties: [\.returnsObjectsAsFaults: true])
|
||||||
accounts.forEach(context.delete(_:))
|
accounts.forEach(context.delete(_:))
|
||||||
|
|
||||||
self.deactivateBetaApps(in: context)
|
let pledgeRequiredApps = StoreApp.all(satisfying: NSPredicate(format: "%K == YES", #keyPath(StoreApp.isPledgeRequired)), in: context)
|
||||||
|
pledgeRequiredApps.forEach { $0.isPledged = false }
|
||||||
|
|
||||||
try context.save()
|
try context.save()
|
||||||
|
|
||||||
@@ -456,15 +457,6 @@ private extension PatreonAPI
|
|||||||
|
|
||||||
task.resume()
|
task.resume()
|
||||||
}
|
}
|
||||||
|
|
||||||
func deactivateBetaApps(in context: NSManagedObjectContext)
|
|
||||||
{
|
|
||||||
let predicate = NSPredicate(format: "%K != %@ AND %K != nil AND %K == YES",
|
|
||||||
#keyPath(InstalledApp.bundleIdentifier), StoreApp.altstoreAppID, #keyPath(InstalledApp.storeApp), #keyPath(InstalledApp.storeApp.isBeta))
|
|
||||||
|
|
||||||
let installedApps = InstalledApp.all(satisfying: predicate, in: context)
|
|
||||||
installedApps.forEach { $0.isActive = false }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension PatreonAPI: WKURLSchemeHandler
|
extension PatreonAPI: WKURLSchemeHandler
|
||||||
|
|||||||
Reference in New Issue
Block a user