// // LDConfigurationViewController.swift // Lockdown // // Created by Aliaksandr Dvoineu on 20.04.23. // Copyright © 2023 Confirmed Inc. All rights reserved. // import UIKit final class LDConfigurationViewController: UIViewController { // MARK: - Properties private lazy var activityCard: LDCardView = { let view = LDCardView() view.title.text = "Activity" view.iconImageView.image = UIImage(named: "icn_activity") view.isUserInteractionEnabled = true return view }() private lazy var configureBlockingCard: LDCardView = { let view = LDCardView() view.title.text = "Configure blocking" view.title.numberOfLines = 0 view.iconImageView.image = UIImage(named: "icn_configure_blocking") view.isUserInteractionEnabled = true return view }() private lazy var personalizedBlockingCard: LDCardView = { let view = LDCardView() view.title.text = "Personalized blocking" view.title.numberOfLines = 0 view.iconImageView.image = UIImage(named: "icn_personalized_blocking") view.isUserInteractionEnabled = true return view }() private lazy var importListsCard: LDCardView = { let view = LDCardView() view.title.text = "Import custom block lists" view.title.numberOfLines = 0 view.iconImageView.image = UIImage(named: "icn_import") view.isUserInteractionEnabled = true return view }() private lazy var hStack1: UIStackView = { let stack = UIStackView() stack.addArrangedSubview(activityCard) stack.addArrangedSubview(configureBlockingCard) stack.alignment = .center stack.axis = .horizontal stack.distribution = .equalCentering stack.spacing = 16 return stack }() private lazy var hStack2: UIStackView = { let stack = UIStackView() stack.addArrangedSubview(personalizedBlockingCard) stack.addArrangedSubview(importListsCard) stack.alignment = .center stack.axis = .horizontal stack.distribution = .equalCentering stack.spacing = 16 return stack }() private lazy var vStack: UIStackView = { let stack = UIStackView() stack.addArrangedSubview(hStack1) stack.addArrangedSubview(hStack2) stack.alignment = .center stack.axis = .vertical stack.distribution = .equalCentering stack.spacing = 16 return stack }() private lazy var viewAccountSettingsButton: UIButton = { let button = UIButton(type: .system) button.setTitle("View account settings", for: .normal) button.setTitleColor(.tunnelsBlue, for: .normal) button.titleLabel?.font = fontBold15 button.addTarget(self, action: #selector(viewAccountSettings), for: .touchUpInside) return button }() private lazy var viewAuditReportButton: UIButton = { let button = UIButton(type: .system) button.setTitle("View audit report (Feb 2023)", for: .normal) button.setTitleColor(.tunnelsBlue, for: .normal) button.titleLabel?.font = fontBold15 button.addTarget(self, action: #selector(viewAccountSettings), for: .touchUpInside) return button }() lazy var vStackView: UIStackView = { let stackView = UIStackView() stackView.addArrangedSubview(viewAccountSettingsButton) stackView.addArrangedSubview(viewAuditReportButton) stackView.axis = .vertical stackView.alignment = .center stackView.distribution = .fillEqually stackView.spacing = 8 return stackView }() // MARK: - LifeCycle override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .systemBackground view.addSubview(vStack) vStack.anchors.centerY.align() vStack.anchors.centerX.align() activityCard.anchors.width.equal(view.bounds.width / 2 - 20) activityCard.anchors.height.equal(view.bounds.width / 2 - 20) configureBlockingCard.anchors.width.equal(view.bounds.width / 2 - 20) configureBlockingCard.anchors.height.equal(view.bounds.width / 2 - 20) personalizedBlockingCard.anchors.width.equal(view.bounds.width / 2 - 20) personalizedBlockingCard.anchors.height.equal(view.bounds.width / 2 - 20) importListsCard.anchors.width.equal(view.bounds.width / 2 - 20) importListsCard.anchors.height.equal(view.bounds.width / 2 - 20) view.addSubview(vStackView) vStackView.anchors.top.spacing(30, to: vStack.anchors.bottom) vStackView.anchors.leading.marginsPin() vStackView.anchors.trailing.marginsPin() } } // MARK: - Private functions private extension LDConfigurationViewController { @objc func viewAccountSettings() { } @objc func viewAuditReport() { } }