diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1421d39..116e8fa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew - name: cache gradle dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | ~/.gradle/caches diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b42b515..b92c582 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew - name: cache gradle dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | ~/.gradle/caches diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index 6ccd79a..844fe05 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -13,7 +13,7 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew - name: cache gradle dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | ~/.gradle/caches diff --git a/analytics-kotlin-live/build.gradle b/analytics-kotlin-live/build.gradle index 431b735..5f7931f 100644 --- a/analytics-kotlin-live/build.gradle +++ b/analytics-kotlin-live/build.gradle @@ -33,8 +33,8 @@ android { dependencies { // Segment - implementation 'com.segment.analytics.kotlin:substrata:1.0.0' - implementation 'com.segment.analytics.kotlin:android:1.16.3' + implementation 'com.segment.analytics.kotlin:substrata:1.1.0' + implementation 'com.segment.analytics.kotlin:android:1.20.0' implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1' diff --git a/analytics-kotlin-live/consumer-rules.pro b/analytics-kotlin-live/consumer-rules.pro index e69de29..acf0e62 100644 --- a/analytics-kotlin-live/consumer-rules.pro +++ b/analytics-kotlin-live/consumer-rules.pro @@ -0,0 +1 @@ +-keep class com.segment.analytics.liveplugins.kotlin.** { *; } \ No newline at end of file diff --git a/analytics-kotlin-live/src/main/java/com/segment/analytics/liveplugins/kotlin/JSAnalytics.kt b/analytics-kotlin-live/src/main/java/com/segment/analytics/liveplugins/kotlin/JSAnalytics.kt index 7cda024..8438513 100644 --- a/analytics-kotlin-live/src/main/java/com/segment/analytics/liveplugins/kotlin/JSAnalytics.kt +++ b/analytics-kotlin-live/src/main/java/com/segment/analytics/liveplugins/kotlin/JSAnalytics.kt @@ -131,8 +131,13 @@ class JSAnalytics { fun add(plugin: JSObject): Boolean { if (!mainAnalytics) return false // Only allow adding plugins to injected analytics - val type: Plugin.Type = pluginTypeFromInt(plugin.getInt("type")) ?: return false + + // persist plugin in the global scope to avoid being garbage collected + engine.sync { + this[plugin.ref.toString()] = plugin + } + var result = false val livePlugin = LivePlugin(plugin, type, engine) val destination = plugin["destination"] diff --git a/app/build.gradle b/app/build.gradle index 8036a6a..d59d616 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -35,8 +35,8 @@ android { dependencies { implementation project(':analytics-kotlin-live') - implementation 'com.segment.analytics.kotlin:substrata:1.0.0' - implementation 'com.segment.analytics.kotlin:android:1.16.0' + implementation 'com.segment.analytics.kotlin:substrata:1.1.0' + implementation 'com.segment.analytics.kotlin:android:1.20.0' implementation 'androidx.core:core-ktx:1.13.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.11.0'