Init or stop posthog based on user consent
This commit is contained in:
@@ -115,15 +115,16 @@ class DefaultAnalyticsService @Inject constructor(
|
||||
}
|
||||
|
||||
private fun initOrStop() {
|
||||
userConsent?.let { _userConsent ->
|
||||
when (_userConsent) {
|
||||
userConsent?.let { userConsent ->
|
||||
when (userConsent) {
|
||||
true -> {
|
||||
analyticsProviders.onEach { it.init() }
|
||||
pendingUserProperties?.let {
|
||||
analyticsProviders.onEach { provider -> provider.updateUserProperties(it) }
|
||||
pendingUserProperties = null
|
||||
}
|
||||
}
|
||||
false -> {}
|
||||
false -> analyticsProviders.onEach { it.stop() }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ interface AnalyticsProvider: AnalyticsTracker, ErrorTracker {
|
||||
*/
|
||||
val name: String
|
||||
|
||||
suspend fun init()
|
||||
fun init()
|
||||
|
||||
fun stop()
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ class PosthogAnalyticsProvider @Inject constructor(
|
||||
private var posthog: PostHog? = null
|
||||
private var analyticsId: String? = null
|
||||
|
||||
override suspend fun init() {
|
||||
override fun init() {
|
||||
posthog = createPosthog()
|
||||
posthog?.optOut(false)
|
||||
identifyPostHog()
|
||||
@@ -66,10 +66,10 @@ class PosthogAnalyticsProvider @Inject constructor(
|
||||
}
|
||||
|
||||
override fun updateUserProperties(userProperties: UserProperties) {
|
||||
posthog?.identify(
|
||||
REUSE_EXISTING_ID, userProperties.getProperties()?.toPostHogUserProperties(),
|
||||
IGNORED_OPTIONS
|
||||
)
|
||||
// posthog?.identify(
|
||||
// REUSE_EXISTING_ID, userProperties.getProperties()?.toPostHogUserProperties(),
|
||||
// IGNORED_OPTIONS
|
||||
// )
|
||||
}
|
||||
|
||||
override fun trackError(throwable: Throwable) {
|
||||
|
||||
Reference in New Issue
Block a user