From e2e53cf0c0336d40b39a408102232eec353d5f4b Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 26 Feb 2024 16:24:46 +0000 Subject: [PATCH] Updated on 2026-08-14 --- .../feature/qrscanning/QrScanningFragment.kt | 45 +++++++++++++------ 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/features/qr-scanning/impl/src/main/java/com/tangem/feature/qrscanning/QrScanningFragment.kt b/features/qr-scanning/impl/src/main/java/com/tangem/feature/qrscanning/QrScanningFragment.kt index 5805460bc2..cec4314b37 100644 --- a/features/qr-scanning/impl/src/main/java/com/tangem/feature/qrscanning/QrScanningFragment.kt +++ b/features/qr-scanning/impl/src/main/java/com/tangem/feature/qrscanning/QrScanningFragment.kt @@ -5,12 +5,16 @@ import android.content.pm.PackageManager import android.os.Bundle import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.core.content.ContextCompat -import androidx.core.view.WindowCompat import androidx.fragment.app.viewModels -import com.tangem.core.ui.components.SystemBarsEffect +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver +import com.google.accompanist.systemuicontroller.rememberSystemUiController +import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.screen.ComposeFragment import com.tangem.core.ui.theme.AppThemeModeHolder import com.tangem.feature.qrscanning.inner.MLKitBarcodeAnalyzer @@ -57,22 +61,18 @@ internal class QrScanningFragment : ComposeFragment() { override fun onDestroy() { super.onDestroy() - setFitSystemWindows(fit = true) cameraPermissionLauncher.unregister() cameraExecutor.shutdown() } @Composable override fun ScreenContent(modifier: Modifier) { - SystemBarsEffect { - setSystemBarsColor(Color.Transparent, darkIcons = false) - } + StatusBarTransparencyDisposable() QrScanningContent( executor = { cameraExecutor }, analyzer = { analyzer }, uiState = viewModel.uiState, ) - setFitSystemWindows(fit = false) } private fun requestCameraPermission() { @@ -86,14 +86,33 @@ internal class QrScanningFragment : ComposeFragment() { } } - private fun setFitSystemWindows(fit: Boolean) { - activity?.window?.let { - WindowCompat.setDecorFitsSystemWindows(it, fit) - } - } - companion object { fun create() = QrScanningFragment() } +} + +@Composable +private fun StatusBarTransparencyDisposable() { + val systemUiController = rememberSystemUiController() + val systemBarsColor = TangemTheme.colors.background.secondary + val lifecycleOwner = LocalLifecycleOwner.current + DisposableEffect(Unit) { + val observer = LifecycleEventObserver { _, event -> + if (event == Lifecycle.Event.ON_START) { + systemUiController.setSystemBarsColor( + color = Color.Transparent, + darkIcons = false, + ) + } + if (event == Lifecycle.Event.ON_STOP) { + systemUiController.setSystemBarsColor(systemBarsColor) + } + } + lifecycleOwner.lifecycle.addObserver(observer) + + onDispose { + lifecycleOwner.lifecycle.removeObserver(observer) + } + } } \ No newline at end of file