Remove dependencies to other presenters to AnalyticsPreferencesPresenter.

This commit is contained in:
Benoit Marty 2024-10-07 09:53:34 +02:00 committed by Benoit Marty
parent 241dae14f4
commit 8db9c22f97
9 changed files with 39 additions and 34 deletions

View file

@ -8,19 +8,19 @@
package io.element.android.features.preferences.impl.analytics
import androidx.compose.runtime.Composable
import io.element.android.features.analytics.api.preferences.AnalyticsPreferencesPresenter
import io.element.android.features.analytics.api.preferences.AnalyticsPreferencesState
import io.element.android.libraries.architecture.Presenter
import javax.inject.Inject
class AnalyticsSettingsPresenter @Inject constructor(
private val analyticsPresenter: AnalyticsPreferencesPresenter,
private val analyticsPreferencesPresenter: Presenter<AnalyticsPreferencesState>,
) : Presenter<AnalyticsSettingsState> {
@Composable
override fun present(): AnalyticsSettingsState {
val analyticsState = analyticsPresenter.present()
val analyticsPreferencesState = analyticsPreferencesPresenter.present()
return AnalyticsSettingsState(
analyticsState = analyticsState,
analyticsPreferencesState = analyticsPreferencesState,
)
}
}

View file

@ -11,5 +11,5 @@ import io.element.android.features.analytics.api.preferences.AnalyticsPreference
// Do not use default value, so no member get forgotten in the presenters.
data class AnalyticsSettingsState(
val analyticsState: AnalyticsPreferencesState,
val analyticsPreferencesState: AnalyticsPreferencesState,
)

View file

@ -18,5 +18,5 @@ open class AnalyticsSettingsStateProvider : PreviewParameterProvider<AnalyticsSe
}
fun aAnalyticsSettingsState() = AnalyticsSettingsState(
analyticsState = aAnalyticsPreferencesState(),
analyticsPreferencesState = aAnalyticsPreferencesState(),
)

View file

@ -29,7 +29,7 @@ fun AnalyticsSettingsView(
title = stringResource(id = CommonStrings.common_analytics)
) {
AnalyticsPreferencesView(
state = state.analyticsState,
state = state.analyticsPreferencesState,
)
}
}

View file

@ -11,9 +11,7 @@ import app.cash.molecule.RecompositionMode
import app.cash.molecule.moleculeFlow
import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.features.analytics.impl.preferences.DefaultAnalyticsPreferencesPresenter
import io.element.android.libraries.matrix.test.core.aBuildMeta
import io.element.android.services.analytics.test.FakeAnalyticsService
import io.element.android.features.analytics.api.preferences.aAnalyticsPreferencesState
import io.element.android.tests.testutils.WarmUpRule
import kotlinx.coroutines.test.runTest
import org.junit.Rule
@ -25,15 +23,14 @@ class AnalyticsSettingsPresenterTest {
@Test
fun `present - initial state`() = runTest {
val analyticsPresenter = DefaultAnalyticsPreferencesPresenter(FakeAnalyticsService(), aBuildMeta())
val presenter = AnalyticsSettingsPresenter(
analyticsPresenter,
analyticsPreferencesPresenter = { aAnalyticsPreferencesState() },
)
moleculeFlow(RecompositionMode.Immediate) {
presenter.present()
}.test {
val initialState = awaitItem()
assertThat(initialState.analyticsState.isEnabled).isFalse()
assertThat(initialState.analyticsPreferencesState.isEnabled).isFalse()
}
}
}