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 45400d70d2
commit e70d767183
161 changed files with 668 additions and 436 deletions

View file

@ -14,8 +14,11 @@ import io.element.android.libraries.architecture.FeatureEntryPoint
import io.element.android.libraries.matrix.api.core.EventId
interface MediaGalleryEntryPoint : FeatureEntryPoint {
context(parentNode: Node)
fun createNode(buildContext: BuildContext, callback: Callback): Node
fun createNode(
parentNode: Node,
buildContext: BuildContext,
callback: Callback,
): Node
interface Callback : Plugin {
fun onBackClick()

View file

@ -19,8 +19,12 @@ import io.element.android.libraries.matrix.api.timeline.Timeline
import kotlinx.parcelize.Parcelize
interface MediaViewerEntryPoint : FeatureEntryPoint {
context(parentNode: Node)
fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node
fun createNode(
parentNode: Node,
buildContext: BuildContext,
params: Params,
callback: Callback,
): Node
fun createParamsForAvatar(filename: String, avatarUrl: String): Params

View file

@ -17,8 +17,11 @@ import io.element.android.libraries.mediaviewer.impl.gallery.root.MediaGalleryFl
@ContributesBinding(AppScope::class)
class DefaultMediaGalleryEntryPoint : MediaGalleryEntryPoint {
context(parentNode: Node)
override fun createNode(buildContext: BuildContext, callback: MediaGalleryEntryPoint.Callback): Node {
override fun createNode(
parentNode: Node,
buildContext: BuildContext,
callback: MediaGalleryEntryPoint.Callback,
): Node {
return parentNode.createNode<MediaGalleryFlowNode>(
buildContext = buildContext,
plugins = listOf(callback),

View file

@ -48,8 +48,8 @@ class DefaultMediaViewerEntryPoint : MediaViewerEntryPoint {
)
}
context(parentNode: Node)
override fun createNode(
parentNode: Node,
buildContext: BuildContext,
params: MediaViewerEntryPoint.Params,
callback: MediaViewerEntryPoint.Callback,

View file

@ -125,6 +125,7 @@ class MediaGalleryFlowNode(
}
}
mediaViewerEntryPoint.createNode(
parentNode = this,
buildContext = buildContext,
params = MediaViewerEntryPoint.Params(
mode = navTarget.mode,

View file

@ -42,12 +42,11 @@ class DefaultMediaGalleryEntryPointTest {
override fun viewInTimeline(eventId: EventId) = lambdaError()
override fun forward(eventId: EventId) = lambdaError()
}
val result = with(parentNode) {
entryPoint.createNode(
buildContext = BuildContext.root(null),
callback = callback,
)
}
val result = entryPoint.createNode(
parentNode = parentNode,
buildContext = BuildContext.root(null),
callback = callback,
)
assertThat(result).isInstanceOf(MediaGalleryFlowNode::class.java)
assertThat(result.plugins).contains(callback)
}

View file

@ -75,13 +75,12 @@ class DefaultMediaViewerEntryPointTest {
override fun forwardEvent(eventId: EventId) = lambdaError()
}
val params = createMediaViewerEntryPointParams()
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(MediaViewerNode::class.java)
assertThat(result.plugins).contains(params)
assertThat(result.plugins).contains(callback)
@ -125,13 +124,12 @@ class DefaultMediaViewerEntryPointTest {
filename = "fn",
avatarUrl = "avatarUrl",
)
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(MediaViewerNode::class.java)
assertThat(result.plugins).contains(
MediaViewerEntryPoint.Params(

View file

@ -13,8 +13,8 @@ import io.element.android.libraries.mediaviewer.api.MediaGalleryEntryPoint
import io.element.android.tests.testutils.lambda.lambdaError
class FakeMediaGalleryEntryPoint : MediaGalleryEntryPoint {
context(parentNode: Node)
override fun createNode(
parentNode: Node,
buildContext: BuildContext,
callback: MediaGalleryEntryPoint.Callback,
): Node = lambdaError()

View file

@ -15,8 +15,8 @@ import io.element.android.tests.testutils.lambda.lambdaError
class FakeMediaViewerEntryPoint : MediaViewerEntryPoint {
override fun createParamsForAvatar(filename: String, avatarUrl: String) = lambdaError()
context(parentNode: Node)
override fun createNode(
parentNode: Node,
buildContext: BuildContext,
params: MediaViewerEntryPoint.Params,
callback: MediaViewerEntryPoint.Callback,