BIT-618: Auto-enable At Least One Toggle in Password Generation to Prevent Errors (#357)

This commit is contained in:
joshua-livefront
2023-12-08 14:06:18 -05:00
committed by Álison Fernandes
parent 33a99ce68d
commit 9cbc73337e
2 changed files with 121 additions and 1 deletions

View File

@@ -666,7 +666,12 @@ class GeneratorViewModel @Inject constructor(
if (currentPasswordType !is Password) {
return@updateGeneratorMainTypePasscode currentSelectedType
}
currentSelectedType.copy(selectedType = block(currentPasswordType))
val updatedPasswordType = currentPasswordType
.let(block)
.enforceAtLeastOneToggleOn()
currentSelectedType.copy(selectedType = updatedPasswordType)
}
}
@@ -1409,3 +1414,16 @@ sealed class GeneratorEvent {
val message: Text,
) : GeneratorEvent()
}
@Suppress("ComplexCondition")
private fun Password.enforceAtLeastOneToggleOn(): Password =
// If all toggles are off, turn on useLowercase
if (!this.useCapitals &&
!this.useLowercase &&
!this.useNumbers &&
!this.useSpecialChars
) {
this.copy(useLowercase = true)
} else {
this
}