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"/>
-
-