Use PasswordGeneratorFlavor class to set user defaults and UI elements
This commit is contained in:
parent
857a8f44bf
commit
2d5ca58bd9
6 changed files with 19 additions and 8 deletions
|
|
@ -20,7 +20,7 @@ class AddPasswordTableViewController: PasswordEditorTableViewController {
|
||||||
[[.type: PasswordEditorCellType.additionsCell, .title: "additions"]],
|
[[.type: PasswordEditorCellType.additionsCell, .title: "additions"]],
|
||||||
[[.type: PasswordEditorCellType.scanQRCodeCell]]
|
[[.type: PasswordEditorCellType.scanQRCodeCell]]
|
||||||
]
|
]
|
||||||
if PasswordGeneratorFlavour.from(SharedDefaults[.passwordGeneratorFlavor]) == PasswordGeneratorFlavour.RANDOM {
|
if PasswordGeneratorFlavour.from(SharedDefaults[.passwordGeneratorFlavor]) == .RANDOM {
|
||||||
tableData[1].append([.type: PasswordEditorCellType.passwordLengthCell, .title: "passwordlength"])
|
tableData[1].append([.type: PasswordEditorCellType.passwordLengthCell, .title: "passwordlength"])
|
||||||
}
|
}
|
||||||
tableData[1].append([.type: PasswordEditorCellType.memorablePasswordGeneratorCell])
|
tableData[1].append([.type: PasswordEditorCellType.memorablePasswordGeneratorCell])
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class EditPasswordTableViewController: PasswordEditorTableViewController {
|
||||||
[[.type: PasswordEditorCellType.scanQRCodeCell],
|
[[.type: PasswordEditorCellType.scanQRCodeCell],
|
||||||
[.type: PasswordEditorCellType.deletePasswordCell]]
|
[.type: PasswordEditorCellType.deletePasswordCell]]
|
||||||
]
|
]
|
||||||
if PasswordGeneratorFlavour.from(SharedDefaults[.passwordGeneratorFlavor]) == PasswordGeneratorFlavour.RANDOM {
|
if PasswordGeneratorFlavour.from(SharedDefaults[.passwordGeneratorFlavor]) == .RANDOM {
|
||||||
tableData[1].append([.type: PasswordEditorCellType.passwordLengthCell, .title: "passwordlength"])
|
tableData[1].append([.type: PasswordEditorCellType.passwordLengthCell, .title: "passwordlength"])
|
||||||
}
|
}
|
||||||
tableData[1].append([.type: PasswordEditorCellType.memorablePasswordGeneratorCell])
|
tableData[1].append([.type: PasswordEditorCellType.memorablePasswordGeneratorCell])
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@ class GeneralSettingsTableViewController: BasicStaticTableViewController {
|
||||||
cell.accessoryView = showFolderSwitch
|
cell.accessoryView = showFolderSwitch
|
||||||
case "Password Generator Flavor":
|
case "Password Generator Flavor":
|
||||||
cell.accessoryType = .disclosureIndicator
|
cell.accessoryType = .disclosureIndicator
|
||||||
cell.detailTextLabel?.text = SharedDefaults[.passwordGeneratorFlavor]
|
cell.detailTextLabel?.text = PasswordGeneratorFlavour.from(SharedDefaults[.passwordGeneratorFlavor]).name
|
||||||
default: break
|
default: break
|
||||||
}
|
}
|
||||||
return cell
|
return cell
|
||||||
|
|
@ -141,21 +141,21 @@ class GeneralSettingsTableViewController: BasicStaticTableViewController {
|
||||||
let optionMenu = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
|
let optionMenu = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
|
||||||
var randomFlavorActionTitle = ""
|
var randomFlavorActionTitle = ""
|
||||||
var appleFlavorActionTitle = ""
|
var appleFlavorActionTitle = ""
|
||||||
if SharedDefaults[.passwordGeneratorFlavor] == "Random" {
|
|
||||||
randomFlavorActionTitle = "✓ Random String"
|
randomFlavorActionTitle = "✓ Random String"
|
||||||
appleFlavorActionTitle = "Apple's Keychain Style"
|
appleFlavorActionTitle = "Apple's Keychain Style"
|
||||||
|
if SharedDefaults[.passwordGeneratorFlavor] == PasswordGeneratorFlavour.RANDOM.rawValue {
|
||||||
} else {
|
} else {
|
||||||
randomFlavorActionTitle = "Random String"
|
randomFlavorActionTitle = "Random String"
|
||||||
appleFlavorActionTitle = "✓ Apple's Keychain Style"
|
appleFlavorActionTitle = "✓ Apple's Keychain Style"
|
||||||
}
|
}
|
||||||
let randomFlavorAction = UIAlertAction(title: randomFlavorActionTitle, style: .default) { _ in
|
let randomFlavorAction = UIAlertAction(title: randomFlavorActionTitle, style: .default) { _ in
|
||||||
SharedDefaults[.passwordGeneratorFlavor] = "Random"
|
SharedDefaults[.passwordGeneratorFlavor] = PasswordGeneratorFlavour.RANDOM.rawValue
|
||||||
sourceCell.detailTextLabel?.text = "Random"
|
sourceCell.detailTextLabel?.text = PasswordGeneratorFlavour.RANDOM.name
|
||||||
}
|
}
|
||||||
|
|
||||||
let appleFlavorAction = UIAlertAction(title: appleFlavorActionTitle, style: .default) { _ in
|
let appleFlavorAction = UIAlertAction(title: appleFlavorActionTitle, style: .default) { _ in
|
||||||
SharedDefaults[.passwordGeneratorFlavor] = "Apple"
|
SharedDefaults[.passwordGeneratorFlavor] = PasswordGeneratorFlavour.APPLE.rawValue
|
||||||
sourceCell.detailTextLabel?.text = "Apple"
|
sourceCell.detailTextLabel?.text = PasswordGeneratorFlavour.APPLE.name
|
||||||
}
|
}
|
||||||
|
|
||||||
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
|
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
|
||||||
|
|
|
||||||
|
|
@ -6,3 +6,5 @@
|
||||||
Copyright © 2019 Bob Sun. All rights reserved.
|
Copyright © 2019 Bob Sun. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
"Apple" = "Apple";
|
||||||
|
"Random" = "Random";
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,10 @@ public enum PasswordGeneratorFlavour: String {
|
||||||
return PasswordGeneratorFlavour(rawValue: option) ?? PasswordGeneratorFlavour.RANDOM
|
return PasswordGeneratorFlavour(rawValue: option) ?? PasswordGeneratorFlavour.RANDOM
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public var name: String {
|
||||||
|
return rawValue.localize()
|
||||||
|
}
|
||||||
|
|
||||||
public var defaultLength: (min: Int, max: Int, def: Int) {
|
public var defaultLength: (min: Int, max: Int, def: Int) {
|
||||||
switch self {
|
switch self {
|
||||||
case .APPLE:
|
case .APPLE:
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,11 @@ class PasswordGeneratorFlavourTest: XCTestCase {
|
||||||
XCTAssertEqual(PasswordGeneratorFlavour.from(""), PasswordGeneratorFlavour.RANDOM)
|
XCTAssertEqual(PasswordGeneratorFlavour.from(""), PasswordGeneratorFlavour.RANDOM)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testLocalizedName() {
|
||||||
|
XCTAssertEqual(PasswordGeneratorFlavour.APPLE.name, "Apple".localize())
|
||||||
|
XCTAssertEqual(PasswordGeneratorFlavour.RANDOM.name, "Random".localize())
|
||||||
|
}
|
||||||
|
|
||||||
func testDefaultLength() {
|
func testDefaultLength() {
|
||||||
// Ensure properly chosen default length values. So this check no longer needs to be performed in the code.
|
// Ensure properly chosen default length values. So this check no longer needs to be performed in the code.
|
||||||
PasswordGeneratorFlavour.allCases.map { $0.defaultLength }.forEach { defaultLength in
|
PasswordGeneratorFlavour.allCases.map { $0.defaultLength }.forEach { defaultLength in
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue