From 5001fd0b95db6ee15996c59810c6c82c06c391f4 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Wed, 4 Sep 2024 12:34:38 +0200 Subject: [PATCH] colorize status bar ...for ConversationCreationActivity and ContactsActivityCompose just a quick fix, this may not be the best solution! Signed-off-by: Marcel Hibbe --- .../talk/contacts/ContactsActivityCompose.kt | 23 +++++++++++++++++++ .../ConversationCreationActivity.kt | 22 ++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivityCompose.kt b/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivityCompose.kt index cc0374134..5fdbc3c73 100644 --- a/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivityCompose.kt +++ b/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivityCompose.kt @@ -18,6 +18,7 @@ import androidx.activity.compose.setContent import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.clickable +import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -48,6 +49,7 @@ import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -58,12 +60,14 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.core.view.WindowCompat import androidx.lifecycle.ViewModelProvider import autodagger.AutoInjector import coil.compose.AsyncImage @@ -140,6 +144,25 @@ class ContactsActivityCompose : BaseActivity() { } ) } + + SetStatusBarColor() + } + } + + @Composable + private fun SetStatusBarColor() { + val view = LocalView.current + val isDarkMod = isSystemInDarkTheme() + + DisposableEffect(isDarkMod) { + val activity = view.context as Activity + activity.window.statusBarColor = resources.getColor(R.color.bg_default) + + WindowCompat.getInsetsController(activity.window, activity.window.decorView).apply { + isAppearanceLightStatusBars = !isDarkMod + } + + onDispose { } } } } diff --git a/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt index edd94e42c..7746dae46 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt @@ -20,6 +20,7 @@ import androidx.activity.compose.setContent import androidx.activity.result.ActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.clickable +import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -48,6 +49,7 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextField import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -57,11 +59,13 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.core.view.WindowCompat import androidx.lifecycle.ViewModelProvider import autodagger.AutoInjector import coil.compose.AsyncImage @@ -96,10 +100,28 @@ class ConversationCreationActivity : BaseActivity() { ) { ConversationCreationScreen(conversationCreationViewModel, context) } + SetStatusBarColor() } } } +@Composable +private fun SetStatusBarColor() { + val view = LocalView.current + val isDarkMod = isSystemInDarkTheme() + + DisposableEffect(isDarkMod) { + val activity = view.context as Activity + activity.window.statusBarColor = activity.getColor(R.color.bg_default) + + WindowCompat.getInsetsController(activity.window, activity.window.decorView).apply { + isAppearanceLightStatusBars = !isDarkMod + } + + onDispose { } + } +} + @OptIn(ExperimentalMaterial3Api::class) @Composable fun ConversationCreationScreen(conversationCreationViewModel: ConversationCreationViewModel, context: Context) {