From cbe3313b873d694528b705adb70f9d7bf0b9086b Mon Sep 17 00:00:00 2001 From: Danil Nikolaev Date: Fri, 21 Mar 2025 04:44:09 +0300 Subject: [PATCH] * pagination in chat fixed * other fixes and improvements --- .../kotlin/dev/meloda/fast/presentation/MainScreen.kt | 4 ++-- .../kotlin/dev/meloda/fast/ui/components/IconButton.kt | 2 +- .../main/kotlin/dev/meloda/fast/ui/util/Extensions.kt | 6 +++--- .../src/main/res/drawable/baseline_people_alt_24.xml | 8 ++++---- .../res/drawable/ic_round_add_circle_outline_24.xml | 9 --------- core/ui/src/main/res/drawable/ic_round_close_24.xml | 9 --------- .../conversations/presentation/ConversationsList.kt | 10 +++------- .../conversations/presentation/ConversationsScreen.kt | 8 ++++---- .../meloda/fast/friends/presentation/FriendsList.kt | 10 +++------- .../presentation/MessagesHistoryScreen.kt | 2 +- 10 files changed, 21 insertions(+), 47 deletions(-) delete mode 100644 core/ui/src/main/res/drawable/ic_round_add_circle_outline_24.xml delete mode 100644 core/ui/src/main/res/drawable/ic_round_close_24.xml diff --git a/app/src/main/kotlin/dev/meloda/fast/presentation/MainScreen.kt b/app/src/main/kotlin/dev/meloda/fast/presentation/MainScreen.kt index f44085b2..778bd9a0 100644 --- a/app/src/main/kotlin/dev/meloda/fast/presentation/MainScreen.kt +++ b/app/src/main/kotlin/dev/meloda/fast/presentation/MainScreen.kt @@ -33,7 +33,7 @@ import androidx.navigation.compose.navigation import androidx.navigation.compose.rememberNavController import coil.compose.SubcomposeAsyncImage import dev.chrisbanes.haze.HazeState -import dev.chrisbanes.haze.hazeChild +import dev.chrisbanes.haze.hazeEffect import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import dev.chrisbanes.haze.materials.HazeMaterials import dev.meloda.fast.MainViewModel @@ -84,7 +84,7 @@ fun MainScreen( modifier = Modifier .then( if (currentTheme.enableBlur) { - Modifier.hazeChild( + Modifier.hazeEffect( state = hazeState, style = HazeMaterials.thick() ) diff --git a/core/ui/src/main/kotlin/dev/meloda/fast/ui/components/IconButton.kt b/core/ui/src/main/kotlin/dev/meloda/fast/ui/components/IconButton.kt index e6516beb..0148d85d 100644 --- a/core/ui/src/main/kotlin/dev/meloda/fast/ui/components/IconButton.kt +++ b/core/ui/src/main/kotlin/dev/meloda/fast/ui/components/IconButton.kt @@ -29,9 +29,9 @@ import androidx.compose.ui.unit.dp @OptIn(ExperimentalFoundationApi::class) @Composable fun IconButton( + modifier: Modifier = Modifier, onClick: () -> Unit = {}, onLongClick: (() -> Unit)? = null, - modifier: Modifier = Modifier, enabled: Boolean = true, colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), interactionSource: MutableInteractionSource? = null, diff --git a/core/ui/src/main/kotlin/dev/meloda/fast/ui/util/Extensions.kt b/core/ui/src/main/kotlin/dev/meloda/fast/ui/util/Extensions.kt index 211e7f58..3cfc47ad 100644 --- a/core/ui/src/main/kotlin/dev/meloda/fast/ui/util/Extensions.kt +++ b/core/ui/src/main/kotlin/dev/meloda/fast/ui/util/Extensions.kt @@ -1,7 +1,6 @@ package dev.meloda.fast.ui.util import android.content.res.Configuration -import android.graphics.drawable.ColorDrawable import android.os.PowerManager import android.view.KeyEvent import androidx.compose.foundation.lazy.LazyListState @@ -21,6 +20,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.core.content.getSystemService +import androidx.core.graphics.drawable.toDrawable import dev.meloda.fast.common.model.DarkMode import dev.meloda.fast.common.model.UiImage import dev.meloda.fast.common.model.UiText @@ -64,8 +64,8 @@ fun UiImage.getResourcePainter(): Painter? { @Composable fun UiImage.getImage(): Any { return when (this) { - is UiImage.Color -> ColorDrawable(color) - is UiImage.ColorResource -> ColorDrawable(colorResource(id = resId).toArgb()) + is UiImage.Color -> color.toDrawable() + is UiImage.ColorResource -> colorResource(id = resId).toArgb().toDrawable() is UiImage.Resource -> painterResource(id = resId) is UiImage.Simple -> drawable is UiImage.Url -> url diff --git a/core/ui/src/main/res/drawable/baseline_people_alt_24.xml b/core/ui/src/main/res/drawable/baseline_people_alt_24.xml index 90c82148..318f73c5 100644 --- a/core/ui/src/main/res/drawable/baseline_people_alt_24.xml +++ b/core/ui/src/main/res/drawable/baseline_people_alt_24.xml @@ -1,11 +1,11 @@ - + - + - + - + diff --git a/core/ui/src/main/res/drawable/ic_round_add_circle_outline_24.xml b/core/ui/src/main/res/drawable/ic_round_add_circle_outline_24.xml deleted file mode 100644 index 855e6815..00000000 --- a/core/ui/src/main/res/drawable/ic_round_add_circle_outline_24.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/core/ui/src/main/res/drawable/ic_round_close_24.xml b/core/ui/src/main/res/drawable/ic_round_close_24.xml deleted file mode 100644 index 0aa41eb7..00000000 --- a/core/ui/src/main/res/drawable/ic_round_close_24.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/feature/conversations/src/main/kotlin/dev/meloda/fast/conversations/presentation/ConversationsList.kt b/feature/conversations/src/main/kotlin/dev/meloda/fast/conversations/presentation/ConversationsList.kt index 835a2677..7b65c752 100644 --- a/feature/conversations/src/main/kotlin/dev/meloda/fast/conversations/presentation/ConversationsList.kt +++ b/feature/conversations/src/main/kotlin/dev/meloda/fast/conversations/presentation/ConversationsList.kt @@ -5,7 +5,6 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.items @@ -83,8 +82,7 @@ fun ConversationsList( Column( modifier = Modifier .fillMaxWidth() - .animateItem(fadeInSpec = null, fadeOutSpec = null) - .navigationBarsPadding(), + .animateItem(fadeInSpec = null, fadeOutSpec = null), horizontalAlignment = Alignment.CenterHorizontally ) { if (screenState.isPaginating) { @@ -107,11 +105,9 @@ fun ConversationsList( ) } } - } - } - item { - Spacer(modifier = Modifier.height(bottomPadding)) + Spacer(modifier = Modifier.height(8.dp)) + } } } } diff --git a/feature/conversations/src/main/kotlin/dev/meloda/fast/conversations/presentation/ConversationsScreen.kt b/feature/conversations/src/main/kotlin/dev/meloda/fast/conversations/presentation/ConversationsScreen.kt index e7c42f1a..c038e352 100644 --- a/feature/conversations/src/main/kotlin/dev/meloda/fast/conversations/presentation/ConversationsScreen.kt +++ b/feature/conversations/src/main/kotlin/dev/meloda/fast/conversations/presentation/ConversationsScreen.kt @@ -64,8 +64,8 @@ import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp import androidx.core.view.HapticFeedbackConstantsCompat import androidx.lifecycle.compose.collectAsStateWithLifecycle -import dev.chrisbanes.haze.haze -import dev.chrisbanes.haze.hazeChild +import dev.chrisbanes.haze.hazeEffect +import dev.chrisbanes.haze.hazeSource import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import dev.chrisbanes.haze.materials.HazeMaterials import dev.meloda.fast.conversations.ConversationsViewModel @@ -275,7 +275,7 @@ fun ConversationsScreen( modifier = Modifier .then( if (currentTheme.enableBlur) { - Modifier.hazeChild( + Modifier.hazeEffect( state = hazeState, style = HazeMaterials.thick() ) @@ -390,7 +390,7 @@ fun ConversationsScreen( state = listState, maxLines = maxLines, modifier = if (currentTheme.enableBlur) { - Modifier.haze(state = hazeState) + Modifier.hazeSource(state = hazeState) } else { Modifier }.fillMaxSize(), diff --git a/feature/friends/src/main/kotlin/dev/meloda/fast/friends/presentation/FriendsList.kt b/feature/friends/src/main/kotlin/dev/meloda/fast/friends/presentation/FriendsList.kt index 13f9c1b1..7ada64dd 100644 --- a/feature/friends/src/main/kotlin/dev/meloda/fast/friends/presentation/FriendsList.kt +++ b/feature/friends/src/main/kotlin/dev/meloda/fast/friends/presentation/FriendsList.kt @@ -5,7 +5,6 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.items @@ -77,8 +76,7 @@ fun FriendsList( Column( modifier = Modifier .fillMaxWidth() - .animateItem(fadeInSpec = null, fadeOutSpec = null) - .navigationBarsPadding(), + .animateItem(fadeInSpec = null, fadeOutSpec = null), horizontalAlignment = Alignment.CenterHorizontally ) { if (screenState.isPaginating) { @@ -101,11 +99,9 @@ fun FriendsList( ) } } - } - } - item { - Spacer(modifier = Modifier.height(bottomPadding)) + Spacer(modifier = Modifier.height(8.dp)) + } } } } diff --git a/feature/messageshistory/src/main/kotlin/dev/meloda/fast/messageshistory/presentation/MessagesHistoryScreen.kt b/feature/messageshistory/src/main/kotlin/dev/meloda/fast/messageshistory/presentation/MessagesHistoryScreen.kt index 9f2d2fe1..36a9f46c 100644 --- a/feature/messageshistory/src/main/kotlin/dev/meloda/fast/messageshistory/presentation/MessagesHistoryScreen.kt +++ b/feature/messageshistory/src/main/kotlin/dev/meloda/fast/messageshistory/presentation/MessagesHistoryScreen.kt @@ -159,7 +159,7 @@ fun MessagesHistoryScreen( val listState = rememberLazyListState() - val paginationConditionMet by remember { + val paginationConditionMet by remember(canPaginate, listState) { derivedStateOf { canPaginate && (listState.layoutInfo.visibleItemsInfo.lastOrNull()?.index