Skip to content

Commit e69ce55

Browse files
committed
Add safe drawing padding (edge-to-edge)
1 parent 5a43f1d commit e69ce55

File tree

3 files changed

+46
-36
lines changed

3 files changed

+46
-36
lines changed

lib/src/main/java/at/bitfire/cert4android/Cert4Android.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
package at.bitfire.cert4android
66

77
import android.util.Log
8+
import androidx.compose.foundation.layout.Box
9+
import androidx.compose.foundation.layout.safeDrawingPadding
810
import androidx.compose.material3.MaterialTheme
911
import androidx.compose.runtime.Composable
12+
import androidx.compose.ui.Modifier
1013
import java.util.logging.Level
1114
import java.util.logging.Logger
1215

@@ -28,7 +31,11 @@ object Cert4Android {
2831
// theme
2932

3033
var theme: @Composable (content: @Composable () -> Unit) -> Unit = { content ->
31-
MaterialTheme(content = content)
34+
MaterialTheme {
35+
Box(Modifier.safeDrawingPadding()) {
36+
content()
37+
}
38+
}
3239
}
3340

3441
}

lib/src/main/java/at/bitfire/cert4android/TrustCertificateActivity.kt

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import android.os.Bundle
1010
import androidx.activity.ComponentActivity
1111
import androidx.activity.compose.BackHandler
1212
import androidx.activity.compose.setContent
13+
import androidx.activity.enableEdgeToEdge
1314
import androidx.activity.viewModels
1415
import androidx.annotation.StringRes
1516
import androidx.compose.foundation.clickable
@@ -42,6 +43,8 @@ import androidx.compose.ui.tooling.preview.Preview
4243
import androidx.compose.ui.unit.dp
4344
import androidx.lifecycle.AndroidViewModel
4445
import androidx.lifecycle.viewModelScope
46+
import kotlinx.coroutines.Dispatchers
47+
import kotlinx.coroutines.launch
4548
import java.io.ByteArrayInputStream
4649
import java.security.cert.CertificateFactory
4750
import java.security.cert.CertificateParsingException
@@ -50,8 +53,6 @@ import java.security.spec.MGF1ParameterSpec.SHA1
5053
import java.security.spec.MGF1ParameterSpec.SHA256
5154
import java.text.DateFormat
5255
import java.util.logging.Level
53-
import kotlinx.coroutines.Dispatchers
54-
import kotlinx.coroutines.launch
5556

5657
class TrustCertificateActivity : ComponentActivity() {
5758

@@ -74,11 +75,15 @@ class TrustCertificateActivity : ComponentActivity() {
7475
processIntent(newIntent)
7576
}
7677

78+
enableEdgeToEdge()
79+
7780
setContent {
78-
MainLayout(
79-
onRegisterDecision = { trusted -> model.registerDecision(trusted) },
80-
onFinish = { finish() }
81-
)
81+
Cert4Android.theme {
82+
MainLayout(
83+
onRegisterDecision = { trusted -> model.registerDecision(trusted) },
84+
onFinish = { finish() }
85+
)
86+
}
8287
}
8388
}
8489

@@ -124,37 +129,35 @@ class TrustCertificateActivity : ComponentActivity() {
124129
backPressedCounter = newBackPressedCounter
125130
}
126131

127-
Cert4Android.theme {
128-
Scaffold(
129-
snackbarHost = { SnackbarHost(snackbarHostState) },
130-
modifier = Modifier.padding(16.dp)
131-
) { paddingValues ->
132-
Column(
132+
Scaffold(
133+
snackbarHost = { SnackbarHost(snackbarHostState) },
134+
modifier = Modifier.padding(16.dp)
135+
) { paddingValues ->
136+
Column(
137+
modifier = Modifier
138+
.padding(paddingValues)
139+
.verticalScroll(rememberScrollState()),
140+
) {
141+
Text(
142+
text = stringResource(R.string.trust_certificate_unknown_certificate_found),
143+
style = MaterialTheme.typography.bodySmall,
133144
modifier = Modifier
134-
.padding(paddingValues)
135-
.verticalScroll(rememberScrollState()),
136-
) {
137-
Text(
138-
text = stringResource(R.string.trust_certificate_unknown_certificate_found),
139-
style = MaterialTheme.typography.bodySmall,
140-
modifier = Modifier
141-
.fillMaxWidth()
142-
.padding(bottom = 16.dp)
143-
)
145+
.fillMaxWidth()
146+
.padding(bottom = 16.dp)
147+
)
144148

145-
CertificateCard(
146-
uiState = uiState,
147-
onRegisterDecision = onRegisterDecision
148-
)
149+
CertificateCard(
150+
uiState = uiState,
151+
onRegisterDecision = onRegisterDecision
152+
)
149153

150-
Text(
151-
text = stringResource(R.string.trust_certificate_reset_info),
152-
style = MaterialTheme.typography.bodySmall,
153-
modifier = Modifier
154-
.fillMaxWidth()
155-
.padding(top = 16.dp),
156-
)
157-
}
154+
Text(
155+
text = stringResource(R.string.trust_certificate_reset_info),
156+
style = MaterialTheme.typography.bodySmall,
157+
modifier = Modifier
158+
.fillMaxWidth()
159+
.padding(top = 16.dp),
160+
)
158161
}
159162
}
160163
}

sample-app/src/main/java/at/bitfire/cert4android/demo/MainActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class MainActivity : ComponentActivity() {
5555
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.POST_NOTIFICATIONS), 0)
5656

5757
setContent {
58-
MaterialTheme {
58+
Cert4Android.theme {
5959
Column(Modifier
6060
.padding(8.dp)
6161
.verticalScroll(rememberScrollState())) {

0 commit comments

Comments
 (0)