mirror of
https://github.com/AU-COVIDSafe/mobile-ios.git
synced 2025-04-29 01:45:19 +00:00
152 lines
5.5 KiB
Swift
152 lines
5.5 KiB
Swift
//
|
|
// SelectStateTerritoryViewController.swift
|
|
// CovidSafe
|
|
//
|
|
// Copyright © 2020 Australian Government. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
let statisticsStateTerritorySelectedKey = "statisticsStateTerritorySelectedKey"
|
|
|
|
class SelectStateTerritoryViewController: UITableViewController {
|
|
|
|
var delegate: StateTerritorySelectionDelegate?
|
|
|
|
lazy var stateTerritoryConfig: StateTerritory = {
|
|
guard let value = UserDefaults.standard.string(forKey: statisticsStateTerritorySelectedKey) else {
|
|
return StateTerritory.AU
|
|
}
|
|
return StateTerritory(rawValue: value)!
|
|
}(){
|
|
didSet {
|
|
UserDefaults.standard.set(stateTerritoryConfig.rawValue, forKey: statisticsStateTerritorySelectedKey)
|
|
}
|
|
}
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
title = "select_state_territory_heading".localizedString()
|
|
tableView.isScrollEnabled = false
|
|
|
|
let buttonTitle = "global_cancel_button_title".localizedString()
|
|
|
|
let item = UIBarButtonItem(
|
|
title: buttonTitle,
|
|
style: .plain,
|
|
target: self,
|
|
action: #selector(dismissView)
|
|
)
|
|
item.tintColor = .covidSafeColor
|
|
|
|
navigationItem.rightBarButtonItem = item
|
|
|
|
tableView.register(UINib(nibName: "StateTerritoryTableViewCell", bundle: nil), forCellReuseIdentifier: "StateTerritoryCell")
|
|
}
|
|
|
|
@objc func dismissView() {
|
|
dismiss(animated: true, completion: nil)
|
|
}
|
|
|
|
// MARK: - Table view data source
|
|
|
|
override func numberOfSections(in tableView: UITableView) -> Int {
|
|
return 2
|
|
}
|
|
|
|
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
if section == 0 {
|
|
return 1
|
|
}
|
|
return 8
|
|
}
|
|
|
|
|
|
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
let cell = tableView.dequeueReusableCell(withIdentifier: "StateTerritoryCell", for: indexPath) as! StateTerritoryTableViewCell
|
|
|
|
// Configure the cell...
|
|
if indexPath.section == 0 {
|
|
cell.stateTerritoryLabel.text = "country_region_name_au".localizedString()
|
|
cell.isSelectedTickView.isHidden = stateTerritoryConfig != StateTerritory.AU
|
|
} else {
|
|
switch indexPath.row {
|
|
case 0:
|
|
cell.stateTerritoryLabel.text = "australian_capital_territory".localizedString()
|
|
cell.isSelectedTickView.isHidden = stateTerritoryConfig != StateTerritory.ACT
|
|
case 1:
|
|
cell.stateTerritoryLabel.text = "new_south_wales".localizedString()
|
|
cell.isSelectedTickView.isHidden = stateTerritoryConfig != StateTerritory.NSW
|
|
case 2:
|
|
cell.stateTerritoryLabel.text = "northern_territory".localizedString()
|
|
cell.isSelectedTickView.isHidden = stateTerritoryConfig != StateTerritory.NT
|
|
case 3:
|
|
cell.stateTerritoryLabel.text = "queensland".localizedString()
|
|
cell.isSelectedTickView.isHidden = stateTerritoryConfig != StateTerritory.QLD
|
|
case 4:
|
|
cell.stateTerritoryLabel.text = "south_australia".localizedString()
|
|
cell.isSelectedTickView.isHidden = stateTerritoryConfig != StateTerritory.SA
|
|
case 5:
|
|
cell.stateTerritoryLabel.text = "tasmania".localizedString()
|
|
cell.isSelectedTickView.isHidden = stateTerritoryConfig != StateTerritory.TAS
|
|
case 6:
|
|
cell.stateTerritoryLabel.text = "victoria".localizedString()
|
|
cell.isSelectedTickView.isHidden = stateTerritoryConfig != StateTerritory.VIC
|
|
case 7:
|
|
cell.stateTerritoryLabel.text = "western_australia".localizedString()
|
|
cell.isSelectedTickView.isHidden = stateTerritoryConfig != StateTerritory.WA
|
|
default:
|
|
cell.stateTerritoryLabel.text = ""
|
|
cell.setSelected(false, animated: false)
|
|
}
|
|
}
|
|
|
|
return cell
|
|
}
|
|
|
|
override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
|
|
if section == 0 {
|
|
return nil
|
|
}
|
|
|
|
return "states_territories".localizedString()
|
|
}
|
|
|
|
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
if indexPath.section == 0 {
|
|
stateTerritoryConfig = StateTerritory.AU
|
|
} else {
|
|
switch indexPath.row {
|
|
case 0:
|
|
stateTerritoryConfig = StateTerritory.ACT
|
|
case 1:
|
|
stateTerritoryConfig = StateTerritory.NSW
|
|
case 2:
|
|
stateTerritoryConfig = StateTerritory.NT
|
|
case 3:
|
|
stateTerritoryConfig = StateTerritory.QLD
|
|
case 4:
|
|
stateTerritoryConfig = StateTerritory.SA
|
|
case 5:
|
|
stateTerritoryConfig = StateTerritory.TAS
|
|
case 6:
|
|
stateTerritoryConfig = StateTerritory.VIC
|
|
case 7:
|
|
stateTerritoryConfig = StateTerritory.WA
|
|
default:
|
|
stateTerritoryConfig = StateTerritory.AU
|
|
}
|
|
}
|
|
delegate?.didChangeStateTerritory(selectedState: stateTerritoryConfig)
|
|
dismissView()
|
|
}
|
|
}
|
|
|
|
enum StateTerritory: String {
|
|
case AU, ACT, NSW, NT, QLD, SA, TAS, VIC, WA
|
|
}
|
|
|
|
protocol StateTerritorySelectionDelegate {
|
|
func didChangeStateTerritory( selectedState: StateTerritory )
|
|
}
|