Skip to content

Commit cd896a0

Browse files
committed
Align onSetUserAttribute Kotlin overrides with nullable key and value
- Use String? and Any? for parameters matching Java Object/null call paths - Add early returns when key or value is null where needed - CleverTap: rename parameters to key/value; use mappedKey/mappedValue for mutations Made-with: Cursor
1 parent 240c04e commit cd896a0

13 files changed

Lines changed: 56 additions & 38 deletions

File tree

android-kit-base/src/androidTest/kotlin/com/mparticle/kits/testkits/AttributeListenerTestKit.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ open class AttributeListenerTestKit :
6363
}
6464

6565
override fun onSetUserAttribute(
66-
key: String,
66+
key: String?,
6767
value: Any?,
6868
user: FilteredMParticleUser,
6969
) {
70-
if (value == null || value !is String) {
70+
if (key == null || value == null || value !is String) {
7171
return
7272
}
7373
setUserAttributeCallback?.invoke(key, value)

kits/adobe/adobe-5/src/main/kotlin/com/mparticle/kits/AdobeKitBase.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,11 @@ abstract class AdobeKitBase :
7272
}
7373

7474
override fun onSetUserAttribute(
75-
key: String,
75+
key: String?,
7676
value: Any?,
7777
user: FilteredMParticleUser,
7878
) {
79-
if (value == null || value !is String) {
79+
if (key == null || value == null || value !is String) {
8080
return
8181
}
8282
syncIds()

kits/adobemedia/adobemedia-5/src/main/kotlin/com/mparticle/kits/AdobeKit.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,11 @@ open class AdobeKit :
109109
}
110110

111111
override fun onSetUserAttribute(
112-
key: String,
112+
key: String?,
113113
value: Any?,
114114
user: FilteredMParticleUser,
115115
) {
116-
if (value == null || value !is String) {
116+
if (key == null || value == null || value !is String) {
117117
return
118118
}
119119
syncIds()

kits/apptimize/apptimize-3/src/main/kotlin/com/mparticle/kits/ApptimizeKit.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,11 @@ class ApptimizeKit :
153153
}
154154

155155
override fun onSetUserAttribute(
156-
key: String,
156+
key: String?,
157157
value: Any?,
158158
user: FilteredMParticleUser,
159159
) {
160-
if (value == null || value !is String) {
160+
if (key == null || value == null || value !is String) {
161161
return
162162
}
163163
Apptimize.setUserAttribute(key, value)

kits/branch/branch-5/src/main/kotlin/com/mparticle/kits/BranchMetricsKit.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,13 @@ class BranchMetricsKit :
194194
}
195195

196196
override fun onSetUserAttribute(
197-
key: String,
197+
key: String?,
198198
value: Any?,
199199
user: FilteredMParticleUser,
200200
) {
201+
if (key == null) {
202+
return
203+
}
201204
// No-op: this kit does not implement this feature.
202205
}
203206

kits/clevertap/clevertap-7/src/main/kotlin/com/mparticle/kits/CleverTapKit.kt

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -237,40 +237,43 @@ class CleverTapKit :
237237
}
238238

239239
override fun onSetUserAttribute(
240-
keyIn: String,
241-
valueIn: Any,
240+
key: String?,
241+
value: Any?,
242242
user: FilteredMParticleUser,
243243
) {
244-
var key = keyIn
245-
var value = valueIn
244+
if (key == null || value == null) {
245+
return
246+
}
247+
var mappedKey = key
248+
var mappedValue: Any = value
246249
val profile =
247250
HashMap<String, Any>()
248251
when {
249-
BIRTHDAY == key -> {
250-
key = DOB
252+
BIRTHDAY == mappedKey -> {
253+
mappedKey = DOB
251254
}
252-
"name" == key -> {
253-
key = NAME
255+
"name" == mappedKey -> {
256+
mappedKey = NAME
254257
}
255-
UserAttributes.GENDER == key -> {
256-
val genderValue = value as String
257-
value =
258+
UserAttributes.GENDER == mappedKey -> {
259+
val genderValue = mappedValue as String
260+
mappedValue =
258261
if (genderValue.contains("fe")) {
259262
FEMALE
260263
} else {
261264
MALE
262265
}
263266
}
264-
UserAttributes.MOBILE_NUMBER == key -> {
265-
key = PHONE
267+
UserAttributes.MOBILE_NUMBER == mappedKey -> {
268+
mappedKey = PHONE
266269
}
267270
else -> {
268-
if (key.startsWith("$")) {
269-
key = key.substring(1)
271+
if (mappedKey.startsWith("$")) {
272+
mappedKey = mappedKey.substring(1)
270273
}
271274
}
272275
}
273-
profile[key] = value
276+
profile[mappedKey] = mappedValue
274277
cleverTapInstance?.pushProfile(profile)
275278
}
276279

kits/comscore/comscore-6/src/main/kotlin/com/mparticle/kits/ComscoreKit.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,11 @@ class ComscoreKit :
122122
}
123123

124124
override fun onSetUserAttribute(
125-
key: String,
125+
key: String?,
126126
value: Any?,
127127
user: FilteredMParticleUser,
128128
) {
129-
if (value == null || value !is String) {
129+
if (key == null || value == null || value !is String) {
130130
return
131131
}
132132
applyEnterpriseScalarUserAttribute(key, value)

kits/ga/ga-23/src/main/kotlin/com/mparticle/kits/GoogleAnalyticsFirebaseKit.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,10 +400,13 @@ class GoogleAnalyticsFirebaseKit :
400400
* We are going to ignore Lists here, since Firebase only supports String "user property" values
401401
*/
402402
override fun onSetUserAttribute(
403-
key: String,
404-
value: Any,
403+
key: String?,
404+
value: Any?,
405405
filteredMParticleUser: FilteredMParticleUser,
406406
) {
407+
if (key == null) {
408+
return
409+
}
407410
if (value is String) {
408411
standardizeName(key, false)?.let {
409412
FirebaseAnalytics.getInstance(context).setUserProperty(

kits/ga4/ga4-23/src/main/kotlin/com/mparticle/kits/GoogleAnalyticsFirebaseGA4Kit.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -611,10 +611,13 @@ class GoogleAnalyticsFirebaseGA4Kit :
611611
* We are going to ignore Lists here, since Firebase only supports String "user property" values
612612
*/
613613
override fun onSetUserAttribute(
614-
key: String,
615-
value: Any,
614+
key: String?,
615+
value: Any?,
616616
filteredMParticleUser: FilteredMParticleUser,
617617
) {
618+
if (key == null) {
619+
return
620+
}
618621
if (value is String) {
619622
standardizeName(key, false)?.let {
620623
FirebaseAnalytics.getInstance(context).setUserProperty(

kits/kochava/kochava-5/src/main/kotlin/com/mparticle/kits/KochavaKit.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,13 @@ class KochavaKit :
102102
}
103103

104104
override fun onSetUserAttribute(
105-
key: String,
105+
key: String?,
106106
value: Any?,
107107
user: FilteredMParticleUser,
108108
) {
109+
if (key == null) {
110+
return
111+
}
109112
// No-op: this kit does not implement this feature.
110113
}
111114

0 commit comments

Comments
 (0)