summaryrefslogtreecommitdiff
path: root/anastasis/src/main/java/net/taler/anastasis/ui/home/HomeScreen.kt
blob: 8cee602042df12298faff048143c45d0005a2032 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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.hilt.navigation.compose.hiltViewModel
import net.taler.anastasis.R
import net.taler.anastasis.ui.reusable.components.ActionCard
import net.taler.anastasis.ui.theme.LocalSpacing
import net.taler.anastasis.viewmodels.ReducerViewModel

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun HomeScreen(
    viewModel: ReducerViewModel = hiltViewModel(),
) {
    Scaffold(
        topBar = {
            LargeTopAppBar(
                title = {
                    Text(stringResource(R.string.home_title))
                },
            )
        }
    ) {
        Column(
            modifier = Modifier
                .padding(it)
                .padding(LocalSpacing.current.medium),
            verticalArrangement = Arrangement.SpaceEvenly,
        ) {
            // Backup
            ActionCard(
                modifier = Modifier
                    .weight(1f)
                    .padding(bottom = LocalSpacing.current.small)
                    .fillMaxWidth(),
                icon = { Icon(Icons.Outlined.Upload, null) },
                headline = stringResource(R.string.backup_secret),
                onClick = {
                    viewModel.reducerManager?.startBackup()
                },
            )

            // Recovery
            ActionCard(
                modifier = Modifier
                    .weight(1f)
                    .padding(bottom = LocalSpacing.current.small)
                    .fillMaxWidth(),
                icon = { Icon(Icons.Outlined.Download, null) },
                headline = stringResource(R.string.recover_secret),
                onClick = {
                    viewModel.reducerManager?.startRecovery()
                },
            )

            // Restore session
            ActionCard(
                modifier = Modifier
                    .weight(1f)
                    .padding(bottom = LocalSpacing.current.small)
                    .fillMaxWidth(),
                icon = { Icon(Icons.Outlined.Restore, null) },
                headline = stringResource(R.string.restore_session),
                onClick = {},
            )
        }
    }
}