Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
281b8a8
feat(analytics): implement autocapture phase 1 - click, rage click, d…
rahul-mixpanel Jun 11, 2026
b28b87c
feat(mixpaneldemo): add autocapture test screens and enable SDK init
rahul-mixpanel Jun 12, 2026
eab4635
fix(autocapture): fix privacy filtering and exclude controls with inh…
rahul-mixpanel Jun 12, 2026
ff3fb8a
feat(autocapture): add Compose semantics extraction using native Comp…
rahul-mixpanel Jun 12, 2026
2b7e19b
fix(autocapture): correctly identify TextField in Compose semantics
rahul-mixpanel Jun 12, 2026
b0dcc96
fix(autocapture): implement Compose-aware dead click detection
rahul-mixpanel Jun 12, 2026
633f7cb
fix(autocapture): improve Compose dead click detection with semantic …
rahul-mixpanel Jun 12, 2026
8aceb79
docs(autocapture): add comprehensive Android autocapture documentation
rahul-mixpanel Jun 25, 2026
c9db81c
test(autocapture): add instrumented tests for XML autocapture
rahul-mixpanel Jun 29, 2026
538789b
test(autocapture): add Rule 3 hash fallback and $el_text coverage
rahul-mixpanel Jun 29, 2026
e729424
test(autocapture): add Compose autocapture instrumented tests
rahul-mixpanel Jun 29, 2026
bd20055
test(autocapture): remove redundant XML tests
rahul-mixpanel Jun 29, 2026
28b6244
fix(autocapture): harden against crashes and fix stale state bugs
rahul-mixpanel Jun 29, 2026
b8cf685
feat(autocapture): make $el_text collection opt-in via captureTextCon…
rahul-mixpanel Jun 30, 2026
6c5ad1f
refactor(autocapture): remove mp-sensitive, keep only mp-no-track
rahul-mixpanel Jun 30, 2026
ba1ccb8
refactor(autocapture): remove $el_text text capture and mp-no-track e…
rahul-mixpanel Jul 1, 2026
b96863f
fix(autocapture): address PR review feedback
rahul-mixpanel Jul 1, 2026
995aa4e
revert(autocapture): remove autocapture section from analytics README
rahul-mixpanel Jul 1, 2026
f7bfda6
fix(autocapture): decouple autocapture events from trackAutomaticEven…
rahul-mixpanel Jul 2, 2026
af3843c
feat(autocapture): multi-window support for dialogs/bottomsheets and …
rahul-mixpanel Jul 2, 2026
19800f6
fix(autocapture): add touch-slop and duration check to filter scrolls…
rahul-mixpanel Jul 2, 2026
079398d
fix(autocapture): use proper depth and node count limits in accessibi…
rahul-mixpanel Jul 2, 2026
16fda05
refactor(autocapture): replace custom reflection and TouchInterceptor…
rahul-mixpanel Jul 2, 2026
79fb8e8
refactor(autocapture): delete TouchInterceptor and complete Curtains …
rahul-mixpanel Jul 2, 2026
fd88c10
docs(autocapture): remove undocumented $tap_count property from rage …
rahul-mixpanel Jul 2, 2026
9f42b69
cleanup(autocapture): remove dead code — write-only field and obsolet…
rahul-mixpanel Jul 2, 2026
70590a2
fix(autocapture): use null-means-disabled pattern for AutocaptureOptions
rahul-mixpanel Jul 2, 2026
412286c
fix(autocapture): capture dead click baseline immediately to prevent …
rahul-mixpanel Jul 2, 2026
0da6c08
refactor(autocapture): unify dead click detection with UiChangeMonito…
rahul-mixpanel Jul 2, 2026
e0a3514
renamed test file
rahul-mixpanel Jul 2, 2026
6bcb552
refactor(test): move autocapture test activities to autocapture package
rahul-mixpanel Jul 2, 2026
1ed8777
Revert "refactor(test): move autocapture test activities to autocaptu…
rahul-mixpanel Jul 2, 2026
1cfdad3
refactor(test): rename autocapture test files with Autocapture prefix
rahul-mixpanel Jul 2, 2026
9916283
fix(autocapture): convert screen coords to window coords for Compose …
rahul-mixpanel Jul 2, 2026
732acfe
Revert "fix(autocapture): convert screen coords to window coords for …
rahul-mixpanel Jul 2, 2026
9ffe297
Add @MainThread annotations to AutocaptureManager start/stop
rahul-mixpanel Jul 6, 2026
ad5f343
Remove redundant ±5 node count check in Compose dead click detection
rahul-mixpanel Jul 6, 2026
a05e447
Remove pr982-review-report.md from tracking
rahul-mixpanel Jul 6, 2026
cfc88e9
Remove dead ClickEvent.timestamp field
rahul-mixpanel Jul 6, 2026
fcfede0
Simplify ComposeSemanticHelper.extract() to return nullable Builder
rahul-mixpanel Jul 6, 2026
f228af5
Fix crash in buildHierarchyFromNode for unsealed AccessibilityNodeInfo
rahul-mixpanel Jul 6, 2026
9660c36
Fix AccessibilityNodeInfo leak in extractFromAccessibility
rahul-mixpanel Jul 6, 2026
e046db4
Add cross-framework dead click sections to demo test screens
rahul-mixpanel Jul 6, 2026
22993bd
Fix cross-framework dead click: Compose click updating XML views
rahul-mixpanel Jul 7, 2026
ddfa7b1
Fix multi-touch gesture firing false tap events
rahul-mixpanel Jul 7, 2026
9d3c6d2
Add null guards to AutocaptureOptions.Builder setters
rahul-mixpanel Jul 7, 2026
e64c360
Revert "Fix cross-framework dead click: Compose click updating XML vi…
rahul-mixpanel Jul 7, 2026
fc32abb
Revert "Add cross-framework dead click sections to demo test screens"
rahul-mixpanel Jul 7, 2026
81ed4f8
Fix Compose hit-testing in split-screen and multi-window modes
rahul-mixpanel Jul 7, 2026
df1e8b9
Remove dead windowless root view touch listener fallback
rahul-mixpanel Jul 7, 2026
3752a8d
Merge dual tree walks in XmlUiChangeMonitor into single snapshotViewTree
rahul-mixpanel Jul 7, 2026
7eecffc
Remove unused nodeCount from Compose SemanticSnapshot
rahul-mixpanel Jul 7, 2026
3ef4949
Align autocapture with iOS: tap duration and dead click snapshot parity
rahul-mixpanel Jul 8, 2026
e884af5
Merge origin/master into feature/autocapture-phase1
rahul-mixpanel Jul 8, 2026
75076d8
Add trackClick/trackRageClick/trackDeadClick to Autocapture class
rahul-mixpanel Jul 8, 2026
a4ea226
Align rage click distance with iOS/JS SDK using Euclidean distance
rahul-mixpanel Jul 8, 2026
9bfff8a
Add mixed-framework dead click test UI to sample app
rahul-mixpanel Jul 13, 2026
89ccb14
Add instrumented tests for mixed-framework dead click detection
rahul-mixpanel Jul 13, 2026
79c60c7
Unify dead click detection for mixed XML/Compose framework screens
rahul-mixpanel Jul 13, 2026
e3c1263
Optimize UnifiedUiChangeMonitor for performance and safety
rahul-mixpanel Jul 13, 2026
1968318
Respect opt-out tracking in autocapture lifecycle
rahul-mixpanel Jul 13, 2026
a1e5145
Rename ariaLabel to accessibleLabel in ClickEvent
rahul-mixpanel Jul 13, 2026
ab5259b
Improve ClickEvent documentation and remove text fallback for elementId
rahul-mixpanel Jul 14, 2026
7700bc7
Shorten elementId fallback format from ClassName_view_<hash> to Class…
rahul-mixpanel Jul 14, 2026
eca765d
Use PascalCase for role values and return null instead of "none"
rahul-mixpanel Jul 14, 2026
a752693
Update tests to match shortened elementId fallback format
rahul-mixpanel Jul 14, 2026
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
20 changes: 20 additions & 0 deletions analytics/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
id 'org.jetbrains.kotlin.plugin.compose'
id 'mixpanel.maven-publish'
id 'jacoco'
id 'ru.vyarus.animalsniffer' version '2.0.0'
Expand All @@ -25,6 +27,12 @@ android {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
compose true
}


sourceSets {
Expand Down Expand Up @@ -146,8 +154,13 @@ dependencies {
implementation 'androidx.core:core:1.13.1'
implementation 'androidx.lifecycle:lifecycle-process:2.6.2'
implementation 'io.github.jamsesso:json-logic-java:1.1.0'
// Curtains: root view (window) observation for autocapture dialog/popup tracking.
// Compatible with other Curtains consumers (e.g., Session Replay SDK).
implementation 'com.squareup.curtains:curtains:1.2.5'
// json-logic-java pulls in an outdated json with cve
implementation 'com.google.code.gson:gson:2.13.2'
// Compose UI for autocapture semantics extraction (optional - graceful degradation if not present)
compileOnly 'androidx.compose.ui:ui:1.7.7'
// AndroidJUnitRunner and JUnit Rules
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test:core:1.6.1'
Expand All @@ -162,6 +175,13 @@ dependencies {
testImplementation 'androidx.test:core:1.5.0'
testImplementation 'org.json:json:20231013'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
// Compose dependencies for androidTest only (Compose autocapture tests)
androidTestImplementation platform('androidx.compose:compose-bom:2024.12.01')
androidTestImplementation 'androidx.compose.ui:ui'
androidTestImplementation 'androidx.compose.material3:material3'
androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
androidTestImplementation 'androidx.activity:activity-compose:1.9.1'
debugImplementation 'androidx.compose.ui:ui-test-manifest:1.7.7'
}

jacoco {
Expand Down
Loading
Loading