mirror of
https://github.com/ProtonMail/android-mail.git
synced 2026-06-14 09:54:47 +00:00
Drop FF resolution in IsShowSingleMessageMode
ET-5623
This commit is contained in:
committed by
MargeBot
parent
f6f1b1f0ff
commit
55ca8563bc
+1
-9
@@ -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<Boolean>,
|
||||
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
|
||||
}
|
||||
|
||||
+15
-36
@@ -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<FeatureFlag<Boolean>>()
|
||||
private val getUserPreferredViewMode = mockk<GetUserPreferredViewMode>()
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
-12
@@ -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
|
||||
|
||||
-4
@@ -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
|
||||
|
||||
-8
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user