diff --git a/build.gradle b/build.gradle index 94d641a..63a7f4c 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.wootric' + buildFeatures { + buildConfig = true + } defaultConfig { minSdkVersion 16 } + 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 1a9bda4..c4e6c98 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -1 +1 @@ - + diff --git a/src/main/kotlin/com/mparticle/kits/WootricKit.kt b/src/main/kotlin/com/mparticle/kits/WootricKit.kt index 0f50351..08ec6ee 100644 --- a/src/main/kotlin/com/mparticle/kits/WootricKit.kt +++ b/src/main/kotlin/com/mparticle/kits/WootricKit.kt @@ -5,7 +5,9 @@ import com.mparticle.MParticle.IdentityType import com.mparticle.kits.KitIntegration.AttributeListener import com.wootric.androidsdk.Wootric -class WootricKit : KitIntegration(), AttributeListener { +class WootricKit : + KitIntegration(), + AttributeListener { private var endUserEmail: String? = null private var endUserCustomerId: String? = null private var endUserProperties: HashMap? = null @@ -16,11 +18,12 @@ class WootricKit : KitIntegration(), AttributeListener { if (activityWeakReference != null) { val activity = activityWeakReference.get() if (activity != null) { - wootric = Wootric.init( - activity, - settings[CLIENT_ID], - settings[ACCOUNT_TOKEN] - ) + wootric = + Wootric.init( + activity, + settings[CLIENT_ID], + settings[ACCOUNT_TOKEN], + ) wootric?.setProperties(endUserProperties) setWootricIdentity(wootric) } @@ -33,21 +36,26 @@ class WootricKit : KitIntegration(), AttributeListener { override fun onKitCreate( settings: Map, - context: Context + context: Context, ): List { - //it's important the Wootric is not initialized until the hosting app calls getInstance, with - //the correct Activity + // it's important the Wootric is not initialized until the hosting app calls getInstance, with + // the correct Activity require( - !(KitUtils.isEmpty(settings[CLIENT_ID]) || + !( + KitUtils.isEmpty(settings[CLIENT_ID]) || KitUtils.isEmpty(CLIENT_SECRET) || - KitUtils.isEmpty(ACCOUNT_TOKEN)) + KitUtils.isEmpty(ACCOUNT_TOKEN) + ), ) { WOOTRIC_MISSING_REQUIRED_SETTINGS_MESSAGE } return emptyList() } override fun setOptOut(optedOut: Boolean): List = emptyList() - override fun setUserIdentity(identityType: IdentityType, id: String) { + override fun setUserIdentity( + identityType: IdentityType, + id: String, + ) { if (IdentityType.Email == identityType) { endUserEmail = id } else if (IdentityType.CustomerId == identityType) { @@ -77,19 +85,26 @@ class WootricKit : KitIntegration(), AttributeListener { wootric?.setEndUserEmail(endUserIdentifier) } - override fun setUserAttribute(key: String, value: String) { + override fun setUserAttribute( + key: String, + value: String, + ) { prepareEndUserProperties(key, value) if (wootric != null) { wootric?.setProperties(endUserProperties) } } - override fun setUserAttributeList(s: String, list: List) {} + override fun setUserAttributeList( + s: String, + list: List, + ) {} + override fun supportsAttributeLists(): Boolean = false override fun setAllUserAttributes( attributes: Map, - attributeLists: Map> + attributeLists: Map>, ) { endUserProperties = HashMap() for ((key, value) in attributes) { @@ -101,17 +116,22 @@ class WootricKit : KitIntegration(), AttributeListener { } override fun removeUserAttribute(key: String) { - if (wootric != null && endUserProperties != null && endUserProperties?.remove( + if (wootric != null && + endUserProperties != null && + endUserProperties?.remove( KitUtils.sanitizeAttributeKey( - key - ) + key, + ), ) != null ) { wootric?.setProperties(endUserProperties) } } - private fun prepareEndUserProperties(key: String, value: String) { + private fun prepareEndUserProperties( + key: String, + value: String, + ) { endUserProperties?.let { it[KitUtils.sanitizeAttributeKey(key)] = value } if (endUserProperties == null) { endUserProperties = HashMap() @@ -126,4 +146,4 @@ class WootricKit : KitIntegration(), AttributeListener { private const val WOOTRIC_MISSING_REQUIRED_SETTINGS_MESSAGE = "Wootric missing required settings and will not start." } -} \ No newline at end of file +} diff --git a/src/test/kotlin/com/mparticle/kits/WootricKitTest.kt b/src/test/kotlin/com/mparticle/kits/WootricKitTests.kt similarity index 97% rename from src/test/kotlin/com/mparticle/kits/WootricKitTest.kt rename to src/test/kotlin/com/mparticle/kits/WootricKitTests.kt index de9eaba..21ac404 100644 --- a/src/test/kotlin/com/mparticle/kits/WootricKitTest.kt +++ b/src/test/kotlin/com/mparticle/kits/WootricKitTests.kt @@ -8,7 +8,7 @@ import org.mockito.Mockito class WootricKitTests { private val kit: KitIntegration - get() = WootricKit() + get() = WootricKit() @Test @Throws(Exception::class) @@ -50,4 +50,4 @@ class WootricKitTests { } Assert.fail("$className not found as a known integration.") } -} \ No newline at end of file +}