Skip to content

Commit 154122a

Browse files
authored
Adjust edge to edge in BarcodeActivity for API 36 and landscape (#5353)
* Start barcode from dev playground
1 parent b18f86b commit 154122a

File tree

4 files changed

+16
-8
lines changed

4 files changed

+16
-8
lines changed

app/src/debug/kotlin/io/homeassistant/companion/android/developer/DevPlaygroundActivity.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import androidx.compose.ui.Alignment
1919
import androidx.compose.ui.Modifier
2020
import androidx.compose.ui.tooling.preview.Preview
2121
import androidx.compose.ui.unit.dp
22+
import io.homeassistant.companion.android.barcode.BarcodeScannerActivity
2223
import io.homeassistant.companion.android.settings.SettingsActivity
2324
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
2425

@@ -69,6 +70,11 @@ private fun DevPlayGroundScreen(context: Context? = null) {
6970
}) {
7071
Text("Start Settings")
7172
}
73+
Button(modifier = Modifier.padding(top = 16.dp), onClick = {
74+
context?.run { startActivity(BarcodeScannerActivity.newInstance(this, 0, "Title", "Subtitle", "Action")) }
75+
}) {
76+
Text("Start barcode")
77+
}
7278
}
7379
}
7480

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import android.content.Intent
66
import android.net.Uri
77
import android.os.Bundle
88
import android.provider.Settings
9-
import androidx.activity.SystemBarStyle
109
import androidx.activity.addCallback
1110
import androidx.activity.compose.setContent
1211
import androidx.activity.enableEdgeToEdge
@@ -16,15 +15,14 @@ import androidx.appcompat.app.AlertDialog
1615
import androidx.compose.runtime.getValue
1716
import androidx.compose.runtime.mutableStateOf
1817
import androidx.compose.runtime.setValue
19-
import androidx.compose.ui.graphics.toArgb
18+
import androidx.core.view.WindowCompat
2019
import androidx.lifecycle.Lifecycle
2120
import androidx.lifecycle.lifecycleScope
2221
import androidx.lifecycle.repeatOnLifecycle
2322
import com.google.zxing.BarcodeFormat
2423
import dagger.hilt.android.AndroidEntryPoint
2524
import io.homeassistant.companion.android.BaseActivity
2625
import io.homeassistant.companion.android.barcode.view.BarcodeScannerView
27-
import io.homeassistant.companion.android.barcode.view.barcodeScannerOverlayColor
2826
import io.homeassistant.companion.android.common.R as commonR
2927
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
3028
import java.util.Locale
@@ -65,8 +63,7 @@ class BarcodeScannerActivity : BaseActivity() {
6563
private var requestSilently by mutableStateOf(true)
6664

6765
override fun onCreate(savedInstanceState: Bundle?) {
68-
val overlaySystemBarStyle = SystemBarStyle.dark(barcodeScannerOverlayColor.toArgb())
69-
enableEdgeToEdge(overlaySystemBarStyle, overlaySystemBarStyle)
66+
enableEdgeToEdge()
7067
super.onCreate(savedInstanceState)
7168

7269
val messageId = intent.getIntExtra(EXTRA_MESSAGE_ID, -1)
@@ -76,6 +73,9 @@ class BarcodeScannerActivity : BaseActivity() {
7673
if (title == null || subtitle == null) finish() // Invalid state
7774
val action = if (intent.hasExtra(EXTRA_ACTION)) intent.getStringExtra(EXTRA_ACTION) else null
7875

76+
// Enforce status bar to be always light so we can see it above the blur of the screen
77+
WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightStatusBars = false
78+
7979
setContent {
8080
HomeAssistantAppTheme {
8181
BarcodeScannerView(

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,4 @@ fun BarcodeScannerOverlay(
6363
}
6464
}
6565

66-
val barcodeScannerOverlayColor = Color(0xAA000000)
66+
private val barcodeScannerOverlayColor = Color(0xAA000000)

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.homeassistant.companion.android.barcode.view
22

3+
import android.annotation.SuppressLint
34
import androidx.compose.foundation.layout.Box
45
import androidx.compose.foundation.layout.BoxWithConstraints
56
import androidx.compose.foundation.layout.Column
@@ -10,7 +11,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
1011
import androidx.compose.foundation.layout.height
1112
import androidx.compose.foundation.layout.offset
1213
import androidx.compose.foundation.layout.padding
13-
import androidx.compose.foundation.layout.safeDrawingPadding
1414
import androidx.compose.foundation.layout.size
1515
import androidx.compose.foundation.shape.CircleShape
1616
import androidx.compose.material.ButtonDefaults
@@ -55,7 +55,9 @@ import io.homeassistant.companion.android.util.compose.darkColorBackground
5555
import io.homeassistant.companion.android.util.compose.safeScreenHeight
5656
import io.homeassistant.companion.android.util.compose.screenWidth
5757
import io.homeassistant.companion.android.util.getActivity
58+
import io.homeassistant.companion.android.util.safeTopWindowInsets
5859

60+
@SuppressLint("UnusedBoxWithConstraintsScope")
5961
@Composable
6062
fun BarcodeScannerView(
6163
title: String,
@@ -112,7 +114,6 @@ fun BarcodeScannerView(
112114

113115
BoxWithConstraints(
114116
modifier = Modifier
115-
.safeDrawingPadding()
116117
.fillMaxSize()
117118
) {
118119
val screenHeight = safeScreenHeight()
@@ -151,6 +152,7 @@ fun BarcodeScannerView(
151152
}
152153
},
153154
backgroundColor = Color.Transparent,
155+
windowInsets = safeTopWindowInsets(),
154156
elevation = 0.dp
155157
)
156158
},

0 commit comments

Comments
 (0)