Skip to content

Commit

Permalink
Merge branch 'release/candidate' into localize-strings-cherry-pick
Browse files Browse the repository at this point in the history
  • Loading branch information
ohassine authored Oct 22, 2024
2 parents a573ec4 + 07b9e6b commit 3791476
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ import com.wire.kalium.logic.data.message.DeliveryStatus
import com.wire.kalium.logic.data.message.Message
import com.wire.kalium.logic.data.message.MessageContent
import com.wire.kalium.logic.data.message.MessageContent.Asset
import com.wire.kalium.logic.data.message.hasValidData
import com.wire.kalium.logic.data.user.AssetId
import com.wire.kalium.logic.data.user.SelfUser
import com.wire.kalium.logic.data.user.User
import com.wire.kalium.logic.sync.receiver.conversation.message.hasValidRemoteData
import com.wire.kalium.logic.util.isGreaterThan
import kotlinx.collections.immutable.toPersistentList
import kotlinx.collections.immutable.toPersistentMap
Expand Down Expand Up @@ -239,7 +239,8 @@ class RegularMessageMapper @Inject constructor(
with(assetMessageContentMetadata.assetMessageContent) {
when {
// If some of image data are still missing, we mark it as incomplete which won't be shown until we get missing data
assetMessageContentMetadata.isIncompleteImage() -> {
// But we also check if isnt our own message, if its our own, most likely the there was an error sending the image.
assetMessageContentMetadata.isIncompleteImage() && sender !is SelfUser -> {
UIMessageContent.IncompleteAssetMessage
}

Expand Down Expand Up @@ -306,7 +307,7 @@ class AssetMessageContentMetadata(val assetMessageContent: AssetContent) {

// Sometimes client receives two events for the same asset, first one with only part of the data ("preview" type from web),
// so such asset shouldn't be shown until all the required data is received.
fun isIncompleteImage(): Boolean = isDisplayableImage() && !assetMessageContent.hasValidRemoteData()
fun isIncompleteImage(): Boolean = isDisplayableImage() && !assetMessageContent.remoteData.hasValidData()
}

private fun String?.orUnknownName(): UIText = when {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ fun ConversationScreen(
val messageComposerStateHolder = rememberMessageComposerStateHolder(
messageComposerViewState = messageComposerViewState,
draftMessageComposition = messageDraftViewModel.state.value,
onClearDraft = messageDraftViewModel::clearDraft,
onSaveDraft = messageComposerViewModel::saveDraft,
onSearchMentionQueryChanged = messageComposerViewModel::searchMembersToMention,
onTypingEvent = messageComposerViewModel::sendTypingEvent,
Expand Down Expand Up @@ -1373,6 +1374,7 @@ fun PreviewConversationScreen() = WireTheme {
val messageComposerStateHolder = rememberMessageComposerStateHolder(
messageComposerViewState = messageComposerViewState,
draftMessageComposition = messageCompositionState.value,
onClearDraft = {},
onSaveDraft = {},
onTypingEvent = {},
onSearchMentionQueryChanged = {},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,14 @@ class MessageDraftViewModel @Inject constructor(
loadMessageDraft()
}

fun clearDraft() {
viewModelScope.launch {
state.update {
MessageComposition(conversationId, String.EMPTY)
}
}
}

private fun loadMessageDraft() {
viewModelScope.launch {
val draftResult = getMessageDraft(conversationId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ fun MessageComposer(
onSendMessageBundle(messageCompositionHolder.toMessageBundle(conversationId))
onClearMentionSearchResult()
clearMessage()
messageCompositionHolder.onClearDraft()
},
onPingOptionClicked = onPingOptionClicked,
onImagesPicked = onImagesPicked,
Expand Down Expand Up @@ -265,6 +266,7 @@ private fun BaseComposerPreview(
messageCompositionHolder = MessageCompositionHolder(
messageComposition = messageComposition,
messageTextState = messageTextState,
onClearDraft = {},
onSaveDraft = {},
onSearchMentionQueryChanged = {},
onClearMentionSearchResult = {},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import com.wire.kalium.logic.data.message.mention.MessageMention
fun rememberMessageComposerStateHolder(
messageComposerViewState: State<MessageComposerViewState>,
draftMessageComposition: MessageComposition,
onClearDraft: () -> Unit,
onSaveDraft: (MessageDraft) -> Unit,
onSearchMentionQueryChanged: (String) -> Unit,
onClearMentionSearchResult: () -> Unit,
Expand All @@ -62,6 +63,7 @@ fun rememberMessageComposerStateHolder(
MessageCompositionHolder(
messageComposition = messageComposition,
messageTextState = messageTextState,
onClearDraft = onClearDraft,
onSaveDraft = onSaveDraft,
onSearchMentionQueryChanged = onSearchMentionQueryChanged,
onClearMentionSearchResult = onClearMentionSearchResult,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ import kotlinx.coroutines.flow.distinctUntilChanged
class MessageCompositionHolder(
val messageComposition: MutableState<MessageComposition>,
val messageTextState: TextFieldState,
val onClearDraft: () -> Unit,
private val onSaveDraft: (MessageDraft) -> Unit,
private val onSearchMentionQueryChanged: (String) -> Unit,
private val onClearMentionSearchResult: () -> Unit,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ class MessageComposerStateHolderTest {
messageCompositionHolder = MessageCompositionHolder(
messageComposition = messageComposition,
messageTextState = messageTextState,
onClearDraft = {},
onSaveDraft = {},
onSearchMentionQueryChanged = {},
onClearMentionSearchResult = {},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ class MessageCompositionHolderTest {
state = MessageCompositionHolder(
messageComposition = messageComposition,
messageTextState = messageTextState,
onClearDraft = {},
onSaveDraft = {},
onSearchMentionQueryChanged = {},
onClearMentionSearchResult = {},
Expand Down

0 comments on commit 3791476

Please sign in to comment.