diff --git a/build.gradle b/build.gradle index 18852c2..96154a7 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.9.0' + ext.kotlin_version = '2.0.20' if (!project.hasProperty('version') || project.version.equals('unspecified')) { project.version = '+' } @@ -9,16 +9,18 @@ buildscript { mavenLocal() mavenCentral() } + dependencies { - classpath 'com.android.tools.build:gradle:7.4.1' + classpath 'com.android.tools.build:gradle:8.1.4' classpath 'com.mparticle:android-kit-plugin:' + project.version - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } plugins { id "org.sonarqube" version "3.5.0.2730" - id "org.jlleitschuh.gradle.ktlint" version "11.2.0" + id "org.jlleitschuh.gradle.ktlint" version "13.0.0" + id "org.jetbrains.kotlin.plugin.compose" version "2.0.20" } sonarqube { @@ -29,8 +31,8 @@ sonarqube { } } - -apply plugin: "kotlin-android" +apply plugin: 'org.jlleitschuh.gradle.ktlint' +apply plugin: 'kotlin-android' apply plugin: 'com.mparticle.kit' android { @@ -42,6 +44,13 @@ android { lint { disable "NullSafeMutableLiveData" } + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + kotlinOptions { + jvmTarget = '17' + } testOptions { unitTests.returnDefaultValues = true unitTests.all { @@ -50,11 +59,9 @@ android { } } buildFeatures { + buildConfig = true compose true } - composeOptions { - kotlinCompilerExtensionVersion = "1.5.0" - } } repositories { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661..e1bef7e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 536aed1..c4e6c98 100755 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -1 +1 @@ - + diff --git a/src/main/kotlin/com/mparticle/kits/RoktConfigExtensions.kt b/src/main/kotlin/com/mparticle/kits/RoktConfigExtensions.kt index c072919..a5492a4 100644 --- a/src/main/kotlin/com/mparticle/kits/RoktConfigExtensions.kt +++ b/src/main/kotlin/com/mparticle/kits/RoktConfigExtensions.kt @@ -1,8 +1,8 @@ package com.mparticle.kits import com.mparticle.rokt.RoktConfig -import com.mparticle.rokt.CacheConfig as MpCacheConfig import com.rokt.roktsdk.CacheConfig +import com.mparticle.rokt.CacheConfig as MpCacheConfig import com.rokt.roktsdk.RoktConfig as RoktSdkConfig fun MpCacheConfig.toRoktSdkCacheConfig(): CacheConfig = CacheConfig( diff --git a/src/main/kotlin/com/mparticle/kits/RoktKit.kt b/src/main/kotlin/com/mparticle/kits/RoktKit.kt index 26c78a2..1a92b2e 100644 --- a/src/main/kotlin/com/mparticle/kits/RoktKit.kt +++ b/src/main/kotlin/com/mparticle/kits/RoktKit.kt @@ -234,17 +234,18 @@ class RoktKit : return finalAttributes } - private fun convertValueToString(value: Any?): String { - return when (value) { - is Double -> BigDecimal.valueOf(value).toPlainString() - is Long -> BigDecimal.valueOf(value).toPlainString() - is Int -> BigDecimal.valueOf(value.toLong()).toPlainString() - is Number -> BigDecimal(value.toString()).toPlainString() - else -> value.toString() - } + private fun convertValueToString(value: Any?): String = when (value) { + is Double -> BigDecimal.valueOf(value).toPlainString() + is Long -> BigDecimal.valueOf(value).toPlainString() + is Int -> BigDecimal.valueOf(value.toLong()).toPlainString() + is Number -> BigDecimal(value.toString()).toPlainString() + else -> value.toString() } - private fun filterAttributes(attributes: Map, kitConfiguration: KitConfiguration): MutableMap { + private fun filterAttributes( + attributes: Map, + kitConfiguration: KitConfiguration, + ): MutableMap { val userAttributes = mutableMapOf() for ((key, value) in attributes) { val hashKey = KitUtils.hashForFiltering(key) @@ -334,8 +335,6 @@ class RoktKit : } } - - private fun addIdentityAttributes( attributes: MutableMap?, filterUser: FilteredMParticleUser?, diff --git a/src/main/kotlin/com/mparticle/kits/RoktLayout.kt b/src/main/kotlin/com/mparticle/kits/RoktLayout.kt index c18fd53..a088573 100644 --- a/src/main/kotlin/com/mparticle/kits/RoktLayout.kt +++ b/src/main/kotlin/com/mparticle/kits/RoktLayout.kt @@ -25,7 +25,8 @@ fun RoktLayout( if (sdkTriggered) { LaunchedEffect(Unit) { instance?.runComposableWithCallback( - HashMap(attributes), mpRoktEventCallback, + HashMap(attributes), + mpRoktEventCallback, { resultMap, callback -> resultMapState.value = RoktResult(resultMap, callback) }, diff --git a/src/test/kotlin/com/mparticle/kits/RoktConfigExtensionsTest.kt b/src/test/kotlin/com/mparticle/kits/RoktConfigExtensionsTest.kt index 0d95c4d..14a407c 100644 --- a/src/test/kotlin/com/mparticle/kits/RoktConfigExtensionsTest.kt +++ b/src/test/kotlin/com/mparticle/kits/RoktConfigExtensionsTest.kt @@ -2,12 +2,12 @@ package com.mparticle.kits import com.mparticle.rokt.CacheConfig import com.mparticle.rokt.RoktConfig -import com.rokt.roktsdk.RoktConfig as SdkRoktConfig import io.mockk.every import io.mockk.mockk import org.junit.Assert.assertEquals -import org.junit.Test import org.junit.Assert.assertNotNull +import org.junit.Test +import com.rokt.roktsdk.RoktConfig as SdkRoktConfig class RoktConfigExtensionsTest { diff --git a/src/test/kotlin/com/mparticle/kits/RoktKitTests.kt b/src/test/kotlin/com/mparticle/kits/RoktKitTests.kt index 5dd583e..a02b2b0 100644 --- a/src/test/kotlin/com/mparticle/kits/RoktKitTests.kt +++ b/src/test/kotlin/com/mparticle/kits/RoktKitTests.kt @@ -101,7 +101,6 @@ class RoktKitTests { val json = JSONObject() json.put("ua", jsonObject) - roktKit.configuration = MockKitConfiguration.createKitConfiguration(JSONObject().put("hs", json)) val method: Method = RoktKit::class.java.getDeclaredMethod( "prepareFinalAttributes", @@ -326,7 +325,6 @@ class RoktKitTests { unmockkObject(Rokt) } - @Test fun test_prepareFinalAttributes_handlesSameKeysInAttributesAndUserAttributes() { // Arrange @@ -371,7 +369,7 @@ class RoktKitTests { "key2" to "value2", "key3" to "value3", "user_key" to "2223333", - "ShouldFilter" to "testData" + "ShouldFilter" to "testData", ) // Act roktKit.execute( @@ -387,7 +385,6 @@ class RoktKitTests { // Assert val capturedAttributes = capturedAttributesSlot.captured - assertEquals(7, capturedAttributes.size) assertEquals("value", capturedAttributes["attr_non_null_string"]) assertEquals("123", capturedAttributes["attr_non_string"])