change: finished feature flag should fallback to default value
This commit is contained in:
parent
9afdbdc4ab
commit
fd43d58351
1 changed files with 8 additions and 4 deletions
|
|
@ -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 {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue