diff --git a/app/src/debug/kotlin/io/homeassistant/companion/android/developer/DevPlaygroundActivity.kt b/app/src/debug/kotlin/io/homeassistant/companion/android/developer/DevPlaygroundActivity.kt index 5fc94c5424b..c58add4f07a 100644 --- a/app/src/debug/kotlin/io/homeassistant/companion/android/developer/DevPlaygroundActivity.kt +++ b/app/src/debug/kotlin/io/homeassistant/companion/android/developer/DevPlaygroundActivity.kt @@ -19,6 +19,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import io.homeassistant.companion.android.barcode.BarcodeScannerActivity import io.homeassistant.companion.android.settings.SettingsActivity import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme @@ -69,6 +70,11 @@ private fun DevPlayGroundScreen(context: Context? = null) { }) { Text("Start Settings") } + Button(modifier = Modifier.padding(top = 16.dp), onClick = { + context?.run { startActivity(BarcodeScannerActivity.newInstance(this, 0, "Title", "Subtitle", "Action")) } + }) { + Text("Start barcode") + } } } diff --git a/app/src/main/kotlin/io/homeassistant/companion/android/barcode/BarcodeScannerActivity.kt b/app/src/main/kotlin/io/homeassistant/companion/android/barcode/BarcodeScannerActivity.kt index 653776de289..a9eb6c155d2 100644 --- a/app/src/main/kotlin/io/homeassistant/companion/android/barcode/BarcodeScannerActivity.kt +++ b/app/src/main/kotlin/io/homeassistant/companion/android/barcode/BarcodeScannerActivity.kt @@ -6,7 +6,6 @@ import android.content.Intent import android.net.Uri import android.os.Bundle import android.provider.Settings -import androidx.activity.SystemBarStyle import androidx.activity.addCallback import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge @@ -16,7 +15,7 @@ import androidx.appcompat.app.AlertDialog import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue -import androidx.compose.ui.graphics.toArgb +import androidx.core.view.WindowCompat import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle @@ -24,7 +23,6 @@ import com.google.zxing.BarcodeFormat import dagger.hilt.android.AndroidEntryPoint import io.homeassistant.companion.android.BaseActivity import io.homeassistant.companion.android.barcode.view.BarcodeScannerView -import io.homeassistant.companion.android.barcode.view.barcodeScannerOverlayColor import io.homeassistant.companion.android.common.R as commonR import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme import java.util.Locale @@ -65,8 +63,7 @@ class BarcodeScannerActivity : BaseActivity() { private var requestSilently by mutableStateOf(true) override fun onCreate(savedInstanceState: Bundle?) { - val overlaySystemBarStyle = SystemBarStyle.dark(barcodeScannerOverlayColor.toArgb()) - enableEdgeToEdge(overlaySystemBarStyle, overlaySystemBarStyle) + enableEdgeToEdge() super.onCreate(savedInstanceState) val messageId = intent.getIntExtra(EXTRA_MESSAGE_ID, -1) @@ -76,6 +73,9 @@ class BarcodeScannerActivity : BaseActivity() { if (title == null || subtitle == null) finish() // Invalid state val action = if (intent.hasExtra(EXTRA_ACTION)) intent.getStringExtra(EXTRA_ACTION) else null + // Enforce status bar to be always light so we can see it above the blur of the screen + WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightStatusBars = false + setContent { HomeAssistantAppTheme { BarcodeScannerView( diff --git a/app/src/main/kotlin/io/homeassistant/companion/android/barcode/view/BarcodeScannerOverlay.kt b/app/src/main/kotlin/io/homeassistant/companion/android/barcode/view/BarcodeScannerOverlay.kt index 30e3d6904d5..a2a1d025664 100644 --- a/app/src/main/kotlin/io/homeassistant/companion/android/barcode/view/BarcodeScannerOverlay.kt +++ b/app/src/main/kotlin/io/homeassistant/companion/android/barcode/view/BarcodeScannerOverlay.kt @@ -63,4 +63,4 @@ fun BarcodeScannerOverlay( } } -val barcodeScannerOverlayColor = Color(0xAA000000) +private val barcodeScannerOverlayColor = Color(0xAA000000) diff --git a/app/src/main/kotlin/io/homeassistant/companion/android/barcode/view/BarcodeScannerView.kt b/app/src/main/kotlin/io/homeassistant/companion/android/barcode/view/BarcodeScannerView.kt index e3425f5dee0..31ce2dfa4ad 100644 --- a/app/src/main/kotlin/io/homeassistant/companion/android/barcode/view/BarcodeScannerView.kt +++ b/app/src/main/kotlin/io/homeassistant/companion/android/barcode/view/BarcodeScannerView.kt @@ -1,5 +1,6 @@ package io.homeassistant.companion.android.barcode.view +import android.annotation.SuppressLint import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.Column @@ -10,7 +11,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.safeDrawingPadding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.ButtonDefaults @@ -55,7 +55,9 @@ import io.homeassistant.companion.android.util.compose.darkColorBackground import io.homeassistant.companion.android.util.compose.safeScreenHeight import io.homeassistant.companion.android.util.compose.screenWidth import io.homeassistant.companion.android.util.getActivity +import io.homeassistant.companion.android.util.safeTopWindowInsets +@SuppressLint("UnusedBoxWithConstraintsScope") @Composable fun BarcodeScannerView( title: String, @@ -112,7 +114,6 @@ fun BarcodeScannerView( BoxWithConstraints( modifier = Modifier - .safeDrawingPadding() .fillMaxSize() ) { val screenHeight = safeScreenHeight() @@ -151,6 +152,7 @@ fun BarcodeScannerView( } }, backgroundColor = Color.Transparent, + windowInsets = safeTopWindowInsets(), elevation = 0.dp ) },