Iterate feature-based products
This commit is contained in:
parent
1ed4d32d5d
commit
63bd33aa4e
|
@ -97,6 +97,18 @@ enum Product: String {
|
|||
// MARK: All
|
||||
|
||||
static let all: [Product] = allDonations + allFeatures + allProviders
|
||||
|
||||
var isDonation: Bool {
|
||||
return Product.allDonations.contains(self)
|
||||
}
|
||||
|
||||
var isFeature: Bool {
|
||||
return Product.allFeatures.contains(self)
|
||||
}
|
||||
|
||||
var isProvider: Bool {
|
||||
return Product.allProviders.contains(self)
|
||||
}
|
||||
}
|
||||
|
||||
extension Infrastructure.Name {
|
||||
|
|
|
@ -80,6 +80,21 @@ class ProductManager: NSObject {
|
|||
return inApp.product(withIdentifier: identifier)
|
||||
}
|
||||
|
||||
func featureProducts(includingFullVersion: Bool) -> [SKProduct] {
|
||||
return inApp.products.filter {
|
||||
guard let p = Product(rawValue: $0.productIdentifier) else {
|
||||
return false
|
||||
}
|
||||
guard includingFullVersion || p != .fullVersion else {
|
||||
return false
|
||||
}
|
||||
guard p.isFeature else {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
func purchase(_ product: SKProduct, completionHandler: @escaping (InAppPurchaseResult, Error?) -> Void) {
|
||||
inApp.purchase(product: product) {
|
||||
if $0 == .success {
|
||||
|
|
Loading…
Reference in New Issue