From b6d748a1923efe58f6781d7548ab5cfacbdffc47 Mon Sep 17 00:00:00 2001 From: Wenxi Zeng Date: Wed, 25 Jun 2025 10:32:19 -0500 Subject: [PATCH 1/4] update substrata and analytics versions --- analytics-kotlin-live/build.gradle | 4 ++-- app/build.gradle | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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/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' From becdb0a52b4430a1d3d6349adfd61ea578eae77c Mon Sep 17 00:00:00 2001 From: Wenxi Zeng Date: Wed, 25 Jun 2025 10:32:32 -0500 Subject: [PATCH 2/4] add proguard rules --- analytics-kotlin-live/consumer-rules.pro | 1 + 1 file changed, 1 insertion(+) 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 From fbb4883676ea0422effc894b11d1371d3f2f063c Mon Sep 17 00:00:00 2001 From: Wenxi Zeng Date: Wed, 25 Jun 2025 10:33:13 -0500 Subject: [PATCH 3/4] fix live plugin short lived issue --- .../segment/analytics/liveplugins/kotlin/JSAnalytics.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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"] From a83723f8b52e4286907271bdb21a6f7ebaba179a Mon Sep 17 00:00:00 2001 From: Wenxi Zeng Date: Wed, 25 Jun 2025 10:38:27 -0500 Subject: [PATCH 4/4] ci fix --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/snapshot.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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