From 5150f38dfe44449e1bc4e89030a6d30f68681eee Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 21 Nov 2025 15:46:10 +0100 Subject: [PATCH] Remove BaseCallback, it's actually not ideal when looking for usage. --- .../preferences/impl/PreferencesFlowNode.kt | 7 +++++-- .../user/editprofile/EditUserProfileNode.kt | 7 +++++-- .../architecture/navigation/BaseCallback.kt | 17 ----------------- 3 files changed, 10 insertions(+), 21 deletions(-) delete mode 100644 libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/navigation/BaseCallback.kt diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt index 5d4e55e888..783d732036 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt @@ -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(buildContext, listOf(inputs, callback)) } NavTarget.LockScreenSettings -> { diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileNode.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileNode.kt index dcbdc14031..27adc2e32e 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileNode.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileNode.kt @@ -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().matrixUser - val callback: BaseCallback = callback() + val callback: Callback = callback() val presenter = presenterFactory.create( matrixUser = matrixUser, navigator = this, diff --git a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/navigation/BaseCallback.kt b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/navigation/BaseCallback.kt deleted file mode 100644 index 13b102b46d..0000000000 --- a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/navigation/BaseCallback.kt +++ /dev/null @@ -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() -}