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.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.memorablePasswordGeneratorCell])
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class EditPasswordTableViewController: PasswordEditorTableViewController {
|
|||
[[.type: PasswordEditorCellType.scanQRCodeCell],
|
||||
[.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.memorablePasswordGeneratorCell])
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ class GeneralSettingsTableViewController: BasicStaticTableViewController {
|
|||
cell.accessoryView = showFolderSwitch
|
||||
case "Password Generator Flavor":
|
||||
cell.accessoryType = .disclosureIndicator
|
||||
cell.detailTextLabel?.text = SharedDefaults[.passwordGeneratorFlavor]
|
||||
cell.detailTextLabel?.text = PasswordGeneratorFlavour.from(SharedDefaults[.passwordGeneratorFlavor]).name
|
||||
default: break
|
||||
}
|
||||
return cell
|
||||
|
|
@ -141,21 +141,21 @@ class GeneralSettingsTableViewController: BasicStaticTableViewController {
|
|||
let optionMenu = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
|
||||
var randomFlavorActionTitle = ""
|
||||
var appleFlavorActionTitle = ""
|
||||
if SharedDefaults[.passwordGeneratorFlavor] == "Random" {
|
||||
randomFlavorActionTitle = "✓ Random String"
|
||||
appleFlavorActionTitle = "Apple's Keychain Style"
|
||||
if SharedDefaults[.passwordGeneratorFlavor] == PasswordGeneratorFlavour.RANDOM.rawValue {
|
||||
} else {
|
||||
randomFlavorActionTitle = "Random String"
|
||||
appleFlavorActionTitle = "✓ Apple's Keychain Style"
|
||||
}
|
||||
let randomFlavorAction = UIAlertAction(title: randomFlavorActionTitle, style: .default) { _ in
|
||||
SharedDefaults[.passwordGeneratorFlavor] = "Random"
|
||||
sourceCell.detailTextLabel?.text = "Random"
|
||||
SharedDefaults[.passwordGeneratorFlavor] = PasswordGeneratorFlavour.RANDOM.rawValue
|
||||
sourceCell.detailTextLabel?.text = PasswordGeneratorFlavour.RANDOM.name
|
||||
}
|
||||
|
||||
let appleFlavorAction = UIAlertAction(title: appleFlavorActionTitle, style: .default) { _ in
|
||||
SharedDefaults[.passwordGeneratorFlavor] = "Apple"
|
||||
sourceCell.detailTextLabel?.text = "Apple"
|
||||
SharedDefaults[.passwordGeneratorFlavor] = PasswordGeneratorFlavour.APPLE.rawValue
|
||||
sourceCell.detailTextLabel?.text = PasswordGeneratorFlavour.APPLE.name
|
||||
}
|
||||
|
||||
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
|
||||
|
|
|
|||
|
|
@ -6,3 +6,5 @@
|
|||
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
|
||||
}
|
||||
|
||||
public var name: String {
|
||||
return rawValue.localize()
|
||||
}
|
||||
|
||||
public var defaultLength: (min: Int, max: Int, def: Int) {
|
||||
switch self {
|
||||
case .APPLE:
|
||||
|
|
|
|||
|
|
@ -22,6 +22,11 @@ class PasswordGeneratorFlavourTest: XCTestCase {
|
|||
XCTAssertEqual(PasswordGeneratorFlavour.from(""), PasswordGeneratorFlavour.RANDOM)
|
||||
}
|
||||
|
||||
func testLocalizedName() {
|
||||
XCTAssertEqual(PasswordGeneratorFlavour.APPLE.name, "Apple".localize())
|
||||
XCTAssertEqual(PasswordGeneratorFlavour.RANDOM.name, "Random".localize())
|
||||
}
|
||||
|
||||
func testDefaultLength() {
|
||||
// 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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue