Skip to content

Commit 09fc91c

Browse files
authored
Enable edge-to-edge support for BaseActivity (#5387)
1 parent fbe3afa commit 09fc91c

File tree

10 files changed

+20
-25
lines changed

10 files changed

+20
-25
lines changed

app/src/main/kotlin/io/homeassistant/companion/android/BaseActivity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.content.Intent
66
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
77
import android.content.pm.PackageManager
88
import android.os.Bundle
9+
import androidx.activity.enableEdgeToEdge
910
import androidx.appcompat.app.AppCompatActivity
1011
import androidx.core.app.ActivityCompat
1112
import androidx.lifecycle.Lifecycle
@@ -28,6 +29,7 @@ open class BaseActivity : AppCompatActivity() {
2829

2930
override fun onCreate(savedInstanceState: Bundle?) {
3031
super.onCreate(savedInstanceState)
32+
enableEdgeToEdge()
3133
lifecycleScope.launch {
3234
lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED) {
3335
permissionRequestMediator.eventFlow.collect { permissionToRequest ->

app/src/main/kotlin/io/homeassistant/companion/android/assist/AssistActivity.kt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@ import android.app.KeyguardManager
55
import android.content.Context
66
import android.content.Intent
77
import android.content.pm.PackageManager
8-
import android.graphics.Color
98
import android.os.Build
109
import android.os.Bundle
1110
import android.view.WindowManager
12-
import androidx.activity.SystemBarStyle
1311
import androidx.activity.compose.setContent
14-
import androidx.activity.enableEdgeToEdge
1512
import androidx.activity.result.contract.ActivityResultContracts
1613
import androidx.activity.viewModels
1714
import androidx.core.content.ContextCompat
@@ -56,13 +53,9 @@ class AssistActivity : BaseActivity() {
5653

5754
private val requestPermission = registerForActivityResult(
5855
ActivityResultContracts.RequestPermission(),
59-
{ viewModel.onPermissionResult(it) },
60-
)
56+
) { viewModel.onPermissionResult(it) }
6157

6258
override fun onCreate(savedInstanceState: Bundle?) {
63-
enableEdgeToEdge(
64-
navigationBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT),
65-
)
6659
super.onCreate(savedInstanceState)
6760
updateShowWhenLocked()
6861

app/src/main/kotlin/io/homeassistant/companion/android/barcode/BarcodeScannerActivity.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import android.os.Bundle
88
import android.provider.Settings
99
import androidx.activity.addCallback
1010
import androidx.activity.compose.setContent
11-
import androidx.activity.enableEdgeToEdge
1211
import androidx.activity.result.contract.ActivityResultContracts
1312
import androidx.activity.viewModels
1413
import androidx.appcompat.app.AlertDialog
@@ -57,7 +56,6 @@ class BarcodeScannerActivity : BaseActivity() {
5756
private var requestSilently by mutableStateOf(true)
5857

5958
override fun onCreate(savedInstanceState: Bundle?) {
60-
enableEdgeToEdge()
6159
super.onCreate(savedInstanceState)
6260

6361
val messageId = intent.getIntExtra(EXTRA_MESSAGE_ID, -1)

app/src/main/kotlin/io/homeassistant/companion/android/nfc/NfcSetupActivity.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import android.nfc.NfcAdapter
88
import android.os.Bundle
99
import android.widget.Toast
1010
import androidx.activity.compose.setContent
11-
import androidx.activity.enableEdgeToEdge
1211
import androidx.activity.viewModels
1312
import androidx.core.content.ContextCompat
1413
import androidx.lifecycle.lifecycleScope
@@ -62,8 +61,6 @@ class NfcSetupActivity : BaseActivity() {
6261
viewModel.writeNewTagSimple(it)
6362
}
6463

65-
enableEdgeToEdge()
66-
6764
setContent {
6865
HomeAssistantAppTheme {
6966
LoadNfcView(

app/src/main/kotlin/io/homeassistant/companion/android/nfc/views/TagReaderView.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@ package io.homeassistant.companion.android.nfc.views
22

33
import androidx.compose.foundation.layout.Arrangement
44
import androidx.compose.foundation.layout.Column
5+
import androidx.compose.foundation.layout.WindowInsets
56
import androidx.compose.foundation.layout.fillMaxSize
67
import androidx.compose.foundation.layout.fillMaxWidth
78
import androidx.compose.foundation.layout.padding
9+
import androidx.compose.foundation.layout.safeDrawing
10+
import androidx.compose.foundation.layout.windowInsetsPadding
811
import androidx.compose.material.CircularProgressIndicator
912
import androidx.compose.material.Text
1013
import androidx.compose.runtime.Composable
@@ -21,6 +24,7 @@ fun TagReaderView() {
2124
Column(
2225
modifier = Modifier
2326
.fillMaxSize()
27+
.windowInsetsPadding(WindowInsets.safeDrawing)
2428
.padding(all = 16.dp),
2529
horizontalAlignment = Alignment.CenterHorizontally,
2630
verticalArrangement = Arrangement.Center,

app/src/main/kotlin/io/homeassistant/companion/android/onboarding/OnboardingViews.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@ import androidx.compose.foundation.layout.Column
55
import androidx.compose.foundation.layout.ColumnScope
66
import androidx.compose.foundation.layout.Row
77
import androidx.compose.foundation.layout.Spacer
8+
import androidx.compose.foundation.layout.WindowInsets
89
import androidx.compose.foundation.layout.fillMaxSize
910
import androidx.compose.foundation.layout.fillMaxWidth
1011
import androidx.compose.foundation.layout.height
1112
import androidx.compose.foundation.layout.padding
13+
import androidx.compose.foundation.layout.safeDrawing
1214
import androidx.compose.foundation.layout.size
1315
import androidx.compose.foundation.layout.width
16+
import androidx.compose.foundation.layout.windowInsetsPadding
1417
import androidx.compose.material.MaterialTheme
1518
import androidx.compose.material.Text
1619
import androidx.compose.runtime.Composable
@@ -36,6 +39,7 @@ fun OnboardingScreen(modifier: Modifier = Modifier, content: @Composable ColumnS
3639
val screenWidth = screenWidth()
3740
Column(
3841
modifier = modifier
42+
.windowInsetsPadding(WindowInsets.safeDrawing)
3943
.padding(all = 16.dp)
4044
.width(min(screenWidth.value, STEP_SCREEN_MAX_WIDTH_DP).dp)
4145
.align(Alignment.Center),

app/src/main/kotlin/io/homeassistant/companion/android/settings/SettingsActivity.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import android.os.Bundle
66
import android.view.MenuItem
77
import android.view.View
88
import android.view.ViewGroup
9-
import androidx.activity.enableEdgeToEdge
109
import androidx.biometric.BiometricManager
1110
import androidx.fragment.app.commit
1211
import dagger.hilt.EntryPoint
@@ -51,7 +50,6 @@ class SettingsActivity : BaseActivity() {
5150
override fun onCreate(savedInstanceState: Bundle?) {
5251
val entryPoint = EntryPointAccessors.fromActivity(this, SettingsFragmentFactoryEntryPoint::class.java)
5352
supportFragmentManager.fragmentFactory = entryPoint.getSettingsFragmentFactory()
54-
enableEdgeToEdge()
5553

5654
super.onCreate(savedInstanceState)
5755
setContentView(R.layout.activity_settings)

app/src/main/kotlin/io/homeassistant/companion/android/webview/WebViewActivity.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ import android.widget.FrameLayout
4343
import android.widget.Toast
4444
import androidx.activity.OnBackPressedCallback
4545
import androidx.activity.compose.setContent
46-
import androidx.activity.enableEdgeToEdge
4746
import androidx.activity.result.IntentSenderRequest
4847
import androidx.activity.result.contract.ActivityResultContracts
4948
import androidx.annotation.OptIn
@@ -252,7 +251,6 @@ class WebViewActivity :
252251
}
253252

254253
super.onCreate(savedInstanceState)
255-
enableEdgeToEdge()
256254

257255
if (intent.extras?.containsKey(EXTRA_SERVER) == true) {
258256
intent.extras?.getInt(EXTRA_SERVER)?.let {

app/src/main/kotlin/io/homeassistant/companion/android/widgets/BaseWidgetConfigureActivity.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package io.homeassistant.companion.android.widgets
22

33
import android.appwidget.AppWidgetManager
4-
import android.os.Bundle
54
import android.view.View
65
import android.widget.AdapterView
76
import android.widget.AdapterView.OnItemSelectedListener
87
import android.widget.ArrayAdapter
98
import android.widget.Spinner
109
import android.widget.Toast
11-
import androidx.activity.enableEdgeToEdge
1210
import io.homeassistant.companion.android.BaseActivity
1311
import io.homeassistant.companion.android.common.R
1412
import io.homeassistant.companion.android.common.data.servers.ServerManager
@@ -29,11 +27,6 @@ abstract class BaseWidgetConfigureActivity : BaseActivity() {
2927

3028
var selectedServerId: Int? = null
3129

32-
override fun onCreate(savedInstanceState: Bundle?) {
33-
enableEdgeToEdge()
34-
super.onCreate(savedInstanceState)
35-
}
36-
3730
protected fun setupServerSelect(widgetServerId: Int?) {
3831
val servers = serverManager.defaultServers
3932
val activeServerId = serverManager.getServer()?.id

app/src/main/kotlin/io/homeassistant/companion/android/widgets/assist/AssistShortcutView.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ import io.homeassistant.companion.android.common.data.websocket.impl.entities.As
3232
import io.homeassistant.companion.android.database.server.Server
3333
import io.homeassistant.companion.android.util.compose.ExposedDropdownMenu
3434
import io.homeassistant.companion.android.util.compose.ServerExposedDropdownMenu
35+
import io.homeassistant.companion.android.util.safeBottomPaddingValues
36+
import io.homeassistant.companion.android.util.safeTopWindowInsets
3537

3638
@Composable
3739
fun AssistShortcutView(
@@ -48,10 +50,16 @@ fun AssistShortcutView(
4850
title = { Text(stringResource(commonR.string.assist_shortcut)) },
4951
backgroundColor = colorResource(commonR.color.colorBackground),
5052
contentColor = colorResource(commonR.color.colorOnBackground),
53+
windowInsets = safeTopWindowInsets(),
5154
)
5255
},
5356
) { padding ->
54-
Box(modifier = Modifier.padding(padding).verticalScroll(rememberScrollState())) {
57+
Box(
58+
modifier = Modifier
59+
.verticalScroll(rememberScrollState())
60+
.padding(safeBottomPaddingValues())
61+
.padding(padding),
62+
) {
5563
Column(modifier = Modifier.padding(all = 16.dp)) {
5664
val assist = stringResource(commonR.string.assist)
5765
var name by rememberSaveable { mutableStateOf(assist) }

0 commit comments

Comments
 (0)