Implement reply preview for poll.end events.
This commit is contained in:
parent
89f91a2ecd
commit
89a7d70849
|
@ -3502,4 +3502,5 @@
|
|||
<string name="message_reply_to_sender_sent_sticker">sent a sticker.</string>
|
||||
<string name="message_reply_to_sender_created_poll">created a poll.</string>
|
||||
<string name="message_reply_to_sender_ended_poll">ended a poll.</string>
|
||||
<string name="message_reply_to_ended_poll_preview">Ended poll</string>
|
||||
</resources>
|
||||
|
|
|
@ -44,6 +44,7 @@ import org.commonmark.parser.Parser
|
|||
import org.matrix.android.sdk.api.session.room.model.message.MessageAudioContent
|
||||
import org.matrix.android.sdk.api.session.room.model.message.MessageBeaconInfoContent
|
||||
import org.matrix.android.sdk.api.session.room.model.message.MessageContent
|
||||
import org.matrix.android.sdk.api.session.room.model.message.MessageEndPollContent
|
||||
import org.matrix.android.sdk.api.session.room.model.message.MessageFormat
|
||||
import org.matrix.android.sdk.api.session.room.model.message.MessagePollContent
|
||||
import org.matrix.android.sdk.api.session.room.model.message.MessageTextContent
|
||||
|
@ -181,6 +182,7 @@ class PlainTextComposerLayout @JvmOverloads constructor(
|
|||
is MessageAudioContent -> getAudioContentBodyText(messageContent)
|
||||
is MessagePollContent -> messageContent.getBestPollCreationInfo()?.question?.getBestQuestion()
|
||||
is MessageBeaconInfoContent -> resources.getString(R.string.live_location_description)
|
||||
is MessageEndPollContent -> resources.getString(R.string.message_reply_to_ended_poll_preview)
|
||||
else -> messageContent?.body.orEmpty()
|
||||
}
|
||||
var formattedBody: CharSequence? = null
|
||||
|
|
|
@ -17,11 +17,13 @@
|
|||
package im.vector.app.features.home.room.detail.timeline.format
|
||||
|
||||
import android.content.Context
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.utils.TextUtils
|
||||
import org.matrix.android.sdk.api.session.events.model.Event
|
||||
import org.matrix.android.sdk.api.session.events.model.isAudioMessage
|
||||
import org.matrix.android.sdk.api.session.events.model.isFileMessage
|
||||
import org.matrix.android.sdk.api.session.events.model.isImageMessage
|
||||
import org.matrix.android.sdk.api.session.events.model.isPollEnd
|
||||
import org.matrix.android.sdk.api.session.events.model.isVideoMessage
|
||||
import org.matrix.android.sdk.api.session.events.model.toModel
|
||||
import org.matrix.android.sdk.api.session.room.model.message.MessageAudioContent
|
||||
|
@ -51,10 +53,13 @@ class EventDetailsFormatter @Inject constructor(
|
|||
event.isVideoMessage() -> formatForVideoMessage(event)
|
||||
event.isAudioMessage() -> formatForAudioMessage(event)
|
||||
event.isFileMessage() -> formatForFileMessage(event)
|
||||
event.isPollEnd() -> formatPollEndMessage()
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
private fun formatPollEndMessage() = context.getString(R.string.message_reply_to_ended_poll_preview)
|
||||
|
||||
/**
|
||||
* Example: "1024 x 720 - 670 kB".
|
||||
*/
|
||||
|
|
|
@ -26,6 +26,8 @@ import org.matrix.android.sdk.api.session.events.model.isFileMessage
|
|||
import org.matrix.android.sdk.api.session.events.model.isImageMessage
|
||||
import org.matrix.android.sdk.api.session.events.model.isLiveLocation
|
||||
import org.matrix.android.sdk.api.session.events.model.isPoll
|
||||
import org.matrix.android.sdk.api.session.events.model.isPollEnd
|
||||
import org.matrix.android.sdk.api.session.events.model.isPollStart
|
||||
import org.matrix.android.sdk.api.session.events.model.isSticker
|
||||
import org.matrix.android.sdk.api.session.events.model.isVideoMessage
|
||||
import org.matrix.android.sdk.api.session.events.model.isVoiceMessage
|
||||
|
@ -94,9 +96,11 @@ class ProcessBodyOfReplyToEventUseCase @Inject constructor(
|
|||
)
|
||||
}
|
||||
repliedToEvent.isPoll() -> {
|
||||
val fallbackText = if (repliedToEvent.type in EventType.POLL_START.values)
|
||||
stringProvider.getString(R.string.message_reply_to_sender_created_poll)
|
||||
else stringProvider.getString(R.string.message_reply_to_sender_ended_poll)
|
||||
val fallbackText = when {
|
||||
repliedToEvent.isPollStart() -> stringProvider.getString(R.string.message_reply_to_sender_created_poll)
|
||||
repliedToEvent.isPollEnd() -> stringProvider.getString(R.string.message_reply_to_sender_ended_poll)
|
||||
else -> ""
|
||||
}
|
||||
matrixFormattedBody.replaceRange(
|
||||
afterBreakingLineIndex,
|
||||
endOfBlockQuoteIndex,
|
||||
|
|
Loading…
Reference in New Issue