Skip to content

Commit 9ed0a67

Browse files
@W-19843412: [MSDK Android] Login And Developer Information Activities Do Not Pad Display Cutouts (forcedotcom#2784)
1 parent 4282bca commit 9ed0a67

File tree

2 files changed

+30
-21
lines changed

2 files changed

+30
-21
lines changed

libs/SalesforceSDK/src/com/salesforce/androidsdk/ui/DevInfoActivity.kt

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,18 @@ import androidx.activity.ComponentActivity
3131
import androidx.activity.compose.setContent
3232
import androidx.activity.enableEdgeToEdge
3333
import androidx.compose.foundation.layout.Column
34+
import androidx.compose.foundation.layout.PaddingValues
3435
import androidx.compose.foundation.layout.WindowInsets
3536
import androidx.compose.foundation.layout.fillMaxSize
3637
import androidx.compose.foundation.layout.fillMaxWidth
37-
import androidx.compose.foundation.layout.navigationBars
3838
import androidx.compose.foundation.layout.padding
39-
import androidx.compose.foundation.layout.windowInsetsPadding
39+
import androidx.compose.foundation.layout.safeDrawing
4040
import androidx.compose.foundation.lazy.LazyColumn
4141
import androidx.compose.foundation.lazy.items
4242
import androidx.compose.material3.ExperimentalMaterial3Api
4343
import androidx.compose.material3.HorizontalDivider
4444
import androidx.compose.material3.MaterialTheme
45+
import androidx.compose.material3.Scaffold
4546
import androidx.compose.material3.Text
4647
import androidx.compose.material3.TopAppBar
4748
import androidx.compose.runtime.Composable
@@ -53,6 +54,7 @@ import androidx.compose.ui.unit.dp
5354
import com.salesforce.androidsdk.R
5455
import com.salesforce.androidsdk.app.SalesforceSDKManager
5556

57+
@OptIn(ExperimentalMaterial3Api::class)
5658
class DevInfoActivity : ComponentActivity() {
5759

5860
override fun onCreate(savedInstanceState: Bundle?) {
@@ -64,7 +66,16 @@ class DevInfoActivity : ComponentActivity() {
6466

6567
setContent {
6668
MaterialTheme(colorScheme = SalesforceSDKManager.getInstance().colorScheme()) {
67-
DevInfoScreen(devInfoList)
69+
Scaffold(
70+
contentWindowInsets = WindowInsets.safeDrawing,
71+
topBar = {
72+
TopAppBar(
73+
title = { Text(stringResource(id = R.string.sf__dev_support_title)) }
74+
)
75+
}
76+
) { innerPadding ->
77+
DevInfoScreen(innerPadding, devInfoList)
78+
}
6879
}
6980
}
7081
}
@@ -76,24 +87,17 @@ class DevInfoActivity : ComponentActivity() {
7687

7788
@OptIn(ExperimentalMaterial3Api::class)
7889
@Composable
79-
fun DevInfoScreen(devInfoList: List<Pair<String, String>>) {
80-
Column(
90+
fun DevInfoScreen(
91+
paddingValues: PaddingValues,
92+
devInfoList: List<Pair<String, String>>,
93+
) {
94+
LazyColumn(
95+
contentPadding = paddingValues,
8196
modifier = Modifier
8297
.fillMaxSize()
83-
.padding(16.dp)
8498
) {
85-
TopAppBar(
86-
title = { Text(stringResource(id = R.string.sf__dev_support_title)) }
87-
)
88-
89-
LazyColumn(
90-
modifier = Modifier
91-
.fillMaxSize()
92-
.windowInsetsPadding(WindowInsets.navigationBars) // Adds padding to account for system navigation bar
93-
) {
94-
items(devInfoList) { (name, value) ->
95-
DevInfoItem(name, value)
96-
}
99+
items(devInfoList) { (name, value) ->
100+
DevInfoItem(name, value)
97101
}
98102
}
99103
}

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import androidx.compose.animation.core.tween
3636
import androidx.compose.animation.fadeIn
3737
import androidx.compose.animation.fadeOut
3838
import androidx.compose.foundation.BorderStroke
39+
import androidx.compose.foundation.background
3940
import androidx.compose.foundation.isSystemInDarkTheme
4041
import androidx.compose.foundation.layout.Arrangement
4142
import androidx.compose.foundation.layout.Box
@@ -48,6 +49,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
4849
import androidx.compose.foundation.layout.height
4950
import androidx.compose.foundation.layout.navigationBars
5051
import androidx.compose.foundation.layout.padding
52+
import androidx.compose.foundation.layout.safeDrawing
5153
import androidx.compose.foundation.layout.size
5254
import androidx.compose.foundation.shape.RoundedCornerShape
5355
import androidx.compose.material.icons.Icons
@@ -106,8 +108,8 @@ import androidx.fragment.app.FragmentActivity
106108
import androidx.lifecycle.LiveData
107109
import androidx.lifecycle.viewmodel.compose.viewModel
108110
import com.salesforce.androidsdk.R.string.sf__back_button_content_description
109-
import com.salesforce.androidsdk.R.string.sf__clear_cookies
110111
import com.salesforce.androidsdk.R.string.sf__clear_cache
112+
import com.salesforce.androidsdk.R.string.sf__clear_cookies
111113
import com.salesforce.androidsdk.R.string.sf__launch_idp
112114
import com.salesforce.androidsdk.R.string.sf__loading_indicator
113115
import com.salesforce.androidsdk.R.string.sf__more_options
@@ -190,6 +192,7 @@ fun LoginView() {
190192
}
191193

192194
LoginView(
195+
dynamicBackgroundColor = viewModel.dynamicBackgroundColor,
193196
loginUrlData = viewModel.loginUrl,
194197
topAppBar = topAppBar,
195198
webView = activity.webView,
@@ -202,6 +205,7 @@ fun LoginView() {
202205

203206
@Composable
204207
internal fun LoginView(
208+
dynamicBackgroundColor: MutableState<Color>,
205209
loginUrlData: LiveData<String>,
206210
topAppBar: @Composable () -> Unit,
207211
webView: WebView,
@@ -217,16 +221,17 @@ internal fun LoginView(
217221
)
218222

219223
Scaffold(
220-
topBar = topAppBar,
221224
bottomBar = bottomAppBar,
225+
contentWindowInsets = WindowInsets.safeDrawing,
226+
topBar = topAppBar,
222227
) { innerPadding ->
223228
if (loading) {
224229
loadingIndicator()
225230
}
226-
227231
// Load the WebView as a composable
228232
AndroidView(
229233
modifier = Modifier
234+
.background(dynamicBackgroundColor.value)
230235
.padding(innerPadding)
231236
.graphicsLayer(alpha = alpha),
232237
factory = { webView },

0 commit comments

Comments
 (0)