package
com.geeksforgeeks.passwordtoggle
import
android.os.Bundle
import
androidx.activity.ComponentActivity
import
androidx.activity.compose.setContent
import
androidx.compose.foundation.layout.*
import
androidx.compose.foundation.text.KeyboardOptions
import
androidx.compose.material.*
import
androidx.compose.material.icons.Icons
import
androidx.compose.material.icons.filled.Visibility
import
androidx.compose.material.icons.filled.VisibilityOff
import
androidx.compose.runtime.*
import
androidx.compose.ui.Alignment
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.text.input.KeyboardType
import
androidx.compose.ui.text.input.PasswordVisualTransformation
import
androidx.compose.ui.text.input.VisualTransformation
class
MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContent {
Scaffold(
topBar = { TopAppBar(title = { Text(
"GFG | Toggle Password"
, color = Color.White) }, backgroundColor = Color(
0xff0f9d58
)) },
content = {
Column(Modifier.fillMaxSize(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center) {
var password by remember { mutableStateOf(
""
) }
var passwordVisible by remember { mutableStateOf(
false
) }
TextField(
value = password,
onValueChange = { password = it },
label = { Text(
"Password"
) },
singleLine =
true
,
placeholder = { Text(
"Password"
) },
visualTransformation =
if
(passwordVisible) VisualTransformation.None
else
PasswordVisualTransformation(),
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password),
trailingIcon = {
val image =
if
(passwordVisible)
Icons.Filled.Visibility
else
Icons.Filled.VisibilityOff
val description =
if
(passwordVisible)
"Hide password"
else
"Show password"
IconButton(onClick = {passwordVisible = !passwordVisible}){
Icon(imageVector = image, description)
}
}
)
}
}
)
}
}
}