mobile-ios/CovidSafe/CSGenericViewController.swift

74 lines
2.2 KiB
Swift
Raw Normal View History

2020-12-19 05:13:44 +00:00
//
// CSGenericContentViewController.swift
// CovidSafe
//
// Copyright © 2020 Australian Government. All rights reserved.
//
import UIKit
import SafariServices
class CSGenericContentViewController: UIViewController {
@IBOutlet weak var stepCounterLabel: UILabel!
@IBOutlet weak var contentIllustration: UIImageView!
@IBOutlet weak var contentTitleLabel: UILabel!
@IBOutlet weak var contentDescriptionText: UITextView!
@IBOutlet weak var actionButton: UIButton!
var contentViewModel: CSGenericContentViewModel?
override func viewDidLoad() {
super.viewDidLoad()
guard let viewModel = contentViewModel else {
return
}
// set the step counter
if let contentStep = viewModel.contentStepNumber, let contentTotal = viewModel.contentStepTotal {
stepCounterLabel.text = String.localizedStringWithFormat( "stepCounter".localizedString(),
contentStep,
contentTotal
)
} else {
stepCounterLabel.text = ""
stepCounterLabel.isHidden = true
}
// set the illustration
if let illustration = viewModel.contentIllustration {
contentIllustration.image = illustration
}
// set title and content
contentTitleLabel.text = viewModel.viewTitle
contentDescriptionText.attributedText = viewModel.viewContentDescription
contentDescriptionText.parseHTMLTags()
contentDescriptionText.addAllBold(enclosedIn: "#")
//set button label and action
actionButton.setTitle(viewModel.buttonLabel, for: .normal)
actionButton.addTarget(self, action: #selector(pressed), for: .touchUpInside)
}
@objc func pressed(sender: UIButton!) {
guard let viewModel = contentViewModel else {
return
}
viewModel.buttonCallback()
}
}
struct CSGenericContentViewModel {
var viewTitle: String
var viewContentDescription: NSAttributedString
var buttonLabel: String
var buttonCallback: () -> Void
var contentIllustration: UIImage?
var contentStepNumber: Int?
var contentStepTotal: Int?
}