@@ -13,11 +13,18 @@ import androidx.compose.foundation.layout.Arrangement
13
13
import androidx.compose.foundation.layout.Column
14
14
import androidx.compose.foundation.layout.fillMaxSize
15
15
import androidx.compose.foundation.layout.padding
16
+ import androidx.compose.material3.Button
16
17
import androidx.compose.material3.Text
17
18
import androidx.compose.runtime.Composable
19
+ import androidx.compose.runtime.getValue
18
20
import androidx.compose.ui.Alignment
19
21
import androidx.compose.ui.Modifier
20
22
import androidx.compose.ui.text.font.FontWeight
23
+ import androidx.lifecycle.compose.collectAsStateWithLifecycle
24
+ import org.koin.compose.viewmodel.koinViewModel
25
+ import org.mifos.core.datastore.model.AppLanguage
26
+ import org.mifos.core.datastore.model.AppSettings
27
+ import org.mifos.core.datastore.model.AppTheme
21
28
import org.mifos.core.designsystem.component.MifosScaffold
22
29
23
30
@Composable
@@ -36,6 +43,10 @@ internal fun SettingsScreenContent(
36
43
onBackClick : () -> Unit ,
37
44
modifier : Modifier = Modifier ,
38
45
) {
46
+ val viewmodel: SettingsViewmodel = koinViewModel()
47
+
48
+ val uiState by viewmodel.settingsUiState.collectAsStateWithLifecycle()
49
+
39
50
MifosScaffold (
40
51
topBarTitle = " Settings" ,
41
52
backPress = onBackClick,
@@ -50,6 +61,27 @@ internal fun SettingsScreenContent(
50
61
) {
51
62
// SettingsScreenContent
52
63
Text (text = " Settings Screen" , fontWeight = FontWeight .SemiBold )
64
+ Button (onClick = {
65
+ viewmodel.updateSettings(
66
+ settings = AppSettings (
67
+ theme = AppTheme .LIGHT .themeName,
68
+ language = AppLanguage .ENGLISH .code,
69
+ ),
70
+ )
71
+ }) {
72
+ Text (text = " Light" )
73
+ }
74
+ Button (onClick = {
75
+ viewmodel.updateSettings(
76
+ settings = AppSettings (
77
+ theme = AppTheme .DARK .themeName,
78
+ language = AppLanguage .ENGLISH .code,
79
+ ),
80
+ )
81
+ }) {
82
+ Text (text = " Dark" )
83
+ }
84
+ Text (text = " Theme = ${uiState.theme} " )
53
85
}
54
86
}
55
87
}
0 commit comments