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,17 +125,20 @@ fun HomeScreen(paddingValues: PaddingValues) {
} }
} }
} }
AnimatedVisibility(currentScreen != "loadingDialog") {
Button( Button(
onClick = {when(currentScreen) { onClick = {
when (currentScreen) {
"serverDialog" -> currentScreen = "passwordDialog" "serverDialog" -> currentScreen = "passwordDialog"
"passwordDialog" -> currentScreen = "loadingDialog" "passwordDialog" -> currentScreen = "loadingDialog"
"apiDialog" -> currentScreen = "loadingDialog" "apiDialog" -> currentScreen = "loadingDialog"
"loadingDialog" -> currentScreen = "loadingDialog" "loadingDialog" -> currentScreen = "loadingDialog"
}}, }
},
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.height(96.dp), .height(96.dp),
enabled = when(currentScreen) { enabled = when (currentScreen) {
"serverDialog" -> isValidUrl(serverURL) "serverDialog" -> isValidUrl(serverURL)
"passwordDialog" -> username.isNotEmpty() && password.isNotEmpty() "passwordDialog" -> username.isNotEmpty() && password.isNotEmpty()
"apiDialog" -> apiKey.isNotEmpty() "apiDialog" -> apiKey.isNotEmpty()
@ -142,7 +146,16 @@ fun HomeScreen(paddingValues: PaddingValues) {
}, },
) { ) {
Row() { Row() {
Text(text = "Next") Text(
text = when (currentScreen) {
"serverDialog" -> "Next"
"passwordDialog" -> "Login"
"apiDialog" -> "Login"
else -> ""
}
)
}
} }
} }
} }