@@ -21,7 +21,6 @@ class Cache {
21
21
private let memCache = NSCache < AnyObject , AnyObject > ( )
22
22
private let ioQueue : DispatchQueue
23
23
private let fileManager : FileManager
24
- private unowned let factory : ExternalPurchaseControllerFactory
25
24
26
25
/// Life time of disk cache, in second. Default is a week
27
26
private var maxCachePeriodInSecond = Cache . defaultMaxCachePeriodInSecond
@@ -32,10 +31,8 @@ class Cache {
32
31
/// Specify distinct name param, it represents folder name for disk cache
33
32
init (
34
33
fileManager: FileManager = FileManager ( ) ,
35
- ioQueue: DispatchQueue = DispatchQueue ( label: Cache . ioQueuePrefix) ,
36
- factory: ExternalPurchaseControllerFactory
34
+ ioQueue: DispatchQueue = DispatchQueue ( label: Cache . ioQueuePrefix)
37
35
) {
38
- self . factory = factory
39
36
self . fileManager = fileManager
40
37
cacheUrl = fileManager
41
38
. urls ( for: . cachesDirectory, in: . userDomainMask)
@@ -377,14 +374,12 @@ extension Cache {
377
374
if let redeemResponse = read ( LatestRedeemResponse . self) {
378
375
let existingWebEntitlements = redeemResponse. entitlements
379
376
var deviceResults : [ RedemptionResult ] = [ ]
380
- var webEntitlementsToKeep : Set < Entitlement > = [ ]
381
377
382
378
for result in redeemResponse. results {
383
379
switch result {
384
380
case . success( _, let redemptionInfo) :
385
381
if case . device = redemptionInfo. ownership {
386
382
deviceResults. append ( result)
387
- webEntitlementsToKeep. formUnion ( redemptionInfo. entitlements)
388
383
}
389
384
case . expiredSubscription( _, let redemptionInfo) :
390
385
if case . device = redemptionInfo. ownership {
@@ -397,16 +392,14 @@ extension Cache {
397
392
398
393
let newRedeemResponse = RedeemResponse (
399
394
results: deviceResults,
400
- entitlements: webEntitlementsToKeep
395
+ entitlements: [ ]
401
396
)
402
397
403
398
write ( newRedeemResponse, forType: LatestRedeemResponse . self)
404
399
405
- if existingWebEntitlements != webEntitlementsToKeep {
406
- Task {
407
- let purchaseController = factory. makeExternalPurchaseController ( )
408
- await purchaseController. offDeviceSubscriptionsDidChange ( entitlements: webEntitlementsToKeep)
409
- }
400
+ if !existingWebEntitlements. isEmpty {
401
+ let deviceEntitlements = Superwall . shared. entitlements. activeDeviceEntitlements
402
+ Superwall . shared. internallySetSubscriptionStatus ( to: . active( deviceEntitlements) )
410
403
}
411
404
}
412
405
}
0 commit comments