Code cleanup
This commit is contained in:
@@ -26,7 +26,6 @@ import io.element.android.appnav.di.TimelineBindings
|
||||
import io.element.android.appnav.room.RoomNavigationTarget
|
||||
import io.element.android.features.forward.api.ForwardEntryPoint
|
||||
import io.element.android.features.messages.api.MessagesEntryPoint
|
||||
import io.element.android.features.messages.api.pinned.PinnedEventsTimelineProvider
|
||||
import io.element.android.features.roomdetails.api.RoomDetailsEntryPoint
|
||||
import io.element.android.features.space.api.SpaceEntryPoint
|
||||
import io.element.android.libraries.architecture.BackstackView
|
||||
@@ -45,12 +44,9 @@ import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkData
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.timeline.TimelineProvider
|
||||
import io.element.android.services.appnavstate.api.ActiveRoomsHolder
|
||||
import io.element.android.services.appnavstate.api.AppNavigationStateService
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import timber.log.Timber
|
||||
|
||||
@@ -8,9 +8,7 @@
|
||||
package io.element.android.features.messages.impl.pinned
|
||||
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import dev.zacsweers.metro.binding
|
||||
import io.element.android.features.messages.api.pinned.PinnedEventsTimelineProvider
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
@@ -31,8 +29,7 @@ import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
@SingleIn(RoomScope::class)
|
||||
@ContributesBinding(RoomScope::class, binding = binding<PinnedEventsTimelineProvider>())
|
||||
@Inject
|
||||
@ContributesBinding(RoomScope::class)
|
||||
class DefaultPinnedEventsTimelineProvider(
|
||||
private val room: JoinedRoom,
|
||||
private val syncService: SyncService,
|
||||
|
||||
@@ -90,7 +90,7 @@ class DefaultMessagesEntryPointTest {
|
||||
override fun navigateToRoomDetails() = lambdaError()
|
||||
override fun navigateToRoomMemberDetails(userId: UserId) = lambdaError()
|
||||
override fun handlePermalinkClick(data: PermalinkData, pushToBackstack: Boolean) = lambdaError()
|
||||
override fun forwardEvent(eventId: EventId) = lambdaError()
|
||||
override fun forwardEvent(eventId: EventId, fromPinnedEvents: Boolean) = lambdaError()
|
||||
override fun navigateToRoom(roomId: RoomId) = lambdaError()
|
||||
}
|
||||
val initialTarget = MessagesEntryPoint.InitialTarget.Messages(focusedEventId = AN_EVENT_ID)
|
||||
|
||||
@@ -64,7 +64,7 @@ class DefaultRoomDetailsEntryPointTest {
|
||||
override fun navigateToGlobalNotificationSettings() = lambdaError()
|
||||
override fun navigateToRoom(roomId: RoomId, serverNames: List<String>) = lambdaError()
|
||||
override fun handlePermalinkClick(data: PermalinkData, pushToBackstack: Boolean) = lambdaError()
|
||||
override fun startForwardEventFlow(eventId: EventId) = lambdaError()
|
||||
override fun startForwardEventFlow(eventId: EventId, fromPinnedEvents: Boolean) = lambdaError()
|
||||
}
|
||||
val params = RoomDetailsEntryPoint.Params(
|
||||
initialElement = RoomDetailsEntryPoint.InitialTarget.RoomDetails,
|
||||
|
||||
@@ -40,7 +40,7 @@ class DefaultMediaGalleryEntryPointTest {
|
||||
val callback = object : MediaGalleryEntryPoint.Callback {
|
||||
override fun onBackClick() = lambdaError()
|
||||
override fun viewInTimeline(eventId: EventId) = lambdaError()
|
||||
override fun forward(eventId: EventId) = lambdaError()
|
||||
override fun forward(eventId: EventId, fromPinnedEvents: Boolean) = lambdaError()
|
||||
}
|
||||
val result = entryPoint.createNode(
|
||||
parentNode = parentNode,
|
||||
|
||||
@@ -72,7 +72,7 @@ class DefaultMediaViewerEntryPointTest {
|
||||
val callback = object : MediaViewerEntryPoint.Callback {
|
||||
override fun onDone() = lambdaError()
|
||||
override fun viewInTimeline(eventId: EventId) = lambdaError()
|
||||
override fun forwardEvent(eventId: EventId) = lambdaError()
|
||||
override fun forwardEvent(eventId: EventId, fromPinnedEvents: Boolean) = lambdaError()
|
||||
}
|
||||
val params = createMediaViewerEntryPointParams()
|
||||
val result = entryPoint.createNode(
|
||||
@@ -118,7 +118,7 @@ class DefaultMediaViewerEntryPointTest {
|
||||
val callback = object : MediaViewerEntryPoint.Callback {
|
||||
override fun onDone() = lambdaError()
|
||||
override fun viewInTimeline(eventId: EventId) = lambdaError()
|
||||
override fun forwardEvent(eventId: EventId) = lambdaError()
|
||||
override fun forwardEvent(eventId: EventId, fromPinnedEvents: Boolean) = lambdaError()
|
||||
}
|
||||
val params = entryPoint.createParamsForAvatar(
|
||||
filename = "fn",
|
||||
|
||||
@@ -38,6 +38,10 @@ class FakeMediaGalleryDataSource(
|
||||
return groupedMediaItemsFlow.replayCache.firstOrNull() ?: AsyncData.Uninitialized
|
||||
}
|
||||
|
||||
override fun fromPinnedEvents(): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override suspend fun loadMore(direction: Timeline.PaginationDirection) {
|
||||
loadMoreLambda(direction)
|
||||
}
|
||||
|
||||
@@ -12,15 +12,15 @@ import io.element.android.tests.testutils.lambda.lambdaError
|
||||
|
||||
class FakeMediaViewerNavigator(
|
||||
private val onViewInTimelineClickLambda: (EventId) -> Unit = { lambdaError() },
|
||||
private val onForwardClickLambda: (EventId) -> Unit = { lambdaError() },
|
||||
private val onForwardClickLambda: (EventId, Boolean) -> Unit = { _, _ -> lambdaError() },
|
||||
private val onItemDeletedLambda: () -> Unit = { lambdaError() },
|
||||
) : MediaViewerNavigator {
|
||||
override fun onViewInTimelineClick(eventId: EventId) {
|
||||
onViewInTimelineClickLambda(eventId)
|
||||
}
|
||||
|
||||
override fun onForwardClick(eventId: EventId) {
|
||||
onForwardClickLambda(eventId)
|
||||
override fun onForwardClick(eventId: EventId, fromPinnedEvents: Boolean) {
|
||||
onForwardClickLambda(eventId, fromPinnedEvents)
|
||||
}
|
||||
|
||||
override fun onItemDeleted() {
|
||||
|
||||
@@ -785,7 +785,7 @@ class MediaViewerPresenterTest {
|
||||
|
||||
@Test
|
||||
fun `present - forward hides the bottom sheet and invokes the navigator`() = runTest {
|
||||
val onForwardClickLambda = lambdaRecorder<EventId, Unit> { }
|
||||
val onForwardClickLambda = lambdaRecorder<EventId, Boolean, Unit> { _, _ -> }
|
||||
val navigator = FakeMediaViewerNavigator(
|
||||
onForwardClickLambda = onForwardClickLambda,
|
||||
)
|
||||
@@ -804,7 +804,8 @@ class MediaViewerPresenterTest {
|
||||
initialState.eventSink(MediaViewerEvents.Forward(AN_EVENT_ID))
|
||||
val finalState = awaitItem()
|
||||
assertThat(finalState.mediaBottomSheetState).isEqualTo(MediaBottomSheetState.Hidden)
|
||||
onForwardClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID))
|
||||
onForwardClickLambda.assertions().isCalledOnce()
|
||||
.with(value(AN_EVENT_ID), value(false))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user