From 05c5f3c914aa0f37b7a59b5c9d6627521a00b690 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 30 Oct 2025 13:02:20 +0100 Subject: [PATCH] Use context parameter for the parentNode --- .../android/appnav/LoggedInFlowNode.kt | 10 +----- .../android/appnav/NotLoggedInFlowNode.kt | 1 - .../io/element/android/appnav/RootFlowNode.kt | 3 -- .../android/appnav/room/RoomFlowNode.kt | 4 +-- .../room/joined/JoinedRoomLoadedFlowNode.kt | 4 --- .../appnav/JoinedRoomLoadedFlowNodeTest.kt | 8 ++--- .../impl/DefaultAnalyticsEntryPoint.kt | 3 +- .../impl/DefaultAnalyticsEntryPointTest.kt | 4 ++- .../api/ChangeRoomMemberRolesEntryPoint.kt | 2 +- .../DefaultChangeRoomMemberRolesEntyPoint.kt | 2 +- ...faultChangeRoomMemberRolesEntyPointTest.kt | 13 ++++---- .../createroom/api/CreateRoomEntryPoint.kt | 3 +- .../impl/DefaultCreateRoomEntryPoint.kt | 3 +- .../impl/DefaultCreateRoomEntryPointTest.kt | 11 ++++--- .../DefaultAccountDeactivationEntryPoint.kt | 3 +- ...efaultAccountDeactivationEntryPointTest.kt | 4 ++- .../features/forward/api/ForwardEntryPoint.kt | 3 +- .../forward/impl/DefaultForwardEntryPoint.kt | 3 +- .../forward/impl/ForwardMessagesNode.kt | 1 - .../impl/DefaultForwardEntryPointTest.kt | 15 +++++---- .../ftue/impl/DefaultFtueEntryPoint.kt | 3 +- .../features/ftue/impl/FtueFlowNode.kt | 3 +- .../FtueSessionVerificationFlowNode.kt | 3 -- .../ftue/impl/DefaultFtueEntryPointTest.kt | 8 +++-- .../features/home/api/HomeEntryPoint.kt | 3 +- .../home/impl/DefaultHomeEntryPoint.kt | 3 +- .../features/home/impl/HomeFlowNode.kt | 5 ++- .../home/impl/DefaultHomeEntryPointTest.kt | 17 +++++----- .../DeclineInviteAndBlockEntryPoint.kt | 3 +- .../DefaultDeclineAndBlockEntryPoint.kt | 3 +- .../DefaultDeclineAndBlockEntryPointTest.kt | 11 ++++--- .../joinroom/api/JoinRoomEntryPoint.kt | 3 +- .../impl/DefaultJoinRoomEntryPoint.kt | 3 +- .../joinroom/impl/JoinRoomFlowNode.kt | 2 +- .../impl/DefaultJoinRoomEntryPointTest.kt | 7 ++-- .../DefaultKnockRequestsListEntryPoint.kt | 3 +- .../DefaultKnockRequestsListEntryPointTest.kt | 4 ++- .../DefaultOpenSourcesLicensesEntryPoint.kt | 3 +- ...efaultOpenSourcesLicensesEntryPointTest.kt | 4 ++- .../location/api/SendLocationEntryPoint.kt | 2 +- .../location/api/ShowLocationEntryPoint.kt | 3 +- .../send/DefaultSendLocationEntryPoint.kt | 2 +- .../show/DefaultShowLocationEntryPoint.kt | 3 +- .../send/DefaultSendLocationEntryPointTest.kt | 11 ++++--- .../show/DefaultShowLocationEntryPointTest.kt | 11 ++++--- .../lockscreen/api/LockScreenEntryPoint.kt | 4 ++- .../impl/DefaultLockScreenEntryPoint.kt | 2 +- .../impl/DefaultLockScreenEntryPointTest.kt | 26 ++++++++------- .../features/login/api/LoginEntryPoint.kt | 3 +- .../login/impl/DefaultLoginEntryPoint.kt | 3 +- .../login/impl/DefaultLoginEntryPointTest.kt | 13 ++++---- .../features/logout/api/LogoutEntryPoint.kt | 3 +- .../logout/impl/DefaultLogoutEntryPoint.kt | 3 +- .../impl/DefaultLogoutEntryPointTest.kt | 11 ++++--- .../messages/api/MessagesEntryPoint.kt | 3 +- .../impl/DefaultMessagesEntryPoint.kt | 3 +- .../messages/impl/MessagesFlowNode.kt | 9 ++--- .../impl/DefaultMessagesEntryPointTest.kt | 27 ++++++++------- .../poll/api/create/CreatePollEntryPoint.kt | 3 +- .../create/DefaultCreatePollEntryPoint.kt | 3 +- .../history/DefaultPollHistoryEntryPoint.kt | 3 +- .../poll/impl/history/PollHistoryFlowNode.kt | 1 - .../create/DefaultCreatePollEntryPointTest.kt | 11 ++++--- .../DefaultPollHistoryEntryPointTest.kt | 6 ++-- .../preferences/api/PreferencesEntryPoint.kt | 3 +- .../impl/DefaultPreferencesEntryPoint.kt | 2 +- .../preferences/impl/PreferencesFlowNode.kt | 12 +++---- .../impl/DefaultPreferencesEntryPointTest.kt | 27 ++++++++------- .../api/bugreport/BugReportEntryPoint.kt | 3 +- .../impl/bugreport/BugReportFlowNode.kt | 1 - .../bugreport/DefaultBugReportEntryPoint.kt | 3 +- .../DefaultBugReportEntryPointTest.kt | 13 ++++---- .../reportroom/api/ReportRoomEntryPoint.kt | 3 +- .../impl/DefaultReportRoomEntryPoint.kt | 3 +- .../impl/DefaultReportRoomEntryPointTest.kt | 4 ++- .../api/RoomAliasResolverEntryPoint.kt | 3 +- .../DefaultRoomAliasResolverEntryPoint.kt | 2 +- .../DefaultRoomAliasResolverEntryPointTest.kt | 13 ++++---- .../roomdetails/api/RoomDetailsEntryPoint.kt | 3 +- .../impl/DefaultRoomDetailsEntryPoint.kt | 2 +- .../roomdetails/impl/RoomDetailsFlowNode.kt | 11 ++----- .../RolesAndPermissionsFlowNode.kt | 2 -- .../impl/DefaultRoomDetailsEntryPointTest.kt | 33 +++++++++++-------- .../api/RoomDirectoryEntryPoint.kt | 3 +- .../impl/DefaultRoomDirectoryEntryPoint.kt | 3 +- .../DefaultRoomDirectoryEntryPointTest.kt | 11 ++++--- .../api/SecureBackupEntryPoint.kt | 3 +- .../impl/DefaultSecureBackupEntryPoint.kt | 2 +- .../impl/DefaultSecureBackupEntryPointTest.kt | 13 ++++---- .../features/share/api/ShareEntryPoint.kt | 3 +- .../share/impl/DefaultShareEntryPoint.kt | 3 +- .../android/features/share/impl/ShareNode.kt | 1 - .../share/impl/DefaultShareEntryPointTest.kt | 15 +++++---- .../signedout/api/SignedOutEntryPoint.kt | 3 +- .../impl/DefaultSignedOutEntryPoint.kt | 3 +- .../impl/DefaultSignedOutEntryPointTest.kt | 11 ++++--- .../features/space/api/SpaceEntryPoint.kt | 2 +- .../space/impl/DefaultSpaceEntryPoint.kt | 3 +- .../space/impl/DefaultSpaceEntryPointTest.kt | 13 ++++---- .../startchat/api/StartChatEntryPoint.kt | 3 +- .../impl/DefaultStartChatEntryPoint.kt | 3 +- .../startchat/impl/StartChatFlowNode.kt | 1 - .../impl/DefaultStartChatEntryPointTest.kt | 13 ++++---- .../userprofile/api/UserProfileEntryPoint.kt | 3 +- .../impl/DefaultUserProfileEntryPoint.kt | 2 +- .../userprofile/impl/UserProfileFlowNode.kt | 2 -- .../impl/DefaultUserProfileEntryPointTest.kt | 17 +++++----- .../api/IncomingVerificationEntryPoint.kt | 3 +- .../api/OutgoingVerificationEntryPoint.kt | 3 +- .../DefaultIncomingVerificationEntryPoint.kt | 2 +- .../DefaultOutgoingVerificationEntryPoint.kt | 2 +- ...faultIncomingVerificationEntryPointTest.kt | 13 ++++---- ...faultOutgoingVerificationEntryPointTest.kt | 13 ++++---- .../viewfolder/api/ViewFolderEntryPoint.kt | 3 +- .../impl/DefaultViewFolderEntryPoint.kt | 3 +- .../impl/DefaultViewFolderEntryPointTest.kt | 13 ++++---- .../api/AccountSelectEntryPoint.kt | 3 +- .../impl/DefaultAccountSelectEntryPoint.kt | 3 +- .../DefaultAccountSelectEntryPointTest.kt | 11 ++++--- .../architecture/FeatureEntryPoint.kt | 3 +- .../mediaviewer/api/MediaGalleryEntryPoint.kt | 3 +- .../mediaviewer/api/MediaViewerEntryPoint.kt | 3 +- .../impl/DefaultMediaGalleryEntryPoint.kt | 3 +- .../impl/DefaultMediaViewerEntryPoint.kt | 2 +- .../impl/gallery/root/MediaGalleryFlowNode.kt | 1 - .../impl/DefaultMediaGalleryEntryPointTest.kt | 13 ++++---- .../impl/DefaultMediaViewerEntryPointTest.kt | 26 ++++++++------- .../roomselect/api/RoomSelectEntryPoint.kt | 3 +- .../impl/DefaultRoomSelectEntryPoint.kt | 3 +- .../impl/DefaultRoomSelectEntryPointTest.kt | 13 ++++---- .../api/NotificationTroubleShootEntryPoint.kt | 3 +- .../troubleshoot/api/PushHistoryEntryPoint.kt | 3 +- ...faultNotificationTroubleShootEntryPoint.kt | 3 +- .../history/DefaultPushHistoryEntryPoint.kt | 3 +- ...tNotificationTroubleShootEntryPointTest.kt | 11 ++++--- .../DefaultPushHistoryEntryPointTest.kt | 11 ++++--- ...Template Module Feature Entry Point API.kt | 3 +- ...te Module Feature Entry Point Flow Impl.kt | 4 +-- 138 files changed, 450 insertions(+), 375 deletions(-) diff --git a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt index ae61a03281..34815a55a1 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt @@ -334,7 +334,6 @@ class LoggedInFlowNode( } } homeEntryPoint.createNode( - parentNode = this, buildContext = buildContext, callback = callback, ) @@ -391,7 +390,6 @@ class LoggedInFlowNode( } } userProfileEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = UserProfileEntryPoint.Params(userId = navTarget.userId), callback = callback, @@ -421,7 +419,6 @@ class LoggedInFlowNode( } val inputs = PreferencesEntryPoint.Params(navTarget.initialElement) preferencesEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = inputs, callback = callback, @@ -439,14 +436,12 @@ class LoggedInFlowNode( } startChatEntryPoint.createNode( - parentNode = this, buildContext = buildContext, callback = callback, ) } is NavTarget.SecureBackup -> { secureBackupEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = SecureBackupEntryPoint.Params(initialElement = navTarget.initialElement), callback = object : SecureBackupEntryPoint.Callback { @@ -457,11 +452,10 @@ class LoggedInFlowNode( ) } NavTarget.Ftue -> { - ftueEntryPoint.createNode(this, buildContext) + ftueEntryPoint.createNode(buildContext) } NavTarget.RoomDirectory -> { roomDirectoryEntryPoint.createNode( - parentNode = this, buildContext = buildContext, callback = object : RoomDirectoryEntryPoint.Callback { override fun navigateToRoom(roomDescription: RoomDescription) { @@ -478,7 +472,6 @@ class LoggedInFlowNode( } is NavTarget.IncomingShare -> { shareEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = ShareEntryPoint.Params(intent = navTarget.intent), callback = object : ShareEntryPoint.Callback { @@ -493,7 +486,6 @@ class LoggedInFlowNode( } is NavTarget.IncomingVerificationRequest -> { incomingVerificationEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = IncomingVerificationEntryPoint.Params(navTarget.data), callback = object : IncomingVerificationEntryPoint.Callback { diff --git a/appnav/src/main/kotlin/io/element/android/appnav/NotLoggedInFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/NotLoggedInFlowNode.kt index b372155bd3..4ca9a2db17 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/NotLoggedInFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/NotLoggedInFlowNode.kt @@ -84,7 +84,6 @@ class NotLoggedInFlowNode( } } loginEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = LoginEntryPoint.Params( accountProvider = inputs.loginParams?.accountProvider, diff --git a/appnav/src/main/kotlin/io/element/android/appnav/RootFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/RootFlowNode.kt index bdad3c2ab0..e1322d0bbe 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/RootFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/RootFlowNode.kt @@ -250,7 +250,6 @@ class RootFlowNode( } is NavTarget.SignedOutFlow -> { signedOutEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = SignedOutEntryPoint.Params( sessionId = navTarget.sessionId, @@ -265,7 +264,6 @@ class RootFlowNode( } } bugReportEntryPoint.createNode( - parentNode = this, buildContext = buildContext, callback = callback, ) @@ -294,7 +292,6 @@ class RootFlowNode( } } accountSelectEntryPoint.createNode( - parentNode = this, buildContext = buildContext, callback = callback, ) diff --git a/appnav/src/main/kotlin/io/element/android/appnav/room/RoomFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/room/RoomFlowNode.kt index 6283dbb3f9..602979edca 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/room/RoomFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/room/RoomFlowNode.kt @@ -181,7 +181,6 @@ class RoomFlowNode( } val params = Params(navTarget.roomAlias) roomAliasResolverEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = callback, @@ -195,7 +194,7 @@ class RoomFlowNode( serverNames = navTarget.serverNames, trigger = navTarget.trigger, ) - joinRoomEntryPoint.createNode(this, buildContext, inputs) + joinRoomEntryPoint.createNode(buildContext, inputs) } is NavTarget.JoinedRoom -> { val roomFlowNodeCallback = plugins() @@ -208,7 +207,6 @@ class RoomFlowNode( is NavTarget.JoinedSpace -> { val spaceCallback = plugins().single() spaceEntryPoint.createNode( - parentNode = this, buildContext = buildContext, inputs = SpaceEntryPoint.Inputs(roomId = navTarget.spaceId), callback = spaceCallback, diff --git a/appnav/src/main/kotlin/io/element/android/appnav/room/joined/JoinedRoomLoadedFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/room/joined/JoinedRoomLoadedFlowNode.kt index 16eaff89b1..af0ed4c919 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/room/joined/JoinedRoomLoadedFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/room/joined/JoinedRoomLoadedFlowNode.kt @@ -141,7 +141,6 @@ class JoinedRoomLoadedFlowNode( } } return roomDetailsEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = RoomDetailsEntryPoint.Params(initialTarget), callback = callback, @@ -180,7 +179,6 @@ class JoinedRoomLoadedFlowNode( } } forwardEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = callback, @@ -204,7 +202,6 @@ class JoinedRoomLoadedFlowNode( } } return spaceEntryPoint.createNode( - parentNode = this, buildContext = buildContext, inputs = SpaceEntryPoint.Inputs(roomId = inputs.room.roomId), callback = callback, @@ -240,7 +237,6 @@ class JoinedRoomLoadedFlowNode( MessagesEntryPoint.InitialTarget.Messages(navTarget.focusedEventId) ) return messagesEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = callback, diff --git a/appnav/src/test/kotlin/io/element/android/appnav/JoinedRoomLoadedFlowNodeTest.kt b/appnav/src/test/kotlin/io/element/android/appnav/JoinedRoomLoadedFlowNodeTest.kt index f3ba7a8ad7..91e8a597de 100644 --- a/appnav/src/test/kotlin/io/element/android/appnav/JoinedRoomLoadedFlowNodeTest.kt +++ b/appnav/src/test/kotlin/io/element/android/appnav/JoinedRoomLoadedFlowNodeTest.kt @@ -54,8 +54,8 @@ class JoinedRoomLoadedFlowNodeTest { var parameters: MessagesEntryPoint.Params? = null var callback: MessagesEntryPoint.Callback? = null + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: MessagesEntryPoint.Params, callback: MessagesEntryPoint.Callback, @@ -77,8 +77,8 @@ class JoinedRoomLoadedFlowNodeTest { private class FakeRoomDetailsEntryPoint : RoomDetailsEntryPoint { var nodeId: String? = null + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: RoomDetailsEntryPoint.Params, callback: RoomDetailsEntryPoint.Callback, @@ -90,8 +90,8 @@ class JoinedRoomLoadedFlowNodeTest { private class FakeSpaceEntryPoint : SpaceEntryPoint { var nodeId: String? = null + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, inputs: SpaceEntryPoint.Inputs, callback: SpaceEntryPoint.Callback, @@ -101,8 +101,8 @@ class JoinedRoomLoadedFlowNodeTest { } private class FakeForwardEntryPoint : ForwardEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: ForwardEntryPoint.Params, callback: ForwardEntryPoint.Callback, diff --git a/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/DefaultAnalyticsEntryPoint.kt b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/DefaultAnalyticsEntryPoint.kt index af59c94e0a..09dd1d0181 100644 --- a/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/DefaultAnalyticsEntryPoint.kt +++ b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/DefaultAnalyticsEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultAnalyticsEntryPoint : AnalyticsEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext): Node { return parentNode.createNode(buildContext) } } diff --git a/features/analytics/impl/src/test/kotlin/io/element/android/features/analytics/impl/DefaultAnalyticsEntryPointTest.kt b/features/analytics/impl/src/test/kotlin/io/element/android/features/analytics/impl/DefaultAnalyticsEntryPointTest.kt index b5ec819632..e87473a447 100644 --- a/features/analytics/impl/src/test/kotlin/io/element/android/features/analytics/impl/DefaultAnalyticsEntryPointTest.kt +++ b/features/analytics/impl/src/test/kotlin/io/element/android/features/analytics/impl/DefaultAnalyticsEntryPointTest.kt @@ -33,7 +33,9 @@ class DefaultAnalyticsEntryPointTest { ) ) } - val result = entryPoint.createNode(parentNode, BuildContext.root(null)) + val result = with(parentNode) { + entryPoint.createNode(BuildContext.root(null)) + } assertThat(result).isInstanceOf(AnalyticsOptInNode::class.java) } } diff --git a/features/changeroommemberroles/api/src/main/kotlin/io/element/android/features/changeroommemberroes/api/ChangeRoomMemberRolesEntryPoint.kt b/features/changeroommemberroles/api/src/main/kotlin/io/element/android/features/changeroommemberroes/api/ChangeRoomMemberRolesEntryPoint.kt index 72c5de5bfe..d21829d695 100644 --- a/features/changeroommemberroles/api/src/main/kotlin/io/element/android/features/changeroommemberroes/api/ChangeRoomMemberRolesEntryPoint.kt +++ b/features/changeroommemberroles/api/src/main/kotlin/io/element/android/features/changeroommemberroes/api/ChangeRoomMemberRolesEntryPoint.kt @@ -15,8 +15,8 @@ import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.room.JoinedRoom fun interface ChangeRoomMemberRolesEntryPoint : FeatureEntryPoint { + context(parentNode: Node) fun createNode( - parentNode: Node, buildContext: BuildContext, room: JoinedRoom, listType: ChangeRoomMemberRolesListType, diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPoint.kt b/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPoint.kt index 4bdce08e9a..a3180c9828 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPoint.kt +++ b/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPoint.kt @@ -18,8 +18,8 @@ import io.element.android.libraries.matrix.api.room.JoinedRoom @ContributesBinding(SessionScope::class) class DefaultChangeRoomMemberRolesEntyPoint : ChangeRoomMemberRolesEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, room: JoinedRoom, listType: ChangeRoomMemberRolesListType, diff --git a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPointTest.kt b/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPointTest.kt index 6f17a5025d..c438c5d0e4 100644 --- a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPointTest.kt +++ b/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPointTest.kt @@ -31,12 +31,13 @@ class DefaultChangeRoomMemberRolesEntyPointTest { } val room = FakeJoinedRoom() val listType = ChangeRoomMemberRolesListType.Admins - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - room = FakeJoinedRoom(), - listType = listType, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + room = FakeJoinedRoom(), + listType = listType, + ) + } assertThat(result).isInstanceOf(ChangeRoomMemberRolesRootNode::class.java) // Search for the Inputs plugin val input = result.plugins.filterIsInstance().single() diff --git a/features/createroom/api/src/main/kotlin/io/element/android/features/createroom/api/CreateRoomEntryPoint.kt b/features/createroom/api/src/main/kotlin/io/element/android/features/createroom/api/CreateRoomEntryPoint.kt index f30cbd9c91..1a5a1bef5c 100644 --- a/features/createroom/api/src/main/kotlin/io/element/android/features/createroom/api/CreateRoomEntryPoint.kt +++ b/features/createroom/api/src/main/kotlin/io/element/android/features/createroom/api/CreateRoomEntryPoint.kt @@ -14,7 +14,8 @@ import io.element.android.libraries.architecture.FeatureEntryPoint import io.element.android.libraries.matrix.api.core.RoomId interface CreateRoomEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun onRoomCreated(roomId: RoomId) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/DefaultCreateRoomEntryPoint.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/DefaultCreateRoomEntryPoint.kt index 819cfd1208..ab00e6402f 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/DefaultCreateRoomEntryPoint.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/DefaultCreateRoomEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope @ContributesBinding(SessionScope::class) class DefaultCreateRoomEntryPoint : CreateRoomEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: CreateRoomEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: CreateRoomEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(callback)) } } diff --git a/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/DefaultCreateRoomEntryPointTest.kt b/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/DefaultCreateRoomEntryPointTest.kt index 4690b5b7f3..5d415c5d44 100644 --- a/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/DefaultCreateRoomEntryPointTest.kt +++ b/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/DefaultCreateRoomEntryPointTest.kt @@ -38,11 +38,12 @@ class DefaultCreateRoomEntryPointTest { val callback = object : CreateRoomEntryPoint.Callback { override fun onRoomCreated(roomId: RoomId) = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result.plugins).contains(callback) } } diff --git a/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultAccountDeactivationEntryPoint.kt b/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultAccountDeactivationEntryPoint.kt index a7c0d50dbe..788cc393ed 100644 --- a/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultAccountDeactivationEntryPoint.kt +++ b/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultAccountDeactivationEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultAccountDeactivationEntryPoint : AccountDeactivationEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext): Node { return parentNode.createNode(buildContext) } } diff --git a/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/DefaultAccountDeactivationEntryPointTest.kt b/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/DefaultAccountDeactivationEntryPointTest.kt index 05ad52efe9..1e8dfe36cc 100644 --- a/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/DefaultAccountDeactivationEntryPointTest.kt +++ b/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/DefaultAccountDeactivationEntryPointTest.kt @@ -28,7 +28,9 @@ class DefaultAccountDeactivationEntryPointTest { presenter = createPresenter(), ) } - val result = entryPoint.createNode(parentNode, BuildContext.root(null)) + val result = with(parentNode) { + entryPoint.createNode(BuildContext.root(null)) + } assertThat(result).isInstanceOf(AccountDeactivationNode::class.java) } } diff --git a/features/forward/api/src/main/kotlin/io/element/android/features/forward/api/ForwardEntryPoint.kt b/features/forward/api/src/main/kotlin/io/element/android/features/forward/api/ForwardEntryPoint.kt index d20d9a8f70..1de948dea3 100644 --- a/features/forward/api/src/main/kotlin/io/element/android/features/forward/api/ForwardEntryPoint.kt +++ b/features/forward/api/src/main/kotlin/io/element/android/features/forward/api/ForwardEntryPoint.kt @@ -26,5 +26,6 @@ interface ForwardEntryPoint : FeatureEntryPoint { val timelineProvider: TimelineProvider, ) : NodeInputs - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node } diff --git a/features/forward/impl/src/main/kotlin/io/element/android/features/forward/impl/DefaultForwardEntryPoint.kt b/features/forward/impl/src/main/kotlin/io/element/android/features/forward/impl/DefaultForwardEntryPoint.kt index faa0787419..7cf20c017f 100644 --- a/features/forward/impl/src/main/kotlin/io/element/android/features/forward/impl/DefaultForwardEntryPoint.kt +++ b/features/forward/impl/src/main/kotlin/io/element/android/features/forward/impl/DefaultForwardEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope @ContributesBinding(SessionScope::class) class DefaultForwardEntryPoint : ForwardEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, params: ForwardEntryPoint.Params, callback: ForwardEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, params: ForwardEntryPoint.Params, callback: ForwardEntryPoint.Callback): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf( diff --git a/features/forward/impl/src/main/kotlin/io/element/android/features/forward/impl/ForwardMessagesNode.kt b/features/forward/impl/src/main/kotlin/io/element/android/features/forward/impl/ForwardMessagesNode.kt index a38f71264b..f033e97694 100644 --- a/features/forward/impl/src/main/kotlin/io/element/android/features/forward/impl/ForwardMessagesNode.kt +++ b/features/forward/impl/src/main/kotlin/io/element/android/features/forward/impl/ForwardMessagesNode.kt @@ -71,7 +71,6 @@ class ForwardMessagesNode( } return roomSelectEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = RoomSelectEntryPoint.Params(mode = RoomSelectMode.Forward), callback = callback, diff --git a/features/forward/impl/src/test/kotlin/io/element/android/features/forward/impl/DefaultForwardEntryPointTest.kt b/features/forward/impl/src/test/kotlin/io/element/android/features/forward/impl/DefaultForwardEntryPointTest.kt index 6b0927cbfe..76cd3c0a2f 100644 --- a/features/forward/impl/src/test/kotlin/io/element/android/features/forward/impl/DefaultForwardEntryPointTest.kt +++ b/features/forward/impl/src/test/kotlin/io/element/android/features/forward/impl/DefaultForwardEntryPointTest.kt @@ -39,8 +39,8 @@ class DefaultForwardEntryPointTest { plugins = plugins, presenterFactory = { _, _ -> createForwardMessagesPresenter() }, roomSelectEntryPoint = object : RoomSelectEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: RoomSelectEntryPoint.Params, callback: RoomSelectEntryPoint.Callback, @@ -55,12 +55,13 @@ class DefaultForwardEntryPointTest { eventId = AN_EVENT_ID, timelineProvider = FakeTimelineProvider(), ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(ForwardMessagesNode::class.java) assertThat(result.plugins).contains( ForwardMessagesNode.Inputs( diff --git a/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/DefaultFtueEntryPoint.kt b/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/DefaultFtueEntryPoint.kt index c480d329a8..184e3bb802 100644 --- a/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/DefaultFtueEntryPoint.kt +++ b/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/DefaultFtueEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultFtueEntryPoint : FtueEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext): Node { return parentNode.createNode(buildContext) } } diff --git a/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/FtueFlowNode.kt b/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/FtueFlowNode.kt index 7c045f0150..779e16f310 100644 --- a/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/FtueFlowNode.kt +++ b/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/FtueFlowNode.kt @@ -102,7 +102,7 @@ class FtueFlowNode( createNode(buildContext, listOf(callback)) } NavTarget.AnalyticsOptIn -> { - analyticsEntryPoint.createNode(this, buildContext) + analyticsEntryPoint.createNode(buildContext) } NavTarget.LockScreenSetup -> { val callback = object : LockScreenEntryPoint.Callback { @@ -111,7 +111,6 @@ class FtueFlowNode( } } lockScreenEntryPoint.createNode( - parentNode = this, buildContext = buildContext, navTarget = LockScreenEntryPoint.Target.Setup, callback = callback, diff --git a/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/sessionverification/FtueSessionVerificationFlowNode.kt b/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/sessionverification/FtueSessionVerificationFlowNode.kt index 13da4a0748..974c66d243 100644 --- a/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/sessionverification/FtueSessionVerificationFlowNode.kt +++ b/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/sessionverification/FtueSessionVerificationFlowNode.kt @@ -104,7 +104,6 @@ class FtueSessionVerificationFlowNode( } is NavTarget.UseAnotherDevice -> { outgoingVerificationEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = OutgoingVerificationEntryPoint.Params( showDeviceVerifiedScreen = true, @@ -128,7 +127,6 @@ class FtueSessionVerificationFlowNode( } is NavTarget.EnterRecoveryKey -> { secureBackupEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = SecureBackupEntryPoint.Params(SecureBackupEntryPoint.InitialTarget.EnterRecoveryKey), callback = secureBackupEntryPointCallback @@ -136,7 +134,6 @@ class FtueSessionVerificationFlowNode( } is NavTarget.ResetIdentity -> { secureBackupEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = SecureBackupEntryPoint.Params(SecureBackupEntryPoint.InitialTarget.ResetIdentity), callback = object : SecureBackupEntryPoint.Callback { diff --git a/features/ftue/impl/src/test/kotlin/io/element/android/features/ftue/impl/DefaultFtueEntryPointTest.kt b/features/ftue/impl/src/test/kotlin/io/element/android/features/ftue/impl/DefaultFtueEntryPointTest.kt index c528d9c8b9..ccb4cbe200 100644 --- a/features/ftue/impl/src/test/kotlin/io/element/android/features/ftue/impl/DefaultFtueEntryPointTest.kt +++ b/features/ftue/impl/src/test/kotlin/io/element/android/features/ftue/impl/DefaultFtueEntryPointTest.kt @@ -35,11 +35,11 @@ class DefaultFtueEntryPointTest { FtueFlowNode( buildContext = buildContext, plugins = plugins, - analyticsEntryPoint = { _, _ -> lambdaError() }, + analyticsEntryPoint = { _ -> lambdaError() }, defaultFtueService = createDefaultFtueService(), lockScreenEntryPoint = object : LockScreenEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, navTarget: LockScreenEntryPoint.Target, callback: LockScreenEntryPoint.Callback, @@ -51,7 +51,9 @@ class DefaultFtueEntryPointTest { }, ) } - val result = entryPoint.createNode(parentNode, BuildContext.root(null)) + val result = with(parentNode) { + entryPoint.createNode(BuildContext.root(null)) + } assertThat(result).isInstanceOf(FtueFlowNode::class.java) } } diff --git a/features/home/api/src/main/kotlin/io/element/android/features/home/api/HomeEntryPoint.kt b/features/home/api/src/main/kotlin/io/element/android/features/home/api/HomeEntryPoint.kt index 3f8da8bc1a..101f631cd9 100644 --- a/features/home/api/src/main/kotlin/io/element/android/features/home/api/HomeEntryPoint.kt +++ b/features/home/api/src/main/kotlin/io/element/android/features/home/api/HomeEntryPoint.kt @@ -14,7 +14,8 @@ import io.element.android.libraries.architecture.FeatureEntryPoint import io.element.android.libraries.matrix.api.core.RoomId interface HomeEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun navigateToRoom(roomId: RoomId) diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/DefaultHomeEntryPoint.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/DefaultHomeEntryPoint.kt index a85c5df07d..34c9b5f0d9 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/DefaultHomeEntryPoint.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/DefaultHomeEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultHomeEntryPoint : HomeEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: HomeEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: HomeEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(callback)) } } diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt index 7e542b5651..e3d1df3849 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt @@ -186,12 +186,11 @@ class HomeFlowNode( override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node { return when (navTarget) { - is NavTarget.ReportRoom -> reportRoomEntryPoint.createNode(this, buildContext, navTarget.roomId) - is NavTarget.DeclineInviteAndBlockUser -> declineInviteAndBlockUserEntryPoint.createNode(this, buildContext, navTarget.inviteData) + is NavTarget.ReportRoom -> reportRoomEntryPoint.createNode(buildContext, navTarget.roomId) + is NavTarget.DeclineInviteAndBlockUser -> declineInviteAndBlockUserEntryPoint.createNode(buildContext, navTarget.inviteData) is NavTarget.SelectNewOwnersWhenLeavingRoom -> { val room = runBlocking { matrixClient.getJoinedRoom(navTarget.roomId) } ?: error("Room ${navTarget.roomId} not found") changeRoomMemberRolesEntryPoint.createNode( - parentNode = this, buildContext = buildContext, room = room, listType = ChangeRoomMemberRolesListType.SelectNewOwnersWhenLeaving, diff --git a/features/home/impl/src/test/kotlin/io/element/android/features/home/impl/DefaultHomeEntryPointTest.kt b/features/home/impl/src/test/kotlin/io/element/android/features/home/impl/DefaultHomeEntryPointTest.kt index 489234a827..47574cd639 100644 --- a/features/home/impl/src/test/kotlin/io/element/android/features/home/impl/DefaultHomeEntryPointTest.kt +++ b/features/home/impl/src/test/kotlin/io/element/android/features/home/impl/DefaultHomeEntryPointTest.kt @@ -34,9 +34,9 @@ class DefaultHomeEntryPointTest { analyticsService = FakeAnalyticsService(), acceptDeclineInviteView = { _, _, _, _ -> lambdaError() }, directLogoutView = { _ -> lambdaError() }, - reportRoomEntryPoint = { _, _, _ -> lambdaError() }, - declineInviteAndBlockUserEntryPoint = { _, _, _ -> lambdaError() }, - changeRoomMemberRolesEntryPoint = { _, _, _, _ -> lambdaError() }, + reportRoomEntryPoint = { _, _ -> lambdaError() }, + declineInviteAndBlockUserEntryPoint = { _, _ -> lambdaError() }, + changeRoomMemberRolesEntryPoint = { _, _, _ -> lambdaError() }, leaveRoomRenderer = { _, _, _ -> lambdaError() }, ) } @@ -49,11 +49,12 @@ class DefaultHomeEntryPointTest { override fun navigateToRoomSettings(roomId: RoomId) = lambdaError() override fun navigateToBugReport() = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result).isInstanceOf(HomeFlowNode::class.java) assertThat(result.plugins).contains(callback) } diff --git a/features/invite/api/src/main/kotlin/io/element/android/features/invite/api/declineandblock/DeclineInviteAndBlockEntryPoint.kt b/features/invite/api/src/main/kotlin/io/element/android/features/invite/api/declineandblock/DeclineInviteAndBlockEntryPoint.kt index 8517fe2786..44b88f627b 100644 --- a/features/invite/api/src/main/kotlin/io/element/android/features/invite/api/declineandblock/DeclineInviteAndBlockEntryPoint.kt +++ b/features/invite/api/src/main/kotlin/io/element/android/features/invite/api/declineandblock/DeclineInviteAndBlockEntryPoint.kt @@ -13,5 +13,6 @@ import io.element.android.features.invite.api.InviteData import io.element.android.libraries.architecture.FeatureEntryPoint fun interface DeclineInviteAndBlockEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, inviteData: InviteData): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, inviteData: InviteData): Node } diff --git a/features/invite/impl/src/main/kotlin/io/element/android/features/invite/impl/declineandblock/DefaultDeclineAndBlockEntryPoint.kt b/features/invite/impl/src/main/kotlin/io/element/android/features/invite/impl/declineandblock/DefaultDeclineAndBlockEntryPoint.kt index e76d173a90..a356636cad 100644 --- a/features/invite/impl/src/main/kotlin/io/element/android/features/invite/impl/declineandblock/DefaultDeclineAndBlockEntryPoint.kt +++ b/features/invite/impl/src/main/kotlin/io/element/android/features/invite/impl/declineandblock/DefaultDeclineAndBlockEntryPoint.kt @@ -17,7 +17,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultDeclineAndBlockEntryPoint : DeclineInviteAndBlockEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, inviteData: InviteData): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, inviteData: InviteData): Node { val inputs = DeclineAndBlockNode.Inputs(inviteData) return parentNode.createNode(buildContext, plugins = listOf(inputs)) } diff --git a/features/invite/impl/src/test/kotlin/io/element/android/features/invite/impl/declineandblock/DefaultDeclineAndBlockEntryPointTest.kt b/features/invite/impl/src/test/kotlin/io/element/android/features/invite/impl/declineandblock/DefaultDeclineAndBlockEntryPointTest.kt index 7cdf208b9a..c1919831c0 100644 --- a/features/invite/impl/src/test/kotlin/io/element/android/features/invite/impl/declineandblock/DefaultDeclineAndBlockEntryPointTest.kt +++ b/features/invite/impl/src/test/kotlin/io/element/android/features/invite/impl/declineandblock/DefaultDeclineAndBlockEntryPointTest.kt @@ -30,11 +30,12 @@ class DefaultDeclineAndBlockEntryPointTest { ) } val inviteData = anInviteData() - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - inviteData = inviteData - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + inviteData = inviteData + ) + } assertThat(result).isInstanceOf(DeclineAndBlockNode::class.java) assertThat(result.plugins).contains(DeclineAndBlockNode.Inputs(inviteData)) } diff --git a/features/joinroom/api/src/main/kotlin/io/element/android/features/joinroom/api/JoinRoomEntryPoint.kt b/features/joinroom/api/src/main/kotlin/io/element/android/features/joinroom/api/JoinRoomEntryPoint.kt index 9af4703949..7b4f9a8ac0 100644 --- a/features/joinroom/api/src/main/kotlin/io/element/android/features/joinroom/api/JoinRoomEntryPoint.kt +++ b/features/joinroom/api/src/main/kotlin/io/element/android/features/joinroom/api/JoinRoomEntryPoint.kt @@ -18,7 +18,8 @@ import io.element.android.libraries.matrix.api.core.RoomIdOrAlias import java.util.Optional interface JoinRoomEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, inputs: Inputs): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, inputs: Inputs): Node data class Inputs( val roomId: RoomId, diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/DefaultJoinRoomEntryPoint.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/DefaultJoinRoomEntryPoint.kt index c7e5e1d11f..eb1deb4897 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/DefaultJoinRoomEntryPoint.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/DefaultJoinRoomEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultJoinRoomEntryPoint : JoinRoomEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, inputs: JoinRoomEntryPoint.Inputs): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, inputs: JoinRoomEntryPoint.Inputs): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf(inputs) diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomFlowNode.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomFlowNode.kt index f501752544..92cd023bc9 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomFlowNode.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomFlowNode.kt @@ -64,7 +64,7 @@ class JoinRoomFlowNode( override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node { return when (navTarget) { - is NavTarget.DeclineInviteAndBlockUser -> declineAndBlockEntryPoint.createNode(this, buildContext, navTarget.inviteData) + is NavTarget.DeclineInviteAndBlockUser -> declineAndBlockEntryPoint.createNode(buildContext, navTarget.inviteData) NavTarget.Root -> rootNode(buildContext) } } diff --git a/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/DefaultJoinRoomEntryPointTest.kt b/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/DefaultJoinRoomEntryPointTest.kt index af75fd528c..4cf41f1dbc 100644 --- a/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/DefaultJoinRoomEntryPointTest.kt +++ b/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/DefaultJoinRoomEntryPointTest.kt @@ -41,7 +41,8 @@ class DefaultJoinRoomEntryPointTest { presenterFactory = { _, _, _, _, _ -> createJoinRoomPresenter() }, acceptDeclineInviteView = { _, _, _, _ -> lambdaError() }, declineAndBlockEntryPoint = object : DeclineInviteAndBlockEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, inviteData: InviteData) = lambdaError() + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, inviteData: InviteData) = lambdaError() } ) } @@ -52,7 +53,9 @@ class DefaultJoinRoomEntryPointTest { serverNames = emptyList(), trigger = JoinedRoom.Trigger.RoomDirectory, ) - val result = entryPoint.createNode(parentNode, BuildContext.root(null), inputs) + val result = with(parentNode) { + entryPoint.createNode(BuildContext.root(null), inputs) + } assertThat(result).isInstanceOf(JoinRoomFlowNode::class.java) assertThat(result.plugins).contains(inputs) } diff --git a/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/list/DefaultKnockRequestsListEntryPoint.kt b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/list/DefaultKnockRequestsListEntryPoint.kt index c77065324d..a3186072f3 100644 --- a/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/list/DefaultKnockRequestsListEntryPoint.kt +++ b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/list/DefaultKnockRequestsListEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultKnockRequestsListEntryPoint : KnockRequestsListEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext): Node { return parentNode.createNode(buildContext) } } diff --git a/features/knockrequests/impl/src/test/kotlin/io/element/android/features/knockrequests/impl/list/DefaultKnockRequestsListEntryPointTest.kt b/features/knockrequests/impl/src/test/kotlin/io/element/android/features/knockrequests/impl/list/DefaultKnockRequestsListEntryPointTest.kt index b6b6d766c7..2e6a8426e8 100644 --- a/features/knockrequests/impl/src/test/kotlin/io/element/android/features/knockrequests/impl/list/DefaultKnockRequestsListEntryPointTest.kt +++ b/features/knockrequests/impl/src/test/kotlin/io/element/android/features/knockrequests/impl/list/DefaultKnockRequestsListEntryPointTest.kt @@ -30,7 +30,9 @@ class DefaultKnockRequestsListEntryPointTest { presenter = createKnockRequestsListPresenter(), ) } - val result = entryPoint.createNode(parentNode, BuildContext.root(null)) + val result = with(parentNode) { + entryPoint.createNode(BuildContext.root(null)) + } assertThat(result).isInstanceOf(KnockRequestsListNode::class.java) } } diff --git a/features/licenses/impl/src/main/kotlin/io/element/android/features/licenses/impl/DefaultOpenSourcesLicensesEntryPoint.kt b/features/licenses/impl/src/main/kotlin/io/element/android/features/licenses/impl/DefaultOpenSourcesLicensesEntryPoint.kt index 77c56b6d3a..4839c1a8cf 100644 --- a/features/licenses/impl/src/main/kotlin/io/element/android/features/licenses/impl/DefaultOpenSourcesLicensesEntryPoint.kt +++ b/features/licenses/impl/src/main/kotlin/io/element/android/features/licenses/impl/DefaultOpenSourcesLicensesEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultOpenSourcesLicensesEntryPoint : OpenSourceLicensesEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext): Node { return parentNode.createNode(buildContext) } } diff --git a/features/licenses/impl/src/test/kotlin/io/element/android/features/licenses/impl/DefaultOpenSourcesLicensesEntryPointTest.kt b/features/licenses/impl/src/test/kotlin/io/element/android/features/licenses/impl/DefaultOpenSourcesLicensesEntryPointTest.kt index 3209e28fe6..9fbd370c55 100644 --- a/features/licenses/impl/src/test/kotlin/io/element/android/features/licenses/impl/DefaultOpenSourcesLicensesEntryPointTest.kt +++ b/features/licenses/impl/src/test/kotlin/io/element/android/features/licenses/impl/DefaultOpenSourcesLicensesEntryPointTest.kt @@ -31,7 +31,9 @@ class DefaultOpenSourcesLicensesEntryPointTest { plugins = plugins, ) } - val result = entryPoint.createNode(parentNode, BuildContext.root(null)) + val result = with(parentNode) { + entryPoint.createNode(BuildContext.root(null)) + } assertThat(result).isInstanceOf(DependenciesFlowNode::class.java) } } diff --git a/features/location/api/src/main/kotlin/io/element/android/features/location/api/SendLocationEntryPoint.kt b/features/location/api/src/main/kotlin/io/element/android/features/location/api/SendLocationEntryPoint.kt index afd1b895b5..f522992872 100644 --- a/features/location/api/src/main/kotlin/io/element/android/features/location/api/SendLocationEntryPoint.kt +++ b/features/location/api/src/main/kotlin/io/element/android/features/location/api/SendLocationEntryPoint.kt @@ -18,8 +18,8 @@ import io.element.android.libraries.matrix.api.timeline.Timeline * Allows a user to share a location message within a room. */ interface SendLocationEntryPoint : FeatureEntryPoint { + context(parentNode: Node) fun createNode( - parentNode: Node, buildContext: BuildContext, timelineMode: Timeline.Mode, ): Node diff --git a/features/location/api/src/main/kotlin/io/element/android/features/location/api/ShowLocationEntryPoint.kt b/features/location/api/src/main/kotlin/io/element/android/features/location/api/ShowLocationEntryPoint.kt index 7ae28a1e92..2bf4ac5871 100644 --- a/features/location/api/src/main/kotlin/io/element/android/features/location/api/ShowLocationEntryPoint.kt +++ b/features/location/api/src/main/kotlin/io/element/android/features/location/api/ShowLocationEntryPoint.kt @@ -15,5 +15,6 @@ import io.element.android.libraries.architecture.NodeInputs interface ShowLocationEntryPoint : FeatureEntryPoint { data class Inputs(val location: Location, val description: String?) : NodeInputs - fun createNode(parentNode: Node, buildContext: BuildContext, inputs: Inputs): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, inputs: Inputs): Node } diff --git a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPoint.kt b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPoint.kt index 2a8e9309a1..6d14dc06dc 100644 --- a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPoint.kt +++ b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPoint.kt @@ -17,8 +17,8 @@ import io.element.android.libraries.matrix.api.timeline.Timeline @ContributesBinding(AppScope::class) class DefaultSendLocationEntryPoint : SendLocationEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, timelineMode: Timeline.Mode, ): Node { diff --git a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPoint.kt b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPoint.kt index 75a177d21a..ab2c45eb1a 100644 --- a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPoint.kt +++ b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultShowLocationEntryPoint : ShowLocationEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, inputs: ShowLocationEntryPoint.Inputs): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, inputs: ShowLocationEntryPoint.Inputs): Node { return parentNode.createNode(buildContext, listOf(inputs)) } } diff --git a/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPointTest.kt b/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPointTest.kt index 4cac3df6a2..ff3cc57dcf 100644 --- a/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPointTest.kt +++ b/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPointTest.kt @@ -47,11 +47,12 @@ class DefaultSendLocationEntryPointTest { ) } val timelineMode = Timeline.Mode.Live - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - timelineMode = timelineMode, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + timelineMode = timelineMode, + ) + } assertThat(result).isInstanceOf(SendLocationNode::class.java) assertThat(result.plugins).contains(SendLocationNode.Inputs(timelineMode)) } diff --git a/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPointTest.kt b/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPointTest.kt index d31ef0c0e4..b7d7a1be44 100644 --- a/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPointTest.kt +++ b/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPointTest.kt @@ -47,11 +47,12 @@ class DefaultShowLocationEntryPointTest { location = Location(37.4219983, -122.084, 10f), description = "My location", ) - val result = entryPoint.createNode( - parentNode, - BuildContext.root(null), - inputs = inputs, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + inputs = inputs, + ) + } assertThat(result).isInstanceOf(ShowLocationNode::class.java) assertThat(result.plugins).contains(inputs) } diff --git a/features/lockscreen/api/src/main/kotlin/io/element/android/features/lockscreen/api/LockScreenEntryPoint.kt b/features/lockscreen/api/src/main/kotlin/io/element/android/features/lockscreen/api/LockScreenEntryPoint.kt index c7741ac197..c5c187db83 100644 --- a/features/lockscreen/api/src/main/kotlin/io/element/android/features/lockscreen/api/LockScreenEntryPoint.kt +++ b/features/lockscreen/api/src/main/kotlin/io/element/android/features/lockscreen/api/LockScreenEntryPoint.kt @@ -15,7 +15,9 @@ import com.bumble.appyx.core.plugin.Plugin import io.element.android.libraries.architecture.FeatureEntryPoint interface LockScreenEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, navTarget: Target, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, navTarget: Target, callback: Callback): Node + fun pinUnlockIntent(context: Context): Intent interface Callback : Plugin { diff --git a/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/DefaultLockScreenEntryPoint.kt b/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/DefaultLockScreenEntryPoint.kt index 39430c5ad1..8651480c37 100644 --- a/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/DefaultLockScreenEntryPoint.kt +++ b/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/DefaultLockScreenEntryPoint.kt @@ -19,8 +19,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultLockScreenEntryPoint : LockScreenEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, navTarget: LockScreenEntryPoint.Target, callback: LockScreenEntryPoint.Callback, diff --git a/features/lockscreen/impl/src/test/kotlin/io/element/android/features/lockscreen/impl/DefaultLockScreenEntryPointTest.kt b/features/lockscreen/impl/src/test/kotlin/io/element/android/features/lockscreen/impl/DefaultLockScreenEntryPointTest.kt index 15473fe43c..425f5a70e3 100644 --- a/features/lockscreen/impl/src/test/kotlin/io/element/android/features/lockscreen/impl/DefaultLockScreenEntryPointTest.kt +++ b/features/lockscreen/impl/src/test/kotlin/io/element/android/features/lockscreen/impl/DefaultLockScreenEntryPointTest.kt @@ -37,12 +37,13 @@ class DefaultLockScreenEntryPointTest { override fun onSetupDone() = lambdaError() } val navTarget = LockScreenEntryPoint.Target.Setup - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - navTarget = navTarget, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + navTarget = navTarget, + callback = callback, + ) + } assertThat(result).isInstanceOf(LockScreenFlowNode::class.java) assertThat(result.plugins).contains(LockScreenFlowNode.Inputs(LockScreenFlowNode.NavTarget.Setup)) assertThat(result.plugins).contains(callback) @@ -61,12 +62,13 @@ class DefaultLockScreenEntryPointTest { override fun onSetupDone() = lambdaError() } val navTarget = LockScreenEntryPoint.Target.Settings - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - navTarget = navTarget, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + navTarget = navTarget, + callback = callback, + ) + } assertThat(result).isInstanceOf(LockScreenFlowNode::class.java) assertThat(result.plugins).contains(LockScreenFlowNode.Inputs(LockScreenFlowNode.NavTarget.Settings)) assertThat(result.plugins).contains(callback) diff --git a/features/login/api/src/main/kotlin/io/element/android/features/login/api/LoginEntryPoint.kt b/features/login/api/src/main/kotlin/io/element/android/features/login/api/LoginEntryPoint.kt index e2e60af1ed..b9f4228162 100644 --- a/features/login/api/src/main/kotlin/io/element/android/features/login/api/LoginEntryPoint.kt +++ b/features/login/api/src/main/kotlin/io/element/android/features/login/api/LoginEntryPoint.kt @@ -22,5 +22,6 @@ interface LoginEntryPoint : FeatureEntryPoint { fun navigateToBugReport() } - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node } diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/DefaultLoginEntryPoint.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/DefaultLoginEntryPoint.kt index a95b7b54a7..327ec5036a 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/DefaultLoginEntryPoint.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/DefaultLoginEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultLoginEntryPoint : LoginEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, params: LoginEntryPoint.Params, callback: LoginEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, params: LoginEntryPoint.Params, callback: LoginEntryPoint.Callback): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf( diff --git a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/DefaultLoginEntryPointTest.kt b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/DefaultLoginEntryPointTest.kt index 4a6f6cae22..2396831b1d 100644 --- a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/DefaultLoginEntryPointTest.kt +++ b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/DefaultLoginEntryPointTest.kt @@ -45,12 +45,13 @@ class DefaultLoginEntryPointTest { accountProvider = "ac", loginHint = "lh", ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(LoginFlowNode::class.java) assertThat(result.plugins).contains(LoginFlowNode.Params(params.accountProvider, params.loginHint)) assertThat(result.plugins).contains(callback) diff --git a/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/LogoutEntryPoint.kt b/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/LogoutEntryPoint.kt index 41ce730b1c..207f92a489 100644 --- a/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/LogoutEntryPoint.kt +++ b/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/LogoutEntryPoint.kt @@ -13,7 +13,8 @@ import com.bumble.appyx.core.plugin.Plugin import io.element.android.libraries.architecture.FeatureEntryPoint interface LogoutEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun navigateToSecureBackup() diff --git a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPoint.kt b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPoint.kt index 4ca840ad04..42c11cf0d6 100644 --- a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPoint.kt +++ b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultLogoutEntryPoint : LogoutEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: LogoutEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: LogoutEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(callback)) } } diff --git a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPointTest.kt b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPointTest.kt index dd4b3b36fc..b319a30e44 100644 --- a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPointTest.kt +++ b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPointTest.kt @@ -34,11 +34,12 @@ class DefaultLogoutEntryPointTest { val callback = object : LogoutEntryPoint.Callback { override fun navigateToSecureBackup() = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result).isInstanceOf(LogoutNode::class.java) assertThat(result.plugins).contains(callback) } diff --git a/features/messages/api/src/main/kotlin/io/element/android/features/messages/api/MessagesEntryPoint.kt b/features/messages/api/src/main/kotlin/io/element/android/features/messages/api/MessagesEntryPoint.kt index 46e20ab2d7..6f883bb683 100644 --- a/features/messages/api/src/main/kotlin/io/element/android/features/messages/api/MessagesEntryPoint.kt +++ b/features/messages/api/src/main/kotlin/io/element/android/features/messages/api/MessagesEntryPoint.kt @@ -41,7 +41,8 @@ interface MessagesEntryPoint : FeatureEntryPoint { data class Params(val initialTarget: InitialTarget) : NodeInputs - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node } interface MessagesEntryPointNode { diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/DefaultMessagesEntryPoint.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/DefaultMessagesEntryPoint.kt index c48fafb6a2..90784912e6 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/DefaultMessagesEntryPoint.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/DefaultMessagesEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope @ContributesBinding(SessionScope::class) class DefaultMessagesEntryPoint : MessagesEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, params: MessagesEntryPoint.Params, callback: MessagesEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, params: MessagesEntryPoint.Params, callback: MessagesEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(params, callback)) } } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt index d8a684b8dd..0c700d5695 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt @@ -321,7 +321,6 @@ class MessagesFlowNode( } } mediaViewerEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = callback @@ -337,7 +336,7 @@ class MessagesFlowNode( } is NavTarget.LocationViewer -> { val inputs = ShowLocationEntryPoint.Inputs(navTarget.location, navTarget.description) - showLocationEntryPoint.createNode(this, buildContext, inputs) + showLocationEntryPoint.createNode(buildContext, inputs) } is NavTarget.EventDebugInfo -> { val inputs = EventDebugInfoNode.Inputs(navTarget.eventId, navTarget.debugInfo) @@ -359,7 +358,6 @@ class MessagesFlowNode( } } forwardEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = callback, @@ -371,14 +369,12 @@ 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, @@ -388,7 +384,6 @@ class MessagesFlowNode( } is NavTarget.EditPoll -> { createPollEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = CreatePollEntryPoint.Params( timelineMode = navTarget.timelineMode, @@ -428,7 +423,7 @@ class MessagesFlowNode( createNode(buildContext, plugins = listOf(callback)) } NavTarget.KnockRequestsList -> { - knockRequestsListEntryPoint.createNode(this, buildContext) + knockRequestsListEntryPoint.createNode(buildContext) } is NavTarget.Thread -> { val inputs = ThreadedMessagesNode.Inputs( diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/DefaultMessagesEntryPointTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/DefaultMessagesEntryPointTest.kt index 774f38acf8..5032d324f7 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/DefaultMessagesEntryPointTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/DefaultMessagesEntryPointTest.kt @@ -66,18 +66,19 @@ class DefaultMessagesEntryPointTest { roomListService = FakeRoomListService(), sessionId = A_SESSION_ID, sendLocationEntryPoint = object : SendLocationEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, timelineMode: Timeline.Mode, ) = lambdaError() }, showLocationEntryPoint = object : ShowLocationEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, inputs: ShowLocationEntryPoint.Inputs) = lambdaError() + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, inputs: ShowLocationEntryPoint.Inputs) = lambdaError() }, createPollEntryPoint = object : CreatePollEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: Params, ) = lambdaError() @@ -99,16 +100,16 @@ class DefaultMessagesEntryPointTest { }, mediaViewerEntryPoint = object : 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, ) = lambdaError() }, forwardEntryPoint = object : ForwardEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: ForwardEntryPoint.Params, callback: ForwardEntryPoint.Callback, @@ -129,7 +130,8 @@ class DefaultMessagesEntryPointTest { pinnedEventsTimelineProvider = createPinnedEventsTimelineProvider(), timelineController = createTimelineController(), knockRequestsListEntryPoint = object : KnockRequestsListEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError() + context(parentNode: Node) + override fun createNode(buildContext: BuildContext) = lambdaError() }, dateFormatter = FakeDateFormatter(), coroutineDispatchers = testCoroutineDispatchers(), @@ -144,12 +146,13 @@ class DefaultMessagesEntryPointTest { } val initialTarget = MessagesEntryPoint.InitialTarget.Messages(focusedEventId = AN_EVENT_ID) val params = MessagesEntryPoint.Params(initialTarget) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + 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) diff --git a/features/poll/api/src/main/kotlin/io/element/android/features/poll/api/create/CreatePollEntryPoint.kt b/features/poll/api/src/main/kotlin/io/element/android/features/poll/api/create/CreatePollEntryPoint.kt index 5d82fb1fd3..202ff9c7c1 100644 --- a/features/poll/api/src/main/kotlin/io/element/android/features/poll/api/create/CreatePollEntryPoint.kt +++ b/features/poll/api/src/main/kotlin/io/element/android/features/poll/api/create/CreatePollEntryPoint.kt @@ -18,5 +18,6 @@ interface CreatePollEntryPoint : FeatureEntryPoint { val mode: CreatePollMode, ) - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params): Node } diff --git a/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/create/DefaultCreatePollEntryPoint.kt b/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/create/DefaultCreatePollEntryPoint.kt index 652f5db20d..5d3a6d66cb 100644 --- a/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/create/DefaultCreatePollEntryPoint.kt +++ b/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/create/DefaultCreatePollEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultCreatePollEntryPoint : CreatePollEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, params: CreatePollEntryPoint.Params): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, params: CreatePollEntryPoint.Params): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf(CreatePollNode.Inputs(timelineMode = params.timelineMode, mode = params.mode)) diff --git a/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/history/DefaultPollHistoryEntryPoint.kt b/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/history/DefaultPollHistoryEntryPoint.kt index 7f867def0a..c309a5324e 100644 --- a/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/history/DefaultPollHistoryEntryPoint.kt +++ b/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/history/DefaultPollHistoryEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultPollHistoryEntryPoint : PollHistoryEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext): Node { return parentNode.createNode(buildContext) } } diff --git a/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/history/PollHistoryFlowNode.kt b/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/history/PollHistoryFlowNode.kt index 6b43a06d01..56ae72e58f 100644 --- a/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/history/PollHistoryFlowNode.kt +++ b/features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/history/PollHistoryFlowNode.kt @@ -54,7 +54,6 @@ class PollHistoryFlowNode( return when (navTarget) { is NavTarget.EditPoll -> { createPollEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = CreatePollEntryPoint.Params( timelineMode = Timeline.Mode.Live, diff --git a/features/poll/impl/src/test/kotlin/io/element/android/features/poll/impl/create/DefaultCreatePollEntryPointTest.kt b/features/poll/impl/src/test/kotlin/io/element/android/features/poll/impl/create/DefaultCreatePollEntryPointTest.kt index 464fae98a0..14c41f50cd 100644 --- a/features/poll/impl/src/test/kotlin/io/element/android/features/poll/impl/create/DefaultCreatePollEntryPointTest.kt +++ b/features/poll/impl/src/test/kotlin/io/element/android/features/poll/impl/create/DefaultCreatePollEntryPointTest.kt @@ -53,11 +53,12 @@ class DefaultCreatePollEntryPointTest { timelineMode = Timeline.Mode.Live, mode = CreatePollMode.NewPoll, ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + ) + } assertThat(result).isInstanceOf(CreatePollNode::class.java) assertThat(result.plugins).contains(CreatePollNode.Inputs(timelineMode = params.timelineMode, mode = params.mode)) } diff --git a/features/poll/impl/src/test/kotlin/io/element/android/features/poll/impl/history/DefaultPollHistoryEntryPointTest.kt b/features/poll/impl/src/test/kotlin/io/element/android/features/poll/impl/history/DefaultPollHistoryEntryPointTest.kt index fbec294962..2e8e21f93f 100644 --- a/features/poll/impl/src/test/kotlin/io/element/android/features/poll/impl/history/DefaultPollHistoryEntryPointTest.kt +++ b/features/poll/impl/src/test/kotlin/io/element/android/features/poll/impl/history/DefaultPollHistoryEntryPointTest.kt @@ -34,15 +34,17 @@ class DefaultPollHistoryEntryPointTest { buildContext = buildContext, plugins = plugins, createPollEntryPoint = object : CreatePollEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: CreatePollEntryPoint.Params, ) = lambdaError() } ) } - val result = entryPoint.createNode(parentNode, BuildContext.root(null)) + val result = with(parentNode) { + entryPoint.createNode(BuildContext.root(null)) + } assertThat(result).isInstanceOf(PollHistoryFlowNode::class.java) } } diff --git a/features/preferences/api/src/main/kotlin/io/element/android/features/preferences/api/PreferencesEntryPoint.kt b/features/preferences/api/src/main/kotlin/io/element/android/features/preferences/api/PreferencesEntryPoint.kt index d2e1db6b4b..af92b58cbb 100644 --- a/features/preferences/api/src/main/kotlin/io/element/android/features/preferences/api/PreferencesEntryPoint.kt +++ b/features/preferences/api/src/main/kotlin/io/element/android/features/preferences/api/PreferencesEntryPoint.kt @@ -31,7 +31,8 @@ interface PreferencesEntryPoint : FeatureEntryPoint { data class Params(val initialElement: InitialTarget) : NodeInputs - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node interface Callback : Plugin { fun navigateToAddAccount() diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/DefaultPreferencesEntryPoint.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/DefaultPreferencesEntryPoint.kt index ffc9a2b798..338a3ff434 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/DefaultPreferencesEntryPoint.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/DefaultPreferencesEntryPoint.kt @@ -16,8 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultPreferencesEntryPoint : PreferencesEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: PreferencesEntryPoint.Params, callback: PreferencesEntryPoint.Callback, diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt index 0fcabfad28..ba5313dd7e 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt @@ -216,7 +216,6 @@ class PreferencesFlowNode( } NavTarget.TroubleshootNotifications -> { notificationTroubleShootEntryPoint.createNode( - parentNode = this, buildContext = buildContext, callback = object : NotificationTroubleShootEntryPoint.Callback { override fun onDone() { @@ -235,9 +234,8 @@ class PreferencesFlowNode( } NavTarget.PushHistory -> { pushHistoryEntryPoint.createNode( - this, - buildContext, - object : PushHistoryEntryPoint.Callback { + buildContext = buildContext, + callback = object : PushHistoryEntryPoint.Callback { override fun onDone() { if (backstack.canPop()) { backstack.pop() @@ -270,7 +268,6 @@ class PreferencesFlowNode( } NavTarget.LockScreenSettings -> { lockScreenEntryPoint.createNode( - parentNode = this, buildContext = buildContext, navTarget = LockScreenEntryPoint.Target.Settings, callback = object : LockScreenEntryPoint.Callback { @@ -290,16 +287,15 @@ class PreferencesFlowNode( } } logoutEntryPoint.createNode( - parentNode = this, buildContext = buildContext, callback = callBack, ) } is NavTarget.OssLicenses -> { - openSourceLicensesEntryPoint.createNode(this, buildContext) + openSourceLicensesEntryPoint.createNode(buildContext) } NavTarget.AccountDeactivation -> { - accountDeactivationEntryPoint.createNode(this, buildContext) + accountDeactivationEntryPoint.createNode(buildContext) } } } diff --git a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/DefaultPreferencesEntryPointTest.kt b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/DefaultPreferencesEntryPointTest.kt index e7c2f861d3..2a3d40b84a 100644 --- a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/DefaultPreferencesEntryPointTest.kt +++ b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/DefaultPreferencesEntryPointTest.kt @@ -42,8 +42,8 @@ class DefaultPreferencesEntryPointTest { buildContext = buildContext, plugins = plugins, lockScreenEntryPoint = object : LockScreenEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, navTarget: LockScreenEntryPoint.Target, callback: LockScreenEntryPoint.Callback, @@ -52,31 +52,33 @@ class DefaultPreferencesEntryPointTest { override fun pinUnlockIntent(context: Context) = lambdaError() }, notificationTroubleShootEntryPoint = object : NotificationTroubleShootEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, callback: NotificationTroubleShootEntryPoint.Callback, ) = lambdaError() }, pushHistoryEntryPoint = object : PushHistoryEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, callback: PushHistoryEntryPoint.Callback, ) = lambdaError() }, logoutEntryPoint = object : LogoutEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, callback: LogoutEntryPoint.Callback, ) = lambdaError() }, openSourceLicensesEntryPoint = object : OpenSourceLicensesEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError() + context(parentNode: Node) + override fun createNode(buildContext: BuildContext) = lambdaError() }, accountDeactivationEntryPoint = object : AccountDeactivationEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError() + context(parentNode: Node) + override fun createNode(buildContext: BuildContext) = lambdaError() }, ) } @@ -90,12 +92,13 @@ class DefaultPreferencesEntryPointTest { val params = PreferencesEntryPoint.Params( initialElement = PreferencesEntryPoint.InitialTarget.NotificationSettings, ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(PreferencesFlowNode::class.java) assertThat(result.plugins).contains(params) assertThat(result.plugins).contains(callback) diff --git a/features/rageshake/api/src/main/kotlin/io/element/android/features/rageshake/api/bugreport/BugReportEntryPoint.kt b/features/rageshake/api/src/main/kotlin/io/element/android/features/rageshake/api/bugreport/BugReportEntryPoint.kt index f0c73a9c0e..a8fbf56b75 100644 --- a/features/rageshake/api/src/main/kotlin/io/element/android/features/rageshake/api/bugreport/BugReportEntryPoint.kt +++ b/features/rageshake/api/src/main/kotlin/io/element/android/features/rageshake/api/bugreport/BugReportEntryPoint.kt @@ -13,7 +13,8 @@ import com.bumble.appyx.core.plugin.Plugin import io.element.android.libraries.architecture.FeatureEntryPoint interface BugReportEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun onDone() diff --git a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportFlowNode.kt b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportFlowNode.kt index 8749199fd1..af0c06054f 100644 --- a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportFlowNode.kt +++ b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportFlowNode.kt @@ -78,7 +78,6 @@ class BugReportFlowNode( rootPath = navTarget.rootPath, ) viewFolderEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = callback, diff --git a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/DefaultBugReportEntryPoint.kt b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/DefaultBugReportEntryPoint.kt index 57b4e1a3e5..ffdaf41167 100644 --- a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/DefaultBugReportEntryPoint.kt +++ b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/DefaultBugReportEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultBugReportEntryPoint : BugReportEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: BugReportEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: BugReportEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(callback)) } } diff --git a/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/DefaultBugReportEntryPointTest.kt b/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/DefaultBugReportEntryPointTest.kt index bc4b805f2b..0294485a15 100644 --- a/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/DefaultBugReportEntryPointTest.kt +++ b/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/DefaultBugReportEntryPointTest.kt @@ -35,8 +35,8 @@ class DefaultBugReportEntryPointTest { buildContext = buildContext, plugins = plugins, viewFolderEntryPoint = object : ViewFolderEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: ViewFolderEntryPoint.Params, callback: ViewFolderEntryPoint.Callback, @@ -47,11 +47,12 @@ class DefaultBugReportEntryPointTest { val callback = object : BugReportEntryPoint.Callback { override fun onDone() = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result).isInstanceOf(BugReportFlowNode::class.java) assertThat(result.plugins).contains(callback) } diff --git a/features/reportroom/api/src/main/kotlin/io/element/android/features/reportroom/api/ReportRoomEntryPoint.kt b/features/reportroom/api/src/main/kotlin/io/element/android/features/reportroom/api/ReportRoomEntryPoint.kt index 1eff7f8206..27d8fea348 100644 --- a/features/reportroom/api/src/main/kotlin/io/element/android/features/reportroom/api/ReportRoomEntryPoint.kt +++ b/features/reportroom/api/src/main/kotlin/io/element/android/features/reportroom/api/ReportRoomEntryPoint.kt @@ -13,5 +13,6 @@ import io.element.android.libraries.architecture.FeatureEntryPoint import io.element.android.libraries.matrix.api.core.RoomId fun interface ReportRoomEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, roomId: RoomId): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, roomId: RoomId): Node } diff --git a/features/reportroom/impl/src/main/kotlin/io/element/android/features/reportroom/impl/DefaultReportRoomEntryPoint.kt b/features/reportroom/impl/src/main/kotlin/io/element/android/features/reportroom/impl/DefaultReportRoomEntryPoint.kt index d2f9eb8d7e..a97f93d79e 100644 --- a/features/reportroom/impl/src/main/kotlin/io/element/android/features/reportroom/impl/DefaultReportRoomEntryPoint.kt +++ b/features/reportroom/impl/src/main/kotlin/io/element/android/features/reportroom/impl/DefaultReportRoomEntryPoint.kt @@ -17,7 +17,8 @@ import io.element.android.libraries.matrix.api.core.RoomId @ContributesBinding(AppScope::class) class DefaultReportRoomEntryPoint : ReportRoomEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, roomId: RoomId): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, roomId: RoomId): Node { return parentNode.createNode(buildContext, plugins = listOf(ReportRoomNode.Inputs(roomId))) } } diff --git a/features/reportroom/impl/src/test/kotlin/io/element/android/features/reportroom/impl/DefaultReportRoomEntryPointTest.kt b/features/reportroom/impl/src/test/kotlin/io/element/android/features/reportroom/impl/DefaultReportRoomEntryPointTest.kt index c9f850062e..16cd8d298f 100644 --- a/features/reportroom/impl/src/test/kotlin/io/element/android/features/reportroom/impl/DefaultReportRoomEntryPointTest.kt +++ b/features/reportroom/impl/src/test/kotlin/io/element/android/features/reportroom/impl/DefaultReportRoomEntryPointTest.kt @@ -32,7 +32,9 @@ class DefaultReportRoomEntryPointTest { } ) } - val result = entryPoint.createNode(parentNode, BuildContext.root(null), A_ROOM_ID) + val result = with(parentNode) { + entryPoint.createNode(BuildContext.root(null), A_ROOM_ID) + } assertThat(result).isInstanceOf(ReportRoomNode::class.java) assertThat(result.plugins).contains(ReportRoomNode.Inputs(A_ROOM_ID)) } diff --git a/features/roomaliasresolver/api/src/main/kotlin/io/element/android/features/roomaliasesolver/api/RoomAliasResolverEntryPoint.kt b/features/roomaliasresolver/api/src/main/kotlin/io/element/android/features/roomaliasesolver/api/RoomAliasResolverEntryPoint.kt index 28931e9b0d..067eed7d65 100644 --- a/features/roomaliasresolver/api/src/main/kotlin/io/element/android/features/roomaliasesolver/api/RoomAliasResolverEntryPoint.kt +++ b/features/roomaliasresolver/api/src/main/kotlin/io/element/android/features/roomaliasesolver/api/RoomAliasResolverEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.matrix.api.core.RoomAlias import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias interface RoomAliasResolverEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node interface Callback : Plugin { fun onAliasResolved(data: ResolvedRoomAlias) diff --git a/features/roomaliasresolver/impl/src/main/kotlin/io/element/android/features/roomaliasresolver/impl/DefaultRoomAliasResolverEntryPoint.kt b/features/roomaliasresolver/impl/src/main/kotlin/io/element/android/features/roomaliasresolver/impl/DefaultRoomAliasResolverEntryPoint.kt index b6e4fe6716..405317d303 100644 --- a/features/roomaliasresolver/impl/src/main/kotlin/io/element/android/features/roomaliasresolver/impl/DefaultRoomAliasResolverEntryPoint.kt +++ b/features/roomaliasresolver/impl/src/main/kotlin/io/element/android/features/roomaliasresolver/impl/DefaultRoomAliasResolverEntryPoint.kt @@ -16,8 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultRoomAliasResolverEntryPoint : RoomAliasResolverEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: RoomAliasResolverEntryPoint.Params, callback: RoomAliasResolverEntryPoint.Callback, diff --git a/features/roomaliasresolver/impl/src/test/kotlin/io/element/android/features/roomaliasresolver/impl/DefaultRoomAliasResolverEntryPointTest.kt b/features/roomaliasresolver/impl/src/test/kotlin/io/element/android/features/roomaliasresolver/impl/DefaultRoomAliasResolverEntryPointTest.kt index 6e3dbb2ba8..f7cc1d57c6 100644 --- a/features/roomaliasresolver/impl/src/test/kotlin/io/element/android/features/roomaliasresolver/impl/DefaultRoomAliasResolverEntryPointTest.kt +++ b/features/roomaliasresolver/impl/src/test/kotlin/io/element/android/features/roomaliasresolver/impl/DefaultRoomAliasResolverEntryPointTest.kt @@ -43,12 +43,13 @@ class DefaultRoomAliasResolverEntryPointTest { val params = RoomAliasResolverEntryPoint.Params( roomAlias = A_ROOM_ALIAS ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(RoomAliasResolverNode::class.java) assertThat(result.plugins).contains(params) assertThat(result.plugins).contains(callback) diff --git a/features/roomdetails/api/src/main/kotlin/io/element/android/features/roomdetails/api/RoomDetailsEntryPoint.kt b/features/roomdetails/api/src/main/kotlin/io/element/android/features/roomdetails/api/RoomDetailsEntryPoint.kt index bdee602f55..ce03aca20a 100644 --- a/features/roomdetails/api/src/main/kotlin/io/element/android/features/roomdetails/api/RoomDetailsEntryPoint.kt +++ b/features/roomdetails/api/src/main/kotlin/io/element/android/features/roomdetails/api/RoomDetailsEntryPoint.kt @@ -43,5 +43,6 @@ interface RoomDetailsEntryPoint : FeatureEntryPoint { fun startForwardEventFlow(eventId: EventId) } - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPoint.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPoint.kt index 8066cc70f5..4f2fb1d741 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPoint.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPoint.kt @@ -18,8 +18,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultRoomDetailsEntryPoint : RoomDetailsEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: RoomDetailsEntryPoint.Params, callback: RoomDetailsEntryPoint.Callback, diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt index 3ed0ce9d92..ad70f0f0a0 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt @@ -308,14 +308,13 @@ class RoomDetailsFlowNode( avatarUrl = navTarget.avatarUrl, ) mediaViewerEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = callback, ) } is NavTarget.PollHistory -> { - pollHistoryEntryPoint.createNode(this, buildContext) + pollHistoryEntryPoint.createNode(buildContext) } is NavTarget.MediaGallery -> { val callback = object : MediaGalleryEntryPoint.Callback { @@ -336,7 +335,6 @@ class RoomDetailsFlowNode( } } mediaGalleryEntryPoint.createNode( - parentNode = this, buildContext = buildContext, callback = callback, ) @@ -367,14 +365,13 @@ class RoomDetailsFlowNode( } } return messagesEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = callback, ) } NavTarget.KnockRequestsList -> { - knockRequestsListEntryPoint.createNode(this, buildContext) + knockRequestsListEntryPoint.createNode(buildContext) } NavTarget.SecurityAndPrivacy -> { createNode(buildContext) @@ -385,7 +382,6 @@ class RoomDetailsFlowNode( verificationRequest = VerificationRequest.Outgoing.User(userId = navTarget.userId) ) outgoingVerificationEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = object : OutgoingVerificationEntryPoint.Callback { @@ -404,12 +400,11 @@ class RoomDetailsFlowNode( ) } is NavTarget.ReportRoom -> { - reportRoomEntryPoint.createNode(this, buildContext, room.roomId) + reportRoomEntryPoint.createNode(buildContext, room.roomId) } is NavTarget.SelectNewOwnersWhenLeaving -> { changeRoomMemberRolesEntryPoint.createNode( - parentNode = this, buildContext = buildContext, room = room, listType = ChangeRoomMemberRolesListType.SelectNewOwnersWhenLeaving, diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt index aeee51a81d..0dee0c2a54 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt @@ -102,7 +102,6 @@ class RolesAndPermissionsFlowNode( } is NavTarget.AdminList -> { changeRoomMemberRolesEntryPoint.createNode( - parentNode = this, buildContext = buildContext, room = joinedRoom, listType = ChangeRoomMemberRolesListType.Admins, @@ -110,7 +109,6 @@ class RolesAndPermissionsFlowNode( } is NavTarget.ModeratorList -> { changeRoomMemberRolesEntryPoint.createNode( - parentNode = this, buildContext = buildContext, room = joinedRoom, listType = ChangeRoomMemberRolesListType.Moderators, diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt index 6de949d0a4..a20aa80daa 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt @@ -53,7 +53,8 @@ class DefaultRoomDetailsEntryPointTest { buildContext = buildContext, plugins = plugins, pollHistoryEntryPoint = object : PollHistoryEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError() + context(parentNode: Node) + override fun createNode(buildContext: BuildContext) = lambdaError() }, elementCallEntryPoint = object : ElementCallEntryPoint { override fun startCall(callType: CallType) = lambdaError() @@ -73,46 +74,49 @@ class DefaultRoomDetailsEntryPointTest { room = FakeJoinedRoom(), analyticsService = FakeAnalyticsService(), messagesEntryPoint = object : MessagesEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: MessagesEntryPoint.Params, callback: MessagesEntryPoint.Callback, ) = lambdaError() }, knockRequestsListEntryPoint = object : KnockRequestsListEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError() + context(parentNode: Node) + override fun createNode(buildContext: BuildContext) = lambdaError() }, mediaViewerEntryPoint = object : 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, ) = lambdaError() }, mediaGalleryEntryPoint = object : MediaGalleryEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, callback: MediaGalleryEntryPoint.Callback, ) = lambdaError() }, outgoingVerificationEntryPoint = object : OutgoingVerificationEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: OutgoingVerificationEntryPoint.Params, callback: OutgoingVerificationEntryPoint.Callback, ) = lambdaError() }, reportRoomEntryPoint = object : ReportRoomEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, roomId: RoomId) = lambdaError() + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, roomId: RoomId) = lambdaError() }, changeRoomMemberRolesEntryPoint = object : ChangeRoomMemberRolesEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, room: JoinedRoom, listType: ChangeRoomMemberRolesListType, @@ -129,12 +133,13 @@ class DefaultRoomDetailsEntryPointTest { val params = RoomDetailsEntryPoint.Params( initialElement = RoomDetailsEntryPoint.InitialTarget.RoomDetails, ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(RoomDetailsFlowNode::class.java) assertThat(result.plugins).contains(params) assertThat(result.plugins).contains(callback) diff --git a/features/roomdirectory/api/src/main/kotlin/io/element/android/features/roomdirectory/api/RoomDirectoryEntryPoint.kt b/features/roomdirectory/api/src/main/kotlin/io/element/android/features/roomdirectory/api/RoomDirectoryEntryPoint.kt index 88cea23a05..d290287c2c 100644 --- a/features/roomdirectory/api/src/main/kotlin/io/element/android/features/roomdirectory/api/RoomDirectoryEntryPoint.kt +++ b/features/roomdirectory/api/src/main/kotlin/io/element/android/features/roomdirectory/api/RoomDirectoryEntryPoint.kt @@ -13,7 +13,8 @@ import com.bumble.appyx.core.plugin.Plugin import io.element.android.libraries.architecture.FeatureEntryPoint interface RoomDirectoryEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun navigateToRoom(roomDescription: RoomDescription) diff --git a/features/roomdirectory/impl/src/main/kotlin/io/element/android/features/roomdirectory/impl/DefaultRoomDirectoryEntryPoint.kt b/features/roomdirectory/impl/src/main/kotlin/io/element/android/features/roomdirectory/impl/DefaultRoomDirectoryEntryPoint.kt index a2f8921f66..55804d3f68 100644 --- a/features/roomdirectory/impl/src/main/kotlin/io/element/android/features/roomdirectory/impl/DefaultRoomDirectoryEntryPoint.kt +++ b/features/roomdirectory/impl/src/main/kotlin/io/element/android/features/roomdirectory/impl/DefaultRoomDirectoryEntryPoint.kt @@ -17,7 +17,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultRoomDirectoryEntryPoint : RoomDirectoryEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: RoomDirectoryEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: RoomDirectoryEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(callback)) } } diff --git a/features/roomdirectory/impl/src/test/kotlin/io/element/android/features/roomdirectory/impl/DefaultRoomDirectoryEntryPointTest.kt b/features/roomdirectory/impl/src/test/kotlin/io/element/android/features/roomdirectory/impl/DefaultRoomDirectoryEntryPointTest.kt index 24205d6681..332c89b2ae 100644 --- a/features/roomdirectory/impl/src/test/kotlin/io/element/android/features/roomdirectory/impl/DefaultRoomDirectoryEntryPointTest.kt +++ b/features/roomdirectory/impl/src/test/kotlin/io/element/android/features/roomdirectory/impl/DefaultRoomDirectoryEntryPointTest.kt @@ -37,11 +37,12 @@ class DefaultRoomDirectoryEntryPointTest { val callback = object : RoomDirectoryEntryPoint.Callback { override fun navigateToRoom(roomDescription: RoomDescription) = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result).isInstanceOf(RoomDirectoryNode::class.java) assertThat(result.plugins).contains(callback) } diff --git a/features/securebackup/api/src/main/kotlin/io/element/android/features/securebackup/api/SecureBackupEntryPoint.kt b/features/securebackup/api/src/main/kotlin/io/element/android/features/securebackup/api/SecureBackupEntryPoint.kt index 8361ea5580..dbaa319034 100644 --- a/features/securebackup/api/src/main/kotlin/io/element/android/features/securebackup/api/SecureBackupEntryPoint.kt +++ b/features/securebackup/api/src/main/kotlin/io/element/android/features/securebackup/api/SecureBackupEntryPoint.kt @@ -32,7 +32,8 @@ interface SecureBackupEntryPoint : FeatureEntryPoint { data class Params(val initialElement: InitialTarget) : NodeInputs - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node interface Callback : Plugin { fun onDone() diff --git a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/DefaultSecureBackupEntryPoint.kt b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/DefaultSecureBackupEntryPoint.kt index b2c533b53b..49ea66dc79 100644 --- a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/DefaultSecureBackupEntryPoint.kt +++ b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/DefaultSecureBackupEntryPoint.kt @@ -16,8 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultSecureBackupEntryPoint : SecureBackupEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: SecureBackupEntryPoint.Params, callback: SecureBackupEntryPoint.Callback, diff --git a/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/DefaultSecureBackupEntryPointTest.kt b/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/DefaultSecureBackupEntryPointTest.kt index 04d0030753..7a4c096bfc 100644 --- a/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/DefaultSecureBackupEntryPointTest.kt +++ b/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/DefaultSecureBackupEntryPointTest.kt @@ -37,12 +37,13 @@ class DefaultSecureBackupEntryPointTest { override fun onDone() = lambdaError() } val params = SecureBackupEntryPoint.Params(SecureBackupEntryPoint.InitialTarget.ResetIdentity) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(SecureBackupFlowNode::class.java) assertThat(result.plugins).contains(params) assertThat(result.plugins).contains(callback) diff --git a/features/share/api/src/main/kotlin/io/element/android/features/share/api/ShareEntryPoint.kt b/features/share/api/src/main/kotlin/io/element/android/features/share/api/ShareEntryPoint.kt index 163bdf17af..fadd584355 100644 --- a/features/share/api/src/main/kotlin/io/element/android/features/share/api/ShareEntryPoint.kt +++ b/features/share/api/src/main/kotlin/io/element/android/features/share/api/ShareEntryPoint.kt @@ -17,7 +17,8 @@ import io.element.android.libraries.matrix.api.core.RoomId interface ShareEntryPoint : FeatureEntryPoint { data class Params(val intent: Intent) - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node interface Callback : Plugin { fun onDone(roomIds: List) diff --git a/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/DefaultShareEntryPoint.kt b/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/DefaultShareEntryPoint.kt index 83f4317e0d..6df01558e5 100644 --- a/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/DefaultShareEntryPoint.kt +++ b/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/DefaultShareEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope @ContributesBinding(SessionScope::class) class DefaultShareEntryPoint : ShareEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, params: ShareEntryPoint.Params, callback: ShareEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, params: ShareEntryPoint.Params, callback: ShareEntryPoint.Callback): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf( diff --git a/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareNode.kt b/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareNode.kt index 977211ca05..b3ce268d6c 100644 --- a/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareNode.kt +++ b/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareNode.kt @@ -67,7 +67,6 @@ class ShareNode( } return roomSelectEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = RoomSelectEntryPoint.Params(mode = RoomSelectMode.Share), callback = callback, diff --git a/features/share/impl/src/test/kotlin/io/element/android/features/share/impl/DefaultShareEntryPointTest.kt b/features/share/impl/src/test/kotlin/io/element/android/features/share/impl/DefaultShareEntryPointTest.kt index f93aac53ba..32207d3d46 100644 --- a/features/share/impl/src/test/kotlin/io/element/android/features/share/impl/DefaultShareEntryPointTest.kt +++ b/features/share/impl/src/test/kotlin/io/element/android/features/share/impl/DefaultShareEntryPointTest.kt @@ -38,8 +38,8 @@ class DefaultShareEntryPointTest { plugins = plugins, presenterFactory = { createSharePresenter() }, roomSelectEntryPoint = object : RoomSelectEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: RoomSelectEntryPoint.Params, callback: RoomSelectEntryPoint.Callback, @@ -53,12 +53,13 @@ class DefaultShareEntryPointTest { val params = ShareEntryPoint.Params( intent = Intent(), ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(ShareNode::class.java) assertThat(result.plugins).contains(ShareNode.Inputs(params.intent)) assertThat(result.plugins).contains(callback) diff --git a/features/signedout/api/src/main/kotlin/io/element/android/features/signedout/api/SignedOutEntryPoint.kt b/features/signedout/api/src/main/kotlin/io/element/android/features/signedout/api/SignedOutEntryPoint.kt index 12824bb12f..442ad1ef7d 100644 --- a/features/signedout/api/src/main/kotlin/io/element/android/features/signedout/api/SignedOutEntryPoint.kt +++ b/features/signedout/api/src/main/kotlin/io/element/android/features/signedout/api/SignedOutEntryPoint.kt @@ -17,5 +17,6 @@ interface SignedOutEntryPoint : FeatureEntryPoint { val sessionId: SessionId, ) - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params): Node } diff --git a/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/DefaultSignedOutEntryPoint.kt b/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/DefaultSignedOutEntryPoint.kt index 8f89a8a0f9..d25dbf26ad 100644 --- a/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/DefaultSignedOutEntryPoint.kt +++ b/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/DefaultSignedOutEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultSignedOutEntryPoint : SignedOutEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, params: SignedOutEntryPoint.Params): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, params: SignedOutEntryPoint.Params): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf(SignedOutNode.Inputs(params.sessionId)) diff --git a/features/signedout/impl/src/test/kotlin/io/element/android/features/signedout/impl/DefaultSignedOutEntryPointTest.kt b/features/signedout/impl/src/test/kotlin/io/element/android/features/signedout/impl/DefaultSignedOutEntryPointTest.kt index 64c48d9a5f..b6ef121c47 100644 --- a/features/signedout/impl/src/test/kotlin/io/element/android/features/signedout/impl/DefaultSignedOutEntryPointTest.kt +++ b/features/signedout/impl/src/test/kotlin/io/element/android/features/signedout/impl/DefaultSignedOutEntryPointTest.kt @@ -34,11 +34,12 @@ class DefaultSignedOutEntryPointTest { ) } val params = SignedOutEntryPoint.Params(A_SESSION_ID) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + ) + } assertThat(result).isInstanceOf(SignedOutNode::class.java) assertThat(result.plugins).contains(SignedOutNode.Inputs(params.sessionId)) } diff --git a/features/space/api/src/main/kotlin/io/element/android/features/space/api/SpaceEntryPoint.kt b/features/space/api/src/main/kotlin/io/element/android/features/space/api/SpaceEntryPoint.kt index 6b5bd7f892..d4d6f8d97b 100644 --- a/features/space/api/src/main/kotlin/io/element/android/features/space/api/SpaceEntryPoint.kt +++ b/features/space/api/src/main/kotlin/io/element/android/features/space/api/SpaceEntryPoint.kt @@ -15,8 +15,8 @@ import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.matrix.api.core.RoomId interface SpaceEntryPoint : FeatureEntryPoint { + context(parentNode: Node) fun createNode( - parentNode: Node, buildContext: BuildContext, inputs: Inputs, callback: Callback diff --git a/features/space/impl/src/main/kotlin/io/element/android/features/space/impl/DefaultSpaceEntryPoint.kt b/features/space/impl/src/main/kotlin/io/element/android/features/space/impl/DefaultSpaceEntryPoint.kt index e68bbc89db..8ceafc6ffb 100644 --- a/features/space/impl/src/main/kotlin/io/element/android/features/space/impl/DefaultSpaceEntryPoint.kt +++ b/features/space/impl/src/main/kotlin/io/element/android/features/space/impl/DefaultSpaceEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope @ContributesBinding(SessionScope::class) class DefaultSpaceEntryPoint : SpaceEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, inputs: SpaceEntryPoint.Inputs, callback: SpaceEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, inputs: SpaceEntryPoint.Inputs, callback: SpaceEntryPoint.Callback): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf(inputs, callback), diff --git a/features/space/impl/src/test/kotlin/io/element/android/features/space/impl/DefaultSpaceEntryPointTest.kt b/features/space/impl/src/test/kotlin/io/element/android/features/space/impl/DefaultSpaceEntryPointTest.kt index 3fd260dd4f..78931c4caf 100644 --- a/features/space/impl/src/test/kotlin/io/element/android/features/space/impl/DefaultSpaceEntryPointTest.kt +++ b/features/space/impl/src/test/kotlin/io/element/android/features/space/impl/DefaultSpaceEntryPointTest.kt @@ -48,12 +48,13 @@ class DefaultSpaceEntryPointTest { override fun navigateToRoomDetails() = lambdaError() override fun navigateToRoomMemberList() = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - inputs = nodeInputs, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + inputs = nodeInputs, + callback = callback, + ) + } assertThat(result).isInstanceOf(SpaceFlowNode::class.java) assertThat(result.plugins).contains(nodeInputs) assertThat(result.plugins).contains(callback) diff --git a/features/startchat/api/src/main/kotlin/io/element/android/features/startchat/api/StartChatEntryPoint.kt b/features/startchat/api/src/main/kotlin/io/element/android/features/startchat/api/StartChatEntryPoint.kt index 0e530b3943..92376974ec 100644 --- a/features/startchat/api/src/main/kotlin/io/element/android/features/startchat/api/StartChatEntryPoint.kt +++ b/features/startchat/api/src/main/kotlin/io/element/android/features/startchat/api/StartChatEntryPoint.kt @@ -14,7 +14,8 @@ import io.element.android.libraries.architecture.FeatureEntryPoint import io.element.android.libraries.matrix.api.core.RoomIdOrAlias interface StartChatEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun onRoomCreated(roomIdOrAlias: RoomIdOrAlias, serverNames: List) diff --git a/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/DefaultStartChatEntryPoint.kt b/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/DefaultStartChatEntryPoint.kt index 18df585fa0..043cd0df1c 100644 --- a/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/DefaultStartChatEntryPoint.kt +++ b/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/DefaultStartChatEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultStartChatEntryPoint : StartChatEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: StartChatEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: StartChatEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(callback)) } } diff --git a/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/StartChatFlowNode.kt b/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/StartChatFlowNode.kt index ee30f4997c..e3c846895c 100644 --- a/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/StartChatFlowNode.kt +++ b/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/StartChatFlowNode.kt @@ -80,7 +80,6 @@ class StartChatFlowNode( } } createRoomEntryPoint.createNode( - parentNode = this, buildContext = buildContext, callback = callback, ) diff --git a/features/startchat/impl/src/test/kotlin/io/element/android/features/startchat/impl/DefaultStartChatEntryPointTest.kt b/features/startchat/impl/src/test/kotlin/io/element/android/features/startchat/impl/DefaultStartChatEntryPointTest.kt index 2ead91b31c..248848b764 100644 --- a/features/startchat/impl/src/test/kotlin/io/element/android/features/startchat/impl/DefaultStartChatEntryPointTest.kt +++ b/features/startchat/impl/src/test/kotlin/io/element/android/features/startchat/impl/DefaultStartChatEntryPointTest.kt @@ -35,8 +35,8 @@ class DefaultStartChatEntryPointTest { buildContext = buildContext, plugins = plugins, createRoomEntryPoint = object : CreateRoomEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, callback: CreateRoomEntryPoint.Callback, ) = lambdaError() @@ -47,11 +47,12 @@ class DefaultStartChatEntryPointTest { override fun onRoomCreated(roomIdOrAlias: RoomIdOrAlias, serverNames: List) = lambdaError() override fun navigateToRoomDirectory() = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result).isInstanceOf(StartChatFlowNode::class.java) assertThat(result.plugins).contains(callback) } diff --git a/features/userprofile/api/src/main/kotlin/io/element/android/features/userprofile/api/UserProfileEntryPoint.kt b/features/userprofile/api/src/main/kotlin/io/element/android/features/userprofile/api/UserProfileEntryPoint.kt index 4053efea0d..d9ab4ff9e5 100644 --- a/features/userprofile/api/src/main/kotlin/io/element/android/features/userprofile/api/UserProfileEntryPoint.kt +++ b/features/userprofile/api/src/main/kotlin/io/element/android/features/userprofile/api/UserProfileEntryPoint.kt @@ -22,5 +22,6 @@ interface UserProfileEntryPoint : FeatureEntryPoint { fun navigateToRoom(roomId: RoomId) } - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node } diff --git a/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/DefaultUserProfileEntryPoint.kt b/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/DefaultUserProfileEntryPoint.kt index e69ef185c0..71353b2cb2 100644 --- a/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/DefaultUserProfileEntryPoint.kt +++ b/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/DefaultUserProfileEntryPoint.kt @@ -16,8 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultUserProfileEntryPoint : UserProfileEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: UserProfileEntryPoint.Params, callback: UserProfileEntryPoint.Callback, diff --git a/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/UserProfileFlowNode.kt b/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/UserProfileFlowNode.kt index fd019c3587..187fe36b87 100644 --- a/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/UserProfileFlowNode.kt +++ b/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/UserProfileFlowNode.kt @@ -112,7 +112,6 @@ class UserProfileFlowNode( avatarUrl = navTarget.avatarUrl, ) mediaViewerEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = callback, @@ -124,7 +123,6 @@ class UserProfileFlowNode( verificationRequest = VerificationRequest.Outgoing.User(userId = navTarget.userId) ) outgoingVerificationEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = params, callback = object : OutgoingVerificationEntryPoint.Callback { diff --git a/features/userprofile/impl/src/test/kotlin/io/element/android/features/userprofile/impl/DefaultUserProfileEntryPointTest.kt b/features/userprofile/impl/src/test/kotlin/io/element/android/features/userprofile/impl/DefaultUserProfileEntryPointTest.kt index 486f72f672..3772b4d415 100644 --- a/features/userprofile/impl/src/test/kotlin/io/element/android/features/userprofile/impl/DefaultUserProfileEntryPointTest.kt +++ b/features/userprofile/impl/src/test/kotlin/io/element/android/features/userprofile/impl/DefaultUserProfileEntryPointTest.kt @@ -60,16 +60,16 @@ class DefaultUserProfileEntryPointTest { }, mediaViewerEntryPoint = object : 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 ) = lambdaError() }, outgoingVerificationEntryPoint = object : OutgoingVerificationEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: OutgoingVerificationEntryPoint.Params, callback: OutgoingVerificationEntryPoint.Callback, @@ -85,12 +85,13 @@ class DefaultUserProfileEntryPointTest { val params = UserProfileEntryPoint.Params( userId = A_USER_ID, ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(UserProfileFlowNode::class.java) assertThat(result.plugins).contains(params) assertThat(result.plugins).contains(callback) diff --git a/features/verifysession/api/src/main/kotlin/io/element/android/features/verifysession/api/IncomingVerificationEntryPoint.kt b/features/verifysession/api/src/main/kotlin/io/element/android/features/verifysession/api/IncomingVerificationEntryPoint.kt index c72f7d4f6b..c09b47e581 100644 --- a/features/verifysession/api/src/main/kotlin/io/element/android/features/verifysession/api/IncomingVerificationEntryPoint.kt +++ b/features/verifysession/api/src/main/kotlin/io/element/android/features/verifysession/api/IncomingVerificationEntryPoint.kt @@ -19,7 +19,8 @@ interface IncomingVerificationEntryPoint : FeatureEntryPoint { val verificationRequest: VerificationRequest.Incoming, ) : NodeInputs - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node interface Callback : Plugin { fun onDone() diff --git a/features/verifysession/api/src/main/kotlin/io/element/android/features/verifysession/api/OutgoingVerificationEntryPoint.kt b/features/verifysession/api/src/main/kotlin/io/element/android/features/verifysession/api/OutgoingVerificationEntryPoint.kt index 36a04b43c7..372426e0d8 100644 --- a/features/verifysession/api/src/main/kotlin/io/element/android/features/verifysession/api/OutgoingVerificationEntryPoint.kt +++ b/features/verifysession/api/src/main/kotlin/io/element/android/features/verifysession/api/OutgoingVerificationEntryPoint.kt @@ -20,7 +20,8 @@ interface OutgoingVerificationEntryPoint : FeatureEntryPoint { val verificationRequest: VerificationRequest.Outgoing, ) : NodeInputs - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node interface Callback : Plugin { fun navigateToLearnMoreAboutEncryption() diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/DefaultIncomingVerificationEntryPoint.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/DefaultIncomingVerificationEntryPoint.kt index 9d6d91c79a..26f0597ca2 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/DefaultIncomingVerificationEntryPoint.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/DefaultIncomingVerificationEntryPoint.kt @@ -16,8 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultIncomingVerificationEntryPoint : IncomingVerificationEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: IncomingVerificationEntryPoint.Params, callback: IncomingVerificationEntryPoint.Callback, diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/DefaultOutgoingVerificationEntryPoint.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/DefaultOutgoingVerificationEntryPoint.kt index 3328b1df1e..ab29d152f4 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/DefaultOutgoingVerificationEntryPoint.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/DefaultOutgoingVerificationEntryPoint.kt @@ -16,8 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultOutgoingVerificationEntryPoint : OutgoingVerificationEntryPoint { + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: OutgoingVerificationEntryPoint.Params, callback: OutgoingVerificationEntryPoint.Callback, diff --git a/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/DefaultIncomingVerificationEntryPointTest.kt b/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/DefaultIncomingVerificationEntryPointTest.kt index 437657b811..3a8743dccd 100644 --- a/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/DefaultIncomingVerificationEntryPointTest.kt +++ b/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/DefaultIncomingVerificationEntryPointTest.kt @@ -37,12 +37,13 @@ class DefaultIncomingVerificationEntryPointTest { val params = IncomingVerificationEntryPoint.Params( verificationRequest = anIncomingSessionVerificationRequest() ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(IncomingVerificationNode::class.java) assertThat(result.plugins).contains(params) assertThat(result.plugins).contains(callback) diff --git a/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/outgoing/DefaultOutgoingVerificationEntryPointTest.kt b/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/outgoing/DefaultOutgoingVerificationEntryPointTest.kt index 80906bc86a..1f9213a680 100644 --- a/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/outgoing/DefaultOutgoingVerificationEntryPointTest.kt +++ b/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/outgoing/DefaultOutgoingVerificationEntryPointTest.kt @@ -42,12 +42,13 @@ class DefaultOutgoingVerificationEntryPointTest { showDeviceVerifiedScreen = true, verificationRequest = anOutgoingSessionVerificationRequest(), ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(OutgoingVerificationNode::class.java) assertThat(result.plugins).contains(params) assertThat(result.plugins).contains(callback) diff --git a/features/viewfolder/api/src/main/kotlin/io/element/android/features/viewfolder/api/ViewFolderEntryPoint.kt b/features/viewfolder/api/src/main/kotlin/io/element/android/features/viewfolder/api/ViewFolderEntryPoint.kt index 1778ad0fc0..97f6ffbf9e 100644 --- a/features/viewfolder/api/src/main/kotlin/io/element/android/features/viewfolder/api/ViewFolderEntryPoint.kt +++ b/features/viewfolder/api/src/main/kotlin/io/element/android/features/viewfolder/api/ViewFolderEntryPoint.kt @@ -17,7 +17,8 @@ interface ViewFolderEntryPoint : FeatureEntryPoint { val rootPath: String, ) - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node interface Callback : Plugin { fun onDone() diff --git a/features/viewfolder/impl/src/main/kotlin/io/element/android/features/viewfolder/impl/DefaultViewFolderEntryPoint.kt b/features/viewfolder/impl/src/main/kotlin/io/element/android/features/viewfolder/impl/DefaultViewFolderEntryPoint.kt index d1d7af9117..8999b853a8 100644 --- a/features/viewfolder/impl/src/main/kotlin/io/element/android/features/viewfolder/impl/DefaultViewFolderEntryPoint.kt +++ b/features/viewfolder/impl/src/main/kotlin/io/element/android/features/viewfolder/impl/DefaultViewFolderEntryPoint.kt @@ -17,7 +17,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultViewFolderEntryPoint : ViewFolderEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, params: ViewFolderEntryPoint.Params, callback: ViewFolderEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, params: ViewFolderEntryPoint.Params, callback: ViewFolderEntryPoint.Callback): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf( diff --git a/features/viewfolder/impl/src/test/kotlin/io/element/android/features/viewfolder/impl/DefaultViewFolderEntryPointTest.kt b/features/viewfolder/impl/src/test/kotlin/io/element/android/features/viewfolder/impl/DefaultViewFolderEntryPointTest.kt index a8e643e1f5..ae0f4b9f2e 100644 --- a/features/viewfolder/impl/src/test/kotlin/io/element/android/features/viewfolder/impl/DefaultViewFolderEntryPointTest.kt +++ b/features/viewfolder/impl/src/test/kotlin/io/element/android/features/viewfolder/impl/DefaultViewFolderEntryPointTest.kt @@ -40,12 +40,13 @@ class DefaultViewFolderEntryPointTest { val params = ViewFolderEntryPoint.Params( rootPath = "path", ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(ViewFolderFlowNode::class.java) assertThat(result.plugins).contains(ViewFolderFlowNode.Inputs(params.rootPath)) assertThat(result.plugins).contains(callback) diff --git a/libraries/accountselect/api/src/main/kotlin/io/element/android/libraries/accountselect/api/AccountSelectEntryPoint.kt b/libraries/accountselect/api/src/main/kotlin/io/element/android/libraries/accountselect/api/AccountSelectEntryPoint.kt index 8ce2023655..bb2de92662 100644 --- a/libraries/accountselect/api/src/main/kotlin/io/element/android/libraries/accountselect/api/AccountSelectEntryPoint.kt +++ b/libraries/accountselect/api/src/main/kotlin/io/element/android/libraries/accountselect/api/AccountSelectEntryPoint.kt @@ -14,7 +14,8 @@ import io.element.android.libraries.architecture.FeatureEntryPoint import io.element.android.libraries.matrix.api.core.SessionId interface AccountSelectEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun onAccountSelected(sessionId: SessionId) diff --git a/libraries/accountselect/impl/src/main/kotlin/io/element/android/libraries/accountselect/impl/DefaultAccountSelectEntryPoint.kt b/libraries/accountselect/impl/src/main/kotlin/io/element/android/libraries/accountselect/impl/DefaultAccountSelectEntryPoint.kt index 21e26d376b..9ecaaf5787 100644 --- a/libraries/accountselect/impl/src/main/kotlin/io/element/android/libraries/accountselect/impl/DefaultAccountSelectEntryPoint.kt +++ b/libraries/accountselect/impl/src/main/kotlin/io/element/android/libraries/accountselect/impl/DefaultAccountSelectEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode @ContributesBinding(AppScope::class) class DefaultAccountSelectEntryPoint : AccountSelectEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: AccountSelectEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: AccountSelectEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(callback)) } } diff --git a/libraries/accountselect/impl/src/test/kotlin/io/element/android/libraries/accountselect/impl/DefaultAccountSelectEntryPointTest.kt b/libraries/accountselect/impl/src/test/kotlin/io/element/android/libraries/accountselect/impl/DefaultAccountSelectEntryPointTest.kt index b36fcb5ab8..ae3ceb29c7 100644 --- a/libraries/accountselect/impl/src/test/kotlin/io/element/android/libraries/accountselect/impl/DefaultAccountSelectEntryPointTest.kt +++ b/libraries/accountselect/impl/src/test/kotlin/io/element/android/libraries/accountselect/impl/DefaultAccountSelectEntryPointTest.kt @@ -35,11 +35,12 @@ class DefaultAccountSelectEntryPointTest { override fun onAccountSelected(sessionId: SessionId) = lambdaError() override fun onCancel() = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result).isInstanceOf(AccountSelectNode::class.java) assertThat(result.plugins).contains(callback) } diff --git a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/FeatureEntryPoint.kt b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/FeatureEntryPoint.kt index d5a932b705..c8b0a00213 100644 --- a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/FeatureEntryPoint.kt +++ b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/FeatureEntryPoint.kt @@ -19,5 +19,6 @@ interface FeatureEntryPoint * Can be used when the feature only exposes a simple node without the need of plugins. */ fun interface SimpleFeatureEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext): Node } diff --git a/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaGalleryEntryPoint.kt b/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaGalleryEntryPoint.kt index b3e832da22..b7257e4ed5 100644 --- a/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaGalleryEntryPoint.kt +++ b/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaGalleryEntryPoint.kt @@ -14,7 +14,8 @@ import io.element.android.libraries.architecture.FeatureEntryPoint import io.element.android.libraries.matrix.api.core.EventId interface MediaGalleryEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun onBackClick() diff --git a/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaViewerEntryPoint.kt b/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaViewerEntryPoint.kt index 2b17b63b26..a926deb015 100644 --- a/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaViewerEntryPoint.kt +++ b/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaViewerEntryPoint.kt @@ -19,7 +19,8 @@ import io.element.android.libraries.matrix.api.timeline.Timeline import kotlinx.parcelize.Parcelize interface MediaViewerEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node fun createParamsForAvatar(filename: String, avatarUrl: String): Params diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaGalleryEntryPoint.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaGalleryEntryPoint.kt index 515c04bc20..78a15c1997 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaGalleryEntryPoint.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaGalleryEntryPoint.kt @@ -17,7 +17,8 @@ import io.element.android.libraries.mediaviewer.impl.gallery.root.MediaGalleryFl @ContributesBinding(AppScope::class) class DefaultMediaGalleryEntryPoint : MediaGalleryEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: MediaGalleryEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: MediaGalleryEntryPoint.Callback): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf(callback), diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaViewerEntryPoint.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaViewerEntryPoint.kt index 7d683bf3df..a1d11811c4 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaViewerEntryPoint.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaViewerEntryPoint.kt @@ -48,8 +48,8 @@ class DefaultMediaViewerEntryPoint : MediaViewerEntryPoint { ) } + context(parentNode: Node) override fun createNode( - parentNode: Node, buildContext: BuildContext, params: MediaViewerEntryPoint.Params, callback: MediaViewerEntryPoint.Callback, diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/root/MediaGalleryFlowNode.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/root/MediaGalleryFlowNode.kt index cc71b49dac..8b6ec84eb5 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/root/MediaGalleryFlowNode.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/root/MediaGalleryFlowNode.kt @@ -125,7 +125,6 @@ class MediaGalleryFlowNode( } } mediaViewerEntryPoint.createNode( - parentNode = this, buildContext = buildContext, params = MediaViewerEntryPoint.Params( mode = navTarget.mode, diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaGalleryEntryPointTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaGalleryEntryPointTest.kt index 8b2574054b..3c54966090 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaGalleryEntryPointTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaGalleryEntryPointTest.kt @@ -37,8 +37,8 @@ class DefaultMediaGalleryEntryPointTest { plugins = plugins, mediaViewerEntryPoint = object : 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, @@ -51,11 +51,12 @@ class DefaultMediaGalleryEntryPointTest { override fun viewInTimeline(eventId: EventId) = lambdaError() override fun forward(eventId: EventId) = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result).isInstanceOf(MediaGalleryFlowNode::class.java) assertThat(result.plugins).contains(callback) } diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaViewerEntryPointTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaViewerEntryPointTest.kt index b53fe7913c..2929badf82 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaViewerEntryPointTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/DefaultMediaViewerEntryPointTest.kt @@ -75,12 +75,13 @@ class DefaultMediaViewerEntryPointTest { override fun forwardEvent(eventId: EventId) = lambdaError() } val params = createMediaViewerEntryPointParams() - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(MediaViewerNode::class.java) assertThat(result.plugins).contains(params) assertThat(result.plugins).contains(callback) @@ -124,12 +125,13 @@ class DefaultMediaViewerEntryPointTest { filename = "fn", avatarUrl = "avatarUrl", ) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(MediaViewerNode::class.java) assertThat(result.plugins).contains( MediaViewerEntryPoint.Params( diff --git a/libraries/roomselect/api/src/main/kotlin/io/element/android/libraries/roomselect/api/RoomSelectEntryPoint.kt b/libraries/roomselect/api/src/main/kotlin/io/element/android/libraries/roomselect/api/RoomSelectEntryPoint.kt index 7cc581d921..08aa8a2d34 100644 --- a/libraries/roomselect/api/src/main/kotlin/io/element/android/libraries/roomselect/api/RoomSelectEntryPoint.kt +++ b/libraries/roomselect/api/src/main/kotlin/io/element/android/libraries/roomselect/api/RoomSelectEntryPoint.kt @@ -18,7 +18,8 @@ interface RoomSelectEntryPoint : FeatureEntryPoint { val mode: RoomSelectMode, ) - fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node interface Callback : Plugin { fun onRoomSelected(roomIds: List) diff --git a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/DefaultRoomSelectEntryPoint.kt b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/DefaultRoomSelectEntryPoint.kt index 5ba20ffd8f..15da921a49 100644 --- a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/DefaultRoomSelectEntryPoint.kt +++ b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/DefaultRoomSelectEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.roomselect.api.RoomSelectEntryPoint @ContributesBinding(SessionScope::class) class DefaultRoomSelectEntryPoint : RoomSelectEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, params: RoomSelectEntryPoint.Params, callback: RoomSelectEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, params: RoomSelectEntryPoint.Params, callback: RoomSelectEntryPoint.Callback): Node { return parentNode.createNode( buildContext = buildContext, plugins = listOf( diff --git a/libraries/roomselect/impl/src/test/kotlin/io/element/android/libraries/roomselect/impl/DefaultRoomSelectEntryPointTest.kt b/libraries/roomselect/impl/src/test/kotlin/io/element/android/libraries/roomselect/impl/DefaultRoomSelectEntryPointTest.kt index 0bd16f77b0..6bb68b9707 100644 --- a/libraries/roomselect/impl/src/test/kotlin/io/element/android/libraries/roomselect/impl/DefaultRoomSelectEntryPointTest.kt +++ b/libraries/roomselect/impl/src/test/kotlin/io/element/android/libraries/roomselect/impl/DefaultRoomSelectEntryPointTest.kt @@ -42,12 +42,13 @@ class DefaultRoomSelectEntryPointTest { override fun onCancel() = lambdaError() } val params = RoomSelectEntryPoint.Params(testMode) - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - params = params, - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + params = params, + callback = callback, + ) + } assertThat(result).isInstanceOf(RoomSelectNode::class.java) assertThat(result.plugins).contains(RoomSelectNode.Inputs(params.mode)) assertThat(result.plugins).contains(callback) diff --git a/libraries/troubleshoot/api/src/main/kotlin/io/element/android/libraries/troubleshoot/api/NotificationTroubleShootEntryPoint.kt b/libraries/troubleshoot/api/src/main/kotlin/io/element/android/libraries/troubleshoot/api/NotificationTroubleShootEntryPoint.kt index 5e5774cdba..ae32ace777 100644 --- a/libraries/troubleshoot/api/src/main/kotlin/io/element/android/libraries/troubleshoot/api/NotificationTroubleShootEntryPoint.kt +++ b/libraries/troubleshoot/api/src/main/kotlin/io/element/android/libraries/troubleshoot/api/NotificationTroubleShootEntryPoint.kt @@ -13,7 +13,8 @@ import com.bumble.appyx.core.plugin.Plugin import io.element.android.libraries.architecture.FeatureEntryPoint interface NotificationTroubleShootEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun onDone() diff --git a/libraries/troubleshoot/api/src/main/kotlin/io/element/android/libraries/troubleshoot/api/PushHistoryEntryPoint.kt b/libraries/troubleshoot/api/src/main/kotlin/io/element/android/libraries/troubleshoot/api/PushHistoryEntryPoint.kt index 6836bb59d0..ba11199330 100644 --- a/libraries/troubleshoot/api/src/main/kotlin/io/element/android/libraries/troubleshoot/api/PushHistoryEntryPoint.kt +++ b/libraries/troubleshoot/api/src/main/kotlin/io/element/android/libraries/troubleshoot/api/PushHistoryEntryPoint.kt @@ -15,7 +15,8 @@ import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.RoomId interface PushHistoryEntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { fun onDone() diff --git a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/DefaultNotificationTroubleShootEntryPoint.kt b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/DefaultNotificationTroubleShootEntryPoint.kt index f7b946647b..7404aed8ed 100644 --- a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/DefaultNotificationTroubleShootEntryPoint.kt +++ b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/DefaultNotificationTroubleShootEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.troubleshoot.api.NotificationTroubleShootEnt @ContributesBinding(AppScope::class) class DefaultNotificationTroubleShootEntryPoint : NotificationTroubleShootEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: NotificationTroubleShootEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: NotificationTroubleShootEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(callback)) } } diff --git a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/DefaultPushHistoryEntryPoint.kt b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/DefaultPushHistoryEntryPoint.kt index 505d4d2b61..8477d39714 100644 --- a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/DefaultPushHistoryEntryPoint.kt +++ b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/DefaultPushHistoryEntryPoint.kt @@ -16,7 +16,8 @@ import io.element.android.libraries.troubleshoot.api.PushHistoryEntryPoint @ContributesBinding(AppScope::class) class DefaultPushHistoryEntryPoint : PushHistoryEntryPoint { - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: PushHistoryEntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: PushHistoryEntryPoint.Callback): Node { return parentNode.createNode(buildContext, listOf(callback)) } } diff --git a/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/DefaultNotificationTroubleShootEntryPointTest.kt b/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/DefaultNotificationTroubleShootEntryPointTest.kt index 1eef24fbcb..cf4c62b9b4 100644 --- a/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/DefaultNotificationTroubleShootEntryPointTest.kt +++ b/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/DefaultNotificationTroubleShootEntryPointTest.kt @@ -36,11 +36,12 @@ class DefaultNotificationTroubleShootEntryPointTest { override fun onDone() = lambdaError() override fun navigateToBlockedUsers() = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result).isInstanceOf(TroubleshootNotificationsNode::class.java) assertThat(result.plugins).contains(callback) } diff --git a/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/DefaultPushHistoryEntryPointTest.kt b/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/DefaultPushHistoryEntryPointTest.kt index b963183ecc..271cd8d8fd 100644 --- a/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/DefaultPushHistoryEntryPointTest.kt +++ b/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/DefaultPushHistoryEntryPointTest.kt @@ -48,11 +48,12 @@ class DefaultPushHistoryEntryPointTest { override fun onDone() = lambdaError() override fun navigateToEvent(roomId: RoomId, eventId: EventId) = lambdaError() } - val result = entryPoint.createNode( - parentNode = parentNode, - buildContext = BuildContext.root(null), - callback = callback, - ) + val result = with(parentNode) { + entryPoint.createNode( + buildContext = BuildContext.root(null), + callback = callback, + ) + } assertThat(result).isInstanceOf(PushHistoryNode::class.java) assertThat(result.plugins).contains(callback) } diff --git a/tools/templates/files/fileTemplates/Template Module Feature Entry Point API.kt b/tools/templates/files/fileTemplates/Template Module Feature Entry Point API.kt index bc38fb2cad..af6cf59c8e 100644 --- a/tools/templates/files/fileTemplates/Template Module Feature Entry Point API.kt +++ b/tools/templates/files/fileTemplates/Template Module Feature Entry Point API.kt @@ -6,7 +6,8 @@ import com.bumble.appyx.core.plugin.Plugin import io.element.android.libraries.architecture.FeatureEntryPoint interface ${FEATURE_NAME}EntryPoint : FeatureEntryPoint { - fun createNode(parentNode: Node, buildContext: BuildContext, callback: Callback): Node + context(parentNode: Node) + fun createNode(buildContext: BuildContext, callback: Callback): Node interface Callback : Plugin { // Add your callbacks diff --git a/tools/templates/files/fileTemplates/Template Module Feature Entry Point Flow Impl.kt b/tools/templates/files/fileTemplates/Template Module Feature Entry Point Flow Impl.kt index 22dd0e1558..eca83b787f 100644 --- a/tools/templates/files/fileTemplates/Template Module Feature Entry Point Flow Impl.kt +++ b/tools/templates/files/fileTemplates/Template Module Feature Entry Point Flow Impl.kt @@ -10,8 +10,8 @@ import dev.zacsweers.metro.AppScope @ContributesBinding(AppScope::class) class Default${FEATURE_NAME}EntryPoint() : ${FEATURE_NAME}EntryPoint { - - override fun createNode(parentNode: Node, buildContext: BuildContext, callback: ${FEATURE_NAME}EntryPoint.Callback): Node { + context(parentNode: Node) + override fun createNode(buildContext: BuildContext, callback: ${FEATURE_NAME}EntryPoint.Callback): Node { return parentNode.createNode<${FEATURE_NAME}FlowNode>(buildContext, listOf(callback)) } }