// // AlertsPriorityServiceTableViewCell.swift // Earthquake Network // // Created by Busi Andrea on 04/10/2020. // Copyright © 2020 Earthquake Network. All rights reserved. // import UIKit @objc class AlertsPriorityServiceTableViewCell: EQNBaseContainerTableViewCell { override var headerText: String { NSLocalizedString("inapp_list", comment: "") } // MARK: - UI private lazy var descriptionLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.numberOfLines = 0 label.textColor = AppTheme.Colors.darkGray label.font = .preferredFont(forTextStyle: .body) return label }() private lazy var lastSubscriptionLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.numberOfLines = 0 label.textColor = AppTheme.Colors.red label.font = .preferredFont(forTextStyle: .body) return label }() // MARK: - Internal override func setupUI() { super.setupUI() containerView.addSubview(descriptionLabel) containerView.addSubview(lastSubscriptionLabel) descriptionLabel.topAnchor.constraint(equalTo: topView.bottomAnchor, constant: .cardVerticalSpacing).isActive = true descriptionLabel.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: .cardPadding).isActive = true descriptionLabel.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: .cardPadding.negative).isActive = true lastSubscriptionLabel.topAnchor.constraint(equalTo: descriptionLabel.bottomAnchor, constant: .cardVerticalSpacing/2.0).isActive = true lastSubscriptionLabel.leadingAnchor.constraint(equalTo: descriptionLabel.leadingAnchor).isActive = true lastSubscriptionLabel.trailingAnchor.constraint(equalTo: descriptionLabel.trailingAnchor).isActive = true lastSubscriptionLabel.bottomAnchor.constraint(equalTo: containerView.bottomAnchor, constant: .cardPadding.negative).isActive = true } override func updateUI() { super.updateUI() containerView.backgroundColor = AppTheme.Colors.cardBackgroundRed descriptionLabel.text = NSLocalizedString("inapp_adv", comment: "") } // MARK: - Public @objc func update(with smartphoneNetwork: EQNReteSmartphone?) { guard let smartphoneNetwork else { return } lastSubscriptionLabel.text = subscriptionText(for: smartphoneNetwork.lastSubscriptionDiff) } private func subscriptionText(for time: Int) -> String { var format = "" var finalValue = time // check for minutes, hours or days if time < 60 { format = NSLocalizedString("inapp_adv_minutes", comment: "") } else if time < 1440 { finalValue = time / 60 format = NSLocalizedString("inapp_adv_hours", comment: "") } else { finalValue = time / 1440 format = NSLocalizedString("inapp_adv_days", comment: "") } return String.localizedStringWithFormat(format, finalValue) } }