From 38aaba7897c121f09c92b73bbdf1c4f1cc29b4b9 Mon Sep 17 00:00:00 2001 From: Mansi Pandya Date: Mon, 24 Nov 2025 10:47:29 -0500 Subject: [PATCH 1/2] feat: Update Android Gradle plugin to 8.0.2 --- build.gradle | 18 ++++++++++++++---- gradle/wrapper/gradle-wrapper.properties | 2 +- src/main/AndroidManifest.xml | 6 ++---- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 85006a1..f7aff5b 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,8 +31,8 @@ sonarqube { } apply plugin: 'org.jlleitschuh.gradle.ktlint' -apply plugin: 'com.mparticle.kit' apply plugin: 'kotlin-android' +apply plugin: 'com.mparticle.kit' allprojects { repositories { @@ -45,14 +46,23 @@ allprojects { } android { + namespace 'com.mparticle.kits.radar' defaultConfig { minSdkVersion 16 } + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + kotlinOptions { + jvmTarget = '17' + } testOptions { unitTests { all { // configure the test JVM arguments jvmArgs '-noverify' + jvmArgs += ['--add-opens', 'java.base/java.lang=ALL-UNNAMED'] } } } 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 2e4c47c..2aaccbb 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -1,7 +1,5 @@ - - + - From 43caa5135b3d64b4662a4a15b4880e4851610357 Mon Sep 17 00:00:00 2001 From: Mansi Pandya Date: Tue, 20 Jan 2026 12:48:03 -0500 Subject: [PATCH 2/2] Fix Lint Error --- build.gradle | 3 + .../kotlin/com/mparticle/kits/RadarKit.kt | 60 ++++++++++--------- .../{RadarKitTest.kt => RadarKitTests.kt} | 3 + 3 files changed, 39 insertions(+), 27 deletions(-) rename src/test/kotlin/com/mparticle/kits/{RadarKitTest.kt => RadarKitTests.kt} (95%) diff --git a/build.gradle b/build.gradle index f7aff5b..c770839 100644 --- a/build.gradle +++ b/build.gradle @@ -47,6 +47,9 @@ allprojects { android { namespace 'com.mparticle.kits.radar' + buildFeatures { + buildConfig = true + } defaultConfig { minSdkVersion 16 } diff --git a/src/main/kotlin/com/mparticle/kits/RadarKit.kt b/src/main/kotlin/com/mparticle/kits/RadarKit.kt index 9a14c3d..96f539a 100644 --- a/src/main/kotlin/com/mparticle/kits/RadarKit.kt +++ b/src/main/kotlin/com/mparticle/kits/RadarKit.kt @@ -21,26 +21,32 @@ import io.radar.sdk.Radar.trackOnce import io.radar.sdk.RadarTrackingOptions import org.json.JSONException import org.json.JSONObject -import java.util.* +import java.util.LinkedList -class RadarKit : KitIntegration(), ApplicationStateListener, IdentityListener { +class RadarKit : + KitIntegration(), + ApplicationStateListener, + IdentityListener { @JvmField var mRunAutomatically = true + private fun tryStartTracking() { - val hasGrantedPermissions = ActivityCompat.checkSelfPermission( - context, - Manifest.permission.ACCESS_FINE_LOCATION - ) == PackageManager.PERMISSION_GRANTED + val hasGrantedPermissions = + ActivityCompat.checkSelfPermission( + context, + Manifest.permission.ACCESS_FINE_LOCATION, + ) == PackageManager.PERMISSION_GRANTED if (hasGrantedPermissions) { startTracking(RadarTrackingOptions.EFFICIENT) } } private fun tryTrackOnce() { - val hasGrantedPermissions = ActivityCompat.checkSelfPermission( - context, - Manifest.permission.ACCESS_FINE_LOCATION - ) == PackageManager.PERMISSION_GRANTED + val hasGrantedPermissions = + ActivityCompat.checkSelfPermission( + context, + Manifest.permission.ACCESS_FINE_LOCATION, + ) == PackageManager.PERMISSION_GRANTED if (hasGrantedPermissions) { trackOnce(null as Radar.RadarTrackCallback?) } @@ -48,11 +54,12 @@ class RadarKit : KitIntegration(), ApplicationStateListener, IdentityListener { override fun onKitCreate( settings: Map, - context: Context + context: Context, ): List { val publishableKey = settings[KEY_PUBLISHABLE_KEY] mRunAutomatically = - settings.containsKey(KEY_RUN_AUTOMATICALLY) && settings[KEY_RUN_AUTOMATICALLY].toBoolean() + settings.containsKey(KEY_RUN_AUTOMATICALLY) && + settings[KEY_RUN_AUTOMATICALLY].toBoolean() initialize(context, publishableKey, null) setAdIdEnabled(true) val user = currentUser @@ -64,7 +71,7 @@ class RadarKit : KitIntegration(), ApplicationStateListener, IdentityListener { try { radarMetadata.put( "mParticleId", - user.id.toString() + user.id.toString(), ) } catch (e: JSONException) { e.printStackTrace() @@ -82,8 +89,8 @@ class RadarKit : KitIntegration(), ApplicationStateListener, IdentityListener { this, ReportingMessage.MessageType.APP_STATE_TRANSITION, System.currentTimeMillis(), - null - ) + null, + ), ) return messageList } @@ -99,19 +106,18 @@ class RadarKit : KitIntegration(), ApplicationStateListener, IdentityListener { } override fun onApplicationBackground() {} + fun setUserAndTrack( user: MParticleUser?, currentRadarId: String?, - currentMetadata: JSONObject? - ): Boolean { - return setUserAndTrack(user, currentRadarId, currentMetadata, false) - } + currentMetadata: JSONObject?, + ): Boolean = setUserAndTrack(user, currentRadarId, currentMetadata, false) fun setUserAndTrack( user: MParticleUser?, currentRadarId: String?, currentMetadata: JSONObject?, - unitTesting: Boolean + unitTesting: Boolean, ): Boolean { if (user == null) { return false @@ -156,33 +162,34 @@ class RadarKit : KitIntegration(), ApplicationStateListener, IdentityListener { override fun onIdentifyCompleted( mParticleUser: MParticleUser, - filteredIdentityApiRequest: FilteredIdentityApiRequest + filteredIdentityApiRequest: FilteredIdentityApiRequest, ) { setUserAndTrack(mParticleUser, getUserId(), getMetadata()) } override fun onLoginCompleted( mParticleUser: MParticleUser, - filteredIdentityApiRequest: FilteredIdentityApiRequest + filteredIdentityApiRequest: FilteredIdentityApiRequest, ) { setUserAndTrack(mParticleUser, getUserId(), getMetadata()) } override fun onLogoutCompleted( mParticleUser: MParticleUser, - filteredIdentityApiRequest: FilteredIdentityApiRequest + filteredIdentityApiRequest: FilteredIdentityApiRequest, ) { setUserAndTrack(mParticleUser, getUserId(), getMetadata()) } override fun onModifyCompleted( mParticleUser: MParticleUser, - filteredIdentityApiRequest: FilteredIdentityApiRequest + filteredIdentityApiRequest: FilteredIdentityApiRequest, ) { setUserAndTrack(mParticleUser, getUserId(), getMetadata()) } override fun onUserIdentified(mParticleUser: MParticleUser) {} + override fun setOptOut(optedOut: Boolean): List { if (mRunAutomatically) { stopTracking() @@ -193,8 +200,8 @@ class RadarKit : KitIntegration(), ApplicationStateListener, IdentityListener { this, ReportingMessage.MessageType.OPT_OUT, System.currentTimeMillis(), - null - ) + null, + ), ) return messageList } @@ -204,6 +211,5 @@ class RadarKit : KitIntegration(), ApplicationStateListener, IdentityListener { private const val KEY_RUN_AUTOMATICALLY = "runAutomatically" private const val M_PARTICLE_ID = "mParticleId" const val KIT_NAME = "RadarKit" - } } diff --git a/src/test/kotlin/com/mparticle/kits/RadarKitTest.kt b/src/test/kotlin/com/mparticle/kits/RadarKitTests.kt similarity index 95% rename from src/test/kotlin/com/mparticle/kits/RadarKitTest.kt rename to src/test/kotlin/com/mparticle/kits/RadarKitTests.kt index 0d11851..ba345eb 100644 --- a/src/test/kotlin/com/mparticle/kits/RadarKitTest.kt +++ b/src/test/kotlin/com/mparticle/kits/RadarKitTests.kt @@ -4,10 +4,13 @@ import android.content.Context import com.mparticle.MParticle.IdentityType import com.mparticle.MParticleOptions import com.mparticle.identity.MParticleUser +import com.mparticle.kits.KitIntegration +import com.mparticle.kits.KitIntegrationFactory import org.json.JSONObject import org.junit.Assert import org.junit.Test import org.mockito.Mockito +import java.util.HashMap class RadarKitTests { private val kit: KitIntegration