diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt index d2032bb4c4..00c7d41160 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt @@ -238,7 +238,7 @@ class MessageItemFactory @Inject constructor( return PollItem_() .attributes(attributes) .eventId(informationData.eventId) - .pollQuestion(pollViewState.question) + .pollQuestion(createPollQuestion(informationData, pollViewState.question, callback)) .canVote(pollViewState.canVote) .totalVotesText(pollViewState.totalVotes) .optionViewStates(pollViewState.optionViewStates) @@ -248,6 +248,16 @@ class MessageItemFactory @Inject constructor( .callback(callback) } + private fun createPollQuestion( + informationData: MessageInformationData, + question: String, + callback: TimelineEventController.Callback?, + ) = if (informationData.hasBeenEdited) { + annotateWithEdited(stringProvider, colorProvider, dimensionConverter, question, callback, informationData) + } else { + question + }.toEpoxyCharSequence() + private fun buildAudioMessageItem( params: TimelineItemFactoryParams, messageContent: MessageAudioContent, diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/PollItemViewStateFactory.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/PollItemViewStateFactory.kt index 8365f0710e..acedd79b1c 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/PollItemViewStateFactory.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/PollItemViewStateFactory.kt @@ -17,17 +17,12 @@ package im.vector.app.features.home.room.detail.timeline.factory import im.vector.app.R -import im.vector.app.core.resources.ColorProvider import im.vector.app.core.resources.StringProvider -import im.vector.app.core.utils.DimensionConverter import im.vector.app.features.home.room.detail.timeline.TimelineEventController -import im.vector.app.features.home.room.detail.timeline.factory.MessageItemFactoryHelper.annotateWithEdited import im.vector.app.features.home.room.detail.timeline.item.MessageInformationData import im.vector.app.features.home.room.detail.timeline.item.PollOptionViewState import im.vector.app.features.home.room.detail.timeline.item.PollResponseData import im.vector.app.features.poll.PollViewState -import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence -import im.vector.lib.core.utils.epoxy.charsequence.toEpoxyCharSequence import org.matrix.android.sdk.api.extensions.orFalse import org.matrix.android.sdk.api.session.room.model.message.MessagePollContent import org.matrix.android.sdk.api.session.room.model.message.PollCreationInfo @@ -35,8 +30,6 @@ import javax.inject.Inject class PollItemViewStateFactory @Inject constructor( private val stringProvider: StringProvider, - private val colorProvider: ColorProvider, - private val dimensionConverter: DimensionConverter, ) { fun create( @@ -46,8 +39,7 @@ class PollItemViewStateFactory @Inject constructor( ): PollViewState { val pollCreationInfo = pollContent.getBestPollCreationInfo() - val questionText = pollCreationInfo?.question?.getBestQuestion().orEmpty() - val question = createPollQuestion(informationData, questionText, callback) + val question = pollCreationInfo?.question?.getBestQuestion().orEmpty() val pollResponseSummary = informationData.pollResponseAggregatedSummary val winnerVoteCount = pollResponseSummary?.winnerVoteCount @@ -72,7 +64,7 @@ class PollItemViewStateFactory @Inject constructor( } } - private fun createSendingPollViewState(question: EpoxyCharSequence, pollCreationInfo: PollCreationInfo?): PollViewState { + private fun createSendingPollViewState(question: String, pollCreationInfo: PollCreationInfo?): PollViewState { return PollViewState( question = question, totalVotes = stringProvider.getString(R.string.poll_no_votes_cast), @@ -87,7 +79,7 @@ class PollItemViewStateFactory @Inject constructor( } private fun createEndedPollViewState( - question: EpoxyCharSequence, + question: String, pollCreationInfo: PollCreationInfo?, pollResponseSummary: PollResponseData?, totalVotes: Int, @@ -111,7 +103,7 @@ class PollItemViewStateFactory @Inject constructor( } private fun createUndisclosedPollViewState( - question: EpoxyCharSequence, + question: String, pollCreationInfo: PollCreationInfo?, pollResponseSummary: PollResponseData? ): PollViewState { @@ -131,7 +123,7 @@ class PollItemViewStateFactory @Inject constructor( } private fun createVotedPollViewState( - question: EpoxyCharSequence, + question: String, pollCreationInfo: PollCreationInfo?, pollResponseSummary: PollResponseData?, totalVotes: Int @@ -154,7 +146,7 @@ class PollItemViewStateFactory @Inject constructor( ) } - private fun createReadyPollViewState(question: EpoxyCharSequence, pollCreationInfo: PollCreationInfo?, totalVotes: Int): PollViewState { + private fun createReadyPollViewState(question: String, pollCreationInfo: PollCreationInfo?, totalVotes: Int): PollViewState { val totalVotesText = if (totalVotes == 0) { stringProvider.getString(R.string.poll_no_votes_cast) } else { @@ -172,14 +164,4 @@ class PollItemViewStateFactory @Inject constructor( }, ) } - - private fun createPollQuestion( - informationData: MessageInformationData, - question: String, - callback: TimelineEventController.Callback?, - ) = if (informationData.hasBeenEdited) { - annotateWithEdited(stringProvider, colorProvider, dimensionConverter, question, callback, informationData) - } else { - question - }.toEpoxyCharSequence() } diff --git a/vector/src/main/java/im/vector/app/features/poll/PollViewState.kt b/vector/src/main/java/im/vector/app/features/poll/PollViewState.kt index 01947d8850..0f01d58c96 100644 --- a/vector/src/main/java/im/vector/app/features/poll/PollViewState.kt +++ b/vector/src/main/java/im/vector/app/features/poll/PollViewState.kt @@ -17,10 +17,9 @@ package im.vector.app.features.poll import im.vector.app.features.home.room.detail.timeline.item.PollOptionViewState -import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence data class PollViewState( - val question: EpoxyCharSequence, + val question: String, val totalVotes: String, val canVote: Boolean, val optionViewStates: List?,