Skip to content

Commit 010c96c

Browse files
authored
Merge pull request #2797 from brandonpage/login_webview_scrolling
Fix login webview scrolling.
2 parents 7ec1bbe + 5fe45ab commit 010c96c

File tree

1 file changed

+15
-0
lines changed
  • libs/SalesforceSDK/src/com/salesforce/androidsdk/ui/components

1 file changed

+15
-0
lines changed

libs/SalesforceSDK/src/com/salesforce/androidsdk/ui/components/LoginView.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ package com.salesforce.androidsdk.ui.components
2929
import android.content.Context
3030
import android.content.ContextWrapper
3131
import android.content.res.Configuration
32+
import android.os.Build
3233
import android.webkit.WebView
3334
import androidx.compose.animation.AnimatedVisibility
3435
import androidx.compose.animation.core.animateFloatAsState
@@ -43,14 +44,17 @@ import androidx.compose.foundation.layout.Box
4344
import androidx.compose.foundation.layout.PaddingValues
4445
import androidx.compose.foundation.layout.Row
4546
import androidx.compose.foundation.layout.WindowInsets
47+
import androidx.compose.foundation.layout.consumeWindowInsets
4648
import androidx.compose.foundation.layout.defaultMinSize
4749
import androidx.compose.foundation.layout.fillMaxSize
4850
import androidx.compose.foundation.layout.fillMaxWidth
4951
import androidx.compose.foundation.layout.height
52+
import androidx.compose.foundation.layout.ime
5053
import androidx.compose.foundation.layout.navigationBars
5154
import androidx.compose.foundation.layout.padding
5255
import androidx.compose.foundation.layout.safeDrawing
5356
import androidx.compose.foundation.layout.size
57+
import androidx.compose.foundation.layout.windowInsetsPadding
5458
import androidx.compose.foundation.shape.RoundedCornerShape
5559
import androidx.compose.material.icons.Icons
5660
import androidx.compose.material.icons.automirrored.filled.ArrowBack
@@ -233,6 +237,8 @@ internal fun LoginView(
233237
modifier = Modifier
234238
.background(dynamicBackgroundColor.value)
235239
.padding(innerPadding)
240+
.consumeWindowInsets(innerPadding)
241+
.applyImePaddingConditionally()
236242
.graphicsLayer(alpha = alpha),
237243
factory = { webView },
238244
update = { it.loadUrl(loginUrl.value ?: "") },
@@ -473,6 +479,15 @@ private tailrec fun Context.getActivity(): FragmentActivity? = when (this) {
473479
else -> null
474480
}
475481

482+
@Composable
483+
private fun Modifier.applyImePaddingConditionally() : Modifier =
484+
// TODO: Remove when min API is > 29
485+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
486+
windowInsetsPadding(WindowInsets.ime)
487+
} else {
488+
this
489+
}
490+
476491
// Note: the light and dark previews should look the same.
477492
@Preview
478493
@Preview("Dark Mode", uiMode = Configuration.UI_MODE_NIGHT_YES, backgroundColor = 0xFF181818)

0 commit comments

Comments
 (0)