Merge pull request #4791 from nextcloud/bugfix/4779/colorStatusBar

Bugfix/4779/color status bar
This commit is contained in:
Marcel Hibbe 2025-03-13 09:11:26 +00:00 committed by GitHub
commit 5650a14781
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 14 additions and 36 deletions

View File

@ -10,27 +10,26 @@ package com.nextcloud.talk.components
import android.app.Activity
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.colorResource
import androidx.core.view.WindowCompat
import com.nextcloud.talk.R
@Composable
fun SetStatusBarColor() {
fun SetupSystemBars() {
val view = LocalView.current
val isDarkMod = isSystemInDarkTheme()
val statusBarColor = colorResource(R.color.bg_default).toArgb()
val isDarkMode = isSystemInDarkTheme()
val statusBarColor = MaterialTheme.colorScheme.surface.toArgb()
DisposableEffect(isDarkMod) {
DisposableEffect(isDarkMode) {
val activity = view.context as Activity
activity.window.statusBarColor = statusBarColor
WindowCompat.getInsetsController(activity.window, activity.window.decorView).apply {
isAppearanceLightStatusBars = !isDarkMod
isAppearanceLightStatusBars = !isDarkMode
isAppearanceLightNavigationBars = !isDarkMode
}
onDispose { }
}

View File

@ -19,7 +19,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import autodagger.AutoInjector
import com.nextcloud.talk.activities.BaseActivity
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.components.SetStatusBarColor
import com.nextcloud.talk.components.SetupSystemBars
import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser
import javax.inject.Inject
@ -68,9 +68,8 @@ class ContactsActivityCompose : BaseActivity() {
contactsViewModel = contactsViewModel,
uiState = uiState.value
)
SetupSystemBars()
}
SetStatusBarColor()
}
}
}

View File

@ -2,6 +2,7 @@
* Nextcloud Talk - Android Client
*
* SPDX-FileCopyrightText: 2024 Sowjanya Kota <sowjanya.kch@gmail.com>
* SPDX-FileCopyrightText: 2025 Marcel Hibbe <dev@mhibbe.de>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
@ -22,7 +23,6 @@ import androidx.activity.result.ActivityResult
import androidx.activity.result.contract.ActivityResultContracts
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
@ -58,7 +58,6 @@ import androidx.compose.material3.TextButton
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
@ -70,7 +69,6 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
@ -79,7 +77,6 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Dialog
import androidx.core.view.WindowCompat
import androidx.lifecycle.ViewModelProvider
import autodagger.AutoInjector
import coil.compose.AsyncImage
@ -87,6 +84,7 @@ import com.nextcloud.talk.R
import com.nextcloud.talk.activities.BaseActivity
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.chat.ChatActivity
import com.nextcloud.talk.components.SetupSystemBars
import com.nextcloud.talk.contacts.ContactsActivityCompose
import com.nextcloud.talk.contacts.loadImage
import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser
@ -118,29 +116,12 @@ class ConversationCreationActivity : BaseActivity() {
colorScheme = colorScheme
) {
ConversationCreationScreen(conversationCreationViewModel, context, pickImage)
SetupSystemBars()
}
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(

View File

@ -36,7 +36,7 @@ import com.nextcloud.talk.api.NcApi
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.arbitrarystorage.ArbitraryStorageManager
import com.nextcloud.talk.components.StandardAppBar
import com.nextcloud.talk.components.SetStatusBarColor
import com.nextcloud.talk.components.SetupSystemBars
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.BrandingUtils
import com.nextcloud.talk.utils.ClosedInterfaceImpl
@ -117,9 +117,8 @@ class DiagnoseActivity : BaseActivity() {
}
}
)
SetupSystemBars()
}
SetStatusBarColor()
}
}