File tree Expand file tree Collapse file tree
app/src/main/java/com/getcode Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ import com.getcode.navigation.core.CodeNavigator
2626import com.getcode.navigation.core.LocalCodeNavigator
2727import com.getcode.theme.CodeTheme
2828import com.getcode.theme.sheetHeight
29+ import com.getcode.util.keyboardAsState
2930import com.getcode.view.components.SheetTitle
3031import kotlinx.coroutines.delay
3132import kotlinx.coroutines.launch
@@ -144,6 +145,8 @@ data object MainRoot : Screen {
144145 // TODO: potentially add a loading state here
145146 // so app doesn't appear stuck in a dead state
146147 // while we wait for auth check to complete
147- Box (modifier = Modifier .fillMaxSize().background(CodeTheme .colors.background))
148+ Box (modifier = Modifier
149+ .fillMaxSize()
150+ .background(CodeTheme .colors.background))
148151 }
149152}
Original file line number Diff line number Diff line change 1+ package com.getcode.util
2+
3+ import android.view.ViewTreeObserver
4+ import androidx.compose.runtime.Composable
5+ import androidx.compose.runtime.DisposableEffect
6+ import androidx.compose.runtime.State
7+ import androidx.compose.runtime.mutableStateOf
8+ import androidx.compose.runtime.remember
9+ import androidx.compose.ui.platform.LocalView
10+ import androidx.core.view.ViewCompat
11+ import androidx.core.view.WindowInsetsCompat
12+
13+ @Composable
14+ fun keyboardAsState (): State <Boolean > {
15+ val keyboardState = remember { mutableStateOf(false ) }
16+ val view = LocalView .current
17+ val viewTreeObserver = view.viewTreeObserver
18+ DisposableEffect (viewTreeObserver) {
19+ val listener = ViewTreeObserver .OnGlobalLayoutListener {
20+ keyboardState.value = ViewCompat .getRootWindowInsets(view)
21+ ?.isVisible(WindowInsetsCompat .Type .ime()) ? : true
22+ }
23+ viewTreeObserver.addOnGlobalLayoutListener(listener)
24+ onDispose { viewTreeObserver.removeOnGlobalLayoutListener(listener) }
25+ }
26+ return keyboardState
27+ }
Original file line number Diff line number Diff line change @@ -26,26 +26,22 @@ fun OtpBox(
2626) {
2727
2828 val height = when (CodeTheme .dimens.heightWindowSizeClass) {
29- WindowSizeClass .COMPACT -> 45
30- else -> 60
31- }
32- val width = when (CodeTheme .dimens.widthWindowSizeClass) {
33- WindowSizeClass .COMPACT -> 30
34- else -> 42
29+ WindowSizeClass .COMPACT -> CodeTheme .dimens.staticGrid.x9
30+ else -> CodeTheme .dimens.staticGrid.x11
3531 }
3632
3733 Box (
3834 modifier = modifier
3935 .padding(CodeTheme .dimens.grid.x1)
40- .height(height.dp )
41- .width(width.dp )
36+ .height(height)
37+ .width(CodeTheme .dimens.staticGrid.x7 )
4238 .clip(CodeTheme .shapes.small)
4339 .rememberedClickable(onClick = onClick)
4440 .border(
4541 border = if (isHighlighted)
46- BorderStroke (CodeTheme .dimens.thickBorder, color = BrandLight .copy(alpha = 0.8f ))
42+ BorderStroke (CodeTheme .dimens.thickBorder, color = BrandLight .copy(alpha = 0.7f ))
4743 else
48- BorderStroke (CodeTheme .dimens.border, color = BrandLight .copy(alpha = 0.4f )),
44+ BorderStroke (CodeTheme .dimens.border, color = BrandLight .copy(alpha = 0.3f )),
4945 shape = CodeTheme .shapes.small
5046 )
5147 .background(Color .White .copy(alpha = 0.1f )),
Original file line number Diff line number Diff line change @@ -115,7 +115,7 @@ fun PhoneConfirm(
115115 .padding(top = CodeTheme .dimens.inset)
116116 .wrapContentHeight()
117117 .fillMaxWidth(),
118- verticalArrangement = Arrangement .spacedBy(CodeTheme .dimens.grid.x1 )
118+ verticalArrangement = Arrangement .spacedBy(CodeTheme .dimens.grid.x2 )
119119 ) {
120120
121121 ProvideTextStyle (
Original file line number Diff line number Diff line change @@ -180,8 +180,7 @@ class PhoneVerifyViewModel @Inject constructor(
180180 navigator.push(InviteCodeScreen (phoneNumber.urlEncode()))
181181 null
182182 }
183- else ->
184- getGenericError()
183+ else -> getGenericError()
185184 }?.let { message -> TopBarManager .showMessage(message) }
186185 res == PhoneVerificationService .SendVerificationCodeResponse .Result .OK
187186 }
You can’t perform that action at this time.
0 commit comments