11package app.revanced.manager.compose.ui.screen.settings
22
3+ import androidx.compose.foundation.background
4+ import androidx.compose.foundation.clickable
5+ import androidx.compose.foundation.layout.Arrangement
6+ import androidx.compose.foundation.layout.Box
37import androidx.compose.foundation.layout.Column
8+ import androidx.compose.foundation.layout.Row
49import androidx.compose.foundation.layout.fillMaxSize
10+ import androidx.compose.foundation.layout.fillMaxWidth
511import androidx.compose.foundation.layout.padding
612import androidx.compose.foundation.rememberScrollState
13+ import androidx.compose.foundation.shape.RoundedCornerShape
714import androidx.compose.foundation.verticalScroll
15+ import androidx.compose.material.icons.Icons
16+ import androidx.compose.material.icons.filled.Update
817import androidx.compose.material3.ExperimentalMaterial3Api
18+ import androidx.compose.material3.Icon
19+ import androidx.compose.material3.ListItem
20+ import androidx.compose.material3.MaterialTheme
921import androidx.compose.material3.Scaffold
22+ import androidx.compose.material3.Text
1023import androidx.compose.runtime.Composable
24+ import androidx.compose.ui.Alignment
1125import androidx.compose.ui.Modifier
26+ import androidx.compose.ui.draw.clip
1227import androidx.compose.ui.res.stringResource
28+ import androidx.compose.ui.unit.dp
1329import app.revanced.manager.compose.R
1430import app.revanced.manager.compose.ui.component.AppTopBar
1531
@@ -18,6 +34,13 @@ import app.revanced.manager.compose.ui.component.AppTopBar
1834fun UpdatesSettingsScreen (
1935 onBackClick : () -> Unit
2036) {
37+
38+ val listItems = listOf (
39+ Triple (stringResource(R .string.update_channel), stringResource(R .string.update_channel_description), third = { /* TODO*/ }),
40+ Triple (stringResource(R .string.update_notifications), stringResource(R .string.update_notifications_description), third = { /* TODO*/ }),
41+ Triple (stringResource(R .string.changelog), stringResource(R .string.changelog_description), third = { /* TODO*/ }),
42+ )
43+
2144 Scaffold (
2245 topBar = {
2346 AppTopBar (
@@ -27,9 +50,44 @@ fun UpdatesSettingsScreen(
2750 }
2851 ) { paddingValues ->
2952 Column (
30- modifier = Modifier .fillMaxSize().padding(paddingValues).verticalScroll(rememberScrollState())
53+ modifier = Modifier
54+ .fillMaxSize()
55+ .padding(paddingValues)
56+ .verticalScroll(rememberScrollState())
3157 ) {
58+ UpdateNotification ()
59+ listItems.forEach { (title, description, onClick) ->
60+ ListItem (
61+ modifier = Modifier
62+ .fillMaxWidth()
63+ .padding(8 .dp)
64+ .clickable { onClick() },
65+ headlineContent = { Text (title, style = MaterialTheme .typography.titleLarge) },
66+ supportingContent = { Text (description, style = MaterialTheme .typography.bodyMedium, color = MaterialTheme .colorScheme.outline) }
67+ )
68+ }
69+ }
70+ }
71+ }
3272
73+ @Composable
74+ fun UpdateNotification () {
75+ Box (
76+ modifier = Modifier
77+ .fillMaxWidth()
78+ .padding(16 .dp)
79+ .clip(RoundedCornerShape (16 .dp))
80+ .background(MaterialTheme .colorScheme.secondaryContainer)
81+ ) {
82+ Row (
83+ modifier = Modifier
84+ .fillMaxWidth()
85+ .padding(16 .dp),
86+ verticalAlignment = Alignment .CenterVertically ,
87+ horizontalArrangement = Arrangement .spacedBy(16 .dp)
88+ ) {
89+ Icon (imageVector = Icons .Default .Update , contentDescription = null )
90+ Text (text = stringResource(R .string.update_notification), style = MaterialTheme .typography.bodyMedium)
3391 }
3492 }
3593}
0 commit comments