Remove BaseCallback, it's actually not ideal when looking for usage.

This commit is contained in:
Benoit Marty
2025-11-21 15:46:10 +01:00
parent c31db1112c
commit 5150f38dfe
3 changed files with 10 additions and 21 deletions

View File

@@ -40,7 +40,6 @@ import io.element.android.libraries.architecture.BaseFlowNode
import io.element.android.libraries.architecture.appyx.canPop
import io.element.android.libraries.architecture.callback
import io.element.android.libraries.architecture.createNode
import io.element.android.libraries.architecture.navigation.BaseCallback
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
@@ -268,7 +267,11 @@ class PreferencesFlowNode(
}
is NavTarget.UserProfile -> {
val inputs = EditUserProfileNode.Inputs(navTarget.matrixUser)
val callback = BaseCallback { backstack.pop() }
val callback = object : EditUserProfileNode.Callback {
override fun onDone() {
backstack.pop()
}
}
createNode<EditUserProfileNode>(buildContext, listOf(inputs, callback))
}
NavTarget.LockScreenSettings -> {

View File

@@ -19,7 +19,6 @@ import io.element.android.annotations.ContributesNode
import io.element.android.libraries.architecture.NodeInputs
import io.element.android.libraries.architecture.callback
import io.element.android.libraries.architecture.inputs
import io.element.android.libraries.architecture.navigation.BaseCallback
import io.element.android.libraries.architecture.navigation.BaseNavigator
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.user.MatrixUser
@@ -36,8 +35,12 @@ class EditUserProfileNode(
val matrixUser: MatrixUser
) : NodeInputs
interface Callback : Plugin {
fun onDone()
}
val matrixUser = inputs<Inputs>().matrixUser
val callback: BaseCallback = callback()
val callback: Callback = callback()
val presenter = presenterFactory.create(
matrixUser = matrixUser,
navigator = this,

View File

@@ -1,17 +0,0 @@
/*
* Copyright (c) 2025 Element Creations Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.architecture.navigation
import com.bumble.appyx.core.plugin.Plugin
/**
* Base callback interface to be implemented by callers to handle results from nodes.
*/
fun interface BaseCallback : Plugin {
fun onDone()
}