change: finished feature flag should fallback to default value

This commit is contained in:
ganfra 2025-12-22 17:49:41 +01:00
parent 9afdbdc4ab
commit fd43d58351

View file

@ -25,10 +25,14 @@ class DefaultFeatureFlagService(
private val featuresProvider: FeaturesProvider, private val featuresProvider: FeaturesProvider,
) : FeatureFlagService { ) : FeatureFlagService {
override fun isFeatureEnabledFlow(feature: Feature): Flow<Boolean> { override fun isFeatureEnabledFlow(feature: Feature): Flow<Boolean> {
return providers.filter { it.hasFeature(feature) } return if (feature.isFinished) {
.maxByOrNull(FeatureFlagProvider::priority) flowOf(feature.defaultValue(buildMeta))
?.isFeatureEnabledFlow(feature) } else {
?: flowOf(feature.defaultValue(buildMeta)) providers.filter { it.hasFeature(feature) }
.maxByOrNull(FeatureFlagProvider::priority)
?.isFeatureEnabledFlow(feature)
?: flowOf(feature.defaultValue(buildMeta))
}
} }
override suspend fun setFeatureEnabled(feature: Feature, enabled: Boolean): Boolean { override suspend fun setFeatureEnabled(feature: Feature, enabled: Boolean): Boolean {