summaryrefslogtreecommitdiff
path: root/app/src/main/java/net/taler/anastasis/ui/home/HomeScreen.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/net/taler/anastasis/ui/home/HomeScreen.kt')
-rw-r--r--app/src/main/java/net/taler/anastasis/ui/home/HomeScreen.kt94
1 files changed, 94 insertions, 0 deletions
diff --git a/app/src/main/java/net/taler/anastasis/ui/home/HomeScreen.kt b/app/src/main/java/net/taler/anastasis/ui/home/HomeScreen.kt
new file mode 100644
index 0000000..477b8c6
--- /dev/null
+++ b/app/src/main/java/net/taler/anastasis/ui/home/HomeScreen.kt
@@ -0,0 +1,94 @@
+package net.taler.anastasis.ui.home
+
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.Download
+import androidx.compose.material.icons.outlined.Restore
+import androidx.compose.material.icons.outlined.Upload
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.LargeTopAppBar
+import androidx.compose.material3.Scaffold
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.navigation.NavController
+import androidx.navigation.compose.rememberNavController
+import net.taler.anastasis.R
+import net.taler.anastasis.Routes
+import net.taler.anastasis.ui.reusable.components.ActionCard
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun HomeScreen(
+ navController: NavController,
+) {
+ Scaffold(
+ topBar = {
+ LargeTopAppBar(
+ title = {
+ Text(stringResource(R.string.home_title))
+ },
+ )
+ }
+ ) {
+ Column(
+ modifier = Modifier
+ .padding(it)
+ .padding(16.dp),
+ verticalArrangement = Arrangement.SpaceEvenly,
+ ) {
+ // Backup
+ ActionCard(
+ modifier = Modifier
+ .weight(1f)
+ .padding(bottom = 8.dp)
+ .fillMaxWidth(),
+ icon = { Icon(Icons.Outlined.Upload, null) },
+ headline = stringResource(R.string.backup_secret),
+ onClick = {
+ navController.navigate(Routes.BackupCountry.route)
+ },
+ )
+
+ // Recovery
+ ActionCard(
+ modifier = Modifier
+ .weight(1f)
+ .padding(bottom = 8.dp)
+ .fillMaxWidth(),
+ icon = { Icon(Icons.Outlined.Download, null) },
+ headline = stringResource(R.string.recover_secret),
+ onClick = {
+ navController.navigate(Routes.RecoveryCountry.route)
+ },
+ )
+
+ // Restore session
+ ActionCard(
+ modifier = Modifier
+ .weight(1f)
+ .padding(bottom = 8.dp)
+ .fillMaxWidth(),
+ icon = { Icon(Icons.Outlined.Restore, null) },
+ headline = stringResource(R.string.restore_session),
+ onClick = {
+ navController.navigate(Routes.RestoreInit.route)
+ },
+ )
+ }
+ }
+}
+
+@Composable
+@Preview
+fun HomeScreenPreview() {
+ val navController = rememberNavController()
+ HomeScreen(navController = navController)
+} \ No newline at end of file