Remove context(parentNode: Node) and provide the parent Node as a parameter.

This commit is contained in:
Benoit Marty 2025-10-31 12:04:57 +01:00
parent f1822c5afd
commit 07b6148035
161 changed files with 668 additions and 436 deletions

View file

@ -16,8 +16,12 @@ import io.element.android.libraries.di.SessionScope
@ContributesBinding(SessionScope::class)
class DefaultMessagesEntryPoint : MessagesEntryPoint {
context(parentNode: Node)
override fun createNode(buildContext: BuildContext, params: MessagesEntryPoint.Params, callback: MessagesEntryPoint.Callback): Node {
override fun createNode(
parentNode: Node,
buildContext: BuildContext,
params: MessagesEntryPoint.Params,
callback: MessagesEntryPoint.Callback,
): Node {
return parentNode.createNode<MessagesFlowNode>(buildContext, listOf(params, callback))
}
}

View file

@ -321,6 +321,7 @@ class MessagesFlowNode(
}
}
mediaViewerEntryPoint.createNode(
parentNode = this,
buildContext = buildContext,
params = params,
callback = callback
@ -336,7 +337,11 @@ class MessagesFlowNode(
}
is NavTarget.LocationViewer -> {
val inputs = ShowLocationEntryPoint.Inputs(navTarget.location, navTarget.description)
showLocationEntryPoint.createNode(buildContext, inputs)
showLocationEntryPoint.createNode(
parentNode = this,
buildContext = buildContext,
inputs = inputs,
)
}
is NavTarget.EventDebugInfo -> {
val inputs = EventDebugInfoNode.Inputs(navTarget.eventId, navTarget.debugInfo)
@ -358,6 +363,7 @@ class MessagesFlowNode(
}
}
forwardEntryPoint.createNode(
parentNode = this,
buildContext = buildContext,
params = params,
callback = callback,
@ -369,12 +375,14 @@ class MessagesFlowNode(
}
is NavTarget.SendLocation -> {
sendLocationEntryPoint.createNode(
parentNode = this,
buildContext = buildContext,
timelineMode = navTarget.timelineMode,
)
}
is NavTarget.CreatePoll -> {
createPollEntryPoint.createNode(
parentNode = this,
buildContext = buildContext,
params = CreatePollEntryPoint.Params(
timelineMode = navTarget.timelineMode,
@ -384,6 +392,7 @@ class MessagesFlowNode(
}
is NavTarget.EditPoll -> {
createPollEntryPoint.createNode(
parentNode = this,
buildContext = buildContext,
params = CreatePollEntryPoint.Params(
timelineMode = navTarget.timelineMode,
@ -423,7 +432,7 @@ class MessagesFlowNode(
createNode<PinnedMessagesListNode>(buildContext, plugins = listOf(callback))
}
NavTarget.KnockRequestsList -> {
knockRequestsListEntryPoint.createNode(buildContext)
knockRequestsListEntryPoint.createNode(this, buildContext)
}
is NavTarget.Thread -> {
val inputs = ThreadedMessagesNode.Inputs(

View file

@ -95,13 +95,12 @@ class DefaultMessagesEntryPointTest {
}
val initialTarget = MessagesEntryPoint.InitialTarget.Messages(focusedEventId = AN_EVENT_ID)
val params = MessagesEntryPoint.Params(initialTarget)
val result = with(parentNode) {
entryPoint.createNode(
buildContext = BuildContext.root(null),
params = params,
callback = callback,
)
}
val result = entryPoint.createNode(
parentNode = parentNode,
buildContext = BuildContext.root(null),
params = params,
callback = callback,
)
assertThat(result).isInstanceOf(MessagesFlowNode::class.java)
assertThat(result.plugins).contains(MessagesEntryPoint.Params(initialTarget))
assertThat(result.plugins).contains(callback)