Compare commits

..

No commits in common. "b8d6c098ac7a3202a46e48def0f562e6dea86ea5" and "81661b327088d130d1d70c152ffd377364f70d68" have entirely different histories.

2 changed files with 23 additions and 36 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.LoginScreen import de.lelehier.keeper.screens.HomeScreen
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 ->
LoginScreen(paddingValues) HomeScreen(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 LoginScreen(paddingValues: PaddingValues) { fun HomeScreen(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,8 +88,7 @@ fun LoginScreen(paddingValues: PaddingValues) {
AnimatedVisibility(currentScreen == "passwordDialog" || currentScreen == "apiDialog") { AnimatedVisibility(currentScreen == "passwordDialog" || currentScreen == "apiDialog") {
Row( Row(
modifier = Modifier modifier = Modifier.padding(bottom = 12.dp)
.padding(bottom = 12.dp)
.fillMaxWidth(), .fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween horizontalArrangement = Arrangement.SpaceBetween
) { ) {
@ -125,37 +124,25 @@ fun LoginScreen(paddingValues: PaddingValues) {
} }
} }
} }
AnimatedVisibility(currentScreen != "loadingDialog") { Button(
Button( onClick = {when(currentScreen) {
onClick = { "serverDialog" -> currentScreen = "passwordDialog"
when (currentScreen) { "passwordDialog" -> currentScreen = "loadingDialog"
"serverDialog" -> currentScreen = "passwordDialog" "apiDialog" -> currentScreen = "loadingDialog"
"passwordDialog" -> currentScreen = "loadingDialog" "loadingDialog" -> currentScreen = "loadingDialog"
"apiDialog" -> currentScreen = "loadingDialog" }},
"loadingDialog" -> currentScreen = "loadingDialog" modifier = Modifier
} .fillMaxWidth()
}, .height(96.dp),
modifier = Modifier enabled = when(currentScreen) {
.fillMaxWidth() "serverDialog" -> isValidUrl(serverURL)
.height(96.dp), "passwordDialog" -> username.isNotEmpty() && password.isNotEmpty()
enabled = when (currentScreen) { "apiDialog" -> apiKey.isNotEmpty()
"serverDialog" -> isValidUrl(serverURL) else -> false
"passwordDialog" -> username.isNotEmpty() && password.isNotEmpty() },
"apiDialog" -> apiKey.isNotEmpty() ) {
else -> false Row() {
}, Text(text = "Next")
) {
Row() {
Text(
text = when (currentScreen) {
"serverDialog" -> "Next"
"passwordDialog" -> "Login"
"apiDialog" -> "Login"
else -> ""
}
)
}
} }
} }
} }