di : clean some code
This commit is contained in:
parent
0cd264937d
commit
250667b5b5
8 changed files with 14 additions and 20 deletions
|
|
@ -9,15 +9,15 @@ package io.element.android.x.di
|
||||||
|
|
||||||
import dev.zacsweers.metro.ContributesBinding
|
import dev.zacsweers.metro.ContributesBinding
|
||||||
import dev.zacsweers.metro.Inject
|
import dev.zacsweers.metro.Inject
|
||||||
import io.element.android.appnav.di.RoomComponentFactory
|
import io.element.android.appnav.di.RoomGraphFactory
|
||||||
import io.element.android.libraries.di.SessionScope
|
import io.element.android.libraries.di.SessionScope
|
||||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||||
|
|
||||||
@ContributesBinding(SessionScope::class)
|
@ContributesBinding(SessionScope::class)
|
||||||
@Inject
|
@Inject
|
||||||
class DefaultRoomComponentFactory(
|
class DefaultRoomGraphFactory(
|
||||||
private val sessionGraph: SessionGraph,
|
private val sessionGraph: SessionGraph,
|
||||||
) : RoomComponentFactory {
|
) : RoomGraphFactory {
|
||||||
override fun create(room: JoinedRoom): Any {
|
override fun create(room: JoinedRoom): Any {
|
||||||
return sessionGraph.roomGraphFactory
|
return sessionGraph.roomGraphFactory
|
||||||
.create(room, room)
|
.create(room, room)
|
||||||
|
|
@ -7,18 +7,15 @@
|
||||||
|
|
||||||
package io.element.android.x.di
|
package io.element.android.x.di
|
||||||
|
|
||||||
import dev.zacsweers.metro.ContributesTo
|
|
||||||
import dev.zacsweers.metro.GraphExtension
|
import dev.zacsweers.metro.GraphExtension
|
||||||
import dev.zacsweers.metro.Provides
|
import dev.zacsweers.metro.Provides
|
||||||
import io.element.android.libraries.architecture.NodeFactoriesBindings
|
import io.element.android.libraries.architecture.NodeFactoriesBindings
|
||||||
import io.element.android.libraries.di.RoomScope
|
import io.element.android.libraries.di.RoomScope
|
||||||
import io.element.android.libraries.di.SessionScope
|
|
||||||
import io.element.android.libraries.matrix.api.room.BaseRoom
|
import io.element.android.libraries.matrix.api.room.BaseRoom
|
||||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||||
|
|
||||||
@GraphExtension(RoomScope::class)
|
@GraphExtension(RoomScope::class)
|
||||||
interface RoomGraph : NodeFactoriesBindings {
|
interface RoomGraph : NodeFactoriesBindings {
|
||||||
@ContributesTo(SessionScope::class)
|
|
||||||
@GraphExtension.Factory
|
@GraphExtension.Factory
|
||||||
interface Factory {
|
interface Factory {
|
||||||
fun create(
|
fun create(
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,6 @@
|
||||||
|
|
||||||
package io.element.android.x.di
|
package io.element.android.x.di
|
||||||
|
|
||||||
import dev.zacsweers.metro.AppScope
|
|
||||||
import dev.zacsweers.metro.ContributesTo
|
|
||||||
import dev.zacsweers.metro.GraphExtension
|
import dev.zacsweers.metro.GraphExtension
|
||||||
import dev.zacsweers.metro.Provides
|
import dev.zacsweers.metro.Provides
|
||||||
import io.element.android.libraries.architecture.NodeFactoriesBindings
|
import io.element.android.libraries.architecture.NodeFactoriesBindings
|
||||||
|
|
@ -19,7 +17,6 @@ import io.element.android.libraries.matrix.api.MatrixClient
|
||||||
interface SessionGraph : NodeFactoriesBindings {
|
interface SessionGraph : NodeFactoriesBindings {
|
||||||
val roomGraphFactory: RoomGraph.Factory
|
val roomGraphFactory: RoomGraph.Factory
|
||||||
|
|
||||||
@ContributesTo(AppScope::class)
|
|
||||||
@GraphExtension.Factory
|
@GraphExtension.Factory
|
||||||
interface Factory {
|
interface Factory {
|
||||||
fun create(@Provides matrixClient: MatrixClient): SessionGraph
|
fun create(@Provides matrixClient: MatrixClient): SessionGraph
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,6 @@ package io.element.android.appnav.di
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||||
|
|
||||||
fun interface RoomComponentFactory {
|
fun interface RoomGraphFactory {
|
||||||
fun create(room: JoinedRoom): Any
|
fun create(room: JoinedRoom): Any
|
||||||
}
|
}
|
||||||
|
|
@ -20,7 +20,7 @@ import com.bumble.appyx.navmodel.backstack.operation.push
|
||||||
import dev.zacsweers.metro.Assisted
|
import dev.zacsweers.metro.Assisted
|
||||||
import dev.zacsweers.metro.AssistedInject
|
import dev.zacsweers.metro.AssistedInject
|
||||||
import io.element.android.annotations.ContributesNode
|
import io.element.android.annotations.ContributesNode
|
||||||
import io.element.android.appnav.di.RoomComponentFactory
|
import io.element.android.appnav.di.RoomGraphFactory
|
||||||
import io.element.android.appnav.room.RoomNavigationTarget
|
import io.element.android.appnav.room.RoomNavigationTarget
|
||||||
import io.element.android.features.messages.api.MessagesEntryPoint
|
import io.element.android.features.messages.api.MessagesEntryPoint
|
||||||
import io.element.android.features.roomdetails.api.RoomDetailsEntryPoint
|
import io.element.android.features.roomdetails.api.RoomDetailsEntryPoint
|
||||||
|
|
@ -56,7 +56,7 @@ class JoinedRoomLoadedFlowNode(
|
||||||
private val sessionCoroutineScope: CoroutineScope,
|
private val sessionCoroutineScope: CoroutineScope,
|
||||||
private val matrixClient: MatrixClient,
|
private val matrixClient: MatrixClient,
|
||||||
private val activeRoomsHolder: ActiveRoomsHolder,
|
private val activeRoomsHolder: ActiveRoomsHolder,
|
||||||
roomComponentFactory: RoomComponentFactory,
|
roomGraphFactory: RoomGraphFactory,
|
||||||
) : BaseFlowNode<JoinedRoomLoadedFlowNode.NavTarget>(
|
) : BaseFlowNode<JoinedRoomLoadedFlowNode.NavTarget>(
|
||||||
backstack = BackStack(
|
backstack = BackStack(
|
||||||
initialElement = when (val input = plugins.filterIsInstance<Inputs>().first().initialElement) {
|
initialElement = when (val input = plugins.filterIsInstance<Inputs>().first().initialElement) {
|
||||||
|
|
@ -83,7 +83,7 @@ class JoinedRoomLoadedFlowNode(
|
||||||
|
|
||||||
private val inputs: Inputs = inputs()
|
private val inputs: Inputs = inputs()
|
||||||
private val callbacks = plugins.filterIsInstance<Callback>()
|
private val callbacks = plugins.filterIsInstance<Callback>()
|
||||||
override val graph = roomComponentFactory.create(inputs.room)
|
override val graph = roomGraphFactory.create(inputs.room)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
lifecycle.subscribe(
|
lifecycle.subscribe(
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import com.bumble.appyx.navmodel.backstack.activeElement
|
||||||
import com.bumble.appyx.testing.junit4.util.MainDispatcherRule
|
import com.bumble.appyx.testing.junit4.util.MainDispatcherRule
|
||||||
import com.bumble.appyx.testing.unit.common.helper.parentNodeTestHelper
|
import com.bumble.appyx.testing.unit.common.helper.parentNodeTestHelper
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.appnav.di.RoomComponentFactory
|
import io.element.android.appnav.di.RoomGraphFactory
|
||||||
import io.element.android.appnav.room.RoomNavigationTarget
|
import io.element.android.appnav.room.RoomNavigationTarget
|
||||||
import io.element.android.appnav.room.joined.JoinedRoomLoadedFlowNode
|
import io.element.android.appnav.room.joined.JoinedRoomLoadedFlowNode
|
||||||
import io.element.android.features.messages.api.MessagesEntryPoint
|
import io.element.android.features.messages.api.MessagesEntryPoint
|
||||||
|
|
@ -70,7 +70,7 @@ class JoinedRoomLoadedFlowNodeTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class FakeRoomComponentFactory : RoomComponentFactory {
|
private class FakeRoomGraphFactory : RoomGraphFactory {
|
||||||
override fun create(room: JoinedRoom): Any {
|
override fun create(room: JoinedRoom): Any {
|
||||||
return Unit
|
return Unit
|
||||||
}
|
}
|
||||||
|
|
@ -110,7 +110,7 @@ class JoinedRoomLoadedFlowNodeTest {
|
||||||
roomDetailsEntryPoint = roomDetailsEntryPoint,
|
roomDetailsEntryPoint = roomDetailsEntryPoint,
|
||||||
appNavigationStateService = FakeAppNavigationStateService(),
|
appNavigationStateService = FakeAppNavigationStateService(),
|
||||||
sessionCoroutineScope = this,
|
sessionCoroutineScope = this,
|
||||||
roomComponentFactory = FakeRoomComponentFactory(),
|
roomGraphFactory = FakeRoomGraphFactory(),
|
||||||
matrixClient = FakeMatrixClient(),
|
matrixClient = FakeMatrixClient(),
|
||||||
activeRoomsHolder = activeRoomsHolder,
|
activeRoomsHolder = activeRoomsHolder,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import com.bumble.appyx.core.plugin.Plugin
|
||||||
import dev.zacsweers.metro.Assisted
|
import dev.zacsweers.metro.Assisted
|
||||||
import dev.zacsweers.metro.AssistedInject
|
import dev.zacsweers.metro.AssistedInject
|
||||||
import io.element.android.annotations.ContributesNode
|
import io.element.android.annotations.ContributesNode
|
||||||
import io.element.android.appnav.di.RoomComponentFactory
|
import io.element.android.appnav.di.RoomGraphFactory
|
||||||
import io.element.android.features.changeroommemberroes.api.ChangeRoomMemberRolesEntryPoint
|
import io.element.android.features.changeroommemberroes.api.ChangeRoomMemberRolesEntryPoint
|
||||||
import io.element.android.features.changeroommemberroes.api.ChangeRoomMemberRolesListType
|
import io.element.android.features.changeroommemberroes.api.ChangeRoomMemberRolesListType
|
||||||
import io.element.android.libraries.architecture.NodeInputs
|
import io.element.android.libraries.architecture.NodeInputs
|
||||||
|
|
@ -36,7 +36,7 @@ import kotlinx.parcelize.Parcelize
|
||||||
class ChangeRoomMemberRolesRootNode(
|
class ChangeRoomMemberRolesRootNode(
|
||||||
@Assisted buildContext: BuildContext,
|
@Assisted buildContext: BuildContext,
|
||||||
@Assisted plugins: List<Plugin>,
|
@Assisted plugins: List<Plugin>,
|
||||||
roomComponentFactory: RoomComponentFactory,
|
roomGraphFactory: RoomGraphFactory,
|
||||||
) : ParentNode<ChangeRoomMemberRolesRootNode.NavTarget>(
|
) : ParentNode<ChangeRoomMemberRolesRootNode.NavTarget>(
|
||||||
navModel = PermanentNavModel(
|
navModel = PermanentNavModel(
|
||||||
navTargets = setOf(NavTarget),
|
navTargets = setOf(NavTarget),
|
||||||
|
|
@ -54,7 +54,7 @@ class ChangeRoomMemberRolesRootNode(
|
||||||
|
|
||||||
private val inputs = inputs<Inputs>()
|
private val inputs = inputs<Inputs>()
|
||||||
|
|
||||||
override val graph = roomComponentFactory.create(inputs.joinedRoom)
|
override val graph = roomGraphFactory.create(inputs.joinedRoom)
|
||||||
|
|
||||||
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
|
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
|
||||||
return createNode<ChangeRolesNode>(
|
return createNode<ChangeRolesNode>(
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class DefaultChangeRoomMemberRolesEntyPointTest {
|
||||||
ChangeRoomMemberRolesRootNode(
|
ChangeRoomMemberRolesRootNode(
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = plugins,
|
plugins = plugins,
|
||||||
roomComponentFactory = { },
|
roomGraphFactory = { },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val room = FakeJoinedRoom()
|
val room = FakeJoinedRoom()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue