diff --git a/mail-detail/domain/src/main/kotlin/ch/protonmail/android/maildetail/domain/usecase/IsShowSingleMessageMode.kt b/mail-detail/domain/src/main/kotlin/ch/protonmail/android/maildetail/domain/usecase/IsShowSingleMessageMode.kt index a67d83362f..421585d6e7 100644 --- a/mail-detail/domain/src/main/kotlin/ch/protonmail/android/maildetail/domain/usecase/IsShowSingleMessageMode.kt +++ b/mail-detail/domain/src/main/kotlin/ch/protonmail/android/maildetail/domain/usecase/IsShowSingleMessageMode.kt @@ -18,22 +18,14 @@ package ch.protonmail.android.maildetail.domain.usecase -import ch.protonmail.android.mailfeatureflags.domain.annotation.IsMessageDetailEnabled -import ch.protonmail.android.mailfeatureflags.domain.model.FeatureFlag import ch.protonmail.android.maillabel.domain.model.ViewMode import ch.protonmail.android.mailsettings.domain.usecase.GetUserPreferredViewMode import me.proton.core.domain.entity.UserId import javax.inject.Inject class IsShowSingleMessageMode @Inject constructor( - @IsMessageDetailEnabled private val isMessageDetailFeatureEnabled: FeatureFlag, private val getUserPreferredViewMode: GetUserPreferredViewMode ) { - suspend operator fun invoke(userId: UserId): Boolean { - val isFeatureEnabled = isMessageDetailFeatureEnabled.get() - val isMessageViewMode = getUserPreferredViewMode(userId) == ViewMode.NoConversationGrouping - - return isFeatureEnabled && isMessageViewMode - } + suspend operator fun invoke(userId: UserId) = getUserPreferredViewMode(userId) == ViewMode.NoConversationGrouping } diff --git a/mail-detail/presentation/src/test/kotlin/ch/protonmail/android/maildetail/presentation/usecase/IsShowSingleMessageModeTest.kt b/mail-detail/presentation/src/test/kotlin/ch/protonmail/android/maildetail/presentation/usecase/IsShowSingleMessageModeTest.kt index 01a785011a..be515f00b3 100644 --- a/mail-detail/presentation/src/test/kotlin/ch/protonmail/android/maildetail/presentation/usecase/IsShowSingleMessageModeTest.kt +++ b/mail-detail/presentation/src/test/kotlin/ch/protonmail/android/maildetail/presentation/usecase/IsShowSingleMessageModeTest.kt @@ -20,7 +20,6 @@ package ch.protonmail.android.maildetail.presentation.usecase import ch.protonmail.android.mailcommon.domain.sample.UserIdSample import ch.protonmail.android.maildetail.domain.usecase.IsShowSingleMessageMode -import ch.protonmail.android.mailfeatureflags.domain.model.FeatureFlag import ch.protonmail.android.maillabel.domain.model.ViewMode import ch.protonmail.android.mailsettings.domain.usecase.GetUserPreferredViewMode import io.mockk.coEvery @@ -30,49 +29,16 @@ import kotlin.test.Test import kotlin.test.assertFalse import kotlin.test.assertTrue -class IsShowSingleMessageModeTest { +internal class IsShowSingleMessageModeTest { - private val isMessageDetailFeatureEnabled = mockk>() private val getUserPreferredViewMode = mockk() - private val isShowSingleMessageMode = IsShowSingleMessageMode( - isMessageDetailFeatureEnabled, - getUserPreferredViewMode - ) - - @Test - fun `returns true when feature flag is true and preferred mode is message mode`() = runTest { - // Given - val userId = UserIdSample.Primary - coEvery { isMessageDetailFeatureEnabled.get() } returns true - coEvery { getUserPreferredViewMode(userId) } returns ViewMode.NoConversationGrouping - - // When - val actual = isShowSingleMessageMode(userId) - - // Then - assertTrue(actual) - } - - @Test - fun `returns false when feature flag is false`() = runTest { - // Given - val userId = UserIdSample.Primary - coEvery { isMessageDetailFeatureEnabled.get() } returns false - coEvery { getUserPreferredViewMode(userId) } returns ViewMode.NoConversationGrouping - - // When - val actual = isShowSingleMessageMode(userId) - - // Then - assertFalse(actual) - } + private val isShowSingleMessageMode = IsShowSingleMessageMode(getUserPreferredViewMode) @Test fun `returns false when preferred mode is conversation mode`() = runTest { // Given val userId = UserIdSample.Primary - coEvery { isMessageDetailFeatureEnabled.get() } returns true coEvery { getUserPreferredViewMode(userId) } returns ViewMode.ConversationGrouping // When @@ -81,4 +47,17 @@ class IsShowSingleMessageModeTest { // Then assertFalse(actual) } + + @Test + fun `returns true when preferred mode is message mode`() = runTest { + // Given + val userId = UserIdSample.Primary + coEvery { getUserPreferredViewMode(userId) } returns ViewMode.NoConversationGrouping + + // When + val actual = isShowSingleMessageMode(userId) + + // Then + assertTrue(actual) + } } diff --git a/mail-featureflags/dagger/src/main/kotlin/ch/protonmail/android/mailfeatureflags/di/FeatureFlagsModule.kt b/mail-featureflags/dagger/src/main/kotlin/ch/protonmail/android/mailfeatureflags/di/FeatureFlagsModule.kt index a8e54b86eb..2060398083 100644 --- a/mail-featureflags/dagger/src/main/kotlin/ch/protonmail/android/mailfeatureflags/di/FeatureFlagsModule.kt +++ b/mail-featureflags/dagger/src/main/kotlin/ch/protonmail/android/mailfeatureflags/di/FeatureFlagsModule.kt @@ -30,7 +30,6 @@ import ch.protonmail.android.mailfeatureflags.domain.annotation.IsBlackFridayWav import ch.protonmail.android.mailfeatureflags.domain.annotation.IsDebugInspectDbEnabled import ch.protonmail.android.mailfeatureflags.domain.annotation.IsInjectCssOverrideEnabled import ch.protonmail.android.mailfeatureflags.domain.annotation.IsLastMessageAutoExpandEnabled -import ch.protonmail.android.mailfeatureflags.domain.annotation.IsMessageDetailEnabled import ch.protonmail.android.mailfeatureflags.domain.annotation.IsOnboardingUpsellEnabled import ch.protonmail.android.mailfeatureflags.domain.annotation.IsRestrictMessageWebViewHeightEnabled import ch.protonmail.android.mailfeatureflags.domain.annotation.IsShowBlockedTrackersEnabled @@ -44,7 +43,6 @@ import ch.protonmail.android.mailfeatureflags.domain.model.FeatureFlagDefinition import ch.protonmail.android.mailfeatureflags.domain.model.InjectDetailCssOverrideEnabled import ch.protonmail.android.mailfeatureflags.domain.model.MailBlackFriday2025Enabled import ch.protonmail.android.mailfeatureflags.domain.model.MailBlackFriday2025Wave2Enabled -import ch.protonmail.android.mailfeatureflags.domain.model.MessageDetailEnabled import ch.protonmail.android.mailfeatureflags.domain.model.OnboardingUpsellingEnabled import ch.protonmail.android.mailfeatureflags.domain.model.RestrictMessageWebViewHeight import ch.protonmail.android.mailfeatureflags.domain.model.ShowBlockedTrackers @@ -65,16 +63,6 @@ import javax.inject.Singleton @InstallIn(SingletonComponent::class) @Suppress("TooManyFunctions") object FeatureFlagsModule { - @Provides - @IntoSet - @Singleton - fun provideMessageDetailEnabledDefinitions(): FeatureFlagDefinition = MessageDetailEnabled - - @Provides - @Singleton - @IsMessageDetailEnabled - fun provideMessageDetailEnabled(factory: BooleanFeatureFlagFactory) = - factory.create(MessageDetailEnabled.key, false) @Provides @IntoSet diff --git a/mail-featureflags/domain/src/main/kotlin/ch/protonmail/android/mailfeatureflags/domain/annotation/FeatureFlagAnnotations.kt b/mail-featureflags/domain/src/main/kotlin/ch/protonmail/android/mailfeatureflags/domain/annotation/FeatureFlagAnnotations.kt index 20bb805a1b..3a9667d3a5 100644 --- a/mail-featureflags/domain/src/main/kotlin/ch/protonmail/android/mailfeatureflags/domain/annotation/FeatureFlagAnnotations.kt +++ b/mail-featureflags/domain/src/main/kotlin/ch/protonmail/android/mailfeatureflags/domain/annotation/FeatureFlagAnnotations.kt @@ -44,10 +44,6 @@ annotation class ComposerAutoCollapseQuotedTextEnabled @Retention(AnnotationRetention.BINARY) annotation class IsDebugInspectDbEnabled -@Qualifier -@Retention(AnnotationRetention.BINARY) -annotation class IsMessageDetailEnabled - @Qualifier @Retention(AnnotationRetention.BINARY) annotation class IsLastMessageAutoExpandEnabled diff --git a/mail-featureflags/domain/src/main/kotlin/ch/protonmail/android/mailfeatureflags/domain/model/FeatureFlagDefinitionItems.kt b/mail-featureflags/domain/src/main/kotlin/ch/protonmail/android/mailfeatureflags/domain/model/FeatureFlagDefinitionItems.kt index c789b8233c..acec4a2e84 100644 --- a/mail-featureflags/domain/src/main/kotlin/ch/protonmail/android/mailfeatureflags/domain/model/FeatureFlagDefinitionItems.kt +++ b/mail-featureflags/domain/src/main/kotlin/ch/protonmail/android/mailfeatureflags/domain/model/FeatureFlagDefinitionItems.kt @@ -74,14 +74,6 @@ data object ConversationDetailAutoExpandLastMessageEnabled : FeatureFlagDefiniti defaultValue = false ) -data object MessageDetailEnabled : FeatureFlagDefinition( - key = "MailAndroidV7MessageDetail", - name = "View Single Message Detail", - category = FeatureFlagCategory.Details, - description = "Allow to view a single message in the detail screen", - defaultValue = true -) - data object SwipeAutoAdvanceEnabled : FeatureFlagDefinition( key = "MailAndroidV7SwipeAutoAdvance", name = "Swipe and AutoAdvance View",