Skip to content

Commit

Permalink
[i226] fix unread count not being cleared
Browse files Browse the repository at this point in the history
  • Loading branch information
kanat authored and JcMinarro committed Dec 12, 2023
1 parent 07d3b23 commit 66a20ae
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2195,7 +2195,7 @@ internal constructor(
plugins.forEach { it.onMarkAllReadRequest() }
}
.doOnResult(userScope) {
logger.v { "[markAllRead] #doOnStart; completed" }
logger.v { "[markAllRead] #doOnResult; completed" }
}
.share(userScope) { MarkAllReadIdentifier() }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import androidx.compose.ui.unit.dp
import io.getstream.chat.android.compose.ui.components.LoadingIndicator
import io.getstream.chat.android.compose.ui.components.messages.MessagesScrollingOption
import io.getstream.chat.android.models.Message
import io.getstream.chat.android.ui.common.state.messages.list.HasMessageListItemState
import io.getstream.chat.android.ui.common.state.messages.list.MessageFocused
import io.getstream.chat.android.ui.common.state.messages.list.MessageItemState
import io.getstream.chat.android.ui.common.state.messages.list.MessageListItemState
Expand Down Expand Up @@ -199,7 +200,7 @@ public fun Messages(
OnLastVisibleItemChanged(lazyListState) { messageIndex ->
val message = messagesState.messageItems.getOrNull(messageIndex)

if (message is MessageItemState) {
if (message is HasMessageListItemState) {
onLastVisibleMessageChanged(message.message)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -844,6 +844,8 @@ public final class io/getstream/chat/android/ui/common/state/messages/list/EditM
public final class io/getstream/chat/android/ui/common/state/messages/list/EmptyThreadPlaceholderItemState : io/getstream/chat/android/ui/common/state/messages/list/MessageListItemState {
public static final field $stable I
public static final field INSTANCE Lio/getstream/chat/android/ui/common/state/messages/list/EmptyThreadPlaceholderItemState;
public fun equals (Ljava/lang/Object;)Z
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

Expand All @@ -852,6 +854,11 @@ public abstract class io/getstream/chat/android/ui/common/state/messages/list/Gi
public abstract fun getMessage ()Lio/getstream/chat/android/models/Message;
}

public abstract class io/getstream/chat/android/ui/common/state/messages/list/HasMessageListItemState : io/getstream/chat/android/ui/common/state/messages/list/MessageListItemState {
public static final field $stable I
public abstract fun getMessage ()Lio/getstream/chat/android/models/Message;
}

public final class io/getstream/chat/android/ui/common/state/messages/list/MessageFocusRemoved : io/getstream/chat/android/ui/common/state/messages/list/MessageFocusState {
public static final field $stable I
public static final field INSTANCE Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusRemoved;
Expand Down Expand Up @@ -904,7 +911,7 @@ public final class io/getstream/chat/android/ui/common/state/messages/list/Messa
public fun toString ()Ljava/lang/String;
}

public final class io/getstream/chat/android/ui/common/state/messages/list/MessageItemState : io/getstream/chat/android/ui/common/state/messages/list/MessageListItemState {
public final class io/getstream/chat/android/ui/common/state/messages/list/MessageItemState : io/getstream/chat/android/ui/common/state/messages/list/HasMessageListItemState {
public static final field $stable I
public fun <init> ()V
public fun <init> (Lio/getstream/chat/android/models/Message;Ljava/lang/String;ZZZLio/getstream/chat/android/models/User;Ljava/util/List;ZLio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;Ljava/util/List;)V
Expand All @@ -927,7 +934,7 @@ public final class io/getstream/chat/android/ui/common/state/messages/list/Messa
public final fun getDeletedMessageVisibility ()Lio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;
public final fun getFocusState ()Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;
public final fun getGroupPosition ()Ljava/util/List;
public final fun getMessage ()Lio/getstream/chat/android/models/Message;
public fun getMessage ()Lio/getstream/chat/android/models/Message;
public final fun getMessageReadBy ()Ljava/util/List;
public final fun getParentMessageId ()Ljava/lang/String;
public final fun getShowMessageFooter ()Z
Expand Down Expand Up @@ -1130,14 +1137,14 @@ public final class io/getstream/chat/android/ui/common/state/messages/list/Shuff
public fun toString ()Ljava/lang/String;
}

public final class io/getstream/chat/android/ui/common/state/messages/list/SystemMessageItemState : io/getstream/chat/android/ui/common/state/messages/list/MessageListItemState {
public final class io/getstream/chat/android/ui/common/state/messages/list/SystemMessageItemState : io/getstream/chat/android/ui/common/state/messages/list/HasMessageListItemState {
public static final field $stable I
public fun <init> (Lio/getstream/chat/android/models/Message;)V
public final fun component1 ()Lio/getstream/chat/android/models/Message;
public final fun copy (Lio/getstream/chat/android/models/Message;)Lio/getstream/chat/android/ui/common/state/messages/list/SystemMessageItemState;
public static synthetic fun copy$default (Lio/getstream/chat/android/ui/common/state/messages/list/SystemMessageItemState;Lio/getstream/chat/android/models/Message;ILjava/lang/Object;)Lio/getstream/chat/android/ui/common/state/messages/list/SystemMessageItemState;
public fun equals (Ljava/lang/Object;)Z
public final fun getMessage ()Lio/getstream/chat/android/models/Message;
public fun getMessage ()Lio/getstream/chat/android/models/Message;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1328,8 +1328,12 @@ public class MessageListController(
*/
public fun updateLastSeenMessage(message: Message) {
val lastLoadedMessage = if (isInThread) lastLoadedThreadMessage else lastLoadedMessage
logger.d {
"[updateLastSeenMessage] isInThread: $isInThread, message: ${message.id}('${message.text}'), " +
"lastLoadedMessage: ${lastLoadedMessage?.id}('${lastLoadedMessage?.text}')"
}
if (message.id == lastLoadedMessage?.id) {
logger.d { "[updateLastSeenMessage] matched($isInThread); message.id: ${message.id}" }
logger.v { "[updateLastSeenMessage] matched(isInThread: $isInThread)" }
markLastMessageRead()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,17 @@ import java.util.Date
*/
public sealed class MessageListItemState

/**
* Represents either regular or system message item inside a message list.
*/
public sealed class HasMessageListItemState : MessageListItemState() {

/**
* The [Message] to show in the list.
*/
public abstract val message: Message
}

/**
* Represents a message item inside the messages list.
*
Expand All @@ -42,7 +53,7 @@ public sealed class MessageListItemState
* @param focusState The current [MessageFocusState] of the message, used to focus the message in the ui.
*/
public data class MessageItemState(
public val message: Message = Message(),
public override val message: Message = Message(),
public val parentMessageId: String? = null,
public val isMine: Boolean = false,
public val isInThread: Boolean = false,
Expand All @@ -53,7 +64,7 @@ public data class MessageItemState(
public val deletedMessageVisibility: DeletedMessageVisibility = DeletedMessageVisibility.ALWAYS_HIDDEN,
public val focusState: MessageFocusState? = null,
public val messageReadBy: List<ChannelUserRead> = emptyList(),
) : MessageListItemState()
) : HasMessageListItemState()

/**
* Represents a date separator inside the message list.
Expand Down Expand Up @@ -81,8 +92,8 @@ public data class ThreadDateSeparatorItemState(
* @param message The [Message] to show as the system message inside the list.
*/
public data class SystemMessageItemState(
public val message: Message,
) : MessageListItemState()
public override val message: Message,
) : HasMessageListItemState()

/**
* Represents a typing indicator item inside a message list.
Expand All @@ -96,6 +107,4 @@ public data class TypingItemState(
/**
* Represents an empty thread placeholder item inside thread messages list.
*/
public object EmptyThreadPlaceholderItemState : MessageListItemState() {
override fun toString(): String = "EmptyThreadPlaceholderItemState"
}
public data object EmptyThreadPlaceholderItemState : MessageListItemState()

0 comments on commit 66a20ae

Please sign in to comment.