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.
*/
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()
}

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.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<Plugin>,
presenterFactory: EditUserProfilePresenter.Factory,
) : Node(buildContext, plugins = plugins),
BaseNavigator {
EditUserProfileNavigator {
data class Inputs(
val matrixUser: MatrixUser
) : 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.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
}

View File

@@ -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<Unit> {}
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<Unit> {}
val presenter = createEditUserProfilePresenter(
matrixUser = user,
navigator = BaseNavigator { closeLambda() },
navigator = FakeEditUserProfileNavigator(closeLambda),
)
presenter.test {
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()
}