1
1
package dev.zwander.installwithoptions
2
2
3
3
import android.content.Intent
4
+ import android.os.Build
4
5
import android.os.Bundle
5
6
import androidx.activity.SystemBarStyle
6
7
import androidx.activity.compose.rememberLauncherForActivityResult
@@ -18,19 +19,22 @@ import androidx.compose.foundation.interaction.MutableInteractionSource
18
19
import androidx.compose.foundation.layout.Arrangement
19
20
import androidx.compose.foundation.layout.Box
20
21
import androidx.compose.foundation.layout.Column
22
+ import androidx.compose.foundation.layout.PaddingValues
21
23
import androidx.compose.foundation.layout.Row
22
24
import androidx.compose.foundation.layout.Spacer
23
25
import androidx.compose.foundation.layout.WindowInsets
24
26
import androidx.compose.foundation.layout.WindowInsetsSides
25
27
import androidx.compose.foundation.layout.asPaddingValues
28
+ import androidx.compose.foundation.layout.calculateEndPadding
29
+ import androidx.compose.foundation.layout.calculateStartPadding
26
30
import androidx.compose.foundation.layout.displayCutout
27
31
import androidx.compose.foundation.layout.fillMaxSize
28
32
import androidx.compose.foundation.layout.fillMaxWidth
29
33
import androidx.compose.foundation.layout.imePadding
34
+ import androidx.compose.foundation.layout.navigationBarsPadding
30
35
import androidx.compose.foundation.layout.only
31
36
import androidx.compose.foundation.layout.padding
32
37
import androidx.compose.foundation.layout.size
33
- import androidx.compose.foundation.layout.systemBars
34
38
import androidx.compose.foundation.lazy.LazyColumn
35
39
import androidx.compose.foundation.lazy.items
36
40
import androidx.compose.foundation.shape.CircleShape
@@ -59,6 +63,7 @@ import androidx.compose.ui.draw.clip
59
63
import androidx.compose.ui.graphics.Color
60
64
import androidx.compose.ui.graphics.toArgb
61
65
import androidx.compose.ui.platform.LocalContext
66
+ import androidx.compose.ui.platform.LocalLayoutDirection
62
67
import androidx.compose.ui.res.stringResource
63
68
import androidx.compose.ui.unit.dp
64
69
import androidx.documentfile.provider.DocumentFile
@@ -84,8 +89,11 @@ class MainActivity : AppCompatActivity() {
84
89
85
90
override fun onCreate (savedInstanceState : Bundle ? ) {
86
91
enableEdgeToEdge(
87
- navigationBarStyle = SystemBarStyle .dark( Color .Transparent .toArgb()),
92
+ navigationBarStyle = SystemBarStyle .auto( Color . Transparent .toArgb(), Color .Transparent .toArgb()),
88
93
)
94
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .Q ) {
95
+ window.isNavigationBarContrastEnforced = false
96
+ }
89
97
super .onCreate(savedInstanceState)
90
98
91
99
permissionHandler.onCreate()
@@ -153,8 +161,7 @@ fun MainContent(modifier: Modifier = Modifier) {
153
161
) {
154
162
Scaffold (
155
163
modifier = Modifier
156
- .fillMaxSize()
157
- .imePadding(),
164
+ .fillMaxSize(),
158
165
bottomBar = {
159
166
Surface (
160
167
modifier = Modifier .fillMaxWidth(),
@@ -164,11 +171,8 @@ fun MainContent(modifier: Modifier = Modifier) {
164
171
Column (
165
172
modifier = Modifier
166
173
.fillMaxWidth()
167
- .padding(
168
- WindowInsets .systemBars
169
- .only(WindowInsetsSides .Horizontal + WindowInsetsSides .Bottom )
170
- .asPaddingValues()
171
- ),
174
+ .navigationBarsPadding()
175
+ .imePadding(),
172
176
) {
173
177
Row (
174
178
modifier = Modifier
@@ -225,11 +229,19 @@ fun MainContent(modifier: Modifier = Modifier) {
225
229
}
226
230
},
227
231
content = { contentPadding ->
232
+ val nonBottom = PaddingValues (
233
+ top = contentPadding.calculateTopPadding(),
234
+ start = contentPadding.calculateStartPadding(LocalLayoutDirection .current),
235
+ end = contentPadding.calculateEndPadding(LocalLayoutDirection .current),
236
+ )
237
+ val bottom = PaddingValues (bottom = contentPadding.calculateBottomPadding())
238
+
228
239
LazyColumn (
229
240
modifier = Modifier
230
- .fillMaxSize(),
241
+ .fillMaxSize()
242
+ .padding(bottom),
231
243
verticalArrangement = Arrangement .spacedBy(8 .dp),
232
- contentPadding = contentPadding +
244
+ contentPadding = nonBottom +
233
245
WindowInsets .displayCutout.only(WindowInsetsSides .Horizontal )
234
246
.asPaddingValues(),
235
247
) {
0 commit comments