@@ -2,14 +2,18 @@ package app.myfaq.android.screens
22
33import android.widget.Toast
44import androidx.compose.foundation.clickable
5+ import androidx.compose.foundation.layout.Arrangement
56import androidx.compose.foundation.layout.Column
7+ import androidx.compose.foundation.layout.Row
8+ import androidx.compose.foundation.layout.fillMaxWidth
69import androidx.compose.foundation.layout.padding
710import androidx.compose.material3.AlertDialog
811import androidx.compose.material3.CenterAlignedTopAppBar
912import androidx.compose.material3.ExperimentalMaterial3Api
1013import androidx.compose.material3.HorizontalDivider
1114import androidx.compose.material3.ListItem
1215import androidx.compose.material3.MaterialTheme
16+ import androidx.compose.material3.RadioButton
1317import androidx.compose.material3.Scaffold
1418import androidx.compose.material3.Text
1519import androidx.compose.material3.TextButton
@@ -19,8 +23,11 @@ import androidx.compose.runtime.getValue
1923import androidx.compose.runtime.mutableStateOf
2024import androidx.compose.runtime.remember
2125import androidx.compose.runtime.setValue
26+ import androidx.compose.ui.Alignment
2227import androidx.compose.ui.Modifier
2328import androidx.compose.ui.platform.LocalContext
29+ import app.myfaq.android.LocalThemeState
30+ import app.myfaq.android.ThemeMode
2431import app.myfaq.shared.data.ActiveInstanceManager
2532import app.myfaq.shared.data.MyFaqDatabase
2633import org.koin.compose.koinInject
@@ -62,6 +69,8 @@ fun SettingsScreen(
6269 }
6370 }
6471
72+ val themeState = LocalThemeState .current
73+
6574 Scaffold (
6675 topBar = {
6776 CenterAlignedTopAppBar (title = { Text (" Settings" ) })
@@ -78,6 +87,37 @@ fun SettingsScreen(
7887 HorizontalDivider ()
7988 }
8089
90+ // Appearance
91+ ListItem (
92+ overlineContent = { Text (" Appearance" ) },
93+ headlineContent = {
94+ Row (
95+ modifier = Modifier .fillMaxWidth(),
96+ horizontalArrangement = Arrangement .SpaceBetween ,
97+ ) {
98+ ThemeMode .entries.forEach { mode ->
99+ Row (
100+ verticalAlignment = Alignment .CenterVertically ,
101+ modifier =
102+ Modifier .clickable {
103+ themeState.setMode(mode)
104+ },
105+ ) {
106+ RadioButton (
107+ selected = themeState.mode == mode,
108+ onClick = { themeState.setMode(mode) },
109+ )
110+ Text (
111+ text = mode.label,
112+ style = MaterialTheme .typography.bodyMedium,
113+ )
114+ }
115+ }
116+ }
117+ },
118+ )
119+ HorizontalDivider ()
120+
81121 // Switch instance
82122 ListItem (
83123 headlineContent = { Text (" Switch instance" ) },
0 commit comments