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

This commit is contained in:
Benoit Marty 2025-11-21 15:50:42 +01:00
parent 5150f38dfe
commit 13af794872
5 changed files with 24 additions and 15 deletions

View file

@ -5,11 +5,8 @@
* Please see LICENSE files in the repository root for full details. * 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
/** interface EditUserProfileNavigator {
* Base navigator interface to be implemented by nodes to handle navigation actions from presenters.
*/
fun interface BaseNavigator {
fun close() fun close()
} }

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.NodeInputs
import io.element.android.libraries.architecture.callback import io.element.android.libraries.architecture.callback
import io.element.android.libraries.architecture.inputs 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.di.SessionScope
import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.api.user.MatrixUser
@ -30,7 +29,7 @@ class EditUserProfileNode(
@Assisted plugins: List<Plugin>, @Assisted plugins: List<Plugin>,
presenterFactory: EditUserProfilePresenter.Factory, presenterFactory: EditUserProfilePresenter.Factory,
) : Node(buildContext, plugins = plugins), ) : Node(buildContext, plugins = plugins),
BaseNavigator { EditUserProfileNavigator {
data class Inputs( data class Inputs(
val matrixUser: MatrixUser val matrixUser: MatrixUser
) : NodeInputs ) : NodeInputs

View file

@ -26,7 +26,6 @@ import dev.zacsweers.metro.AssistedInject
import io.element.android.libraries.androidutils.file.TemporaryUriDeleter import io.element.android.libraries.androidutils.file.TemporaryUriDeleter
import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.architecture.Presenter 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.architecture.runCatchingUpdatingState
import io.element.android.libraries.core.extensions.runCatchingExceptions import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.core.mimetype.MimeTypes import io.element.android.libraries.core.mimetype.MimeTypes
@ -46,7 +45,7 @@ import timber.log.Timber
@AssistedInject @AssistedInject
class EditUserProfilePresenter( class EditUserProfilePresenter(
@Assisted private val matrixUser: MatrixUser, @Assisted private val matrixUser: MatrixUser,
@Assisted private val navigator: BaseNavigator, @Assisted private val navigator: EditUserProfileNavigator,
private val matrixClient: MatrixClient, private val matrixClient: MatrixClient,
private val mediaPickerProvider: PickerProvider, private val mediaPickerProvider: PickerProvider,
private val mediaPreProcessor: MediaPreProcessor, private val mediaPreProcessor: MediaPreProcessor,
@ -61,7 +60,7 @@ class EditUserProfilePresenter(
interface Factory { interface Factory {
fun create( fun create(
matrixUser: MatrixUser, matrixUser: MatrixUser,
navigator: BaseNavigator, navigator: EditUserProfileNavigator,
): EditUserProfilePresenter ): EditUserProfilePresenter
} }

View file

@ -12,7 +12,6 @@ import android.net.Uri
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import io.element.android.libraries.androidutils.file.TemporaryUriDeleter import io.element.android.libraries.androidutils.file.TemporaryUriDeleter
import io.element.android.libraries.architecture.AsyncAction 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.MatrixClient
import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.test.AN_AVATAR_URL 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.consumeItemsUntilPredicate
import io.element.android.tests.testutils.consumeItemsUntilTimeout import io.element.android.tests.testutils.consumeItemsUntilTimeout
import io.element.android.tests.testutils.fake.FakeTemporaryUriDeleter 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.lambdaRecorder
import io.element.android.tests.testutils.lambda.value import io.element.android.tests.testutils.lambda.value
import io.element.android.tests.testutils.test import io.element.android.tests.testutils.test
@ -79,7 +77,7 @@ class EditUserProfilePresenterTest {
private fun createEditUserProfilePresenter( private fun createEditUserProfilePresenter(
matrixClient: MatrixClient = FakeMatrixClient(), matrixClient: MatrixClient = FakeMatrixClient(),
navigator: BaseNavigator = BaseNavigator { lambdaError() }, navigator: EditUserProfileNavigator = FakeEditUserProfileNavigator(),
matrixUser: MatrixUser = aMatrixUser(), matrixUser: MatrixUser = aMatrixUser(),
permissionsPresenter: PermissionsPresenter = FakePermissionsPresenter(), permissionsPresenter: PermissionsPresenter = FakePermissionsPresenter(),
temporaryUriDeleter: TemporaryUriDeleter = FakeTemporaryUriDeleter(), temporaryUriDeleter: TemporaryUriDeleter = FakeTemporaryUriDeleter(),
@ -122,7 +120,7 @@ class EditUserProfilePresenterTest {
val closeLambda = lambdaRecorder<Unit> {} val closeLambda = lambdaRecorder<Unit> {}
val presenter = createEditUserProfilePresenter( val presenter = createEditUserProfilePresenter(
matrixUser = user, matrixUser = user,
navigator = BaseNavigator { closeLambda() }, navigator = FakeEditUserProfileNavigator(closeLambda),
) )
presenter.test { presenter.test {
val initialState = awaitItem() val initialState = awaitItem()
@ -137,7 +135,7 @@ class EditUserProfilePresenterTest {
val closeLambda = lambdaRecorder<Unit> {} val closeLambda = lambdaRecorder<Unit> {}
val presenter = createEditUserProfilePresenter( val presenter = createEditUserProfilePresenter(
matrixUser = user, matrixUser = user,
navigator = BaseNavigator { closeLambda() }, navigator = FakeEditUserProfileNavigator(closeLambda),
) )
presenter.test { presenter.test {
val initialState = awaitItem() val initialState = awaitItem()

View file

@ -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()
}