// // AlertsSmartphoneNetworkTableViewCell.swift // Earthquake Network // // Created by Busi Andrea on 04/10/2020. // Copyright © 2020 Earthquake Network. All rights reserved. // import UIKit @objc class AlertsSmartphoneNetworkTableViewCell: EQNBaseContainerTableViewCell { @objc var onTapButton: (() -> Void)? override var headerText: String { NSLocalizedString("main_network", comment: "") } // MARK: - UI private lazy var counterLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.textColor = AppTheme.Colors.green label.font = .preferredFont(forTextStyle: .largeTitle) label.textAlignment = .center return label }() private lazy var descriptionLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.numberOfLines = 0 label.textColor = AppTheme.shared.cardTextColor label.font = .preferredFont(forTextStyle: .body) label.textAlignment = .center return label }() private lazy var coverageButton: UIButton = { let button = EQNRoundedButton.make(target: self, action: #selector(localCovergeTapped(_:))) return button }() // MARK: - Internal override func setupUI() { super.setupUI() containerView.addSubview(counterLabel) containerView.addSubview(descriptionLabel) containerView.addSubview(coverageButton) counterLabel.topAnchor.constraint(equalTo: topView.bottomAnchor, constant: .cardVerticalSpacing).isActive = true counterLabel.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: .cardPadding).isActive = true counterLabel.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: .cardPadding.negative).isActive = true descriptionLabel.topAnchor.constraint(equalTo: counterLabel.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 coverageButton.heightAnchor.constraint(greaterThanOrEqualToConstant: 40.0).isActive = true coverageButton.topAnchor.constraint(equalTo: descriptionLabel.bottomAnchor, constant: .cardVerticalSpacing).isActive = true coverageButton.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: .cardPadding).isActive = true coverageButton.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: .cardPadding.negative).isActive = true coverageButton.bottomAnchor.constraint(equalTo: containerView.bottomAnchor, constant: .cardPadding.negative).isActive = true } override func updateUI() { super.updateUI() coverageButton.setLocalizedTitle(key: "main_coverage", uppercased: true, emoji: "🗺") descriptionLabel.text = NSLocalizedString("main_monitoring_currently2", comment: "") } // MARK: - Public @objc func update(with smartphoneNetwork: EQNReteSmartphone?) { guard let smartphoneNetwork else { return } counterLabel.text = "\(smartphoneNetwork.counterSmartphones)" } // MARK: - Actions @objc private func localCovergeTapped(_ sender: UIButton) { onTapButton?() } }