To avoid mistake, FeatureFlags does not have defaultValue set to true, and StaticFeatureFlagProvider return the default value.

This fixes #1241.
This commit is contained in:
Benoit Marty
2023-09-07 10:44:32 +02:00
parent 04b9d3cc2c
commit 94407d396b
3 changed files with 10 additions and 8 deletions

1
changelog.d/1241.bugfix Normal file
View File

@@ -0,0 +1 @@
Enable polls in release build.

View File

@@ -16,21 +16,26 @@
package io.element.android.libraries.featureflag.api
/**
* To enable or disable a FeatureFlags, change the `defaultValue` value.
* It will impact all the build types.
*/
enum class FeatureFlags(
override val key: String,
override val title: String,
override val description: String? = null,
override val defaultValue: Boolean = true
override val defaultValue: Boolean
) : Feature {
LocationSharing(
key = "feature.locationsharing",
title = "Allow user to share location",
defaultValue = true,
),
Polls(
key = "feature.polls",
title = "Polls",
description = "Create poll and render poll events in the timeline",
defaultValue = false,
defaultValue = true,
),
NotificationSettings(
key = "feature.notificationsettings",

View File

@@ -22,7 +22,7 @@ import javax.inject.Inject
/**
* This provider is used for release build.
* Change the value return by [isFeatureEnabled] to enable/disable features.
* [isFeatureEnabled] just returns the default value of the FeatureFlags.
*/
class StaticFeatureFlagProvider @Inject constructor() :
FeatureFlagProvider {
@@ -31,11 +31,7 @@ class StaticFeatureFlagProvider @Inject constructor() :
override suspend fun isFeatureEnabled(feature: Feature): Boolean {
return if (feature is FeatureFlags) {
when (feature) {
FeatureFlags.LocationSharing -> true
FeatureFlags.Polls -> false
FeatureFlags.NotificationSettings -> false
}
feature.defaultValue
} else {
false
}