diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt index 4893947fc3..4a196193ba 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt @@ -347,7 +347,7 @@ internal class EventRelationsAggregationProcessor @Inject constructor(@UserId pr if (userId == senderId) { sumModel.myVote = optionIndex } - Timber.v("## POLL adding vote $optionIndex for user $senderId in poll :$relatedEventId ") + Timber.v("## POLL adding vote $optionIndex for user $senderId in poll :$targetEventId ") } else { Timber.v("## POLL Ignoring vote (older than known one) eventId:$eventId ") } @@ -356,7 +356,7 @@ internal class EventRelationsAggregationProcessor @Inject constructor(@UserId pr if (userId == senderId) { sumModel.myVote = optionIndex } - Timber.v("## POLL adding vote $optionIndex for user $senderId in poll :$relatedEventId ") + Timber.v("## POLL adding vote $optionIndex for user $senderId in poll :$targetEventId ") } sumModel.votes = votes if (isLocalEcho) { diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt index 0120cbb2bb..eab0007080 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt @@ -63,6 +63,7 @@ import org.matrix.android.sdk.api.session.Session import org.matrix.android.sdk.api.session.crypto.MXCryptoError import org.matrix.android.sdk.api.session.events.model.EventType import org.matrix.android.sdk.api.session.events.model.isAttachmentMessage +import org.matrix.android.sdk.api.session.events.model.LocalEcho import org.matrix.android.sdk.api.session.events.model.isTextMessage import org.matrix.android.sdk.api.session.events.model.toContent import org.matrix.android.sdk.api.session.events.model.toModel @@ -1218,6 +1219,8 @@ class RoomDetailViewModel @AssistedInject constructor( } private fun handleReplyToOptions(action: RoomDetailAction.ReplyToOptions) { + // Do not allow to reply to unsent local echo + if (LocalEcho.isLocalEchoId(action.eventId)) return room.sendOptionsReply(action.eventId, action.optionIndex, action.optionValue) } diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessagePollItem.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessagePollItem.kt index 8bc0e7d478..9d500b99b0 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessagePollItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessagePollItem.kt @@ -75,6 +75,8 @@ abstract class MessagePollItem : AbsMessageItem() { optionsContent?.options?.forEachIndexed { index, item -> if (index < buttons.size) { buttons[index].let { + // current limitation, have to wait for event to be sent in order to reply + it.isEnabled = informationData?.sendState?.isSent() ?: false it.text = item.label it.isVisible = true }