68 lines
2.0 KiB
Swift
68 lines
2.0 KiB
Swift
//
|
|
// SubscriptionProductTableViewCell.swift
|
|
// Earthquake Network
|
|
//
|
|
// Created by Busi Andrea on 29/07/2020.
|
|
// Copyright © 2020 Earthquake Network. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import StoreKit
|
|
|
|
class SubscriptionProductTableViewCell: UITableViewCell {
|
|
|
|
var product: SKProduct? {
|
|
didSet {
|
|
updateUI()
|
|
}
|
|
}
|
|
var availability: EQNPurchaseAvailability? {
|
|
didSet {
|
|
updateUI()
|
|
}
|
|
}
|
|
|
|
@IBOutlet private weak var productImageView: UIImageView!
|
|
@IBOutlet private weak var productTitleLabel: UILabel!
|
|
@IBOutlet private weak var productDescriptionLabel: UILabel?
|
|
@IBOutlet private weak var productInfoLabel: UILabel!
|
|
|
|
|
|
// MARK: - View Lifecycle
|
|
|
|
// force an inset to have the same style of EQNBaseTableViewCell
|
|
override var frame: CGRect {
|
|
get {
|
|
return super.frame
|
|
}
|
|
set (newFrame) {
|
|
let inset: CGFloat = 8
|
|
var frame = newFrame
|
|
frame.origin.x += inset
|
|
frame.size.width -= 2 * inset
|
|
super.frame = frame
|
|
}
|
|
}
|
|
|
|
// MARK: - Private
|
|
|
|
private func updateUI() {
|
|
guard let product = product else { return }
|
|
|
|
productImageView.image = VersioneProProducts.image(for: product.productIdentifier)
|
|
productTitleLabel.text = product.localizedTitle
|
|
productDescriptionLabel?.text = product.localizedDescription
|
|
|
|
let infoKey = VersioneProProducts.is100kSubscription(for: product.productIdentifier) ? "inapp_available_100k" : "inapp_available_10k"
|
|
let counter = availability(for: product.productIdentifier)
|
|
productInfoLabel.text = String(format: NSLocalizedString(infoKey, comment: ""), counter)
|
|
}
|
|
|
|
private func availability(for productIdentifier: String) -> Int {
|
|
if VersioneProProducts.is100kSubscription(for: productIdentifier) {
|
|
return availability?.top100kAvailable ?? 0
|
|
}
|
|
return availability?.top10kAvailable ?? 0
|
|
}
|
|
}
|