Skip to content

Commit a5a0299

Browse files
committed
fix: disable FillHeight when the keyboard is visible and restructure the screen
1 parent cf1c8bc commit a5a0299

1 file changed

Lines changed: 58 additions & 37 deletions

File tree

app/src/main/java/to/bitkit/ui/screens/widgets/calculator/CalculatorPreviewScreen.kt

Lines changed: 58 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package to.bitkit.ui.screens.widgets.calculator
22

3+
import androidx.compose.animation.AnimatedVisibility
4+
import androidx.compose.animation.fadeIn
5+
import androidx.compose.animation.fadeOut
36
import androidx.compose.foundation.layout.Arrangement
47
import androidx.compose.foundation.layout.Column
58
import androidx.compose.foundation.layout.Row
69
import androidx.compose.foundation.layout.Spacer
710
import androidx.compose.foundation.layout.fillMaxWidth
811
import androidx.compose.foundation.layout.height
12+
import androidx.compose.foundation.layout.imePadding
913
import androidx.compose.foundation.layout.padding
1014
import androidx.compose.foundation.layout.size
1115
import androidx.compose.foundation.layout.width
@@ -26,16 +30,18 @@ import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
2630
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2731
import to.bitkit.R
2832
import to.bitkit.ui.components.BodyM
33+
import to.bitkit.ui.components.FillHeight
2934
import to.bitkit.ui.components.Headline
3035
import to.bitkit.ui.components.PrimaryButton
3136
import to.bitkit.ui.components.SecondaryButton
3237
import to.bitkit.ui.components.Text13Up
3338
import to.bitkit.ui.scaffold.AppTopBar
3439
import to.bitkit.ui.scaffold.DrawerNavIcon
35-
import to.bitkit.ui.scaffold.ScreenColumn
3640
import to.bitkit.ui.screens.widgets.calculator.components.CalculatorCard
41+
import to.bitkit.ui.shared.util.screen
3742
import to.bitkit.ui.theme.AppThemeSurface
3843
import to.bitkit.ui.theme.Colors
44+
import to.bitkit.ui.utils.keyboardAsState
3945
import to.bitkit.viewmodels.CurrencyViewModel
4046

4147
@Composable
@@ -73,8 +79,12 @@ fun CalculatorPreviewContent(
7379
currencyViewModel: CurrencyViewModel?,
7480
isCalculatorWidgetEnabled: Boolean,
7581
) {
76-
ScreenColumn(
77-
modifier = Modifier.testTag("facts_preview_screen")
82+
val isKeyboardVisible by keyboardAsState()
83+
84+
Column(
85+
modifier = Modifier
86+
.screen()
87+
.testTag("facts_preview_screen")
7888
) {
7989
AppTopBar(
8090
titleText = stringResource(R.string.widgets__widget__nav_title),
@@ -84,47 +94,58 @@ fun CalculatorPreviewContent(
8494

8595
Column(
8696
modifier = Modifier
97+
.imePadding()
8798
.padding(horizontal = 16.dp)
8899
.testTag("main_content")
89100
) {
90-
Spacer(modifier = Modifier.height(26.dp))
91-
92-
Row(
93-
modifier = Modifier
94-
.fillMaxWidth()
95-
.testTag("header_row"),
96-
verticalAlignment = Alignment.CenterVertically,
97-
horizontalArrangement = Arrangement.SpaceBetween
101+
AnimatedVisibility(
102+
visible = !isKeyboardVisible,
103+
enter = fadeIn(),
104+
exit = fadeOut(),
98105
) {
99-
Headline(
100-
text = AnnotatedString(stringResource(R.string.widgets__calculator__name)),
101-
modifier = Modifier
102-
.width(200.dp)
103-
.testTag("widget_title")
104-
)
105-
Icon(
106-
painter = painterResource(R.drawable.widget_math_operation),
107-
contentDescription = null,
108-
tint = Color.Unspecified,
109-
modifier = Modifier
110-
.size(64.dp)
111-
.testTag("widget_icon")
112-
)
113-
}
106+
Column {
107+
Spacer(modifier = Modifier.height(26.dp))
114108

115-
BodyM(
116-
text = stringResource(R.string.widgets__facts__description),
117-
color = Colors.White64,
118-
modifier = Modifier
119-
.padding(vertical = 16.dp)
120-
.testTag("widget_description")
121-
)
109+
Row(
110+
modifier = Modifier
111+
.fillMaxWidth()
112+
.testTag("header_row"),
113+
verticalAlignment = Alignment.CenterVertically,
114+
horizontalArrangement = Arrangement.SpaceBetween
115+
) {
116+
Headline(
117+
text = AnnotatedString(stringResource(R.string.widgets__calculator__name)),
118+
modifier = Modifier
119+
.width(200.dp)
120+
.testTag("widget_title")
121+
)
122+
Icon(
123+
painter = painterResource(R.drawable.widget_math_operation),
124+
contentDescription = null,
125+
tint = Color.Unspecified,
126+
modifier = Modifier
127+
.size(64.dp)
128+
.testTag("widget_icon")
129+
)
130+
}
122131

123-
HorizontalDivider(
124-
modifier = Modifier.testTag("divider")
125-
)
132+
BodyM(
133+
text = stringResource(R.string.widgets__facts__description),
134+
color = Colors.White64,
135+
modifier = Modifier
136+
.padding(vertical = 16.dp)
137+
.testTag("widget_description")
138+
)
126139

127-
Spacer(modifier = Modifier.weight(1f))
140+
HorizontalDivider(
141+
modifier = Modifier.testTag("divider")
142+
)
143+
}
144+
}
145+
146+
if (!isKeyboardVisible) {
147+
FillHeight()
148+
}
128149

129150
Text13Up(
130151
stringResource(R.string.common__preview),

0 commit comments

Comments
 (0)