11package to.bitkit.ui.screens.widgets.price
22
3+ import androidx.compose.foundation.background
34import androidx.compose.foundation.layout.Arrangement
5+ import androidx.compose.foundation.layout.Box
46import androidx.compose.foundation.layout.Column
57import androidx.compose.foundation.layout.Row
68import androidx.compose.foundation.layout.Spacer
9+ import androidx.compose.foundation.layout.fillMaxSize
710import androidx.compose.foundation.layout.fillMaxWidth
811import androidx.compose.foundation.layout.height
912import androidx.compose.foundation.layout.padding
@@ -13,10 +16,14 @@ import androidx.compose.foundation.verticalScroll
1316import androidx.compose.material3.HorizontalDivider
1417import androidx.compose.material3.Icon
1518import androidx.compose.material3.IconButton
19+ import androidx.compose.material3.MaterialTheme
1620import androidx.compose.runtime.Composable
1721import androidx.compose.runtime.getValue
1822import androidx.compose.ui.Alignment
1923import androidx.compose.ui.Modifier
24+ import androidx.compose.ui.graphics.Brush
25+ import androidx.compose.ui.graphics.Color
26+ import androidx.compose.ui.graphics.TileMode
2027import androidx.compose.ui.platform.testTag
2128import androidx.compose.ui.res.painterResource
2229import androidx.compose.ui.res.stringResource
@@ -44,7 +51,7 @@ import to.bitkit.ui.theme.Colors
4451fun PriceEditScreen (
4552 viewModel : PriceViewModel ,
4653 onBack : () -> Unit ,
47- navigatePreview : () -> Unit
54+ navigatePreview : () -> Unit ,
4855) {
4956 val customPreferences by viewModel.customPreferences.collectAsStateWithLifecycle()
5057 val currentPrice by viewModel.currentPrice.collectAsStateWithLifecycle()
@@ -90,60 +97,77 @@ fun PriceEditContent(
9097 ScreenColumn (
9198 modifier = Modifier .testTag(" weather_edit_screen" )
9299 ) {
93- AppTopBar (
94- titleText = stringResource(R .string.widgets__widget__edit),
95- onBackClick = onBack,
96- actions = { DrawerNavIcon () },
97- )
98-
99- Column (
100+ Box (
100101 modifier = Modifier
101- .padding(horizontal = 16 .dp)
102102 .weight(1f )
103- .verticalScroll(rememberScrollState())
104- .testTag(" WidgetEditScrollView" )
103+ .fillMaxWidth()
105104 ) {
106- Spacer (modifier = Modifier .height(26 .dp))
105+ Column (
106+ modifier = Modifier
107+ .fillMaxSize()
108+ .padding(horizontal = 16 .dp)
109+ .verticalScroll(rememberScrollState())
110+ .testTag(" WidgetEditScrollView" )
111+ ) {
112+ Spacer (modifier = Modifier .height(82 .dp))
107113
108- BodyM (
109- text = stringResource(R .string.widgets__widget__edit_description).replace(
110- " {name}" ,
111- stringResource(R .string.widgets__price__name)
112- ),
113- color = Colors .White64 ,
114- modifier = Modifier .testTag(" edit_description" )
115- )
114+ BodyM (
115+ text = stringResource(R .string.widgets__widget__edit_description).replace(
116+ " {name}" ,
117+ stringResource(R .string.widgets__price__name)
118+ ),
119+ color = Colors .White64 ,
120+ modifier = Modifier .testTag(" edit_description" )
121+ )
122+
123+ Spacer (modifier = Modifier .height(32 .dp))
124+
125+ priceModel.widgets.map { data ->
126+ PriceEditOptionRow (
127+ label = data.pair.displayName,
128+ value = data.price,
129+ isEnabled = data.pair in preferences.enabledPairs,
130+ onClick = {
131+ onClickTradingPair(data.pair)
132+ },
133+ testTagPrefix = data.pair.displayName,
134+ )
135+ }
116136
117- Spacer (modifier = Modifier .height(32 .dp))
137+ allPeriodsUsd.map { priceData ->
138+ PriceChartOptionRow (
139+ widgetData = priceData,
140+ isEnabled = priceData.period == preferences.period,
141+ onClick = onClickGraph,
142+ testTagPrefix = priceData.period.value,
143+ )
144+ }
118145
119- priceModel.widgets.map { data ->
120146 PriceEditOptionRow (
121- label = data.pair.displayName,
122- value = data.price,
123- isEnabled = data.pair in preferences.enabledPairs,
124- onClick = {
125- onClickTradingPair(data.pair)
126- },
127- testTagPrefix = data.pair.displayName,
147+ label = stringResource(R .string.widgets__widget__source),
148+ value = priceModel.source,
149+ isEnabled = preferences.showSource,
150+ onClick = onClickSource,
151+ testTagPrefix = " showSource" ,
128152 )
129153 }
130154
131- allPeriodsUsd.map { priceData ->
132- PriceChartOptionRow (
133- widgetData = priceData,
134- isEnabled = priceData.period == preferences.period,
135- onClick = onClickGraph,
136- testTagPrefix = priceData.period.value,
155+ Column {
156+ AppTopBar (
157+ titleText = stringResource(R .string.widgets__widget__edit),
158+ onBackClick = onBack,
159+ actions = { DrawerNavIcon () },
160+ modifier = Modifier .background(
161+ Brush .verticalGradient(
162+ colors = listOf (
163+ MaterialTheme .colorScheme.background,
164+ Color .Transparent
165+ ),
166+ tileMode = TileMode .Decal
167+ )
168+ )
137169 )
138170 }
139-
140- PriceEditOptionRow (
141- label = stringResource(R .string.widgets__widget__source),
142- value = priceModel.source,
143- isEnabled = preferences.showSource,
144- onClick = onClickSource,
145- testTagPrefix = " showSource" ,
146- )
147171 }
148172
149173 Row (
@@ -182,7 +206,7 @@ private fun PriceEditOptionRow(
182206 value : String ,
183207 isEnabled : Boolean ,
184208 onClick : () -> Unit ,
185- testTagPrefix : String
209+ testTagPrefix : String ,
186210) {
187211 Column {
188212 Row (
@@ -235,7 +259,7 @@ private fun PriceChartOptionRow(
235259 widgetData : PriceWidgetData ,
236260 isEnabled : Boolean ,
237261 onClick : (GraphPeriod ) -> Unit ,
238- testTagPrefix : String
262+ testTagPrefix : String ,
239263) {
240264 Column {
241265 Row (
0 commit comments