// // 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 } }