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