Skip to content

Commit 65ab6cc

Browse files
author
Bas Buijsen
committed
add builders as extensions
1 parent 35df799 commit 65ab6cc

File tree

4 files changed

+51
-31
lines changed
  • firebase-analytics/src

4 files changed

+51
-31
lines changed

firebase-analytics/src/androidMain/kotlin/dev/gitlive/firebase/analytics/analytics.kt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ actual class FirebaseAnalytics(val android: com.google.firebase.analytics.Fireba
1313
actual fun logEvent(name: String, parameters: Map<String, String>?) {
1414
android.logEvent(name, parameters?.toBundle())
1515
}
16-
actual fun logEvent(name: String, block: FirebaseAnalyticsParameters.() -> Unit) {
17-
val params = FirebaseAnalyticsParameters()
18-
params.block()
19-
logEvent(name, params.parameters)
20-
}
2116
actual fun setUserProperty(name: String, value: String) {
2217
android.setUserProperty(name, value)
2318
}
@@ -52,16 +47,16 @@ actual class FirebaseAnalytics(val android: com.google.firebase.analytics.Fireba
5247
androidConsentSettings.entries.forEach {
5348
when (it.key) {
5449
ConsentType.AD_PERSONALIZATION ->
55-
this.adUserData = it.value
50+
this.adPersonalization = it.value
5651

5752
ConsentType.AD_STORAGE ->
58-
this.adUserData = it.value
53+
this.adStorage = it.value
5954

6055
ConsentType.AD_USER_DATA ->
6156
this.adUserData = it.value
6257

6358
ConsentType.ANALYTICS_STORAGE ->
64-
this.adUserData = it.value
59+
this.analyticsStorage = it.value
6560
}
6661
}
6762

firebase-analytics/src/commonMain/kotlin/dev/gitlive/firebase/analytics/analytics.kt

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ expect val Firebase.analytics: FirebaseAnalytics
66

77
expect class FirebaseAnalytics {
88
fun logEvent(name: String, parameters: Map<String, String>? = null)
9-
fun logEvent(name: String, block: FirebaseAnalyticsParameters.() -> Unit)
109
fun setUserProperty(name: String, value: String)
1110
fun setUserId(id: String)
1211
fun setAnalyticsCollectionEnabled(enabled: Boolean)
@@ -29,6 +28,18 @@ expect class FirebaseAnalytics {
2928
}
3029
}
3130

31+
fun FirebaseAnalytics.setConsent(builder: FirebaseAnalyticsConsentBuilder.() -> Unit) {
32+
val consentBuilder = FirebaseAnalyticsConsentBuilder()
33+
consentBuilder.builder()
34+
setConsent(consentBuilder.consentSettings)
35+
}
36+
37+
fun FirebaseAnalytics.logEvent(name: String, builder: FirebaseAnalyticsParameters.() -> Unit) {
38+
val params = FirebaseAnalyticsParameters()
39+
params.builder()
40+
logEvent(name, params.parameters)
41+
}
42+
3243
expect class FirebaseAnalyticsException
3344

3445
data class FirebaseAnalyticsParameters(
@@ -37,4 +48,40 @@ data class FirebaseAnalyticsParameters(
3748
fun param(key: String, value: String) {
3849
parameters[key] = value
3950
}
51+
}
52+
53+
data class FirebaseAnalyticsConsentBuilder(
54+
val consentSettings: MutableMap<FirebaseAnalytics.ConsentType, FirebaseAnalytics.ConsentStatus> = mutableMapOf()
55+
) {
56+
var adPersonalization: FirebaseAnalytics.ConsentStatus?
57+
get() = consentSettings[FirebaseAnalytics.ConsentType.AD_PERSONALIZATION]
58+
set(value) {
59+
value?.let {
60+
consentSettings[FirebaseAnalytics.ConsentType.AD_PERSONALIZATION] = it
61+
}
62+
}
63+
64+
var adStorage: FirebaseAnalytics.ConsentStatus?
65+
get() = consentSettings[FirebaseAnalytics.ConsentType.AD_STORAGE]
66+
set(value) {
67+
value?.let {
68+
consentSettings[FirebaseAnalytics.ConsentType.AD_STORAGE] = it
69+
}
70+
}
71+
72+
var adUserData: FirebaseAnalytics.ConsentStatus?
73+
get() = consentSettings[FirebaseAnalytics.ConsentType.AD_USER_DATA]
74+
set(value) {
75+
value?.let {
76+
consentSettings[FirebaseAnalytics.ConsentType.AD_USER_DATA] = it
77+
}
78+
}
79+
80+
var analyticsStorage: FirebaseAnalytics.ConsentStatus?
81+
get() = consentSettings[FirebaseAnalytics.ConsentType.ANALYTICS_STORAGE]
82+
set(value) {
83+
value?.let {
84+
consentSettings[FirebaseAnalytics.ConsentType.ANALYTICS_STORAGE] = it
85+
}
86+
}
4087
}

firebase-analytics/src/iosMain/kotlin/dev/gitlive/firebase/analytics/analytics.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@ actual class FirebaseAnalytics(val ios: FIRAnalytics.Companion) {
1818
}?.toMap()
1919
ios.logEventWithName(name, mappedParameters)
2020
}
21-
actual fun logEvent(name: String, block: FirebaseAnalyticsParameters.() -> Unit) {
22-
val params = FirebaseAnalyticsParameters()
23-
params.block()
24-
logEvent(name, params.parameters)
25-
}
2621
actual fun setUserProperty(name: String, value: String) {
2722
ios.setUserPropertyString(value, name)
2823
}

firebase-analytics/src/jsMain/kotlin/dev/gitlive/firebase/analytics/analytics.kt

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,6 @@ package dev.gitlive.firebase.analytics
33
import dev.gitlive.firebase.Firebase
44
import dev.gitlive.firebase.FirebaseException
55
import dev.gitlive.firebase.analytics.externals.getAnalytics
6-
import dev.gitlive.firebase.analytics.externals.jsGetSessionId
7-
import dev.gitlive.firebase.analytics.externals.jsLogEvent
8-
import dev.gitlive.firebase.analytics.externals.jsResetAnalyticsData
9-
import dev.gitlive.firebase.analytics.externals.jsSetAnalyticsCollectionEnabled
10-
import dev.gitlive.firebase.analytics.externals.jsSetDefaultEventParameters
11-
import dev.gitlive.firebase.analytics.externals.jsSetSessionTimeoutInterval
12-
import dev.gitlive.firebase.analytics.externals.jsSetUserId
13-
import dev.gitlive.firebase.analytics.externals.jsSetUserProperty
146
import kotlinx.coroutines.await
157

168
actual val Firebase.analytics: FirebaseAnalytics
@@ -24,15 +16,6 @@ actual class FirebaseAnalytics(val js: dev.gitlive.firebase.analytics.externals.
2416
dev.gitlive.firebase.analytics.externals.logEvent(js, name, parameters)
2517
}
2618

27-
actual fun logEvent(
28-
name: String,
29-
block: FirebaseAnalyticsParameters.() -> Unit
30-
) {
31-
val params = FirebaseAnalyticsParameters()
32-
params.block()
33-
logEvent(name, params.parameters)
34-
}
35-
3619
actual fun setUserProperty(name: String, value: String) {
3720
dev.gitlive.firebase.analytics.externals.setUserProperty(js, name, value)
3821
}

0 commit comments

Comments
 (0)