Skip to content

Commit 9772535

Browse files
committed
Remove dependencies to other presenters to ChangeServerPresenter.
1 parent 8db9c22 commit 9772535

File tree

5 files changed

+38
-39
lines changed

5 files changed

+38
-39
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* Copyright 2024 New Vector Ltd.
3+
*
4+
* SPDX-License-Identifier: AGPL-3.0-only
5+
* Please see LICENSE in the repository root for full details.
6+
*/
7+
8+
package io.element.android.features.login.impl.di
9+
10+
import com.squareup.anvil.annotations.ContributesTo
11+
import dagger.Binds
12+
import dagger.Module
13+
import io.element.android.features.login.impl.changeserver.ChangeServerPresenter
14+
import io.element.android.features.login.impl.changeserver.ChangeServerState
15+
import io.element.android.libraries.architecture.Presenter
16+
import io.element.android.libraries.di.AppScope
17+
18+
@ContributesTo(AppScope::class)
19+
@Module
20+
interface LoginModule {
21+
@Binds
22+
fun bindChangeServerPresenter(presenter: ChangeServerPresenter): Presenter<ChangeServerState>
23+
}

features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/changeaccountprovider/ChangeAccountProviderPresenter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ package io.element.android.features.login.impl.screens.changeaccountprovider
1010
import androidx.compose.runtime.Composable
1111
import io.element.android.appconfig.AuthenticationConfig
1212
import io.element.android.features.login.impl.accountprovider.AccountProvider
13-
import io.element.android.features.login.impl.changeserver.ChangeServerPresenter
13+
import io.element.android.features.login.impl.changeserver.ChangeServerState
1414
import io.element.android.libraries.architecture.Presenter
1515
import javax.inject.Inject
1616

