Skip to content

Commit 3647013

Browse files
committed
Update project
1 parent a7d5431 commit 3647013

2 files changed

Lines changed: 73 additions & 39 deletions

File tree

mobile/src/main/kotlin/org/michaelbel/template/ui/settings/SettingsScreen.kt

Lines changed: 27 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,33 @@ package org.michaelbel.template.ui.settings
44

55
import androidx.compose.foundation.clickable
66
import androidx.compose.foundation.layout.PaddingValues
7-
import androidx.compose.foundation.layout.calculateEndPadding
8-
import androidx.compose.foundation.layout.calculateStartPadding
7+
import androidx.compose.foundation.layout.WindowInsetsSides
98
import androidx.compose.foundation.layout.fillMaxSize
109
import androidx.compose.foundation.layout.fillMaxWidth
10+
import androidx.compose.foundation.layout.only
1111
import androidx.compose.foundation.layout.padding
12-
import androidx.compose.foundation.layout.size
1312
import androidx.compose.foundation.lazy.LazyColumn
1413
import androidx.compose.material3.ExperimentalMaterial3Api
1514
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
1615
import androidx.compose.material3.Icon
17-
import androidx.compose.material3.IconButtonDefaults
1816
import androidx.compose.material3.ListItem
1917
import androidx.compose.material3.ListItemDefaults
2018
import androidx.compose.material3.MaterialTheme
2119
import androidx.compose.material3.Scaffold
20+
import androidx.compose.material3.ScaffoldDefaults
2221
import androidx.compose.material3.Switch
2322
import androidx.compose.material3.Text
2423
import androidx.compose.material3.TopAppBar
24+
import androidx.compose.material3.TopAppBarDefaults
2525
import androidx.compose.runtime.Composable
2626
import androidx.compose.runtime.getValue
2727
import androidx.compose.ui.Modifier
2828
import androidx.compose.ui.draw.clip
29-
import androidx.compose.ui.platform.LocalLayoutDirection
29+
import androidx.compose.ui.input.nestedscroll.nestedScroll
3030
import androidx.compose.ui.unit.dp
3131
import androidx.lifecycle.compose.collectAsStateWithLifecycle
3232
import org.koin.androidx.compose.koinViewModel
33-
import org.michaelbel.shared.icons.Github
33+
import org.michaelbel.shared.icons.FormatPaint
3434
import org.michaelbel.shared.middleLargeIncreasedListItemShape
3535
import org.michaelbel.template.ui.settings.intent.SettingsIntent
3636

