diff --git a/features/analytics/api/src/main/kotlin/io/element/android/features/analytics/api/preferences/AnalyticsPreferencesPresenter.kt b/features/analytics/api/src/main/kotlin/io/element/android/features/analytics/api/preferences/AnalyticsPreferencesPresenter.kt deleted file mode 100644 index 81108b2376..0000000000 --- a/features/analytics/api/src/main/kotlin/io/element/android/features/analytics/api/preferences/AnalyticsPreferencesPresenter.kt +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright 2023, 2024 New Vector Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only - * Please see LICENSE in the repository root for full details. - */ - -package io.element.android.features.analytics.api.preferences - -import io.element.android.libraries.architecture.Presenter - -interface AnalyticsPreferencesPresenter : Presenter diff --git a/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/di/AnalyticsModule.kt b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/di/AnalyticsModule.kt new file mode 100644 index 0000000000..a8172896f8 --- /dev/null +++ b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/di/AnalyticsModule.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2024 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only + * Please see LICENSE in the repository root for full details. + */ + +package io.element.android.features.analytics.impl.di + +import com.squareup.anvil.annotations.ContributesTo +import dagger.Binds +import dagger.Module +import io.element.android.features.analytics.api.preferences.AnalyticsPreferencesState +import io.element.android.features.analytics.impl.preferences.AnalyticsPreferencesPresenter +import io.element.android.libraries.architecture.Presenter +import io.element.android.libraries.di.AppScope + +@ContributesTo(AppScope::class) +@Module +interface AnalyticsModule { + @Binds + fun bindAnalyticsPreferencesPresenter(presenter: AnalyticsPreferencesPresenter): Presenter +} diff --git a/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/preferences/DefaultAnalyticsPreferencesPresenter.kt b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/preferences/AnalyticsPreferencesPresenter.kt similarity index 83% rename from features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/preferences/DefaultAnalyticsPreferencesPresenter.kt rename to features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/preferences/AnalyticsPreferencesPresenter.kt index b715f73f6f..22cb8f603c 100644 --- a/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/preferences/DefaultAnalyticsPreferencesPresenter.kt +++ b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/preferences/AnalyticsPreferencesPresenter.kt @@ -10,23 +10,20 @@ package io.element.android.features.analytics.impl.preferences import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.rememberCoroutineScope -import com.squareup.anvil.annotations.ContributesBinding import io.element.android.appconfig.AnalyticsConfig import io.element.android.features.analytics.api.AnalyticsOptInEvents -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 io.element.android.libraries.core.meta.BuildMeta -import io.element.android.libraries.di.AppScope import io.element.android.services.analytics.api.AnalyticsService import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import javax.inject.Inject -@ContributesBinding(AppScope::class) -class DefaultAnalyticsPreferencesPresenter @Inject constructor( +class AnalyticsPreferencesPresenter @Inject constructor( private val analyticsService: AnalyticsService, private val buildMeta: BuildMeta, -) : AnalyticsPreferencesPresenter { +) : Presenter { @Composable override fun present(): AnalyticsPreferencesState { val localCoroutineScope = rememberCoroutineScope() diff --git a/features/analytics/impl/src/test/kotlin/io/element/android/features/analytics/impl/preferences/AnalyticsPreferencesPresenterTest.kt b/features/analytics/impl/src/test/kotlin/io/element/android/features/analytics/impl/preferences/AnalyticsPreferencesPresenterTest.kt index 14f6badfe8..1aa2bc26b4 100644 --- a/features/analytics/impl/src/test/kotlin/io/element/android/features/analytics/impl/preferences/AnalyticsPreferencesPresenterTest.kt +++ b/features/analytics/impl/src/test/kotlin/io/element/android/features/analytics/impl/preferences/AnalyticsPreferencesPresenterTest.kt @@ -25,7 +25,7 @@ class AnalyticsPreferencesPresenterTest { @Test fun `present - initial state available`() = runTest { - val presenter = DefaultAnalyticsPreferencesPresenter( + val presenter = AnalyticsPreferencesPresenter( FakeAnalyticsService(isEnabled = true, didAskUserConsent = true), aBuildMeta() ) @@ -41,7 +41,7 @@ class AnalyticsPreferencesPresenterTest { @Test fun `present - initial state not available`() = runTest { - val presenter = DefaultAnalyticsPreferencesPresenter( + val presenter = AnalyticsPreferencesPresenter( FakeAnalyticsService(isEnabled = false, didAskUserConsent = false), aBuildMeta() ) @@ -55,7 +55,7 @@ class AnalyticsPreferencesPresenterTest { @Test fun `present - enable and disable`() = runTest { - val presenter = DefaultAnalyticsPreferencesPresenter( + val presenter = AnalyticsPreferencesPresenter( FakeAnalyticsService(isEnabled = true, didAskUserConsent = true), aBuildMeta() ) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsPresenter.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsPresenter.kt index c7d9c521fa..6056e53bf9 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsPresenter.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsPresenter.kt @@ -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, ) : Presenter { @Composable override fun present(): AnalyticsSettingsState { - val analyticsState = analyticsPresenter.present() + val analyticsPreferencesState = analyticsPreferencesPresenter.present() return AnalyticsSettingsState( - analyticsState = analyticsState, + analyticsPreferencesState = analyticsPreferencesState, ) } } diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsState.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsState.kt index f86e5aca5f..948369f8b8 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsState.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsState.kt @@ -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, ) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsStateProvider.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsStateProvider.kt index 97f8a72785..fc58b7a255 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsStateProvider.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/analytics/AnalyticsSettingsStateProvider.kt @@ -18,5 +18,5 @@ open class AnalyticsSettingsStateProvider : PreviewParameterProvider