1717
class ChangeAccountProviderPresenter @Inject constructor(
18-
private val changeServerPresenter: ChangeServerPresenter,
18+
private val changeServerPresenter: Presenter<ChangeServerState>,
1919
) : Presenter<ChangeAccountProviderState> {
2020
@Composable
2121
override fun present(): ChangeAccountProviderState {

features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/searchaccountprovider/SearchAccountProviderPresenter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import androidx.compose.runtime.mutableStateOf
1515
import androidx.compose.runtime.remember
1616
import androidx.compose.runtime.saveable.rememberSaveable
1717
import androidx.compose.runtime.setValue
18-
import io.element.android.features.login.impl.changeserver.ChangeServerPresenter
18+
import io.element.android.features.login.impl.changeserver.ChangeServerState
1919
import io.element.android.features.login.impl.resolver.HomeserverData
2020
import io.element.android.features.login.impl.resolver.HomeserverResolver
2121
import io.element.android.libraries.architecture.AsyncData
@@ -27,7 +27,7 @@ import javax.inject.Inject
2727

2828
class SearchAccountProviderPresenter @Inject constructor(
2929
private val homeserverResolver: HomeserverResolver,
30-
private val changeServerPresenter: ChangeServerPresenter,
30+
private val changeServerPresenter: Presenter<ChangeServerState>,
3131
) : Presenter<SearchAccountProviderState> {
3232
@Composable
3333
override fun present(): SearchAccountProviderState {

features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/changeaccountprovider/ChangeAccountProviderPresenterTest.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ import app.cash.molecule.moleculeFlow
1212
import app.cash.turbine.test
1313
import com.google.common.truth.Truth.assertThat
1414
import io.element.android.features.login.impl.accountprovider.AccountProvider
15-
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
16-
import io.element.android.features.login.impl.changeserver.ChangeServerPresenter
17-
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
15+
import io.element.android.features.login.impl.changeserver.aChangeServerState
1816
import io.element.android.tests.testutils.WarmUpRule
1917
import kotlinx.coroutines.test.runTest
2018
import org.junit.Rule
@@ -26,12 +24,8 @@ class ChangeAccountProviderPresenterTest {
2624

2725
@Test
2826
fun `present - initial state`() = runTest {
29-
val changeServerPresenter = ChangeServerPresenter(
30-
FakeMatrixAuthenticationService(),
31-
AccountProviderDataSource()
32-
)
3327
val presenter = ChangeAccountProviderPresenter(
34-
changeServerPresenter
28+
changeServerPresenter = { aChangeServerState() }
3529
)
3630
moleculeFlow(RecompositionMode.Immediate) {
3731
presenter.present()

features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/searchaccountprovider/SearchAccountProviderPresenterTest.kt

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,13 @@ import app.cash.molecule.RecompositionMode
1111
import app.cash.molecule.moleculeFlow
1212
import app.cash.turbine.test
1313
import com.google.common.truth.Truth.assertThat
14-
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
15-
import io.element.android.features.login.impl.changeserver.ChangeServerPresenter
14+
import io.element.android.features.login.impl.changeserver.aChangeServerState
1615
import io.element.android.features.login.impl.resolver.HomeserverResolver
1716
import io.element.android.features.login.impl.resolver.network.FakeWellknownRequest
1817
import io.element.android.features.login.impl.resolver.network.WellKnown
1918
import io.element.android.features.login.impl.resolver.network.WellKnownBaseConfig
2019
import io.element.android.libraries.architecture.AsyncData
2120
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
22-
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
2321
import io.element.android.tests.testutils.WarmUpRule
2422
import io.element.android.tests.testutils.testCoroutineDispatchers
2523
import kotlinx.coroutines.test.runTest
@@ -33,13 +31,9 @@ class SearchAccountProviderPresenterTest {
3331
@Test
3432
fun `present - initial state`() = runTest {
3533
val fakeWellknownRequest = FakeWellknownRequest()
36-
val changeServerPresenter = ChangeServerPresenter(
37-
FakeMatrixAuthenticationService(),
38-
AccountProviderDataSource()
39-
)
4034
val presenter = SearchAccountProviderPresenter(
41-
HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
42-
changeServerPresenter
35+
homeserverResolver = HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
36+
changeServerPresenter = { aChangeServerState() }
4337
)
4438
moleculeFlow(RecompositionMode.Immediate) {
4539
presenter.present()
@@ -53,13 +47,9 @@ class SearchAccountProviderPresenterTest {
5347
@Test
5448
fun `present - enter text no result`() = runTest {
5549
val fakeWellknownRequest = FakeWellknownRequest()
56-
val changeServerPresenter = ChangeServerPresenter(
57-
FakeMatrixAuthenticationService(),
58-
AccountProviderDataSource()
59-
)
6050
val presenter = SearchAccountProviderPresenter(
61-
HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
62-
changeServerPresenter
51+
homeserverResolver = HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
52+
changeServerPresenter = { aChangeServerState() }
6353
)
6454
moleculeFlow(RecompositionMode.Immediate) {
6555
presenter.present()
@@ -77,13 +67,9 @@ class SearchAccountProviderPresenterTest {
7767
@Test
7868
fun `present - enter valid url no wellknown`() = runTest {
7969
val fakeWellknownRequest = FakeWellknownRequest()
80-
val changeServerPresenter = ChangeServerPresenter(
81-
FakeMatrixAuthenticationService(),
82-
AccountProviderDataSource()
83-
)
8470
val presenter = SearchAccountProviderPresenter(
85-
HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
86-
changeServerPresenter
71+
homeserverResolver = HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
72+
changeServerPresenter = { aChangeServerState() }
8773
)
8874
moleculeFlow(RecompositionMode.Immediate) {
8975
presenter.present()
@@ -112,13 +98,9 @@ class SearchAccountProviderPresenterTest {
11298
"https://test.io" to aWellKnown(),
11399
)
114100
)
115-
val changeServerPresenter = ChangeServerPresenter(
116-
FakeMatrixAuthenticationService(),
117-
AccountProviderDataSource()
118-
)
119101
val presenter = SearchAccountProviderPresenter(
120-
HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
121-
changeServerPresenter
102+
homeserverResolver = HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
103+
changeServerPresenter = { aChangeServerState() }
122104
)
123105
moleculeFlow(RecompositionMode.Immediate) {
124106
presenter.present()

0 commit comments

Comments
 (0)