Compare commits

..

No commits in common. "7668743a1f96892279cf065992bec94eb212e658" and "2056e7f8d4f07e18dc59c2ec472c0c3ff53cec8d" have entirely different histories.

View file

@ -21,7 +21,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@ -68,34 +67,22 @@ fun HomeScreen(paddingValues: PaddingValues) {
}, },
) { targetState -> when(targetState) { ) { targetState -> when(targetState) {
0 -> ServerDialog(serverURL, {newServerURL -> serverURL = newServerURL }) 0 -> serverDialog(serverURL, {newServerURL -> serverURL = newServerURL })
1 -> PasswordDialog(username, password, {newUsername -> username = newUsername}, {newPassword -> password = newPassword }) 1 -> passwordDialog(username, password, {newUsername -> username = newUsername}, {newPassword -> password = newPassword })
} }
} }
Row { Button(
AnimatedVisibility(currentScreen == 1) { onClick = {currentScreen = nextScreen},
OutlinedButton ( modifier = Modifier.padding(top = 24.dp),
onClick = {currentScreen = nextScreen}, enabled = when(currentScreen) {
modifier = Modifier.padding(top = 24.dp) 0 -> isValidUrl(serverURL)
) { 1 -> username.isNotEmpty() && password.isNotEmpty()
Row() { else -> false
Text(text = "Use API Key") },
}
}
}
Button(
onClick = {currentScreen = nextScreen},
modifier = Modifier.padding(top = 24.dp),
enabled = when(currentScreen) {
0 -> isValidUrl(serverURL)
1 -> username.isNotEmpty() && password.isNotEmpty()
else -> false
},
) { ) {
Row() { Row() {
Text(text = "Next") Text(text = "Next")
}
} }
} }
} }
@ -132,15 +119,15 @@ fun Greeting(serverURL: String, currentScreen: Int) {
@Composable @Composable
fun ServerDialog(serverURL: String, updateServerURL: (newServerURL: String) -> Unit) { fun serverDialog(serverURL: String, updateServerURL: (newServerURL: String) -> Unit) {
var dialogServerURL by remember { mutableStateOf("") } var serverURL by remember { mutableStateOf("") }
OutlinedTextField( OutlinedTextField(
label = { Text(text = "Server URL") }, label = { Text(text = "Server URL") },
textStyle = MaterialTheme.typography.bodySmall, textStyle = MaterialTheme.typography.bodySmall,
value = serverURL, value = serverURL,
onValueChange = { text -> onValueChange = { text ->
dialogServerURL = text serverURL = text
updateServerURL(dialogServerURL) updateServerURL(serverURL)
}, },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Uri), keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Uri),
supportingText = { supportingText = {
@ -165,25 +152,25 @@ fun isValidUrl(url: String): Boolean {
} }
@Composable @Composable
fun PasswordDialog(username: String, password: String, updateUsername: (newUsername: String) -> Unit, updatePassword: (newPassword: String) -> Unit) { fun passwordDialog(username: String, password: String, updateUsername: (newUsername: String) -> Unit, updatePassword: (newPassword: String) -> Unit) {
var dialogUsername by remember { mutableStateOf("") } var username by remember { mutableStateOf("") }
var dialogPassword by remember { mutableStateOf("") } var password by remember { mutableStateOf("") }
Column { Column {
OutlinedTextField( OutlinedTextField(
label = { Text(text = "Username") }, label = { Text(text = "Username") },
textStyle = MaterialTheme.typography.bodySmall, textStyle = MaterialTheme.typography.bodySmall,
value = username, value = username,
onValueChange = { text -> onValueChange = { text ->
dialogUsername = text username = text
updateUsername(dialogUsername) updateUsername(username)
}); });
OutlinedTextField( OutlinedTextField(
label = { Text(text = "Password") }, label = { Text(text = "Password") },
textStyle = MaterialTheme.typography.bodySmall, textStyle = MaterialTheme.typography.bodySmall,
value = password, value = password,
onValueChange = { text -> onValueChange = { text ->
dialogPassword = text password = text
updatePassword(dialogPassword) updatePassword(password)
} }
) )