Skip to content

Commit d744e07

Browse files
committed
Remove dependencies to other presenters in MessagesPresenter.
1 parent 2e5450c commit d744e07

File tree

7 files changed

+237
-256
lines changed

7 files changed

+237
-256
lines changed

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,21 @@ import io.element.android.features.messages.impl.actionlist.ActionListPresenter
3232
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
3333
import io.element.android.features.messages.impl.actionlist.model.TimelineItemActionPostProcessor
3434
import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents
35-
import io.element.android.features.messages.impl.messagecomposer.MessageComposerPresenter
3635
import io.element.android.features.messages.impl.messagecomposer.MessageComposerState
3736
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerState
3837
import io.element.android.features.messages.impl.timeline.TimelineController
3938
import io.element.android.features.messages.impl.timeline.TimelineEvents
4039
import io.element.android.features.messages.impl.timeline.TimelinePresenter
4140
import io.element.android.features.messages.impl.timeline.TimelineState
42-
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionPresenter
43-
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryPresenter
44-
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetPresenter
41+
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionState
42+
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
43+
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
4544
import io.element.android.features.messages.impl.timeline.model.TimelineItem
4645
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent
4746
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent
4847
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemTextBasedContent
4948
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState
50-
import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessageComposerPresenter
49+
import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessageComposerState
5150
import io.element.android.features.networkmonitor.api.NetworkMonitor
5251
import io.element.android.features.networkmonitor.api.NetworkStatus
5352
import io.element.android.libraries.androidutils.clipboard.ClipboardHelper
@@ -88,14 +87,14 @@ import timber.log.Timber
8887
class MessagesPresenter @AssistedInject constructor(
8988
@Assisted private val navigator: MessagesNavigator,
9089
private val room: MatrixRoom,
91-
private val composerPresenter: MessageComposerPresenter,
92-
private val voiceMessageComposerPresenter: VoiceMessageComposerPresenter,
90+
private val composerPresenter: Presenter<MessageComposerState>,
91+
private val voiceMessageComposerPresenter: Presenter<VoiceMessageComposerState>,
9392
timelinePresenterFactory: TimelinePresenter.Factory,
9493
private val timelineProtectionPresenter: Presenter<TimelineProtectionState>,
9594
private val actionListPresenterFactory: ActionListPresenter.Factory,
96-
private val customReactionPresenter: CustomReactionPresenter,
97-
private val reactionSummaryPresenter: ReactionSummaryPresenter,
98-
private val readReceiptBottomSheetPresenter: ReadReceiptBottomSheetPresenter,
95+
private val customReactionPresenter: Presenter<CustomReactionState>,
96+
private val reactionSummaryPresenter: Presenter<ReactionSummaryState>,
97+
private val readReceiptBottomSheetPresenter: Presenter<ReadReceiptBottomSheetState>,
9998
private val pinnedMessagesBannerPresenter: Presenter<PinnedMessagesBannerState>,
10099
private val networkMonitor: NetworkMonitor,
101100
private val snackbarDispatcher: SnackbarDispatcher,

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/di/MessagesModule.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,22 @@ import dagger.Binds
1212
import dagger.Module
1313
import io.element.android.features.messages.impl.crypto.sendfailure.resolve.ResolveVerifiedUserSendFailurePresenter
1414
import io.element.android.features.messages.impl.crypto.sendfailure.resolve.ResolveVerifiedUserSendFailureState
15+
import io.element.android.features.messages.impl.messagecomposer.MessageComposerPresenter
16+
import io.element.android.features.messages.impl.messagecomposer.MessageComposerState
1517
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerPresenter
1618
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerState
19+
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionPresenter
20+
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionState
21+
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryPresenter
22+
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
23+
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetPresenter
24+
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
1725
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionPresenter
1826
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState
1927
import io.element.android.features.messages.impl.typing.TypingNotificationPresenter
2028
import io.element.android.features.messages.impl.typing.TypingNotificationState
29+
import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessageComposerPresenter
30+
import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessageComposerState
2131
import io.element.android.libraries.architecture.Presenter
2232
import io.element.android.libraries.di.RoomScope
2333

@@ -35,4 +45,19 @@ interface MessagesModule {
3545

3646
@Binds
3747
fun bindTimelineProtectionPresenter(presenter: TimelineProtectionPresenter): Presenter<TimelineProtectionState>
48+
49+
@Binds
50+
fun bindMessageComposerPresenter(presenter: MessageComposerPresenter): Presenter<MessageComposerState>
51+
52+
@Binds
53+
fun bindVoiceMessageComposerPresenter(presenter: VoiceMessageComposerPresenter): Presenter<VoiceMessageComposerState>
54+
55+
@Binds
56+
fun bindCustomReactionPresenter(presenter: CustomReactionPresenter): Presenter<CustomReactionState>
57+
58+
@Binds
59+
fun bindReactionSummaryPresenter(presenter: ReactionSummaryPresenter): Presenter<ReactionSummaryState>
60+
61+
@Binds
62+
fun bindReadReceiptBottomSheetPresenter(presenter: ReadReceiptBottomSheetPresenter): Presenter<ReadReceiptBottomSheetState>
3863
}

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerStateProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ fun aMessageComposerState(
3333
canCreatePoll: Boolean = true,
3434
attachmentsState: AttachmentsState = AttachmentsState.None,
3535
suggestions: ImmutableList<ResolvedSuggestion> = persistentListOf(),
36+
eventSink: (MessageComposerEvents) -> Unit = {},
3637
) = MessageComposerState(
3738
textEditorState = textEditorState,
3839
isFullScreen = isFullScreen,
@@ -44,5 +45,5 @@ fun aMessageComposerState(
4445
attachmentsState = attachmentsState,
4546
suggestions = suggestions,
4647
resolveMentionDisplay = { _, _ -> TextDisplay.Plain },
47-
eventSink = {},
48+
eventSink = eventSink,
4849
)

0 commit comments

Comments
 (0)