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,
) : FeatureFlagService {
override fun isFeatureEnabledFlow(feature: Feature): Flow<Boolean> {
return providers.filter { it.hasFeature(feature) }
.maxByOrNull(FeatureFlagProvider::priority)
?.isFeatureEnabledFlow(feature)
?: flowOf(feature.defaultValue(buildMeta))
return if (feature.isFinished) {
flowOf(feature.defaultValue(buildMeta))
} else {
providers.filter { it.hasFeature(feature) }
.maxByOrNull(FeatureFlagProvider::priority)
?.isFeatureEnabledFlow(feature)
?: flowOf(feature.defaultValue(buildMeta))
}
}
override suspend fun setFeatureEnabled(feature: Feature, enabled: Boolean): Boolean {