Skip to content

Commit 5e0642c

Browse files
authored
Proguard rules and plugin lifecycle fix (#20)
* update substrata and analytics versions * add proguard rules * fix live plugin short lived issue * ci fix
1 parent 2eeaf1b commit 5e0642c

File tree

7 files changed

+14
-8
lines changed

7 files changed

+14
-8
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
- name: Grant execute permission for gradlew
2929
run: chmod +x gradlew
3030
- name: cache gradle dependencies
31-
uses: actions/cache@v2
31+
uses: actions/cache@v3
3232
with:
3333
path: |
3434
~/.gradle/caches

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- name: Grant execute permission for gradlew
2828
run: chmod +x gradlew
2929
- name: cache gradle dependencies
30-
uses: actions/cache@v2
30+
uses: actions/cache@v3
3131
with:
3232
path: |
3333
~/.gradle/caches

.github/workflows/snapshot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- name: Grant execute permission for gradlew
1414
run: chmod +x gradlew
1515
- name: cache gradle dependencies
16-
uses: actions/cache@v2
16+
uses: actions/cache@v3
1717
with:
1818
path: |
1919
~/.gradle/caches

analytics-kotlin-live/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ android {
3333

3434
dependencies {
3535
// Segment
36-
implementation 'com.segment.analytics.kotlin:substrata:1.0.0'
37-
implementation 'com.segment.analytics.kotlin:android:1.16.3'
36+
implementation 'com.segment.analytics.kotlin:substrata:1.1.0'
37+
implementation 'com.segment.analytics.kotlin:android:1.20.0'
3838

3939
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1'
4040
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-keep class com.segment.analytics.liveplugins.kotlin.** { *; }

analytics-kotlin-live/src/main/java/com/segment/analytics/liveplugins/kotlin/JSAnalytics.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,13 @@ class JSAnalytics {
131131

132132
fun add(plugin: JSObject): Boolean {
133133
if (!mainAnalytics) return false // Only allow adding plugins to injected analytics
134-
135134
val type: Plugin.Type = pluginTypeFromInt(plugin.getInt("type")) ?: return false
135+
136+
// persist plugin in the global scope to avoid being garbage collected
137+
engine.sync {
138+
this[plugin.ref.toString()] = plugin
139+
}
140+
136141
var result = false
137142
val livePlugin = LivePlugin(plugin, type, engine)
138143
val destination = plugin["destination"]

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ android {
3535

3636
dependencies {
3737
implementation project(':analytics-kotlin-live')
38-
implementation 'com.segment.analytics.kotlin:substrata:1.0.0'
39-
implementation 'com.segment.analytics.kotlin:android:1.16.0'
38+
implementation 'com.segment.analytics.kotlin:substrata:1.1.0'
39+
implementation 'com.segment.analytics.kotlin:android:1.20.0'
4040
implementation 'androidx.core:core-ktx:1.13.0'
4141
implementation 'androidx.appcompat:appcompat:1.6.1'
4242
implementation 'com.google.android.material:material:1.11.0'

0 commit comments

Comments
 (0)