mirror of
https://github.com/AU-COVIDSafe/mobile-ios.git
synced 2025-04-05 06:14:59 +00:00
73 lines
2.2 KiB
Swift
73 lines
2.2 KiB
Swift
//
|
|
// 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?
|
|
}
|