diff --git a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/navigation/BaseNavigator.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileNavigator.kt similarity index 52% rename from libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/navigation/BaseNavigator.kt rename to features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileNavigator.kt index e5dec55c89..2935bce747 100644 --- a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/navigation/BaseNavigator.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileNavigator.kt @@ -5,11 +5,8 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.libraries.architecture.navigation +package io.element.android.features.preferences.impl.user.editprofile -/** - * Base navigator interface to be implemented by nodes to handle navigation actions from presenters. - */ -fun interface BaseNavigator { +interface EditUserProfileNavigator { fun close() } 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 27adc2e32e..2303abb06e 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.BaseNavigator import io.element.android.libraries.di.SessionScope import io.element.android.libraries.matrix.api.user.MatrixUser @@ -30,7 +29,7 @@ class EditUserProfileNode( @Assisted plugins: List, presenterFactory: EditUserProfilePresenter.Factory, ) : Node(buildContext, plugins = plugins), - BaseNavigator { + EditUserProfileNavigator { data class Inputs( val matrixUser: MatrixUser ) : NodeInputs diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenter.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenter.kt index 46298c96a2..59607139d7 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenter.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenter.kt @@ -26,7 +26,6 @@ import dev.zacsweers.metro.AssistedInject import io.element.android.libraries.androidutils.file.TemporaryUriDeleter import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.Presenter -import io.element.android.libraries.architecture.navigation.BaseNavigator import io.element.android.libraries.architecture.runCatchingUpdatingState import io.element.android.libraries.core.extensions.runCatchingExceptions import io.element.android.libraries.core.mimetype.MimeTypes @@ -46,7 +45,7 @@ import timber.log.Timber @AssistedInject class EditUserProfilePresenter( @Assisted private val matrixUser: MatrixUser, - @Assisted private val navigator: BaseNavigator, + @Assisted private val navigator: EditUserProfileNavigator, private val matrixClient: MatrixClient, private val mediaPickerProvider: PickerProvider, private val mediaPreProcessor: MediaPreProcessor, @@ -61,7 +60,7 @@ class EditUserProfilePresenter( interface Factory { fun create( matrixUser: MatrixUser, - navigator: BaseNavigator, + navigator: EditUserProfileNavigator, ): EditUserProfilePresenter } diff --git a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenterTest.kt b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenterTest.kt index a39b2013b6..3432bac29f 100644 --- a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenterTest.kt +++ b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenterTest.kt @@ -12,7 +12,6 @@ import android.net.Uri import com.google.common.truth.Truth.assertThat import io.element.android.libraries.androidutils.file.TemporaryUriDeleter import io.element.android.libraries.architecture.AsyncAction -import io.element.android.libraries.architecture.navigation.BaseNavigator import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.test.AN_AVATAR_URL @@ -31,7 +30,6 @@ import io.element.android.tests.testutils.WarmUpRule import io.element.android.tests.testutils.consumeItemsUntilPredicate import io.element.android.tests.testutils.consumeItemsUntilTimeout import io.element.android.tests.testutils.fake.FakeTemporaryUriDeleter -import io.element.android.tests.testutils.lambda.lambdaError import io.element.android.tests.testutils.lambda.lambdaRecorder import io.element.android.tests.testutils.lambda.value import io.element.android.tests.testutils.test @@ -79,7 +77,7 @@ class EditUserProfilePresenterTest { private fun createEditUserProfilePresenter( matrixClient: MatrixClient = FakeMatrixClient(), - navigator: BaseNavigator = BaseNavigator { lambdaError() }, + navigator: EditUserProfileNavigator = FakeEditUserProfileNavigator(), matrixUser: MatrixUser = aMatrixUser(), permissionsPresenter: PermissionsPresenter = FakePermissionsPresenter(), temporaryUriDeleter: TemporaryUriDeleter = FakeTemporaryUriDeleter(), @@ -122,7 +120,7 @@ class EditUserProfilePresenterTest { val closeLambda = lambdaRecorder {} val presenter = createEditUserProfilePresenter( matrixUser = user, - navigator = BaseNavigator { closeLambda() }, + navigator = FakeEditUserProfileNavigator(closeLambda), ) presenter.test { val initialState = awaitItem() @@ -137,7 +135,7 @@ class EditUserProfilePresenterTest { val closeLambda = lambdaRecorder {} val presenter = createEditUserProfilePresenter( matrixUser = user, - navigator = BaseNavigator { closeLambda() }, + navigator = FakeEditUserProfileNavigator(closeLambda), ) presenter.test { val initialState = awaitItem() diff --git a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/user/editprofile/FakeEditUserProfileNavigator.kt b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/user/editprofile/FakeEditUserProfileNavigator.kt new file mode 100644 index 0000000000..7b34e904a1 --- /dev/null +++ b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/user/editprofile/FakeEditUserProfileNavigator.kt @@ -0,0 +1,16 @@ +/* + * 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.features.preferences.impl.user.editprofile + +import io.element.android.tests.testutils.lambda.lambdaError + +class FakeEditUserProfileNavigator( + val closeLambda: () -> Unit = { lambdaError() } +) : EditUserProfileNavigator { + override fun close() = closeLambda() +}