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 a40c3c826f..b51dbd3e8c 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 @@ -39,6 +39,7 @@ import ch.protonmail.android.mailfeatureflags.domain.annotation.IsRestrictMessag import ch.protonmail.android.mailfeatureflags.domain.annotation.IsShowRatingBoosterEnabled import ch.protonmail.android.mailfeatureflags.domain.annotation.IsSpringOffer2026Enabled import ch.protonmail.android.mailfeatureflags.domain.annotation.IsSpringOffer2026Wave2Enabled +import ch.protonmail.android.mailfeatureflags.domain.annotation.IsUnlimitedPlanPlacementExperimentEnabled import ch.protonmail.android.mailfeatureflags.domain.annotation.IsUpsellEnabled import ch.protonmail.android.mailfeatureflags.domain.model.BgProcessingRelaxedBatteryConstraint import ch.protonmail.android.mailfeatureflags.domain.model.ComposerAutoCollapseQuotedText @@ -56,6 +57,7 @@ import ch.protonmail.android.mailfeatureflags.domain.model.RestrictMessageWebVie import ch.protonmail.android.mailfeatureflags.domain.model.ShowRatingBoosterEnabled import ch.protonmail.android.mailfeatureflags.domain.model.SpringOffer2026Enabled import ch.protonmail.android.mailfeatureflags.domain.model.SpringOffer2026Wave2Enabled +import ch.protonmail.android.mailfeatureflags.domain.model.UnlimitedPlanPlacementExperimentEnabled import ch.protonmail.android.mailfeatureflags.domain.model.UpsellingEnabled import dagger.Module import dagger.Provides @@ -242,4 +244,15 @@ object FeatureFlagsModule { @Singleton fun provideBgProcessingNewConstraintDef(): FeatureFlagDefinition = BgProcessingRelaxedBatteryConstraint + + @Provides + @Singleton + @IsUnlimitedPlanPlacementExperimentEnabled + fun provideUnlimitedPlanPlacementExperiment(factory: BooleanFeatureFlagFactory) = + factory.create(key = UnlimitedPlanPlacementExperimentEnabled.key, false) + + @Provides + @IntoSet + @Singleton + fun provideUnlimitedPlanPlacementEnabledDef(): FeatureFlagDefinition = UnlimitedPlanPlacementExperimentEnabled } 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 5c9f755431..a450bd87fe 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 @@ -83,3 +83,7 @@ annotation class IsPushProcessingWithoutWorkerEnabled @Qualifier @Retention(AnnotationRetention.BINARY) annotation class IsBgProcessingRelaxedBatteryConstraintEnabled + +@Qualifier +@Retention(AnnotationRetention.BINARY) +annotation class IsUnlimitedPlanPlacementExperimentEnabled 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 6636672e25..bf0071c807 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 @@ -145,3 +145,11 @@ data object BgProcessingRelaxedBatteryConstraint : FeatureFlagDefinition( description = "When enabled, the periodic background execution worker does not require the battery to be not low.", defaultValue = false ) + +data object UnlimitedPlanPlacementExperimentEnabled : FeatureFlagDefinition( + key = "MailAndroidV7UnlimitedPlanPlacementExperiment", + name = "Enable Unlimited Plan placement experiment", + category = FeatureFlagCategory.Upselling, + description = "Enables Unlimited Plan placement experiment.", + defaultValue = false +)