From e54520c2fa6aea1cc7e67d1aee773cf4f14ddae4 Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 2 Dec 2022 15:50:56 +0100 Subject: [PATCH] Fix scrolling on login --- .../java/io/element/android/x/MainActivity.kt | 1 - .../android/x/features/login/LoginScreen.kt | 2 ++ .../login/changeserver/ChangeServerScreen.kt | 20 +++++++++++++------ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/io/element/android/x/MainActivity.kt b/app/src/main/java/io/element/android/x/MainActivity.kt index a51a2da373..68c524d52a 100644 --- a/app/src/main/java/io/element/android/x/MainActivity.kt +++ b/app/src/main/java/io/element/android/x/MainActivity.kt @@ -47,7 +47,6 @@ class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - // FIXME Scrolling is broken on login screens. Commenting this line fixes the issue. WindowCompat.setDecorFitsSystemWindows(window, false) setContent { ElementXTheme { diff --git a/features/login/src/main/java/io/element/android/x/features/login/LoginScreen.kt b/features/login/src/main/java/io/element/android/x/features/login/LoginScreen.kt index bb059a1267..9e5540ba01 100644 --- a/features/login/src/main/java/io/element/android/x/features/login/LoginScreen.kt +++ b/features/login/src/main/java/io/element/android/x/features/login/LoginScreen.kt @@ -71,6 +71,8 @@ fun LoginContent( Box( modifier = Modifier .fillMaxSize() + .systemBarsPadding() + .imePadding() ) { val scrollState = rememberScrollState() Column( diff --git a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerScreen.kt b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerScreen.kt index 934f236fc4..de03fcb868 100644 --- a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerScreen.kt +++ b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerScreen.kt @@ -26,6 +26,7 @@ import com.airbnb.mvrx.Loading import com.airbnb.mvrx.Success import com.airbnb.mvrx.compose.collectAsState import com.airbnb.mvrx.compose.mavericksViewModel +import io.element.android.x.designsystem.ElementXTheme import io.element.android.x.designsystem.components.VectorIcon import io.element.android.x.features.login.R import io.element.android.x.features.login.error.changeServerError @@ -53,14 +54,19 @@ fun ChangeServerContent( onChangeServerSuccess: () -> Unit = {}, ) { Surface(color = MaterialTheme.colorScheme.background) { - Box(modifier = Modifier.fillMaxSize()) { - val scrollState = rememberScrollState() + val scrollState = rememberScrollState() + Box( + modifier = Modifier + .fillMaxSize() + .systemBarsPadding() + .imePadding() + ) { Column( modifier = Modifier .verticalScroll( state = scrollState, ) - .padding(horizontal = 16.dp), + .padding(horizontal = 16.dp) ) { val isError = state.changeServerAction is Fail @@ -158,7 +164,9 @@ fun ChangeServerContent( @Composable @Preview fun ChangeServerContentPreview() { - ChangeServerContent( - state = ChangeServerViewState(homeserver = "matrix.org"), - ) + ElementXTheme { + ChangeServerContent( + state = ChangeServerViewState(homeserver = "matrix.org"), + ) + } }