Use context parameter for the parentNode
This commit is contained in:
committed by
Benoit Marty
parent
566515ca88
commit
05c5f3c914
@@ -334,7 +334,6 @@ class LoggedInFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
homeEntryPoint.createNode(
|
homeEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
@@ -391,7 +390,6 @@ class LoggedInFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
userProfileEntryPoint.createNode(
|
userProfileEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = UserProfileEntryPoint.Params(userId = navTarget.userId),
|
params = UserProfileEntryPoint.Params(userId = navTarget.userId),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
@@ -421,7 +419,6 @@ class LoggedInFlowNode(
|
|||||||
}
|
}
|
||||||
val inputs = PreferencesEntryPoint.Params(navTarget.initialElement)
|
val inputs = PreferencesEntryPoint.Params(navTarget.initialElement)
|
||||||
preferencesEntryPoint.createNode(
|
preferencesEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = inputs,
|
params = inputs,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
@@ -439,14 +436,12 @@ class LoggedInFlowNode(
|
|||||||
}
|
}
|
||||||
|
|
||||||
startChatEntryPoint.createNode(
|
startChatEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
is NavTarget.SecureBackup -> {
|
is NavTarget.SecureBackup -> {
|
||||||
secureBackupEntryPoint.createNode(
|
secureBackupEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = SecureBackupEntryPoint.Params(initialElement = navTarget.initialElement),
|
params = SecureBackupEntryPoint.Params(initialElement = navTarget.initialElement),
|
||||||
callback = object : SecureBackupEntryPoint.Callback {
|
callback = object : SecureBackupEntryPoint.Callback {
|
||||||
@@ -457,11 +452,10 @@ class LoggedInFlowNode(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
NavTarget.Ftue -> {
|
NavTarget.Ftue -> {
|
||||||
ftueEntryPoint.createNode(this, buildContext)
|
ftueEntryPoint.createNode(buildContext)
|
||||||
}
|
}
|
||||||
NavTarget.RoomDirectory -> {
|
NavTarget.RoomDirectory -> {
|
||||||
roomDirectoryEntryPoint.createNode(
|
roomDirectoryEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
callback = object : RoomDirectoryEntryPoint.Callback {
|
callback = object : RoomDirectoryEntryPoint.Callback {
|
||||||
override fun navigateToRoom(roomDescription: RoomDescription) {
|
override fun navigateToRoom(roomDescription: RoomDescription) {
|
||||||
@@ -478,7 +472,6 @@ class LoggedInFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.IncomingShare -> {
|
is NavTarget.IncomingShare -> {
|
||||||
shareEntryPoint.createNode(
|
shareEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = ShareEntryPoint.Params(intent = navTarget.intent),
|
params = ShareEntryPoint.Params(intent = navTarget.intent),
|
||||||
callback = object : ShareEntryPoint.Callback {
|
callback = object : ShareEntryPoint.Callback {
|
||||||
@@ -493,7 +486,6 @@ class LoggedInFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.IncomingVerificationRequest -> {
|
is NavTarget.IncomingVerificationRequest -> {
|
||||||
incomingVerificationEntryPoint.createNode(
|
incomingVerificationEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = IncomingVerificationEntryPoint.Params(navTarget.data),
|
params = IncomingVerificationEntryPoint.Params(navTarget.data),
|
||||||
callback = object : IncomingVerificationEntryPoint.Callback {
|
callback = object : IncomingVerificationEntryPoint.Callback {
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ class NotLoggedInFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
loginEntryPoint.createNode(
|
loginEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = LoginEntryPoint.Params(
|
params = LoginEntryPoint.Params(
|
||||||
accountProvider = inputs.loginParams?.accountProvider,
|
accountProvider = inputs.loginParams?.accountProvider,
|
||||||
|
|||||||
@@ -250,7 +250,6 @@ class RootFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.SignedOutFlow -> {
|
is NavTarget.SignedOutFlow -> {
|
||||||
signedOutEntryPoint.createNode(
|
signedOutEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = SignedOutEntryPoint.Params(
|
params = SignedOutEntryPoint.Params(
|
||||||
sessionId = navTarget.sessionId,
|
sessionId = navTarget.sessionId,
|
||||||
@@ -265,7 +264,6 @@ class RootFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
bugReportEntryPoint.createNode(
|
bugReportEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
@@ -294,7 +292,6 @@ class RootFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
accountSelectEntryPoint.createNode(
|
accountSelectEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -181,7 +181,6 @@ class RoomFlowNode(
|
|||||||
}
|
}
|
||||||
val params = Params(navTarget.roomAlias)
|
val params = Params(navTarget.roomAlias)
|
||||||
roomAliasResolverEntryPoint.createNode(
|
roomAliasResolverEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
@@ -195,7 +194,7 @@ class RoomFlowNode(
|
|||||||
serverNames = navTarget.serverNames,
|
serverNames = navTarget.serverNames,
|
||||||
trigger = navTarget.trigger,
|
trigger = navTarget.trigger,
|
||||||
)
|
)
|
||||||
joinRoomEntryPoint.createNode(this, buildContext, inputs)
|
joinRoomEntryPoint.createNode(buildContext, inputs)
|
||||||
}
|
}
|
||||||
is NavTarget.JoinedRoom -> {
|
is NavTarget.JoinedRoom -> {
|
||||||
val roomFlowNodeCallback = plugins<JoinedRoomLoadedFlowNode.Callback>()
|
val roomFlowNodeCallback = plugins<JoinedRoomLoadedFlowNode.Callback>()
|
||||||
@@ -208,7 +207,6 @@ class RoomFlowNode(
|
|||||||
is NavTarget.JoinedSpace -> {
|
is NavTarget.JoinedSpace -> {
|
||||||
val spaceCallback = plugins<SpaceEntryPoint.Callback>().single()
|
val spaceCallback = plugins<SpaceEntryPoint.Callback>().single()
|
||||||
spaceEntryPoint.createNode(
|
spaceEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
inputs = SpaceEntryPoint.Inputs(roomId = navTarget.spaceId),
|
inputs = SpaceEntryPoint.Inputs(roomId = navTarget.spaceId),
|
||||||
callback = spaceCallback,
|
callback = spaceCallback,
|
||||||
|
|||||||
@@ -141,7 +141,6 @@ class JoinedRoomLoadedFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return roomDetailsEntryPoint.createNode(
|
return roomDetailsEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = RoomDetailsEntryPoint.Params(initialTarget),
|
params = RoomDetailsEntryPoint.Params(initialTarget),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
@@ -180,7 +179,6 @@ class JoinedRoomLoadedFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
forwardEntryPoint.createNode(
|
forwardEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
@@ -204,7 +202,6 @@ class JoinedRoomLoadedFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return spaceEntryPoint.createNode(
|
return spaceEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
inputs = SpaceEntryPoint.Inputs(roomId = inputs.room.roomId),
|
inputs = SpaceEntryPoint.Inputs(roomId = inputs.room.roomId),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
@@ -240,7 +237,6 @@ class JoinedRoomLoadedFlowNode(
|
|||||||
MessagesEntryPoint.InitialTarget.Messages(navTarget.focusedEventId)
|
MessagesEntryPoint.InitialTarget.Messages(navTarget.focusedEventId)
|
||||||
)
|
)
|
||||||
return messagesEntryPoint.createNode(
|
return messagesEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
|
|||||||
@@ -54,8 +54,8 @@ class JoinedRoomLoadedFlowNodeTest {
|
|||||||
var parameters: MessagesEntryPoint.Params? = null
|
var parameters: MessagesEntryPoint.Params? = null
|
||||||
var callback: MessagesEntryPoint.Callback? = null
|
var callback: MessagesEntryPoint.Callback? = null
|
||||||
|
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: MessagesEntryPoint.Params,
|
params: MessagesEntryPoint.Params,
|
||||||
callback: MessagesEntryPoint.Callback,
|
callback: MessagesEntryPoint.Callback,
|
||||||
@@ -77,8 +77,8 @@ class JoinedRoomLoadedFlowNodeTest {
|
|||||||
private class FakeRoomDetailsEntryPoint : RoomDetailsEntryPoint {
|
private class FakeRoomDetailsEntryPoint : RoomDetailsEntryPoint {
|
||||||
var nodeId: String? = null
|
var nodeId: String? = null
|
||||||
|
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: RoomDetailsEntryPoint.Params,
|
params: RoomDetailsEntryPoint.Params,
|
||||||
callback: RoomDetailsEntryPoint.Callback,
|
callback: RoomDetailsEntryPoint.Callback,
|
||||||
@@ -90,8 +90,8 @@ class JoinedRoomLoadedFlowNodeTest {
|
|||||||
private class FakeSpaceEntryPoint : SpaceEntryPoint {
|
private class FakeSpaceEntryPoint : SpaceEntryPoint {
|
||||||
var nodeId: String? = null
|
var nodeId: String? = null
|
||||||
|
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
inputs: SpaceEntryPoint.Inputs,
|
inputs: SpaceEntryPoint.Inputs,
|
||||||
callback: SpaceEntryPoint.Callback,
|
callback: SpaceEntryPoint.Callback,
|
||||||
@@ -101,8 +101,8 @@ class JoinedRoomLoadedFlowNodeTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class FakeForwardEntryPoint : ForwardEntryPoint {
|
private class FakeForwardEntryPoint : ForwardEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: ForwardEntryPoint.Params,
|
params: ForwardEntryPoint.Params,
|
||||||
callback: ForwardEntryPoint.Callback,
|
callback: ForwardEntryPoint.Callback,
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultAnalyticsEntryPoint : AnalyticsEntryPoint {
|
class DefaultAnalyticsEntryPoint : AnalyticsEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext): Node {
|
||||||
return parentNode.createNode<AnalyticsOptInNode>(buildContext)
|
return parentNode.createNode<AnalyticsOptInNode>(buildContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
assertThat(result).isInstanceOf(AnalyticsOptInNode::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ import io.element.android.libraries.matrix.api.core.RoomId
|
|||||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||||
|
|
||||||
fun interface ChangeRoomMemberRolesEntryPoint : FeatureEntryPoint {
|
fun interface ChangeRoomMemberRolesEntryPoint : FeatureEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
fun createNode(
|
fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
room: JoinedRoom,
|
room: JoinedRoom,
|
||||||
listType: ChangeRoomMemberRolesListType,
|
listType: ChangeRoomMemberRolesListType,
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ import io.element.android.libraries.matrix.api.room.JoinedRoom
|
|||||||
|
|
||||||
@ContributesBinding(SessionScope::class)
|
@ContributesBinding(SessionScope::class)
|
||||||
class DefaultChangeRoomMemberRolesEntyPoint : ChangeRoomMemberRolesEntryPoint {
|
class DefaultChangeRoomMemberRolesEntyPoint : ChangeRoomMemberRolesEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
room: JoinedRoom,
|
room: JoinedRoom,
|
||||||
listType: ChangeRoomMemberRolesListType,
|
listType: ChangeRoomMemberRolesListType,
|
||||||
|
|||||||
@@ -31,12 +31,13 @@ class DefaultChangeRoomMemberRolesEntyPointTest {
|
|||||||
}
|
}
|
||||||
val room = FakeJoinedRoom()
|
val room = FakeJoinedRoom()
|
||||||
val listType = ChangeRoomMemberRolesListType.Admins
|
val listType = ChangeRoomMemberRolesListType.Admins
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
room = FakeJoinedRoom(),
|
room = FakeJoinedRoom(),
|
||||||
listType = listType,
|
listType = listType,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(ChangeRoomMemberRolesRootNode::class.java)
|
assertThat(result).isInstanceOf(ChangeRoomMemberRolesRootNode::class.java)
|
||||||
// Search for the Inputs plugin
|
// Search for the Inputs plugin
|
||||||
val input = result.plugins.filterIsInstance<ChangeRoomMemberRolesRootNode.Inputs>().single()
|
val input = result.plugins.filterIsInstance<ChangeRoomMemberRolesRootNode.Inputs>().single()
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ import io.element.android.libraries.architecture.FeatureEntryPoint
|
|||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
|
||||||
interface CreateRoomEntryPoint : FeatureEntryPoint {
|
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 {
|
interface Callback : Plugin {
|
||||||
fun onRoomCreated(roomId: RoomId)
|
fun onRoomCreated(roomId: RoomId)
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope
|
|||||||
|
|
||||||
@ContributesBinding(SessionScope::class)
|
@ContributesBinding(SessionScope::class)
|
||||||
class DefaultCreateRoomEntryPoint : CreateRoomEntryPoint {
|
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<CreateRoomFlowNode>(buildContext, listOf(callback))
|
return parentNode.createNode<CreateRoomFlowNode>(buildContext, listOf(callback))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,11 +38,12 @@ class DefaultCreateRoomEntryPointTest {
|
|||||||
val callback = object : CreateRoomEntryPoint.Callback {
|
val callback = object : CreateRoomEntryPoint.Callback {
|
||||||
override fun onRoomCreated(roomId: RoomId) = lambdaError()
|
override fun onRoomCreated(roomId: RoomId) = lambdaError()
|
||||||
}
|
}
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultAccountDeactivationEntryPoint : AccountDeactivationEntryPoint {
|
class DefaultAccountDeactivationEntryPoint : AccountDeactivationEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext): Node {
|
||||||
return parentNode.createNode<AccountDeactivationNode>(buildContext)
|
return parentNode.createNode<AccountDeactivationNode>(buildContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,9 @@ class DefaultAccountDeactivationEntryPointTest {
|
|||||||
presenter = createPresenter(),
|
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)
|
assertThat(result).isInstanceOf(AccountDeactivationNode::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,5 +26,6 @@ interface ForwardEntryPoint : FeatureEntryPoint {
|
|||||||
val timelineProvider: TimelineProvider,
|
val timelineProvider: TimelineProvider,
|
||||||
) : NodeInputs
|
) : NodeInputs
|
||||||
|
|
||||||
fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node
|
context(parentNode: Node)
|
||||||
|
fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope
|
|||||||
|
|
||||||
@ContributesBinding(SessionScope::class)
|
@ContributesBinding(SessionScope::class)
|
||||||
class DefaultForwardEntryPoint : ForwardEntryPoint {
|
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<ForwardMessagesNode>(
|
return parentNode.createNode<ForwardMessagesNode>(
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = listOf(
|
plugins = listOf(
|
||||||
|
|||||||
@@ -71,7 +71,6 @@ class ForwardMessagesNode(
|
|||||||
}
|
}
|
||||||
|
|
||||||
return roomSelectEntryPoint.createNode(
|
return roomSelectEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = RoomSelectEntryPoint.Params(mode = RoomSelectMode.Forward),
|
params = RoomSelectEntryPoint.Params(mode = RoomSelectMode.Forward),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ class DefaultForwardEntryPointTest {
|
|||||||
plugins = plugins,
|
plugins = plugins,
|
||||||
presenterFactory = { _, _ -> createForwardMessagesPresenter() },
|
presenterFactory = { _, _ -> createForwardMessagesPresenter() },
|
||||||
roomSelectEntryPoint = object : RoomSelectEntryPoint {
|
roomSelectEntryPoint = object : RoomSelectEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: RoomSelectEntryPoint.Params,
|
params: RoomSelectEntryPoint.Params,
|
||||||
callback: RoomSelectEntryPoint.Callback,
|
callback: RoomSelectEntryPoint.Callback,
|
||||||
@@ -55,12 +55,13 @@ class DefaultForwardEntryPointTest {
|
|||||||
eventId = AN_EVENT_ID,
|
eventId = AN_EVENT_ID,
|
||||||
timelineProvider = FakeTimelineProvider(),
|
timelineProvider = FakeTimelineProvider(),
|
||||||
)
|
)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(ForwardMessagesNode::class.java)
|
assertThat(result).isInstanceOf(ForwardMessagesNode::class.java)
|
||||||
assertThat(result.plugins).contains(
|
assertThat(result.plugins).contains(
|
||||||
ForwardMessagesNode.Inputs(
|
ForwardMessagesNode.Inputs(
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultFtueEntryPoint : FtueEntryPoint {
|
class DefaultFtueEntryPoint : FtueEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext): Node {
|
||||||
return parentNode.createNode<FtueFlowNode>(buildContext)
|
return parentNode.createNode<FtueFlowNode>(buildContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ class FtueFlowNode(
|
|||||||
createNode<NotificationsOptInNode>(buildContext, listOf(callback))
|
createNode<NotificationsOptInNode>(buildContext, listOf(callback))
|
||||||
}
|
}
|
||||||
NavTarget.AnalyticsOptIn -> {
|
NavTarget.AnalyticsOptIn -> {
|
||||||
analyticsEntryPoint.createNode(this, buildContext)
|
analyticsEntryPoint.createNode(buildContext)
|
||||||
}
|
}
|
||||||
NavTarget.LockScreenSetup -> {
|
NavTarget.LockScreenSetup -> {
|
||||||
val callback = object : LockScreenEntryPoint.Callback {
|
val callback = object : LockScreenEntryPoint.Callback {
|
||||||
@@ -111,7 +111,6 @@ class FtueFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
lockScreenEntryPoint.createNode(
|
lockScreenEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
navTarget = LockScreenEntryPoint.Target.Setup,
|
navTarget = LockScreenEntryPoint.Target.Setup,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ class FtueSessionVerificationFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.UseAnotherDevice -> {
|
is NavTarget.UseAnotherDevice -> {
|
||||||
outgoingVerificationEntryPoint.createNode(
|
outgoingVerificationEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = OutgoingVerificationEntryPoint.Params(
|
params = OutgoingVerificationEntryPoint.Params(
|
||||||
showDeviceVerifiedScreen = true,
|
showDeviceVerifiedScreen = true,
|
||||||
@@ -128,7 +127,6 @@ class FtueSessionVerificationFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.EnterRecoveryKey -> {
|
is NavTarget.EnterRecoveryKey -> {
|
||||||
secureBackupEntryPoint.createNode(
|
secureBackupEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = SecureBackupEntryPoint.Params(SecureBackupEntryPoint.InitialTarget.EnterRecoveryKey),
|
params = SecureBackupEntryPoint.Params(SecureBackupEntryPoint.InitialTarget.EnterRecoveryKey),
|
||||||
callback = secureBackupEntryPointCallback
|
callback = secureBackupEntryPointCallback
|
||||||
@@ -136,7 +134,6 @@ class FtueSessionVerificationFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.ResetIdentity -> {
|
is NavTarget.ResetIdentity -> {
|
||||||
secureBackupEntryPoint.createNode(
|
secureBackupEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = SecureBackupEntryPoint.Params(SecureBackupEntryPoint.InitialTarget.ResetIdentity),
|
params = SecureBackupEntryPoint.Params(SecureBackupEntryPoint.InitialTarget.ResetIdentity),
|
||||||
callback = object : SecureBackupEntryPoint.Callback {
|
callback = object : SecureBackupEntryPoint.Callback {
|
||||||
|
|||||||
@@ -35,11 +35,11 @@ class DefaultFtueEntryPointTest {
|
|||||||
FtueFlowNode(
|
FtueFlowNode(
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = plugins,
|
plugins = plugins,
|
||||||
analyticsEntryPoint = { _, _ -> lambdaError() },
|
analyticsEntryPoint = { _ -> lambdaError() },
|
||||||
defaultFtueService = createDefaultFtueService(),
|
defaultFtueService = createDefaultFtueService(),
|
||||||
lockScreenEntryPoint = object : LockScreenEntryPoint {
|
lockScreenEntryPoint = object : LockScreenEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
navTarget: LockScreenEntryPoint.Target,
|
navTarget: LockScreenEntryPoint.Target,
|
||||||
callback: LockScreenEntryPoint.Callback,
|
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)
|
assertThat(result).isInstanceOf(FtueFlowNode::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ import io.element.android.libraries.architecture.FeatureEntryPoint
|
|||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
|
||||||
interface HomeEntryPoint : FeatureEntryPoint {
|
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 {
|
interface Callback : Plugin {
|
||||||
fun navigateToRoom(roomId: RoomId)
|
fun navigateToRoom(roomId: RoomId)
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultHomeEntryPoint : HomeEntryPoint {
|
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<HomeFlowNode>(buildContext, listOf(callback))
|
return parentNode.createNode<HomeFlowNode>(buildContext, listOf(callback))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,12 +186,11 @@ class HomeFlowNode(
|
|||||||
|
|
||||||
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
|
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
|
||||||
return when (navTarget) {
|
return when (navTarget) {
|
||||||
is NavTarget.ReportRoom -> reportRoomEntryPoint.createNode(this, buildContext, navTarget.roomId)
|
is NavTarget.ReportRoom -> reportRoomEntryPoint.createNode(buildContext, navTarget.roomId)
|
||||||
is NavTarget.DeclineInviteAndBlockUser -> declineInviteAndBlockUserEntryPoint.createNode(this, buildContext, navTarget.inviteData)
|
is NavTarget.DeclineInviteAndBlockUser -> declineInviteAndBlockUserEntryPoint.createNode(buildContext, navTarget.inviteData)
|
||||||
is NavTarget.SelectNewOwnersWhenLeavingRoom -> {
|
is NavTarget.SelectNewOwnersWhenLeavingRoom -> {
|
||||||
val room = runBlocking { matrixClient.getJoinedRoom(navTarget.roomId) } ?: error("Room ${navTarget.roomId} not found")
|
val room = runBlocking { matrixClient.getJoinedRoom(navTarget.roomId) } ?: error("Room ${navTarget.roomId} not found")
|
||||||
changeRoomMemberRolesEntryPoint.createNode(
|
changeRoomMemberRolesEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
room = room,
|
room = room,
|
||||||
listType = ChangeRoomMemberRolesListType.SelectNewOwnersWhenLeaving,
|
listType = ChangeRoomMemberRolesListType.SelectNewOwnersWhenLeaving,
|
||||||
|
|||||||
@@ -34,9 +34,9 @@ class DefaultHomeEntryPointTest {
|
|||||||
analyticsService = FakeAnalyticsService(),
|
analyticsService = FakeAnalyticsService(),
|
||||||
acceptDeclineInviteView = { _, _, _, _ -> lambdaError() },
|
acceptDeclineInviteView = { _, _, _, _ -> lambdaError() },
|
||||||
directLogoutView = { _ -> lambdaError() },
|
directLogoutView = { _ -> lambdaError() },
|
||||||
reportRoomEntryPoint = { _, _, _ -> lambdaError() },
|
reportRoomEntryPoint = { _, _ -> lambdaError() },
|
||||||
declineInviteAndBlockUserEntryPoint = { _, _, _ -> lambdaError() },
|
declineInviteAndBlockUserEntryPoint = { _, _ -> lambdaError() },
|
||||||
changeRoomMemberRolesEntryPoint = { _, _, _, _ -> lambdaError() },
|
changeRoomMemberRolesEntryPoint = { _, _, _ -> lambdaError() },
|
||||||
leaveRoomRenderer = { _, _, _ -> lambdaError() },
|
leaveRoomRenderer = { _, _, _ -> lambdaError() },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -49,11 +49,12 @@ class DefaultHomeEntryPointTest {
|
|||||||
override fun navigateToRoomSettings(roomId: RoomId) = lambdaError()
|
override fun navigateToRoomSettings(roomId: RoomId) = lambdaError()
|
||||||
override fun navigateToBugReport() = lambdaError()
|
override fun navigateToBugReport() = lambdaError()
|
||||||
}
|
}
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(HomeFlowNode::class.java)
|
assertThat(result).isInstanceOf(HomeFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,5 +13,6 @@ import io.element.android.features.invite.api.InviteData
|
|||||||
import io.element.android.libraries.architecture.FeatureEntryPoint
|
import io.element.android.libraries.architecture.FeatureEntryPoint
|
||||||
|
|
||||||
fun interface DeclineInviteAndBlockEntryPoint : FeatureEntryPoint {
|
fun interface DeclineInviteAndBlockEntryPoint : FeatureEntryPoint {
|
||||||
fun createNode(parentNode: Node, buildContext: BuildContext, inviteData: InviteData): Node
|
context(parentNode: Node)
|
||||||
|
fun createNode(buildContext: BuildContext, inviteData: InviteData): Node
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultDeclineAndBlockEntryPoint : DeclineInviteAndBlockEntryPoint {
|
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)
|
val inputs = DeclineAndBlockNode.Inputs(inviteData)
|
||||||
return parentNode.createNode<DeclineAndBlockNode>(buildContext, plugins = listOf(inputs))
|
return parentNode.createNode<DeclineAndBlockNode>(buildContext, plugins = listOf(inputs))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,11 +30,12 @@ class DefaultDeclineAndBlockEntryPointTest {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
val inviteData = anInviteData()
|
val inviteData = anInviteData()
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
inviteData = inviteData
|
inviteData = inviteData
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(DeclineAndBlockNode::class.java)
|
assertThat(result).isInstanceOf(DeclineAndBlockNode::class.java)
|
||||||
assertThat(result.plugins).contains(DeclineAndBlockNode.Inputs(inviteData))
|
assertThat(result.plugins).contains(DeclineAndBlockNode.Inputs(inviteData))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
|
|||||||
import java.util.Optional
|
import java.util.Optional
|
||||||
|
|
||||||
interface JoinRoomEntryPoint : FeatureEntryPoint {
|
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(
|
data class Inputs(
|
||||||
val roomId: RoomId,
|
val roomId: RoomId,
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultJoinRoomEntryPoint : JoinRoomEntryPoint {
|
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<JoinRoomFlowNode>(
|
return parentNode.createNode<JoinRoomFlowNode>(
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = listOf(inputs)
|
plugins = listOf(inputs)
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class JoinRoomFlowNode(
|
|||||||
|
|
||||||
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
|
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
|
||||||
return when (navTarget) {
|
return when (navTarget) {
|
||||||
is NavTarget.DeclineInviteAndBlockUser -> declineAndBlockEntryPoint.createNode(this, buildContext, navTarget.inviteData)
|
is NavTarget.DeclineInviteAndBlockUser -> declineAndBlockEntryPoint.createNode(buildContext, navTarget.inviteData)
|
||||||
NavTarget.Root -> rootNode(buildContext)
|
NavTarget.Root -> rootNode(buildContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ class DefaultJoinRoomEntryPointTest {
|
|||||||
presenterFactory = { _, _, _, _, _ -> createJoinRoomPresenter() },
|
presenterFactory = { _, _, _, _, _ -> createJoinRoomPresenter() },
|
||||||
acceptDeclineInviteView = { _, _, _, _ -> lambdaError() },
|
acceptDeclineInviteView = { _, _, _, _ -> lambdaError() },
|
||||||
declineAndBlockEntryPoint = object : DeclineInviteAndBlockEntryPoint {
|
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(),
|
serverNames = emptyList(),
|
||||||
trigger = JoinedRoom.Trigger.RoomDirectory,
|
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).isInstanceOf(JoinRoomFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(inputs)
|
assertThat(result.plugins).contains(inputs)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultKnockRequestsListEntryPoint : KnockRequestsListEntryPoint {
|
class DefaultKnockRequestsListEntryPoint : KnockRequestsListEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext): Node {
|
||||||
return parentNode.createNode<KnockRequestsListNode>(buildContext)
|
return parentNode.createNode<KnockRequestsListNode>(buildContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ class DefaultKnockRequestsListEntryPointTest {
|
|||||||
presenter = createKnockRequestsListPresenter(),
|
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)
|
assertThat(result).isInstanceOf(KnockRequestsListNode::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultOpenSourcesLicensesEntryPoint : OpenSourceLicensesEntryPoint {
|
class DefaultOpenSourcesLicensesEntryPoint : OpenSourceLicensesEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext): Node {
|
||||||
return parentNode.createNode<DependenciesFlowNode>(buildContext)
|
return parentNode.createNode<DependenciesFlowNode>(buildContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,9 @@ class DefaultOpenSourcesLicensesEntryPointTest {
|
|||||||
plugins = plugins,
|
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)
|
assertThat(result).isInstanceOf(DependenciesFlowNode::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ import io.element.android.libraries.matrix.api.timeline.Timeline
|
|||||||
* Allows a user to share a location message within a room.
|
* Allows a user to share a location message within a room.
|
||||||
*/
|
*/
|
||||||
interface SendLocationEntryPoint : FeatureEntryPoint {
|
interface SendLocationEntryPoint : FeatureEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
fun createNode(
|
fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
timelineMode: Timeline.Mode,
|
timelineMode: Timeline.Mode,
|
||||||
): Node
|
): Node
|
||||||
|
|||||||
@@ -15,5 +15,6 @@ import io.element.android.libraries.architecture.NodeInputs
|
|||||||
interface ShowLocationEntryPoint : FeatureEntryPoint {
|
interface ShowLocationEntryPoint : FeatureEntryPoint {
|
||||||
data class Inputs(val location: Location, val description: String?) : NodeInputs
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ import io.element.android.libraries.matrix.api.timeline.Timeline
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultSendLocationEntryPoint : SendLocationEntryPoint {
|
class DefaultSendLocationEntryPoint : SendLocationEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
timelineMode: Timeline.Mode,
|
timelineMode: Timeline.Mode,
|
||||||
): Node {
|
): Node {
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultShowLocationEntryPoint : ShowLocationEntryPoint {
|
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<ShowLocationNode>(buildContext, listOf(inputs))
|
return parentNode.createNode<ShowLocationNode>(buildContext, listOf(inputs))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,11 +47,12 @@ class DefaultSendLocationEntryPointTest {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
val timelineMode = Timeline.Mode.Live
|
val timelineMode = Timeline.Mode.Live
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
timelineMode = timelineMode,
|
timelineMode = timelineMode,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(SendLocationNode::class.java)
|
assertThat(result).isInstanceOf(SendLocationNode::class.java)
|
||||||
assertThat(result.plugins).contains(SendLocationNode.Inputs(timelineMode))
|
assertThat(result.plugins).contains(SendLocationNode.Inputs(timelineMode))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,11 +47,12 @@ class DefaultShowLocationEntryPointTest {
|
|||||||
location = Location(37.4219983, -122.084, 10f),
|
location = Location(37.4219983, -122.084, 10f),
|
||||||
description = "My location",
|
description = "My location",
|
||||||
)
|
)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode,
|
entryPoint.createNode(
|
||||||
BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
inputs = inputs,
|
inputs = inputs,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(ShowLocationNode::class.java)
|
assertThat(result).isInstanceOf(ShowLocationNode::class.java)
|
||||||
assertThat(result.plugins).contains(inputs)
|
assertThat(result.plugins).contains(inputs)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ import com.bumble.appyx.core.plugin.Plugin
|
|||||||
import io.element.android.libraries.architecture.FeatureEntryPoint
|
import io.element.android.libraries.architecture.FeatureEntryPoint
|
||||||
|
|
||||||
interface LockScreenEntryPoint : 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
|
fun pinUnlockIntent(context: Context): Intent
|
||||||
|
|
||||||
interface Callback : Plugin {
|
interface Callback : Plugin {
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultLockScreenEntryPoint : LockScreenEntryPoint {
|
class DefaultLockScreenEntryPoint : LockScreenEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
navTarget: LockScreenEntryPoint.Target,
|
navTarget: LockScreenEntryPoint.Target,
|
||||||
callback: LockScreenEntryPoint.Callback,
|
callback: LockScreenEntryPoint.Callback,
|
||||||
|
|||||||
@@ -37,12 +37,13 @@ class DefaultLockScreenEntryPointTest {
|
|||||||
override fun onSetupDone() = lambdaError()
|
override fun onSetupDone() = lambdaError()
|
||||||
}
|
}
|
||||||
val navTarget = LockScreenEntryPoint.Target.Setup
|
val navTarget = LockScreenEntryPoint.Target.Setup
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
navTarget = navTarget,
|
navTarget = navTarget,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(LockScreenFlowNode::class.java)
|
assertThat(result).isInstanceOf(LockScreenFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(LockScreenFlowNode.Inputs(LockScreenFlowNode.NavTarget.Setup))
|
assertThat(result.plugins).contains(LockScreenFlowNode.Inputs(LockScreenFlowNode.NavTarget.Setup))
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
@@ -61,12 +62,13 @@ class DefaultLockScreenEntryPointTest {
|
|||||||
override fun onSetupDone() = lambdaError()
|
override fun onSetupDone() = lambdaError()
|
||||||
}
|
}
|
||||||
val navTarget = LockScreenEntryPoint.Target.Settings
|
val navTarget = LockScreenEntryPoint.Target.Settings
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
navTarget = navTarget,
|
navTarget = navTarget,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(LockScreenFlowNode::class.java)
|
assertThat(result).isInstanceOf(LockScreenFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(LockScreenFlowNode.Inputs(LockScreenFlowNode.NavTarget.Settings))
|
assertThat(result.plugins).contains(LockScreenFlowNode.Inputs(LockScreenFlowNode.NavTarget.Settings))
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
|
|||||||
@@ -22,5 +22,6 @@ interface LoginEntryPoint : FeatureEntryPoint {
|
|||||||
fun navigateToBugReport()
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultLoginEntryPoint : LoginEntryPoint {
|
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<LoginFlowNode>(
|
return parentNode.createNode<LoginFlowNode>(
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = listOf(
|
plugins = listOf(
|
||||||
|
|||||||
@@ -45,12 +45,13 @@ class DefaultLoginEntryPointTest {
|
|||||||
accountProvider = "ac",
|
accountProvider = "ac",
|
||||||
loginHint = "lh",
|
loginHint = "lh",
|
||||||
)
|
)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(LoginFlowNode::class.java)
|
assertThat(result).isInstanceOf(LoginFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(LoginFlowNode.Params(params.accountProvider, params.loginHint))
|
assertThat(result.plugins).contains(LoginFlowNode.Params(params.accountProvider, params.loginHint))
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ import com.bumble.appyx.core.plugin.Plugin
|
|||||||
import io.element.android.libraries.architecture.FeatureEntryPoint
|
import io.element.android.libraries.architecture.FeatureEntryPoint
|
||||||
|
|
||||||
interface LogoutEntryPoint : 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 {
|
interface Callback : Plugin {
|
||||||
fun navigateToSecureBackup()
|
fun navigateToSecureBackup()
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultLogoutEntryPoint : LogoutEntryPoint {
|
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<LogoutNode>(buildContext, listOf(callback))
|
return parentNode.createNode<LogoutNode>(buildContext, listOf(callback))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ class DefaultLogoutEntryPointTest {
|
|||||||
val callback = object : LogoutEntryPoint.Callback {
|
val callback = object : LogoutEntryPoint.Callback {
|
||||||
override fun navigateToSecureBackup() = lambdaError()
|
override fun navigateToSecureBackup() = lambdaError()
|
||||||
}
|
}
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(LogoutNode::class.java)
|
assertThat(result).isInstanceOf(LogoutNode::class.java)
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ interface MessagesEntryPoint : FeatureEntryPoint {
|
|||||||
|
|
||||||
data class Params(val initialTarget: InitialTarget) : NodeInputs
|
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 {
|
interface MessagesEntryPointNode {
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope
|
|||||||
|
|
||||||
@ContributesBinding(SessionScope::class)
|
@ContributesBinding(SessionScope::class)
|
||||||
class DefaultMessagesEntryPoint : MessagesEntryPoint {
|
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<MessagesFlowNode>(buildContext, listOf(params, callback))
|
return parentNode.createNode<MessagesFlowNode>(buildContext, listOf(params, callback))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -321,7 +321,6 @@ class MessagesFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
mediaViewerEntryPoint.createNode(
|
mediaViewerEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback
|
callback = callback
|
||||||
@@ -337,7 +336,7 @@ class MessagesFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.LocationViewer -> {
|
is NavTarget.LocationViewer -> {
|
||||||
val inputs = ShowLocationEntryPoint.Inputs(navTarget.location, navTarget.description)
|
val inputs = ShowLocationEntryPoint.Inputs(navTarget.location, navTarget.description)
|
||||||
showLocationEntryPoint.createNode(this, buildContext, inputs)
|
showLocationEntryPoint.createNode(buildContext, inputs)
|
||||||
}
|
}
|
||||||
is NavTarget.EventDebugInfo -> {
|
is NavTarget.EventDebugInfo -> {
|
||||||
val inputs = EventDebugInfoNode.Inputs(navTarget.eventId, navTarget.debugInfo)
|
val inputs = EventDebugInfoNode.Inputs(navTarget.eventId, navTarget.debugInfo)
|
||||||
@@ -359,7 +358,6 @@ class MessagesFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
forwardEntryPoint.createNode(
|
forwardEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
@@ -371,14 +369,12 @@ class MessagesFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.SendLocation -> {
|
is NavTarget.SendLocation -> {
|
||||||
sendLocationEntryPoint.createNode(
|
sendLocationEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
timelineMode = navTarget.timelineMode,
|
timelineMode = navTarget.timelineMode,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
is NavTarget.CreatePoll -> {
|
is NavTarget.CreatePoll -> {
|
||||||
createPollEntryPoint.createNode(
|
createPollEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = CreatePollEntryPoint.Params(
|
params = CreatePollEntryPoint.Params(
|
||||||
timelineMode = navTarget.timelineMode,
|
timelineMode = navTarget.timelineMode,
|
||||||
@@ -388,7 +384,6 @@ class MessagesFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.EditPoll -> {
|
is NavTarget.EditPoll -> {
|
||||||
createPollEntryPoint.createNode(
|
createPollEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = CreatePollEntryPoint.Params(
|
params = CreatePollEntryPoint.Params(
|
||||||
timelineMode = navTarget.timelineMode,
|
timelineMode = navTarget.timelineMode,
|
||||||
@@ -428,7 +423,7 @@ class MessagesFlowNode(
|
|||||||
createNode<PinnedMessagesListNode>(buildContext, plugins = listOf(callback))
|
createNode<PinnedMessagesListNode>(buildContext, plugins = listOf(callback))
|
||||||
}
|
}
|
||||||
NavTarget.KnockRequestsList -> {
|
NavTarget.KnockRequestsList -> {
|
||||||
knockRequestsListEntryPoint.createNode(this, buildContext)
|
knockRequestsListEntryPoint.createNode(buildContext)
|
||||||
}
|
}
|
||||||
is NavTarget.Thread -> {
|
is NavTarget.Thread -> {
|
||||||
val inputs = ThreadedMessagesNode.Inputs(
|
val inputs = ThreadedMessagesNode.Inputs(
|
||||||
|
|||||||
@@ -66,18 +66,19 @@ class DefaultMessagesEntryPointTest {
|
|||||||
roomListService = FakeRoomListService(),
|
roomListService = FakeRoomListService(),
|
||||||
sessionId = A_SESSION_ID,
|
sessionId = A_SESSION_ID,
|
||||||
sendLocationEntryPoint = object : SendLocationEntryPoint {
|
sendLocationEntryPoint = object : SendLocationEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
timelineMode: Timeline.Mode,
|
timelineMode: Timeline.Mode,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
},
|
},
|
||||||
showLocationEntryPoint = object : ShowLocationEntryPoint {
|
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 {
|
createPollEntryPoint = object : CreatePollEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: Params,
|
params: Params,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
@@ -99,16 +100,16 @@ class DefaultMessagesEntryPointTest {
|
|||||||
},
|
},
|
||||||
mediaViewerEntryPoint = object : MediaViewerEntryPoint {
|
mediaViewerEntryPoint = object : MediaViewerEntryPoint {
|
||||||
override fun createParamsForAvatar(filename: String, avatarUrl: String) = lambdaError()
|
override fun createParamsForAvatar(filename: String, avatarUrl: String) = lambdaError()
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: MediaViewerEntryPoint.Params,
|
params: MediaViewerEntryPoint.Params,
|
||||||
callback: MediaViewerEntryPoint.Callback,
|
callback: MediaViewerEntryPoint.Callback,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
},
|
},
|
||||||
forwardEntryPoint = object : ForwardEntryPoint {
|
forwardEntryPoint = object : ForwardEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: ForwardEntryPoint.Params,
|
params: ForwardEntryPoint.Params,
|
||||||
callback: ForwardEntryPoint.Callback,
|
callback: ForwardEntryPoint.Callback,
|
||||||
@@ -129,7 +130,8 @@ class DefaultMessagesEntryPointTest {
|
|||||||
pinnedEventsTimelineProvider = createPinnedEventsTimelineProvider(),
|
pinnedEventsTimelineProvider = createPinnedEventsTimelineProvider(),
|
||||||
timelineController = createTimelineController(),
|
timelineController = createTimelineController(),
|
||||||
knockRequestsListEntryPoint = object : KnockRequestsListEntryPoint {
|
knockRequestsListEntryPoint = object : KnockRequestsListEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError()
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext) = lambdaError()
|
||||||
},
|
},
|
||||||
dateFormatter = FakeDateFormatter(),
|
dateFormatter = FakeDateFormatter(),
|
||||||
coroutineDispatchers = testCoroutineDispatchers(),
|
coroutineDispatchers = testCoroutineDispatchers(),
|
||||||
@@ -144,12 +146,13 @@ class DefaultMessagesEntryPointTest {
|
|||||||
}
|
}
|
||||||
val initialTarget = MessagesEntryPoint.InitialTarget.Messages(focusedEventId = AN_EVENT_ID)
|
val initialTarget = MessagesEntryPoint.InitialTarget.Messages(focusedEventId = AN_EVENT_ID)
|
||||||
val params = MessagesEntryPoint.Params(initialTarget)
|
val params = MessagesEntryPoint.Params(initialTarget)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(MessagesFlowNode::class.java)
|
assertThat(result).isInstanceOf(MessagesFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(MessagesEntryPoint.Params(initialTarget))
|
assertThat(result.plugins).contains(MessagesEntryPoint.Params(initialTarget))
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
|
|||||||
@@ -18,5 +18,6 @@ interface CreatePollEntryPoint : FeatureEntryPoint {
|
|||||||
val mode: CreatePollMode,
|
val mode: CreatePollMode,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun createNode(parentNode: Node, buildContext: BuildContext, params: Params): Node
|
context(parentNode: Node)
|
||||||
|
fun createNode(buildContext: BuildContext, params: Params): Node
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultCreatePollEntryPoint : CreatePollEntryPoint {
|
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<CreatePollNode>(
|
return parentNode.createNode<CreatePollNode>(
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = listOf(CreatePollNode.Inputs(timelineMode = params.timelineMode, mode = params.mode))
|
plugins = listOf(CreatePollNode.Inputs(timelineMode = params.timelineMode, mode = params.mode))
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultPollHistoryEntryPoint : PollHistoryEntryPoint {
|
class DefaultPollHistoryEntryPoint : PollHistoryEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext): Node {
|
||||||
return parentNode.createNode<PollHistoryFlowNode>(buildContext)
|
return parentNode.createNode<PollHistoryFlowNode>(buildContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ class PollHistoryFlowNode(
|
|||||||
return when (navTarget) {
|
return when (navTarget) {
|
||||||
is NavTarget.EditPoll -> {
|
is NavTarget.EditPoll -> {
|
||||||
createPollEntryPoint.createNode(
|
createPollEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = CreatePollEntryPoint.Params(
|
params = CreatePollEntryPoint.Params(
|
||||||
timelineMode = Timeline.Mode.Live,
|
timelineMode = Timeline.Mode.Live,
|
||||||
|
|||||||
@@ -53,11 +53,12 @@ class DefaultCreatePollEntryPointTest {
|
|||||||
timelineMode = Timeline.Mode.Live,
|
timelineMode = Timeline.Mode.Live,
|
||||||
mode = CreatePollMode.NewPoll,
|
mode = CreatePollMode.NewPoll,
|
||||||
)
|
)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(CreatePollNode::class.java)
|
assertThat(result).isInstanceOf(CreatePollNode::class.java)
|
||||||
assertThat(result.plugins).contains(CreatePollNode.Inputs(timelineMode = params.timelineMode, mode = params.mode))
|
assertThat(result.plugins).contains(CreatePollNode.Inputs(timelineMode = params.timelineMode, mode = params.mode))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,15 +34,17 @@ class DefaultPollHistoryEntryPointTest {
|
|||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = plugins,
|
plugins = plugins,
|
||||||
createPollEntryPoint = object : CreatePollEntryPoint {
|
createPollEntryPoint = object : CreatePollEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: CreatePollEntryPoint.Params,
|
params: CreatePollEntryPoint.Params,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val result = entryPoint.createNode(parentNode, BuildContext.root(null))
|
val result = with(parentNode) {
|
||||||
|
entryPoint.createNode(BuildContext.root(null))
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(PollHistoryFlowNode::class.java)
|
assertThat(result).isInstanceOf(PollHistoryFlowNode::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ interface PreferencesEntryPoint : FeatureEntryPoint {
|
|||||||
|
|
||||||
data class Params(val initialElement: InitialTarget) : NodeInputs
|
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 {
|
interface Callback : Plugin {
|
||||||
fun navigateToAddAccount()
|
fun navigateToAddAccount()
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultPreferencesEntryPoint : PreferencesEntryPoint {
|
class DefaultPreferencesEntryPoint : PreferencesEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: PreferencesEntryPoint.Params,
|
params: PreferencesEntryPoint.Params,
|
||||||
callback: PreferencesEntryPoint.Callback,
|
callback: PreferencesEntryPoint.Callback,
|
||||||
|
|||||||
@@ -216,7 +216,6 @@ class PreferencesFlowNode(
|
|||||||
}
|
}
|
||||||
NavTarget.TroubleshootNotifications -> {
|
NavTarget.TroubleshootNotifications -> {
|
||||||
notificationTroubleShootEntryPoint.createNode(
|
notificationTroubleShootEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
callback = object : NotificationTroubleShootEntryPoint.Callback {
|
callback = object : NotificationTroubleShootEntryPoint.Callback {
|
||||||
override fun onDone() {
|
override fun onDone() {
|
||||||
@@ -235,9 +234,8 @@ class PreferencesFlowNode(
|
|||||||
}
|
}
|
||||||
NavTarget.PushHistory -> {
|
NavTarget.PushHistory -> {
|
||||||
pushHistoryEntryPoint.createNode(
|
pushHistoryEntryPoint.createNode(
|
||||||
this,
|
buildContext = buildContext,
|
||||||
buildContext,
|
callback = object : PushHistoryEntryPoint.Callback {
|
||||||
object : PushHistoryEntryPoint.Callback {
|
|
||||||
override fun onDone() {
|
override fun onDone() {
|
||||||
if (backstack.canPop()) {
|
if (backstack.canPop()) {
|
||||||
backstack.pop()
|
backstack.pop()
|
||||||
@@ -270,7 +268,6 @@ class PreferencesFlowNode(
|
|||||||
}
|
}
|
||||||
NavTarget.LockScreenSettings -> {
|
NavTarget.LockScreenSettings -> {
|
||||||
lockScreenEntryPoint.createNode(
|
lockScreenEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
navTarget = LockScreenEntryPoint.Target.Settings,
|
navTarget = LockScreenEntryPoint.Target.Settings,
|
||||||
callback = object : LockScreenEntryPoint.Callback {
|
callback = object : LockScreenEntryPoint.Callback {
|
||||||
@@ -290,16 +287,15 @@ class PreferencesFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
logoutEntryPoint.createNode(
|
logoutEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
callback = callBack,
|
callback = callBack,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
is NavTarget.OssLicenses -> {
|
is NavTarget.OssLicenses -> {
|
||||||
openSourceLicensesEntryPoint.createNode(this, buildContext)
|
openSourceLicensesEntryPoint.createNode(buildContext)
|
||||||
}
|
}
|
||||||
NavTarget.AccountDeactivation -> {
|
NavTarget.AccountDeactivation -> {
|
||||||
accountDeactivationEntryPoint.createNode(this, buildContext)
|
accountDeactivationEntryPoint.createNode(buildContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,8 +42,8 @@ class DefaultPreferencesEntryPointTest {
|
|||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = plugins,
|
plugins = plugins,
|
||||||
lockScreenEntryPoint = object : LockScreenEntryPoint {
|
lockScreenEntryPoint = object : LockScreenEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
navTarget: LockScreenEntryPoint.Target,
|
navTarget: LockScreenEntryPoint.Target,
|
||||||
callback: LockScreenEntryPoint.Callback,
|
callback: LockScreenEntryPoint.Callback,
|
||||||
@@ -52,31 +52,33 @@ class DefaultPreferencesEntryPointTest {
|
|||||||
override fun pinUnlockIntent(context: Context) = lambdaError()
|
override fun pinUnlockIntent(context: Context) = lambdaError()
|
||||||
},
|
},
|
||||||
notificationTroubleShootEntryPoint = object : NotificationTroubleShootEntryPoint {
|
notificationTroubleShootEntryPoint = object : NotificationTroubleShootEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
callback: NotificationTroubleShootEntryPoint.Callback,
|
callback: NotificationTroubleShootEntryPoint.Callback,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
},
|
},
|
||||||
pushHistoryEntryPoint = object : PushHistoryEntryPoint {
|
pushHistoryEntryPoint = object : PushHistoryEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
callback: PushHistoryEntryPoint.Callback,
|
callback: PushHistoryEntryPoint.Callback,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
},
|
},
|
||||||
logoutEntryPoint = object : LogoutEntryPoint {
|
logoutEntryPoint = object : LogoutEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
callback: LogoutEntryPoint.Callback,
|
callback: LogoutEntryPoint.Callback,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
},
|
},
|
||||||
openSourceLicensesEntryPoint = object : OpenSourceLicensesEntryPoint {
|
openSourceLicensesEntryPoint = object : OpenSourceLicensesEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError()
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext) = lambdaError()
|
||||||
},
|
},
|
||||||
accountDeactivationEntryPoint = object : AccountDeactivationEntryPoint {
|
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(
|
val params = PreferencesEntryPoint.Params(
|
||||||
initialElement = PreferencesEntryPoint.InitialTarget.NotificationSettings,
|
initialElement = PreferencesEntryPoint.InitialTarget.NotificationSettings,
|
||||||
)
|
)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(PreferencesFlowNode::class.java)
|
assertThat(result).isInstanceOf(PreferencesFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(params)
|
assertThat(result.plugins).contains(params)
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ import com.bumble.appyx.core.plugin.Plugin
|
|||||||
import io.element.android.libraries.architecture.FeatureEntryPoint
|
import io.element.android.libraries.architecture.FeatureEntryPoint
|
||||||
|
|
||||||
interface BugReportEntryPoint : 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 {
|
interface Callback : Plugin {
|
||||||
fun onDone()
|
fun onDone()
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ class BugReportFlowNode(
|
|||||||
rootPath = navTarget.rootPath,
|
rootPath = navTarget.rootPath,
|
||||||
)
|
)
|
||||||
viewFolderEntryPoint.createNode(
|
viewFolderEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultBugReportEntryPoint : BugReportEntryPoint {
|
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<BugReportFlowNode>(buildContext, listOf(callback))
|
return parentNode.createNode<BugReportFlowNode>(buildContext, listOf(callback))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ class DefaultBugReportEntryPointTest {
|
|||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = plugins,
|
plugins = plugins,
|
||||||
viewFolderEntryPoint = object : ViewFolderEntryPoint {
|
viewFolderEntryPoint = object : ViewFolderEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: ViewFolderEntryPoint.Params,
|
params: ViewFolderEntryPoint.Params,
|
||||||
callback: ViewFolderEntryPoint.Callback,
|
callback: ViewFolderEntryPoint.Callback,
|
||||||
@@ -47,11 +47,12 @@ class DefaultBugReportEntryPointTest {
|
|||||||
val callback = object : BugReportEntryPoint.Callback {
|
val callback = object : BugReportEntryPoint.Callback {
|
||||||
override fun onDone() = lambdaError()
|
override fun onDone() = lambdaError()
|
||||||
}
|
}
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(BugReportFlowNode::class.java)
|
assertThat(result).isInstanceOf(BugReportFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,5 +13,6 @@ import io.element.android.libraries.architecture.FeatureEntryPoint
|
|||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
|
||||||
fun interface ReportRoomEntryPoint : FeatureEntryPoint {
|
fun interface ReportRoomEntryPoint : FeatureEntryPoint {
|
||||||
fun createNode(parentNode: Node, buildContext: BuildContext, roomId: RoomId): Node
|
context(parentNode: Node)
|
||||||
|
fun createNode(buildContext: BuildContext, roomId: RoomId): Node
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ import io.element.android.libraries.matrix.api.core.RoomId
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultReportRoomEntryPoint : ReportRoomEntryPoint {
|
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<ReportRoomNode>(buildContext, plugins = listOf(ReportRoomNode.Inputs(roomId)))
|
return parentNode.createNode<ReportRoomNode>(buildContext, plugins = listOf(ReportRoomNode.Inputs(roomId)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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).isInstanceOf(ReportRoomNode::class.java)
|
||||||
assertThat(result.plugins).contains(ReportRoomNode.Inputs(A_ROOM_ID))
|
assertThat(result.plugins).contains(ReportRoomNode.Inputs(A_ROOM_ID))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.matrix.api.core.RoomAlias
|
|||||||
import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
|
import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
|
||||||
|
|
||||||
interface RoomAliasResolverEntryPoint : FeatureEntryPoint {
|
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 {
|
interface Callback : Plugin {
|
||||||
fun onAliasResolved(data: ResolvedRoomAlias)
|
fun onAliasResolved(data: ResolvedRoomAlias)
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultRoomAliasResolverEntryPoint : RoomAliasResolverEntryPoint {
|
class DefaultRoomAliasResolverEntryPoint : RoomAliasResolverEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: RoomAliasResolverEntryPoint.Params,
|
params: RoomAliasResolverEntryPoint.Params,
|
||||||
callback: RoomAliasResolverEntryPoint.Callback,
|
callback: RoomAliasResolverEntryPoint.Callback,
|
||||||
|
|||||||
@@ -43,12 +43,13 @@ class DefaultRoomAliasResolverEntryPointTest {
|
|||||||
val params = RoomAliasResolverEntryPoint.Params(
|
val params = RoomAliasResolverEntryPoint.Params(
|
||||||
roomAlias = A_ROOM_ALIAS
|
roomAlias = A_ROOM_ALIAS
|
||||||
)
|
)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(RoomAliasResolverNode::class.java)
|
assertThat(result).isInstanceOf(RoomAliasResolverNode::class.java)
|
||||||
assertThat(result.plugins).contains(params)
|
assertThat(result.plugins).contains(params)
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
|
|||||||
@@ -43,5 +43,6 @@ interface RoomDetailsEntryPoint : FeatureEntryPoint {
|
|||||||
fun startForwardEventFlow(eventId: EventId)
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultRoomDetailsEntryPoint : RoomDetailsEntryPoint {
|
class DefaultRoomDetailsEntryPoint : RoomDetailsEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: RoomDetailsEntryPoint.Params,
|
params: RoomDetailsEntryPoint.Params,
|
||||||
callback: RoomDetailsEntryPoint.Callback,
|
callback: RoomDetailsEntryPoint.Callback,
|
||||||
|
|||||||
@@ -308,14 +308,13 @@ class RoomDetailsFlowNode(
|
|||||||
avatarUrl = navTarget.avatarUrl,
|
avatarUrl = navTarget.avatarUrl,
|
||||||
)
|
)
|
||||||
mediaViewerEntryPoint.createNode(
|
mediaViewerEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
is NavTarget.PollHistory -> {
|
is NavTarget.PollHistory -> {
|
||||||
pollHistoryEntryPoint.createNode(this, buildContext)
|
pollHistoryEntryPoint.createNode(buildContext)
|
||||||
}
|
}
|
||||||
is NavTarget.MediaGallery -> {
|
is NavTarget.MediaGallery -> {
|
||||||
val callback = object : MediaGalleryEntryPoint.Callback {
|
val callback = object : MediaGalleryEntryPoint.Callback {
|
||||||
@@ -336,7 +335,6 @@ class RoomDetailsFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
mediaGalleryEntryPoint.createNode(
|
mediaGalleryEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
@@ -367,14 +365,13 @@ class RoomDetailsFlowNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return messagesEntryPoint.createNode(
|
return messagesEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
NavTarget.KnockRequestsList -> {
|
NavTarget.KnockRequestsList -> {
|
||||||
knockRequestsListEntryPoint.createNode(this, buildContext)
|
knockRequestsListEntryPoint.createNode(buildContext)
|
||||||
}
|
}
|
||||||
NavTarget.SecurityAndPrivacy -> {
|
NavTarget.SecurityAndPrivacy -> {
|
||||||
createNode<SecurityAndPrivacyFlowNode>(buildContext)
|
createNode<SecurityAndPrivacyFlowNode>(buildContext)
|
||||||
@@ -385,7 +382,6 @@ class RoomDetailsFlowNode(
|
|||||||
verificationRequest = VerificationRequest.Outgoing.User(userId = navTarget.userId)
|
verificationRequest = VerificationRequest.Outgoing.User(userId = navTarget.userId)
|
||||||
)
|
)
|
||||||
outgoingVerificationEntryPoint.createNode(
|
outgoingVerificationEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = params,
|
params = params,
|
||||||
callback = object : OutgoingVerificationEntryPoint.Callback {
|
callback = object : OutgoingVerificationEntryPoint.Callback {
|
||||||
@@ -404,12 +400,11 @@ class RoomDetailsFlowNode(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
is NavTarget.ReportRoom -> {
|
is NavTarget.ReportRoom -> {
|
||||||
reportRoomEntryPoint.createNode(this, buildContext, room.roomId)
|
reportRoomEntryPoint.createNode(buildContext, room.roomId)
|
||||||
}
|
}
|
||||||
|
|
||||||
is NavTarget.SelectNewOwnersWhenLeaving -> {
|
is NavTarget.SelectNewOwnersWhenLeaving -> {
|
||||||
changeRoomMemberRolesEntryPoint.createNode(
|
changeRoomMemberRolesEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
room = room,
|
room = room,
|
||||||
listType = ChangeRoomMemberRolesListType.SelectNewOwnersWhenLeaving,
|
listType = ChangeRoomMemberRolesListType.SelectNewOwnersWhenLeaving,
|
||||||
|
|||||||
@@ -102,7 +102,6 @@ class RolesAndPermissionsFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.AdminList -> {
|
is NavTarget.AdminList -> {
|
||||||
changeRoomMemberRolesEntryPoint.createNode(
|
changeRoomMemberRolesEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
room = joinedRoom,
|
room = joinedRoom,
|
||||||
listType = ChangeRoomMemberRolesListType.Admins,
|
listType = ChangeRoomMemberRolesListType.Admins,
|
||||||
@@ -110,7 +109,6 @@ class RolesAndPermissionsFlowNode(
|
|||||||
}
|
}
|
||||||
is NavTarget.ModeratorList -> {
|
is NavTarget.ModeratorList -> {
|
||||||
changeRoomMemberRolesEntryPoint.createNode(
|
changeRoomMemberRolesEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
room = joinedRoom,
|
room = joinedRoom,
|
||||||
listType = ChangeRoomMemberRolesListType.Moderators,
|
listType = ChangeRoomMemberRolesListType.Moderators,
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ class DefaultRoomDetailsEntryPointTest {
|
|||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = plugins,
|
plugins = plugins,
|
||||||
pollHistoryEntryPoint = object : PollHistoryEntryPoint {
|
pollHistoryEntryPoint = object : PollHistoryEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError()
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext) = lambdaError()
|
||||||
},
|
},
|
||||||
elementCallEntryPoint = object : ElementCallEntryPoint {
|
elementCallEntryPoint = object : ElementCallEntryPoint {
|
||||||
override fun startCall(callType: CallType) = lambdaError()
|
override fun startCall(callType: CallType) = lambdaError()
|
||||||
@@ -73,46 +74,49 @@ class DefaultRoomDetailsEntryPointTest {
|
|||||||
room = FakeJoinedRoom(),
|
room = FakeJoinedRoom(),
|
||||||
analyticsService = FakeAnalyticsService(),
|
analyticsService = FakeAnalyticsService(),
|
||||||
messagesEntryPoint = object : MessagesEntryPoint {
|
messagesEntryPoint = object : MessagesEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: MessagesEntryPoint.Params,
|
params: MessagesEntryPoint.Params,
|
||||||
callback: MessagesEntryPoint.Callback,
|
callback: MessagesEntryPoint.Callback,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
},
|
},
|
||||||
knockRequestsListEntryPoint = object : KnockRequestsListEntryPoint {
|
knockRequestsListEntryPoint = object : KnockRequestsListEntryPoint {
|
||||||
override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError()
|
context(parentNode: Node)
|
||||||
|
override fun createNode(buildContext: BuildContext) = lambdaError()
|
||||||
},
|
},
|
||||||
mediaViewerEntryPoint = object : MediaViewerEntryPoint {
|
mediaViewerEntryPoint = object : MediaViewerEntryPoint {
|
||||||
override fun createParamsForAvatar(filename: String, avatarUrl: String) = lambdaError()
|
override fun createParamsForAvatar(filename: String, avatarUrl: String) = lambdaError()
|
||||||
|
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: MediaViewerEntryPoint.Params,
|
params: MediaViewerEntryPoint.Params,
|
||||||
callback: MediaViewerEntryPoint.Callback,
|
callback: MediaViewerEntryPoint.Callback,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
},
|
},
|
||||||
mediaGalleryEntryPoint = object : MediaGalleryEntryPoint {
|
mediaGalleryEntryPoint = object : MediaGalleryEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
callback: MediaGalleryEntryPoint.Callback,
|
callback: MediaGalleryEntryPoint.Callback,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
},
|
},
|
||||||
outgoingVerificationEntryPoint = object : OutgoingVerificationEntryPoint {
|
outgoingVerificationEntryPoint = object : OutgoingVerificationEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: OutgoingVerificationEntryPoint.Params,
|
params: OutgoingVerificationEntryPoint.Params,
|
||||||
callback: OutgoingVerificationEntryPoint.Callback,
|
callback: OutgoingVerificationEntryPoint.Callback,
|
||||||
) = lambdaError()
|
) = lambdaError()
|
||||||
},
|
},
|
||||||
reportRoomEntryPoint = object : ReportRoomEntryPoint {
|
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 {
|
changeRoomMemberRolesEntryPoint = object : ChangeRoomMemberRolesEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
room: JoinedRoom,
|
room: JoinedRoom,
|
||||||
listType: ChangeRoomMemberRolesListType,
|
listType: ChangeRoomMemberRolesListType,
|
||||||
@@ -129,12 +133,13 @@ class DefaultRoomDetailsEntryPointTest {
|
|||||||
val params = RoomDetailsEntryPoint.Params(
|
val params = RoomDetailsEntryPoint.Params(
|
||||||
initialElement = RoomDetailsEntryPoint.InitialTarget.RoomDetails,
|
initialElement = RoomDetailsEntryPoint.InitialTarget.RoomDetails,
|
||||||
)
|
)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(RoomDetailsFlowNode::class.java)
|
assertThat(result).isInstanceOf(RoomDetailsFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(params)
|
assertThat(result.plugins).contains(params)
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ import com.bumble.appyx.core.plugin.Plugin
|
|||||||
import io.element.android.libraries.architecture.FeatureEntryPoint
|
import io.element.android.libraries.architecture.FeatureEntryPoint
|
||||||
|
|
||||||
interface RoomDirectoryEntryPoint : 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 {
|
interface Callback : Plugin {
|
||||||
fun navigateToRoom(roomDescription: RoomDescription)
|
fun navigateToRoom(roomDescription: RoomDescription)
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultRoomDirectoryEntryPoint : RoomDirectoryEntryPoint {
|
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<RoomDirectoryNode>(buildContext, listOf(callback))
|
return parentNode.createNode<RoomDirectoryNode>(buildContext, listOf(callback))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,11 +37,12 @@ class DefaultRoomDirectoryEntryPointTest {
|
|||||||
val callback = object : RoomDirectoryEntryPoint.Callback {
|
val callback = object : RoomDirectoryEntryPoint.Callback {
|
||||||
override fun navigateToRoom(roomDescription: RoomDescription) = lambdaError()
|
override fun navigateToRoom(roomDescription: RoomDescription) = lambdaError()
|
||||||
}
|
}
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(RoomDirectoryNode::class.java)
|
assertThat(result).isInstanceOf(RoomDirectoryNode::class.java)
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ interface SecureBackupEntryPoint : FeatureEntryPoint {
|
|||||||
|
|
||||||
data class Params(val initialElement: InitialTarget) : NodeInputs
|
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 {
|
interface Callback : Plugin {
|
||||||
fun onDone()
|
fun onDone()
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultSecureBackupEntryPoint : SecureBackupEntryPoint {
|
class DefaultSecureBackupEntryPoint : SecureBackupEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: SecureBackupEntryPoint.Params,
|
params: SecureBackupEntryPoint.Params,
|
||||||
callback: SecureBackupEntryPoint.Callback,
|
callback: SecureBackupEntryPoint.Callback,
|
||||||
|
|||||||
@@ -37,12 +37,13 @@ class DefaultSecureBackupEntryPointTest {
|
|||||||
override fun onDone() = lambdaError()
|
override fun onDone() = lambdaError()
|
||||||
}
|
}
|
||||||
val params = SecureBackupEntryPoint.Params(SecureBackupEntryPoint.InitialTarget.ResetIdentity)
|
val params = SecureBackupEntryPoint.Params(SecureBackupEntryPoint.InitialTarget.ResetIdentity)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(SecureBackupFlowNode::class.java)
|
assertThat(result).isInstanceOf(SecureBackupFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(params)
|
assertThat(result.plugins).contains(params)
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ import io.element.android.libraries.matrix.api.core.RoomId
|
|||||||
interface ShareEntryPoint : FeatureEntryPoint {
|
interface ShareEntryPoint : FeatureEntryPoint {
|
||||||
data class Params(val intent: Intent)
|
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 {
|
interface Callback : Plugin {
|
||||||
fun onDone(roomIds: List<RoomId>)
|
fun onDone(roomIds: List<RoomId>)
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope
|
|||||||
|
|
||||||
@ContributesBinding(SessionScope::class)
|
@ContributesBinding(SessionScope::class)
|
||||||
class DefaultShareEntryPoint : ShareEntryPoint {
|
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<ShareNode>(
|
return parentNode.createNode<ShareNode>(
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = listOf(
|
plugins = listOf(
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ class ShareNode(
|
|||||||
}
|
}
|
||||||
|
|
||||||
return roomSelectEntryPoint.createNode(
|
return roomSelectEntryPoint.createNode(
|
||||||
parentNode = this,
|
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
params = RoomSelectEntryPoint.Params(mode = RoomSelectMode.Share),
|
params = RoomSelectEntryPoint.Params(mode = RoomSelectMode.Share),
|
||||||
callback = callback,
|
callback = callback,
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ class DefaultShareEntryPointTest {
|
|||||||
plugins = plugins,
|
plugins = plugins,
|
||||||
presenterFactory = { createSharePresenter() },
|
presenterFactory = { createSharePresenter() },
|
||||||
roomSelectEntryPoint = object : RoomSelectEntryPoint {
|
roomSelectEntryPoint = object : RoomSelectEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
override fun createNode(
|
override fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
params: RoomSelectEntryPoint.Params,
|
params: RoomSelectEntryPoint.Params,
|
||||||
callback: RoomSelectEntryPoint.Callback,
|
callback: RoomSelectEntryPoint.Callback,
|
||||||
@@ -53,12 +53,13 @@ class DefaultShareEntryPointTest {
|
|||||||
val params = ShareEntryPoint.Params(
|
val params = ShareEntryPoint.Params(
|
||||||
intent = Intent(),
|
intent = Intent(),
|
||||||
)
|
)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(ShareNode::class.java)
|
assertThat(result).isInstanceOf(ShareNode::class.java)
|
||||||
assertThat(result.plugins).contains(ShareNode.Inputs(params.intent))
|
assertThat(result.plugins).contains(ShareNode.Inputs(params.intent))
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
|
|||||||
@@ -17,5 +17,6 @@ interface SignedOutEntryPoint : FeatureEntryPoint {
|
|||||||
val sessionId: SessionId,
|
val sessionId: SessionId,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun createNode(parentNode: Node, buildContext: BuildContext, params: Params): Node
|
context(parentNode: Node)
|
||||||
|
fun createNode(buildContext: BuildContext, params: Params): Node
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
|||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class DefaultSignedOutEntryPoint : SignedOutEntryPoint {
|
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<SignedOutNode>(
|
return parentNode.createNode<SignedOutNode>(
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = listOf(SignedOutNode.Inputs(params.sessionId))
|
plugins = listOf(SignedOutNode.Inputs(params.sessionId))
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ class DefaultSignedOutEntryPointTest {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
val params = SignedOutEntryPoint.Params(A_SESSION_ID)
|
val params = SignedOutEntryPoint.Params(A_SESSION_ID)
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
params = params,
|
params = params,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(SignedOutNode::class.java)
|
assertThat(result).isInstanceOf(SignedOutNode::class.java)
|
||||||
assertThat(result.plugins).contains(SignedOutNode.Inputs(params.sessionId))
|
assertThat(result.plugins).contains(SignedOutNode.Inputs(params.sessionId))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ import io.element.android.libraries.architecture.NodeInputs
|
|||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
|
||||||
interface SpaceEntryPoint : FeatureEntryPoint {
|
interface SpaceEntryPoint : FeatureEntryPoint {
|
||||||
|
context(parentNode: Node)
|
||||||
fun createNode(
|
fun createNode(
|
||||||
parentNode: Node,
|
|
||||||
buildContext: BuildContext,
|
buildContext: BuildContext,
|
||||||
inputs: Inputs,
|
inputs: Inputs,
|
||||||
callback: Callback
|
callback: Callback
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope
|
|||||||
|
|
||||||
@ContributesBinding(SessionScope::class)
|
@ContributesBinding(SessionScope::class)
|
||||||
class DefaultSpaceEntryPoint : SpaceEntryPoint {
|
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<SpaceFlowNode>(
|
return parentNode.createNode<SpaceFlowNode>(
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = listOf(inputs, callback),
|
plugins = listOf(inputs, callback),
|
||||||
|
|||||||
@@ -48,12 +48,13 @@ class DefaultSpaceEntryPointTest {
|
|||||||
override fun navigateToRoomDetails() = lambdaError()
|
override fun navigateToRoomDetails() = lambdaError()
|
||||||
override fun navigateToRoomMemberList() = lambdaError()
|
override fun navigateToRoomMemberList() = lambdaError()
|
||||||
}
|
}
|
||||||
val result = entryPoint.createNode(
|
val result = with(parentNode) {
|
||||||
parentNode = parentNode,
|
entryPoint.createNode(
|
||||||
buildContext = BuildContext.root(null),
|
buildContext = BuildContext.root(null),
|
||||||
inputs = nodeInputs,
|
inputs = nodeInputs,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
assertThat(result).isInstanceOf(SpaceFlowNode::class.java)
|
assertThat(result).isInstanceOf(SpaceFlowNode::class.java)
|
||||||
assertThat(result.plugins).contains(nodeInputs)
|
assertThat(result.plugins).contains(nodeInputs)
|
||||||
assertThat(result.plugins).contains(callback)
|
assertThat(result.plugins).contains(callback)
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ import io.element.android.libraries.architecture.FeatureEntryPoint
|
|||||||
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
|
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
|
||||||
|
|
||||||
interface StartChatEntryPoint : FeatureEntryPoint {
|
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 {
|
interface Callback : Plugin {
|
||||||
fun onRoomCreated(roomIdOrAlias: RoomIdOrAlias, serverNames: List<String>)
|
fun onRoomCreated(roomIdOrAlias: RoomIdOrAlias, serverNames: List<String>)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user