diff --git a/build.gradle b/build.gradle index e24497d..9b8b614 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.8.10' + ext.kotlin_version = '2.0.20' if (!project.hasProperty('version') || project.version.equals('unspecified')) { project.version = '+' } @@ -9,8 +9,9 @@ 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:$kotlin_version" } @@ -18,7 +19,7 @@ buildscript { 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" } sonarqube { @@ -30,13 +31,29 @@ sonarqube { } apply plugin: 'org.jlleitschuh.gradle.ktlint' -apply plugin: 'com.mparticle.kit' apply plugin: 'kotlin-android' +apply plugin: 'com.mparticle.kit' android { + namespace 'com.mparticle.kits.comscore' + buildFeatures { + buildConfig = true + } defaultConfig { minSdkVersion 21 } + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + kotlinOptions { + jvmTarget = '17' + } + testOptions { + unitTests.all { + jvmArgs += ['--add-opens', 'java.base/java.lang=ALL-UNNAMED'] + } + } } dependencies { 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 3038d69..6136329 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/main/kotlin/com/mparticle/kits/ComscoreKit.kt b/src/main/kotlin/com/mparticle/kits/ComscoreKit.kt index b29d56b..c4af707 100644 --- a/src/main/kotlin/com/mparticle/kits/ComscoreKit.kt +++ b/src/main/kotlin/com/mparticle/kits/ComscoreKit.kt @@ -12,22 +12,27 @@ import com.mparticle.MParticle import com.mparticle.MParticle.IdentityType import com.mparticle.kits.KitIntegration.ActivityListener import com.mparticle.kits.KitIntegration.AttributeListener -import java.util.* +import java.util.HashMap +import java.util.LinkedList -class ComscoreKit : KitIntegration(), KitIntegration.EventListener, AttributeListener, +class ComscoreKit : + KitIntegration(), + KitIntegration.EventListener, + AttributeListener, ActivityListener { private var isEnterprise = false + override fun leaveBreadcrumb(breadcrumb: String): List = emptyList() override fun logError( message: String, - errorAttributes: Map + errorAttributes: Map, ): List = emptyList() override fun logException( exception: Exception, exceptionAttributes: Map, - message: String + message: String, ): List = emptyList() override fun logEvent(event: MPEvent): List? { @@ -59,35 +64,44 @@ class ComscoreKit : KitIntegration(), KitIntegration.EventListener, AttributeLis messages.add( ReportingMessage.fromEvent( this, - MPEvent.Builder(event).customAttributes(comscoreLabels).build() - ) + MPEvent.Builder(event).customAttributes(comscoreLabels).build(), + ), ) return messages } override fun logScreen( screenName: String, - eventAttributes: Map - ): List { - return logEvent( - MPEvent.Builder(screenName, MParticle.EventType.Navigation) + eventAttributes: Map, + ): List = + logEvent( + MPEvent + .Builder(screenName, MParticle.EventType.Navigation) .customAttributes(eventAttributes) - .build() + .build(), )!! - } - override fun setUserAttribute(key: String, value: String) { + override fun setUserAttribute( + key: String, + value: String, + ) { if (isEnterprise) { - Analytics.getConfiguration() + Analytics + .getConfiguration() .setPersistentLabel(KitUtils.sanitizeAttributeKey(key), value) } } - override fun setUserAttributeList(key: String, list: List) {} + override fun setUserAttributeList( + key: String, + list: List, + ) {} + override fun supportsAttributeLists(): Boolean = !isEnterprise + override fun setAllUserAttributes( attributes: Map, - attributeLists: Map> + attributeLists: Map>, ) { if (isEnterprise) { for ((key, value) in attributes) { @@ -110,7 +124,10 @@ class ComscoreKit : KitIntegration(), KitIntegration.EventListener, AttributeLis override fun logout(): List = emptyList() - override fun setUserIdentity(identityType: IdentityType, id: String) { + override fun setUserIdentity( + identityType: IdentityType, + id: String, + ) { if (isEnterprise) { Analytics.getConfiguration().setPersistentLabel(identityType.toString(), id) } @@ -120,11 +137,13 @@ class ComscoreKit : KitIntegration(), KitIntegration.EventListener, AttributeLis override fun onKitCreate( settings: Map, - context: Context + context: Context, ): List { - val partnerConfiguration = PartnerConfiguration.Builder() - .partnerId(settings[PARTNER_ID]) - .build() + val partnerConfiguration = + PartnerConfiguration + .Builder() + .partnerId(settings[PARTNER_ID]) + .build() Analytics.getConfiguration().addClient(partnerConfiguration) val builder = PublisherConfiguration.Builder() builder.publisherId(getSettings()[CLIENT_ID]) @@ -147,23 +166,22 @@ class ComscoreKit : KitIntegration(), KitIntegration.EventListener, AttributeLis this, ReportingMessage.MessageType.APP_STATE_TRANSITION, System.currentTimeMillis(), - null - ) + null, + ), ) return messageList } override fun onActivitySaveInstanceState( activity: Activity, - outState: Bundle? + outState: Bundle?, ): List = emptyList() - override fun onActivityDestroyed(activity: Activity): List = emptyList() override fun onActivityCreated( activity: Activity, - savedInstanceState: Bundle? + savedInstanceState: Bundle?, ): List = emptyList() override fun onActivityResumed(activity: Activity): List { @@ -174,8 +192,8 @@ class ComscoreKit : KitIntegration(), KitIntegration.EventListener, AttributeLis this, ReportingMessage.MessageType.APP_STATE_TRANSITION, System.currentTimeMillis(), - null - ) + null, + ), ) return messageList } @@ -194,9 +212,8 @@ class ComscoreKit : KitIntegration(), KitIntegration.EventListener, AttributeLis this, ReportingMessage.MessageType.OPT_OUT, System.currentTimeMillis(), - null - ) - .setOptOut(optOutStatus) + null, + ).setOptOut(optOutStatus), ) return messageList } diff --git a/src/test/kotlin/com/mparticle/kits/KitTests.kt b/src/test/kotlin/com/mparticle/kits/KitTests.kt index 222b76e..c77cf5e 100644 --- a/src/test/kotlin/com/mparticle/kits/KitTests.kt +++ b/src/test/kotlin/com/mparticle/kits/KitTests.kt @@ -8,7 +8,7 @@ import org.mockito.Mockito class KitTests { private val kit: KitIntegration - get() = ComscoreKit() + get() = ComscoreKit() @Test @Throws(Exception::class) @@ -27,7 +27,7 @@ class KitTests { var e: Exception? = null try { val kit = kit - val settings= HashMap() + val settings = HashMap() settings["fake setting"] = "fake" kit.onKitCreate(settings, Mockito.mock(Context::class.java)) } catch (ex: Exception) { @@ -49,6 +49,5 @@ class KitTests { } } Assert.fail("$className not found as a known integration.") - } }