diff --git a/OpenFeature/src/main/java/dev/openfeature/sdk/OpenFeatureAPI.kt b/OpenFeature/src/main/java/dev/openfeature/sdk/OpenFeatureAPI.kt index ac34ba5..4e941a7 100644 --- a/OpenFeature/src/main/java/dev/openfeature/sdk/OpenFeatureAPI.kt +++ b/OpenFeature/src/main/java/dev/openfeature/sdk/OpenFeatureAPI.kt @@ -1,8 +1,15 @@ package dev.openfeature.sdk +import dev.openfeature.sdk.events.EventHandler +import dev.openfeature.sdk.events.OpenFeatureEvents +import dev.openfeature.sdk.events.observe +import kotlinx.coroutines.CoroutineDispatcher + +@Suppress("TooManyFunctions") object OpenFeatureAPI { private var provider: FeatureProvider? = null private var context: EvaluationContext? = null + var hooks: List> = listOf() private set @@ -16,6 +23,10 @@ object OpenFeatureAPI { return provider } + inline fun observeEvents(dispatcher: CoroutineDispatcher) = + EventHandler.eventsObserver(dispatcher) + .observe() + fun clearProvider() { provider = null } diff --git a/OpenFeature/src/main/java/dev/openfeature/sdk/events/EventPublisher.kt b/OpenFeature/src/main/java/dev/openfeature/sdk/events/EventHandler.kt similarity index 96% rename from OpenFeature/src/main/java/dev/openfeature/sdk/events/EventPublisher.kt rename to OpenFeature/src/main/java/dev/openfeature/sdk/events/EventHandler.kt index f951b26..45fa3fe 100644 --- a/OpenFeature/src/main/java/dev/openfeature/sdk/events/EventPublisher.kt +++ b/OpenFeature/src/main/java/dev/openfeature/sdk/events/EventHandler.kt @@ -73,7 +73,7 @@ class EventHandler(dispatcher: CoroutineDispatcher) : EventObserver, EventsPubli fun eventsObserver(dispatcher: CoroutineDispatcher = Dispatchers.IO): EventObserver = getInstance(dispatcher) - fun providerStatus(dispatcher: CoroutineDispatcher = Dispatchers.IO): ProviderStatus = + internal fun providerStatus(dispatcher: CoroutineDispatcher = Dispatchers.IO): ProviderStatus = getInstance(dispatcher) fun eventsPublisher(dispatcher: CoroutineDispatcher = Dispatchers.IO): EventsPublisher = getInstance(dispatcher)