Compare commits

...

2 commits

2 changed files with 36 additions and 23 deletions

View file

@ -10,7 +10,7 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import de.lelehier.keeper.ui.theme.KeeperTheme import de.lelehier.keeper.ui.theme.KeeperTheme
import de.lelehier.keeper.screens.HomeScreen import de.lelehier.keeper.screens.LoginScreen
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -21,7 +21,7 @@ class MainActivity : ComponentActivity() {
var currentScreen by remember { mutableStateOf(0) } var currentScreen by remember { mutableStateOf(0) }
Scaffold() { paddingValues -> Scaffold() { paddingValues ->
HomeScreen(paddingValues) LoginScreen(paddingValues)
} }
} }
} }

View file

@ -53,7 +53,7 @@ import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
@Composable @Composable
fun HomeScreen(paddingValues: PaddingValues) { fun LoginScreen(paddingValues: PaddingValues) {
var currentScreen by rememberSaveable { mutableStateOf("serverDialog") } var currentScreen by rememberSaveable { mutableStateOf("serverDialog") }
var serverURL by rememberSaveable { mutableStateOf("") } var serverURL by rememberSaveable { mutableStateOf("") }
var username by rememberSaveable { mutableStateOf("") } var username by rememberSaveable { mutableStateOf("") }
@ -88,7 +88,8 @@ fun HomeScreen(paddingValues: PaddingValues) {
AnimatedVisibility(currentScreen == "passwordDialog" || currentScreen == "apiDialog") { AnimatedVisibility(currentScreen == "passwordDialog" || currentScreen == "apiDialog") {
Row( Row(
modifier = Modifier.padding(bottom = 12.dp) modifier = Modifier
.padding(bottom = 12.dp)
.fillMaxWidth(), .fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween horizontalArrangement = Arrangement.SpaceBetween
) { ) {
@ -124,25 +125,37 @@ fun HomeScreen(paddingValues: PaddingValues) {
} }
} }
} }
Button( AnimatedVisibility(currentScreen != "loadingDialog") {
onClick = {when(currentScreen) { Button(
"serverDialog" -> currentScreen = "passwordDialog" onClick = {
"passwordDialog" -> currentScreen = "loadingDialog" when (currentScreen) {
"apiDialog" -> currentScreen = "loadingDialog" "serverDialog" -> currentScreen = "passwordDialog"
"loadingDialog" -> currentScreen = "loadingDialog" "passwordDialog" -> currentScreen = "loadingDialog"
}}, "apiDialog" -> currentScreen = "loadingDialog"
modifier = Modifier "loadingDialog" -> currentScreen = "loadingDialog"
.fillMaxWidth() }
.height(96.dp), },
enabled = when(currentScreen) { modifier = Modifier
"serverDialog" -> isValidUrl(serverURL) .fillMaxWidth()
"passwordDialog" -> username.isNotEmpty() && password.isNotEmpty() .height(96.dp),
"apiDialog" -> apiKey.isNotEmpty() enabled = when (currentScreen) {
else -> false "serverDialog" -> isValidUrl(serverURL)
}, "passwordDialog" -> username.isNotEmpty() && password.isNotEmpty()
) { "apiDialog" -> apiKey.isNotEmpty()
Row() { else -> false
Text(text = "Next") },
) {
Row() {
Text(
text = when (currentScreen) {
"serverDialog" -> "Next"
"passwordDialog" -> "Login"
"apiDialog" -> "Login"
else -> ""
}
)
}
} }
} }
} }