Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@

buildscript {
ext.kotlin_version = '1.7.22'
ext.kotlin_version = '1.9.0'
if (!project.hasProperty('version') || project.version.equals('unspecified')) {
project.version = '+'
}
Expand All @@ -13,7 +12,7 @@ buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:7.4.1'
classpath 'com.mparticle:android-kit-plugin:' + project.version
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0'
}
}

Expand Down Expand Up @@ -58,9 +57,12 @@ repositories {

dependencies {
implementation 'androidx.annotation:annotation:1.5.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4'
api 'com.rokt:roktsdk:4.10.0'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0"

testImplementation files('libs/java-json.jar')
testImplementation 'com.squareup.assertj:assertj-android:1.2.0'
testImplementation ("io.mockk:mockk:1.13.4")
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
}
50 changes: 46 additions & 4 deletions src/main/kotlin/com/mparticle/kits/RoktKit.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import android.content.pm.PackageManager
import android.graphics.Typeface
import android.os.Build
import com.mparticle.BuildConfig
import com.mparticle.MParticle
import com.mparticle.MParticle.IdentityType
import com.mparticle.MpRoktEventCallback
import com.mparticle.UnloadReasons
Expand All @@ -23,13 +22,18 @@ import com.mparticle.rokt.RoktConfig
import com.mparticle.rokt.RoktEmbeddedView
import com.rokt.roktsdk.CacheConfig
import com.rokt.roktsdk.Rokt
import com.rokt.roktsdk.Rokt.SdkFrameworkType.*
import com.rokt.roktsdk.Rokt.SdkFrameworkType.Android
import com.rokt.roktsdk.Rokt.SdkFrameworkType.Cordova
import com.rokt.roktsdk.Rokt.SdkFrameworkType.Flutter
import com.rokt.roktsdk.Rokt.SdkFrameworkType.ReactNative
import com.rokt.roktsdk.RoktEvent
import com.rokt.roktsdk.RoktWidgetDimensionCallBack
import com.rokt.roktsdk.Widget
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import java.lang.ref.WeakReference
import java.math.BigDecimal


/**
* MParticle embedded implementation of the Rokt Library.
*
Expand Down Expand Up @@ -203,6 +207,45 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
)
}

override fun events(identifier: String): Flow<com.mparticle.RoktEvent> {
return Rokt.events(identifier)
.map { event ->
when (event) {
is RoktEvent.HideLoadingIndicator -> com.mparticle.RoktEvent.HideLoadingIndicator
is RoktEvent.ShowLoadingIndicator -> com.mparticle.RoktEvent.ShowLoadingIndicator
is RoktEvent.FirstPositiveEngagement -> com.mparticle.RoktEvent.FirstPositiveEngagement(
event.id
)
is RoktEvent.PositiveEngagement -> com.mparticle.RoktEvent.PositiveEngagement(
event.id
)
is RoktEvent.OfferEngagement -> com.mparticle.RoktEvent.OfferEngagement(event.id)
is RoktEvent.OpenUrl -> com.mparticle.RoktEvent.OpenUrl(event.id, event.url)
is RoktEvent.PlacementClosed -> com.mparticle.RoktEvent.PlacementClosed(event.id)
is RoktEvent.PlacementCompleted -> com.mparticle.RoktEvent.PlacementCompleted(
event.id
)
is RoktEvent.PlacementFailure -> com.mparticle.RoktEvent.PlacementFailure(event.id)
is RoktEvent.PlacementInteractive -> com.mparticle.RoktEvent.PlacementInteractive(
event.id
)
is RoktEvent.PlacementReady -> com.mparticle.RoktEvent.PlacementReady(event.id)
is RoktEvent.CartItemInstantPurchase -> com.mparticle.RoktEvent.CartItemInstantPurchase(
placementId = event.placementId,
cartItemId = event.cartItemId,
catalogItemId = event.catalogItemId,
currency = event.currency,
description = event.description,
linkedProductId = event.linkedProductId,
totalPrice = event.totalPrice,
quantity = event.quantity,
unitPrice = event.unitPrice
)
is RoktEvent.InitComplete -> com.mparticle.RoktEvent.InitComplete(event.success)
}
}
}

override fun setWrapperSdkVersion(wrapperSdkVersion: WrapperSdkVersion) {
val sdkFrameworkType = when (wrapperSdkVersion.sdk) {
WrapperSdk.WrapperFlutter -> Flutter
Expand Down Expand Up @@ -325,7 +368,6 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
}
}


fun PackageManager.getPackageInfoForApp(packageName: String, flags: Int = 0): PackageInfo =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
getPackageInfo(packageName, PackageManager.PackageInfoFlags.of(flags.toLong()))
Expand Down
Loading
Loading