improvements

This commit is contained in:
2025-06-23 19:50:28 +03:00
parent 9d4e3f50ea
commit c14ee45d53
5 changed files with 12 additions and 14 deletions
@@ -9,7 +9,6 @@ import android.util.Log
import android.widget.Toast
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.StringAnnotation
import androidx.compose.ui.text.TextRange
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.font.FontStyle
@@ -80,6 +80,8 @@ fun MessagesHistoryInputBar(
val context = LocalContext.current
val density = LocalDensity.current
val scope = rememberCoroutineScope()
val theme = LocalThemeConfig.current
Column(
@@ -130,7 +132,6 @@ fun MessagesHistoryInputBar(
Spacer(modifier = Modifier.width(6.dp))
if (showEmojiButton) {
val scope = rememberCoroutineScope()
val rotation = remember { Animatable(0f) }
Column(verticalArrangement = Arrangement.Bottom) {
@@ -239,7 +240,6 @@ fun MessagesHistoryInputBar(
)
val scope = rememberCoroutineScope()
val attachmentRotation = remember { Animatable(0f) }
Column(verticalArrangement = Arrangement.Bottom) {
@@ -50,6 +50,7 @@ fun MessagesHistoryRoute(
screenState = screenState,
messages = messages.toImmutableList(),
uiMessages = uiMessages.toImmutableList(),
isSelectedAtLeastOne = selectedMessages.isNotEmpty(),
scrollIndex = scrollIndex,
selectedMessages = selectedMessages.toImmutableList(),
baseError = baseError,
@@ -26,6 +26,7 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ -61,6 +62,7 @@ fun MessagesHistoryScreen(
screenState: MessagesHistoryScreenState = MessagesHistoryScreenState.EMPTY,
messages: ImmutableList<VkMessage> = emptyImmutableList(),
uiMessages: ImmutableList<UiItem> = emptyImmutableList(),
isSelectedAtLeastOne: Boolean = false,
scrollIndex: Int? = null,
selectedMessages: ImmutableList<VkMessage> = emptyImmutableList(),
baseError: BaseError? = null,
@@ -95,6 +97,8 @@ fun MessagesHistoryScreen(
val listState = rememberLazyListState()
val hazeState = remember { HazeState(true) }
val currentOnMessageClicked by rememberUpdatedState(onMessageClicked)
LaunchedEffect(scrollIndex) {
if (scrollIndex != null) {
coroutineScope.launch {
@@ -206,6 +210,7 @@ fun MessagesHistoryScreen(
listState = listState,
hasPinnedMessage = pinnedMessage != null,
uiMessages = uiMessages,
isSelectedAtLeastOne = isSelectedAtLeastOne,
isPaginating = screenState.isPaginating,
messageBarHeight = messageBarHeight,
onRequestScrollToCmId = { cmId ->
@@ -224,7 +229,7 @@ fun MessagesHistoryScreen(
view.performHapticFeedback(HapticFeedbackConstantsCompat.CONTEXT_CLICK)
}
}
onMessageClicked(id)
currentOnMessageClicked.invoke(id)
},
onMessageLongClicked = onMessageLongClicked
)
@@ -1,7 +1,6 @@
package dev.meloda.fast.messageshistory.presentation
import android.content.Intent
import android.net.Uri
import android.util.Log
import android.view.HapticFeedbackConstants
import androidx.compose.animation.AnimatedVisibility
@@ -23,7 +22,6 @@ import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
@@ -33,17 +31,17 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.core.net.toUri
import dev.chrisbanes.haze.HazeState
import dev.chrisbanes.haze.hazeSource
import dev.meloda.fast.datastore.AppSettings
import dev.meloda.fast.messageshistory.model.UiItem
import dev.meloda.fast.model.api.domain.VkAttachment
import dev.meloda.fast.model.api.domain.VkFileDomain
import dev.meloda.fast.model.api.domain.VkLinkDomain
import dev.meloda.fast.model.api.domain.VkPhotoDomain
import dev.meloda.fast.ui.theme.LocalThemeConfig
import dev.meloda.fast.ui.util.ImmutableList
import androidx.core.net.toUri
import dev.meloda.fast.model.api.domain.VkFileDomain
@OptIn(ExperimentalFoundationApi::class)
@Composable
@@ -53,6 +51,7 @@ fun MessagesList(
hazeState: HazeState,
listState: LazyListState,
uiMessages: ImmutableList<UiItem>,
isSelectedAtLeastOne: Boolean,
isPaginating: Boolean,
messageBarHeight: Dp,
onRequestScrollToCmId: (cmId: Long) -> Unit = {},
@@ -63,12 +62,6 @@ fun MessagesList(
val theme = LocalThemeConfig.current
val view = LocalView.current
val isSelectedAtLeastOne by remember(uiMessages) {
derivedStateOf {
uiMessages.values.any { (it as? UiItem.Message)?.isSelected == true }
}
}
val onAttachmentClick = remember {
{ message: UiItem.Message, attachment: VkAttachment ->
if (isSelectedAtLeastOne) {