// // SubscriptionsActiveTableViewCell.swift // Earthquake Network // // Created by Busi Andrea on 30/07/2020. // Copyright © 2020 Earthquake Network. All rights reserved. // import UIKit import StoreKit class SubscriptionsActiveTableViewCell: EQNBaseContainerTableViewCell { override var headerText: String { NSLocalizedString("inapp_active", comment: "") } // MARK: - UI private lazy var noSubscriptionsLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.textColor = AppTheme.shared.cardTextColor label.font = .preferredFont(forTextStyle: .body) label.textAlignment = .center label.numberOfLines = 0 return label }() private lazy var activeSubscriptionImageView: UIImageView = { let imageView = UIImageView(frame: .zero) imageView.translatesAutoresizingMaskIntoConstraints = false imageView.contentMode = .scaleAspectFit return imageView }() // MARK: - Internal override func setupUI() { super.setupUI() let stackView = UIStackView(arrangedSubviews: [ activeSubscriptionImageView, noSubscriptionsLabel ]) stackView.translatesAutoresizingMaskIntoConstraints = false stackView.alignment = .center stackView.distribution = .equalSpacing stackView.axis = .vertical containerView.addSubview(stackView) activeSubscriptionImageView.widthAnchor.constraint(equalToConstant: 150.0).isActive = true activeSubscriptionImageView.heightAnchor.constraint(equalToConstant: 50.0).isActive = true stackView.topAnchor.constraint(equalTo: topView.bottomAnchor, constant: .cardVerticalSpacing).isActive = true stackView.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: .cardPadding).isActive = true stackView.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: .cardPadding.negative).isActive = true stackView.bottomAnchor.constraint(equalTo: containerView.bottomAnchor, constant: .cardVerticalSpacing.negative).isActive = true } override func updateUI() { super.updateUI() noSubscriptionsLabel.text = NSLocalizedString("inapp_nosub", comment: "") } // MARK: - Public func update(with product: SKProduct?) { if let productIdentifier = product?.productIdentifier { noSubscriptionsLabel.isHidden = true activeSubscriptionImageView.isHidden = false activeSubscriptionImageView.image = VersioneProProducts.image(for: productIdentifier) } else { noSubscriptionsLabel.isHidden = false activeSubscriptionImageView.isHidden = true } } }