JsonDynamicConfigurationProvider

class JsonDynamicConfigurationProvider(context: Context) : ComposableDynamicConfigurationProvider

A dynamic configuration provider loads values from an asset configuration file.

The configuration file has JSON format and is named after a configuration group. It is read once at the first request of a value of a configuration group.

Configuration file schema

The configuration file contains a configuration version and an array of configuration values. Each value consists of a name and an array of versioned values. The latter has a value, a version it applies to, and an update strategy for any existing values.

The parser ignores incorrect data, like:

Example

{
"version": 3,
"configuration": [
{
"name": "exampleServiceIsEnabled",
"description": "Optional field: a configuration description.",
"values": [
{
"value": true,
"fromVersion": 1,
"updateStrategy": "always"
},
{
"value": false,
"fromVersion": 2,
"updateStrategy": "defaultOnly"
}
]
},
{
"name": "integerValue",
"values": [
{
"value": 42,
"fromVersion": 2,
"updateStrategy": "defaultOnly"
}
]
}
]
}

Constructors

Link copied to clipboard
fun JsonDynamicConfigurationProvider(context: Context)

Functions

Link copied to clipboard
open operator override fun get(key: BooleanDynamicConfigurationKey): BooleanDynamicConfigurationValue?
open operator override fun get(key: BooleanListDynamicConfigurationKey): BooleanListDynamicConfigurationValue?
open operator override fun get(key: DoubleDynamicConfigurationKey): DoubleDynamicConfigurationValue?
open operator override fun get(key: DoubleListDynamicConfigurationKey): DoubleListDynamicConfigurationValue?
open operator override fun <E : Enum<E>> get(key: EnumDynamicConfigurationKey<E>): EnumDynamicConfigurationValue<E>?
open operator override fun get(key: FloatDynamicConfigurationKey): FloatDynamicConfigurationValue?
open operator override fun get(key: FloatListDynamicConfigurationKey): FloatListDynamicConfigurationValue?
open operator override fun get(key: IntDynamicConfigurationKey): IntDynamicConfigurationValue?
open operator override fun get(key: IntListDynamicConfigurationKey): IntListDynamicConfigurationValue?
open operator override fun get(key: LongDynamicConfigurationKey): LongDynamicConfigurationValue?
open operator override fun get(key: LongListDynamicConfigurationKey): LongListDynamicConfigurationValue?
open operator override fun get(key: StringDynamicConfigurationKey): StringDynamicConfigurationValue?
open operator override fun get(key: StringListDynamicConfigurationKey): StringListDynamicConfigurationValue?