diff --git a/app/src/main/java/com/nextcloud/talk/components/SetupSystemBars.kt b/app/src/main/java/com/nextcloud/talk/components/ColoredStatusBar.kt similarity index 54% rename from app/src/main/java/com/nextcloud/talk/components/SetupSystemBars.kt rename to app/src/main/java/com/nextcloud/talk/components/ColoredStatusBar.kt index 5c36286c6..60613a401 100644 --- a/app/src/main/java/com/nextcloud/talk/components/SetupSystemBars.kt +++ b/app/src/main/java/com/nextcloud/talk/components/ColoredStatusBar.kt @@ -1,7 +1,6 @@ /* * Nextcloud Talk - Android Client * - * SPDX-FileCopyrightText: 2024 Sowjanya Kota * SPDX-FileCopyrightText: 2025 Marcel Hibbe * SPDX-License-Identifier: GPL-3.0-or-later */ @@ -9,16 +8,41 @@ package com.nextcloud.talk.components import android.app.Activity +import android.os.Build +import androidx.compose.foundation.background import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.statusBars +import androidx.compose.foundation.layout.windowInsetsTopHeight import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect +import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalView import androidx.core.view.WindowCompat @Composable -fun SetupSystemBars() { +fun ColoredStatusBar() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { + Box(modifier = Modifier.fillMaxSize()) { + Box( + Modifier + .windowInsetsTopHeight(WindowInsets.statusBars) + .fillMaxWidth() + .background(MaterialTheme.colorScheme.surface) + ) + } + } else { + ColorLegacyStatusBar() + } +} + +@Composable +private fun ColorLegacyStatusBar() { val view = LocalView.current val isDarkMode = isSystemInDarkTheme() val statusBarColor = MaterialTheme.colorScheme.surface.toArgb() diff --git a/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt b/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt index b0031a27f..5f93ddf75 100644 --- a/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt @@ -18,9 +18,9 @@ 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.ColoredStatusBar import com.nextcloud.talk.contacts.CompanionClass.Companion.KEY_HIDE_ALREADY_EXISTING_PARTICIPANTS import com.nextcloud.talk.extensions.getParcelableArrayListExtraProvider -import com.nextcloud.talk.components.SetupSystemBars import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser import com.nextcloud.talk.utils.bundle.BundleKeys import javax.inject.Inject @@ -64,11 +64,11 @@ class ContactsActivity : BaseActivity() { MaterialTheme( colorScheme = colorScheme ) { + ColoredStatusBar() ContactsScreen( contactsViewModel = contactsViewModel, uiState = uiState.value ) - SetupSystemBars() } } } 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 215ffde5f..c6b5a14c8 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt @@ -84,8 +84,8 @@ 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.ColoredStatusBar import com.nextcloud.talk.contacts.ContactsActivity -import com.nextcloud.talk.components.SetupSystemBars import com.nextcloud.talk.contacts.loadImage import com.nextcloud.talk.extensions.getParcelableArrayListExtraProvider import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser @@ -117,7 +117,6 @@ class ConversationCreationActivity : BaseActivity() { colorScheme = colorScheme ) { ConversationCreationScreen(conversationCreationViewModel, context, pickImage) - SetupSystemBars() } } } @@ -172,6 +171,7 @@ fun ConversationCreationScreen( } ) + ColoredStatusBar() Scaffold( topBar = { TopAppBar( @@ -191,7 +191,7 @@ fun ConversationCreationScreen( content = { paddingValues -> Column( modifier = Modifier - .padding(paddingValues) + .padding(0.dp, paddingValues.calculateTopPadding(), 0.dp, 0.dp) .background(colorResource(id = R.color.bg_default)) .fillMaxSize() .verticalScroll(rememberScrollState()) diff --git a/app/src/main/java/com/nextcloud/talk/diagnose/DiagnoseActivity.kt b/app/src/main/java/com/nextcloud/talk/diagnose/DiagnoseActivity.kt index c2dcf88fa..02426b3f7 100644 --- a/app/src/main/java/com/nextcloud/talk/diagnose/DiagnoseActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/diagnose/DiagnoseActivity.kt @@ -21,6 +21,7 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.runtime.collectAsState @@ -28,8 +29,9 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.ui.Modifier import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.stringResource -import androidx.lifecycle.ViewModelProvider +import androidx.compose.ui.unit.dp import androidx.core.net.toUri +import androidx.lifecycle.ViewModelProvider import autodagger.AutoInjector import com.nextcloud.talk.BuildConfig import com.nextcloud.talk.R @@ -37,8 +39,8 @@ import com.nextcloud.talk.activities.BaseActivity import com.nextcloud.talk.api.NcApi import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.arbitrarystorage.ArbitraryStorageManager +import com.nextcloud.talk.components.ColoredStatusBar import com.nextcloud.talk.components.StandardAppBar -import com.nextcloud.talk.components.SetupSystemBars import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.utils.BrandingUtils import com.nextcloud.talk.utils.ClosedInterfaceImpl @@ -109,18 +111,22 @@ class DiagnoseActivity : BaseActivity() { MaterialTheme( colorScheme = colorScheme ) { + ColoredStatusBar() Scaffold( + modifier = Modifier + .statusBarsPadding(), topBar = { StandardAppBar( title = stringResource(R.string.nc_settings_diagnose_title), menuItems ) }, - content = { + content = { paddingValues -> val viewState = diagnoseViewModel.notificationViewState.collectAsState().value + Column( Modifier - .padding(it) + .padding(0.dp, paddingValues.calculateTopPadding(), 0.dp, 0.dp) .background(backgroundColor) .fillMaxSize() ) { @@ -136,7 +142,6 @@ class DiagnoseActivity : BaseActivity() { } } ) - SetupSystemBars() } } } diff --git a/app/src/main/java/com/nextcloud/talk/diagnose/DiagnoseContentComposable.kt b/app/src/main/java/com/nextcloud/talk/diagnose/DiagnoseContentComposable.kt index f6cfba19e..d3cc1b495 100644 --- a/app/src/main/java/com/nextcloud/talk/diagnose/DiagnoseContentComposable.kt +++ b/app/src/main/java/com/nextcloud/talk/diagnose/DiagnoseContentComposable.kt @@ -65,7 +65,12 @@ fun DiagnoseContentComposable( Column( modifier = Modifier .fillMaxSize() - .padding(16.dp) + .padding( + start = 16.dp, + top = 0.dp, + end = 16.dp, + bottom = 0.dp + ) .verticalScroll(rememberScrollState()) ) { data.value.forEach { element -> @@ -100,6 +105,7 @@ fun DiagnoseContentComposable( ShowTestPushButton(onTestPushClick) } ShowNotificationData(isLoading, showDialog, context, viewState, onDismissDialog) + Spacer(modifier = Modifier.height(40.dp)) } }