@@ -39,55 +39,43 @@ fun SettingsScreen(
3939
viewModel: SettingsViewModel = koinViewModel()
4040
) {
4141
val state by viewModel.stateFlow.collectAsStateWithLifecycle()
42+
val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior()
4243

4344
Scaffold(
44-
modifier = Modifier.fillMaxSize(),
45+
modifier = Modifier
46+
.fillMaxSize()
47+
.nestedScroll(scrollBehavior.nestedScrollConnection),
4548
topBar = {
4649
TopAppBar(
47-
title = {
48-
Text(
49-
text = "Settings"
50-
)
51-
}
50+
title = { Text(text = "Settings") },
51+
colors = TopAppBarDefaults.topAppBarColors(
52+
scrolledContainerColor = MaterialTheme.colorScheme.surfaceContainer
53+
),
54+
scrollBehavior = scrollBehavior
5255
)
53-
}
56+
},
57+
contentWindowInsets = ScaffoldDefaults.contentWindowInsets.only(WindowInsetsSides.Horizontal)
5458
) { innerPadding ->
55-
val layoutDirection = LocalLayoutDirection.current
56-
5759
LazyColumn(
58-
modifier = Modifier.fillMaxSize(),
59-
contentPadding = PaddingValues(
60-
start = innerPadding.calculateStartPadding(layoutDirection),
61-
top = innerPadding.calculateTopPadding().plus(16.dp),
62-
end = innerPadding.calculateEndPadding(layoutDirection),
63-
bottom = innerPadding.calculateBottomPadding().plus(16.dp)
64-
)
60+
modifier = Modifier
61+
.padding(innerPadding)
62+
.fillMaxSize(),
63+
contentPadding = PaddingValues(16.dp)
6564
) {
6665
item {
6766
ListItem(
6867
modifier = Modifier
6968
.fillMaxWidth()
70-
.padding(horizontal = 16.dp)
7169
.clip(middleLargeIncreasedListItemShape)
7270
.clickable { viewModel.dispatch(SettingsIntent.ToggleDynamicColors) },
73-
colors = ListItemDefaults.colors(containerColor = MaterialTheme.colorScheme.inversePrimary),
74-
headlineContent = {
75-
Text(
76-
text = "Dynamic Colors",
77-
style = MaterialTheme.typography.titleLarge
78-
)
79-
},
80-
supportingContent = {
81-
Text(
82-
text = "Apply colors from Wallpaper",
83-
style = MaterialTheme.typography.bodyMedium
84-
)
85-
},
71+
colors = ListItemDefaults.colors(
72+
containerColor = MaterialTheme.colorScheme.surfaceContainerHighest
73+
),
74+
headlineContent = { Text(text = "Dynamic Colors") },
8675
leadingContent = {
8776
Icon(
88-
imageVector = Github,
89-
contentDescription = null,
90-
modifier = Modifier.size(IconButtonDefaults.smallIconSize)
77+
imageVector = FormatPaint,
78+
contentDescription = null
9179
)
9280
},
9381
trailingContent = {
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package org.michaelbel.shared.icons
2+
3+
import androidx.compose.material.icons.materialIcon
4+
import androidx.compose.material.icons.materialPath
5+
import androidx.compose.ui.graphics.vector.ImageVector
6+
7+
private var _formatPaint: ImageVector? = null
8+
val FormatPaint: ImageVector
9+
get() {
10+
if (_formatPaint != null) {
11+
return _formatPaint!!
12+
}
13+
_formatPaint = materialIcon(name = "Outlined.FormatPaint") {
14+
materialPath {
15+
moveTo(18.0f, 4.0f)
16+
lineTo(18.0f, 3.0f)
17+
curveToRelative(0.0f, -0.55f, -0.45f, -1.0f, -1.0f, -1.0f)
18+
lineTo(5.0f, 2.0f)
19+
curveToRelative(-0.55f, 0.0f, -1.0f, 0.45f, -1.0f, 1.0f)
20+
verticalLineToRelative(4.0f)
21+
curveToRelative(0.0f, 0.55f, 0.45f, 1.0f, 1.0f, 1.0f)
22+
horizontalLineToRelative(12.0f)
23+
curveToRelative(0.55f, 0.0f, 1.0f, -0.45f, 1.0f, -1.0f)
24+
lineTo(18.0f, 6.0f)
25+
horizontalLineToRelative(1.0f)
26+
verticalLineToRelative(4.0f)
27+
lineTo(9.0f, 10.0f)
28+
verticalLineToRelative(11.0f)
29+
curveToRelative(0.0f, 0.55f, 0.45f, 1.0f, 1.0f, 1.0f)
30+
horizontalLineToRelative(2.0f)
31+
curveToRelative(0.55f, 0.0f, 1.0f, -0.45f, 1.0f, -1.0f)
32+
verticalLineToRelative(-9.0f)
33+
horizontalLineToRelative(8.0f)
34+
lineTo(21.0f, 4.0f)
35+
horizontalLineToRelative(-3.0f)
36+
close()
37+
moveTo(16.0f, 6.0f)
38+
lineTo(6.0f, 6.0f)
39+
lineTo(6.0f, 4.0f)
40+
horizontalLineToRelative(10.0f)
41+
verticalLineToRelative(2.0f)
42+
close()
43+
}
44+
}
45+
return _formatPaint!!
46+
}

0 commit comments

Comments
 (0)