From de77074c50b93803f817f60c98d616e9e502160a Mon Sep 17 00:00:00 2001 From: Pavel Baksy Date: Thu, 8 Feb 2024 23:37:45 +0100 Subject: [PATCH] Add selector for password length and remove selector for multiple passwords. --- .../cz/bugsy/passwordzebra/MainActivity.kt | 23 +++++++++++++++---- app/src/main/res/layout/activity_main.xml | 8 ------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/cz/bugsy/passwordzebra/MainActivity.kt b/app/src/main/java/cz/bugsy/passwordzebra/MainActivity.kt index 43c071f..f8f0d23 100644 --- a/app/src/main/java/cz/bugsy/passwordzebra/MainActivity.kt +++ b/app/src/main/java/cz/bugsy/passwordzebra/MainActivity.kt @@ -29,7 +29,13 @@ class MainActivity : AppCompatActivity() { generateButton = findViewById(R.id.generateButton) switchWithoutSpaces = findViewById(R.id.switchWithoutSpaces) switchSpecialChars = findViewById(R.id.switchSpecialChars) + passwordLengthPicker = findViewById(R.id.passwordLengthPicker) + // Set the range of selectable values for password length (1 to 10) + val defaultPasswordLength = 4 + passwordLengthPicker.minValue = 1 + passwordLengthPicker.maxValue = 10 + passwordLengthPicker.value = defaultPasswordLength generateButton.setOnClickListener { generatePassword() @@ -45,8 +51,8 @@ class MainActivity : AppCompatActivity() { } private fun generatePassword() { - - val password = generateRandomWords(6) + val passwordLength = passwordLengthPicker.value + val password = generateRandomWords(passwordLength) passwordTextView.text = password } @@ -108,13 +114,22 @@ class MainActivity : AppCompatActivity() { } private fun addSpecialCharacters(password: String): String { - // Add special characters like $, comma, dot, etc. + // Insert special character, uppercase character, and digit at random positions within the password val specialChars = listOf('$', ',', '.', '#', '@', '!', '%', '&') val random = Random.Default val index = random.nextInt(0, password.length + 1) val specialChar = specialChars[random.nextInt(specialChars.size)] - return password.substring(0, index) + specialChar + password.substring(index) + val uppercaseChar = ('A'..'Z').random() // Generate random uppercase character + val digit = random.nextInt(0, 10) // Generate random digit (number) + + val newPassword = StringBuilder(password) + newPassword.insert(index, specialChar) + newPassword.insert(random.nextInt(0, newPassword.length + 1), uppercaseChar) + newPassword.insert(random.nextInt(0, newPassword.length + 1), digit.toString()) + + //return password.substring(0, index) + specialChar + password.substring(index) + return newPassword.toString() } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 71dcabf..ae06196 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -48,14 +48,6 @@ android:layout_centerHorizontal="true" android:layout_marginTop="32dp"/> - -