Remove BaseNavigator, it's actually not ideal when looking for usage.
This commit is contained in:
parent
5150f38dfe
commit
13af794872
5 changed files with 24 additions and 15 deletions
|
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue