Skip to content

Commit

Permalink
Fix Siva certificate
Browse files Browse the repository at this point in the history
  • Loading branch information
martenrebane committed Jan 24, 2024
1 parent f52ce65 commit a721ceb
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 14 deletions.
1 change: 1 addition & 0 deletions MoppApp/MoppApp/SettingsResetCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ class SettingsResetCell: UITableViewCell {
@IBOutlet weak var resetSettingsButton: ScaledLabel!

func populate(with title: String) {
resetSettingsButton.isAccessibilityElement = true
resetSettingsButton.text = title
resetSettingsButton.accessibilityLabel = title.lowercased()
resetSettingsButton.accessibilityUserInputLabels = [L(.voiceControlResetButton)]
Expand Down
19 changes: 11 additions & 8 deletions MoppApp/MoppApp/SettingsSivaCertCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

import UIKit
import ASN1Decoder
import UniformTypeIdentifiers

enum SivaAccess: String, Codable {
case defaultAccess
Expand Down Expand Up @@ -73,8 +74,8 @@ class SettingsSivaCertCell: UITableViewCell {

@IBAction func addCertificate(_ sender: ScaledButton) {
let documentPicker: UIDocumentPickerViewController = {
let allowedDocumentTypes = ["public.x509-certificate"]
let documentPickerViewController = UIDocumentPickerViewController(documentTypes: allowedDocumentTypes, in: .import)
let allowedDocumentTypes = [UTType.x509Certificate]
let documentPickerViewController = UIDocumentPickerViewController(forOpeningContentTypes: allowedDocumentTypes)
documentPickerViewController.delegate = self
documentPickerViewController.modalPresentationStyle = .overCurrentContext
documentPickerViewController.allowsMultipleSelection = false
Expand Down Expand Up @@ -133,9 +134,7 @@ class SettingsSivaCertCell: UITableViewCell {
sivaUrlTextField.attributedPlaceholder = getSivaPlaceholder()
self.field = field

if let _ = certificate {
updateUI()
}
updateUI()
}

func getSivaPlaceholder() -> NSAttributedString {
Expand Down Expand Up @@ -253,6 +252,12 @@ class SettingsSivaCertCell: UITableViewCell {
}
}

func removeCertificate() {
CertUtil.removeCertificate(folder: SettingsSivaCertCell.sivaFileFolder, fileName: DefaultsHelper.sivaCertFileName ?? "")
certificate = nil
updateUI()
}

private func showErrorMessage(errorMessage: String, topViewController: UIViewController) {
let errorDialog = AlertUtil.errorDialog(errorMessage: errorMessage, topViewController: topViewController)
topViewController.present(errorDialog, animated: true)
Expand Down Expand Up @@ -325,10 +330,8 @@ extension SettingsSivaCertCell: UITextFieldDelegate {

if textField.keyboardType == .default {
if string.isEmpty && (text.count <= 1) {
CertUtil.removeCertificate(folder: SettingsSivaCertCell.sivaFileFolder, fileName: DefaultsHelper.sivaCertFileName ?? "")
certificate = nil
DefaultsHelper.sivaUrl = string
updateUI()
removeCertificate()
}
return true
}
Expand Down
4 changes: 2 additions & 2 deletions MoppApp/MoppApp/SettingsTSACertCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ class SettingsTSACertCell: UITableViewCell {
}

func populate() {
self.certificate = TSACertUtil.getCertificate()
self.certificate = CertUtil.getCertificate(folder: SettingsTSACertCell.tsaFileFolder, fileName: DefaultsHelper.tsaCertFileName ?? "")
updateUI()
}

Expand Down Expand Up @@ -147,7 +147,7 @@ class SettingsTSACertCell: UITableViewCell {
}

func removeCertificate() {
TSACertUtil.removeCertificate()
CertUtil.removeCertificate(folder: SettingsTSACertCell.tsaFileFolder, fileName: DefaultsHelper.tsaCertFileName ?? "")
certificate = nil
updateUI()
}
Expand Down
18 changes: 14 additions & 4 deletions MoppApp/MoppApp/SettingsViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ class SettingsViewController: MoppViewController {

var isDefaultTimestampValue = true
var settingsTsaCertCell: SettingsTSACertCell?
var settingsSivaCertCell: SettingsSivaCertCell?
var settingsUseDefaultCell: SettingsDefaultValueCell?

var currentlyEditingCell: IndexPath?
Expand Down Expand Up @@ -116,6 +117,7 @@ class SettingsViewController: MoppViewController {
kind: .sivaCert,
title: L(.settingsSivaServiceTitle),
placeholderText: NSAttributedString(string: L(.settingsSivaServiceTitle)),
value: ""),
Field(
id: .resetSettings,
kind: .resetButton,
Expand Down Expand Up @@ -167,8 +169,7 @@ class SettingsViewController: MoppViewController {
var accessibilityElementsOrder = [Any]()

if !isDefaultTimestampSettingsEnabled {

let classOrder = [SettingsDefaultValueCell.self, SettingsFieldCell.self, SettingsTimeStampCell.self, SettingsTSACertCell.self, SettingsStateCell.self, SettingsSivaCertCell.self, SettingsHeaderCell.self, SettingsDefaultValueCell.self]
let classOrder = [SettingsDefaultValueCell.self, SettingsFieldCell.self, SettingsTimeStampCell.self, SettingsTSACertCell.self, SettingsStateCell.self, SettingsSivaCertCell.self, SettingsResetCell.self, SettingsHeaderCell.self, SettingsDefaultValueCell.self]

for className in classOrder {
for key in tableViewCells.keys.sorted() {
Expand All @@ -180,8 +181,7 @@ class SettingsViewController: MoppViewController {
}
}
} else {

let accessibilityClassOrder = [SettingsDefaultValueCell.self, SettingsFieldCell.self, SettingsTimeStampCell.self, SettingsStateCell.self, SettingsSivaCertCell.self, SettingsHeaderCell.self, SettingsDefaultValueCell.self]
let accessibilityClassOrder = [SettingsDefaultValueCell.self, SettingsFieldCell.self, SettingsTimeStampCell.self, SettingsStateCell.self, SettingsSivaCertCell.self, SettingsResetCell.self, SettingsHeaderCell.self, SettingsDefaultValueCell.self]

for className in accessibilityClassOrder {
for key in tableViewCells.keys.sorted() {
Expand Down Expand Up @@ -224,6 +224,14 @@ class SettingsViewController: MoppViewController {

DefaultsHelper.tsaCertFileName = ""

DefaultsHelper.sivaAccessState = .defaultAccess

if let sivaCertCell = settingsSivaCertCell {
sivaCertCell.removeCertificate()
}

DefaultsHelper.sivaCertFileName = ""

tableView.reloadData()
}
}
Expand Down Expand Up @@ -314,11 +322,13 @@ extension SettingsViewController: UITableViewDelegate, UITableViewDataSource {
sivaCert.delegate = self
sivaCert.populate(with: field)
tableViewCells[indexPath] = sivaCert
settingsSivaCertCell = sivaCert
return sivaCert
case .resetButton:
let resetCell = tableView.dequeueReusableCell(withType: SettingsResetCell.self, for: indexPath)!
resetCell.delegate = self
resetCell.populate(with: field.title)
tableViewCells[indexPath] = resetCell
return resetCell
}
}
Expand Down

0 comments on commit a721ceb

Please sign in to comment.