diff --git a/.snyk b/.snyk new file mode 100644 index 0000000..e71aa0b --- /dev/null +++ b/.snyk @@ -0,0 +1,190 @@ +# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. +version: v1.25.1 +# ignores vulnerabilities until expiry date; change duration by modifying expiry date +ignore: + 'SNYK:LIC:MAVEN:JUNIT:JUNIT:EPL-1.0': + - '*': + reason: >- + Temporarily ignored pending further evaluation or upstream resolution by Google + for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2023-3635: + - '*': + reason: >- + GzipSource in Okio mishandles exceptions when parsing malformed gzip + buffers, potentially leading to a denial of service. Ignoring + temporarily to monitor for upstream fixes. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-JAVA-COMFASTERXMLJACKSONCORE-7569538: + - '*': + reason: >- + Jackson-databind before 2.9.10.8 mishandles interactions between serialization + gadgets and typing, related to JNDIConnectionSource. Ignoring temporarily to + assess impact and monitor for patches. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2022-48476: + - '*': + reason: >- + Temporarily ignored pending further evaluation or upstream resolution + by Google for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2024-49580: + - '*': + reason: >- + Temporarily ignored pending further evaluation or upstream resolution + by Google for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2025-52999: + - '*': + reason: >- + Temporarily ignored pending further evaluation or upstream resolution + by Google for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2020-29582: + - '*': + reason: >- + Awaiting Realm's update to support Kotlin 2.1.0. Cannot upgrade Kotlin + until Realm updates its dependency. Ignoring temporarily to monitor + for Realm's updates. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-JAVA-ORGJETBRAINSKOTLIN-2393744: + - '*': + reason: >- + Awaiting Realm's update to support Kotlin 2.1.0. Cannot upgrade Kotlin until + Realm updates its dependency. Ignoring temporarily to monitor for Realm's + updates. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2022-40152: + - '*': + reason: >- + Woodstox XML parser is vulnerable to stack overflow when processing + malicious DTDs, potentially leading to denial of service. Ignoring + temporarily to monitor for upstream fixes. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-JAVA-COMFASTERXMLWOODSTOX-3091135: + - '*': + reason: >- + Woodstox-core versions before 5.4.0 and between 6.0.0.pr1 and 6.4.0 + are vulnerable to denial of service via stack overflow when processing + malicious DTDs. Ignoring temporarily to monitor for upstream fixes. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-JAVA-COMFASTERXMLJACKSONCORE-10332631: + - '*': + reason: >- + Woodstox-core versions before 5.4.0 and between 6.0.0.pr1 and 6.4.0 + are vulnerable to denial of service via stack overflow when processing + malicious DTDs. Ignoring temporarily to monitor for upstream fixes. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2023-34339: + - '*': + reason: >- + JetBrains Ktor before 2.3.1 could expose authentication data in + exception messages. Ignoring temporarily to monitor for upstream + fixes. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2024-43398: + - '*': + reason: >- + REXML gem before 3.3.6 has a DoS vulnerability when parsing XML with + deeply nested elements having the same local name attributes. Ignoring + temporarily to monitor for upstream fixes. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2024-41946: + - '*': + reason: >- + Temporarily ignored pending further evaluation or upstream resolution + by Google for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2024-47220: + - '*': + reason: >- + Temporarily ignored pending further evaluation or upstream resolution + by Google for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2024-41123: + - '*': + reason: >- + Temporarily ignored pending further evaluation or upstream resolution + by Google for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2024-49761: + - '*': + reason: >- + REXML gem before 3.3.9 has a ReDoS vulnerability when parsing XML with + many digits in hex numeric character references. Ignoring temporarily + to monitor for upstream fixes. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2024-35176: + - '*': + reason: >- + Temporarily ignored pending further evaluation or upstream resolution + by Google for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + CVE-2024-39908: + - '*': + reason: >- + Temporarily ignored pending further evaluation or upstream resolution + by Google for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-JAVA-IOKTOR-8230428: + - '*': + reason: >- + Temporarily ignored to assess impact and await potential upstream + fixes for Ktor-related dependencies. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-JAVA-IOKTOR-8492193: + - '*': + reason: >- + Temporarily ignored to assess impact and await potential upstream + fixes for Ktor-related dependencies. for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-JAVA-COMFASTERXMLJACKSONCORE-10500754: + - '*': + reason: >- + Temporarily ignored to assess impact and await potential upstream + fixes for Ktor-related dependencies. for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-RUBY-REXML-12878608: + - '*': + reason: >- + Temporarily ignored to assess impact and await potential upstream + fixes for Ktor-related dependencies. for the Android Gradle Plugin. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-JAVA-CHQOSLOGBACK-13169722: + - '*': + reason: >- + Temporarily ignored to assess impact and await potential upstream + fixes for Ktlint dependency resolution. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z + SNYK-RUBY-REXML-13110060: + - '*': + reason: >- + Temporarily ignored to assess impact and await potential upstream + fixes for fastlane updates. + expires: 2026-01-03T00:00:00.000Z + created: 2025-12-03T18:57:22.454Z +patch: {} diff --git a/CHANGELOG.md b/CHANGELOG.md index 464c906..a889828 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 2.2.10 + +### Added +- Added a capture error API to allow apps to report runtime errors through the SDK. + +### Changed +- Refined rage tap detection logic to avoid misclassifying double taps as rage taps. +- Optimized session recording and network request handling to reduce overhead during active sessions. + +### Fixed +- Fixed incorrect engagement time calculation in crash scenarios. +- Fixed ANRs occurring during SDK initialization. + +## 2.2.9 + +### Added +- Support for session capturing on Android 16 devices. +- Support for tracking hybrid platforms and their versions. + +### Changed +- Improved masking behavior on `RecyclerView` scrolls. +- Improved session upload reliability and stability. +- Optimized network bandwidth usage. + +### Fixed +- Fixed an issue in the logout flow. + ## 2.2.8 ### Deprecated diff --git a/README.md b/README.md index 77025a6..3676990 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ DevRev SDK, used for integrating DevRev services into your Android app. - [User interaction tracking](#user-interaction-tracking) - [Custom masking provider](#custom-masking-provider) - [Timers](#timers) - - [Track handled exceptions](#track-handled-exceptions) + - [Capture errors](#capture-errors) - [Track screens](#track-screens) - [Manage screen transitions](#manage-screen-transitions) - [Check if the screen is transitioning](#check-if-the-screen-is-transitioning) @@ -1041,25 +1041,25 @@ DevRevObservabilityExtKt.startTimer(DevRev.INSTANCE, "response-time", new HashMa DevRevObservabilityExtKt.endTimer(DevRev.INSTANCE, "response-time", new HashMap().put("id", "task-1337")); ``` -#### Track handled exceptions +#### Capture errors -You can report a handled exception from a catch block using the `sendException` function. +You can report a handled exception from a catch block using the `captureError` function. This ensures that even if the exception is handled in your app, it will still be logged for diagnostics. - Kotlin ```kotlin -DevRev.sendException( - exceptionObj: Throwable, - exceptionTag: String +DevRev.captureError( + exception: Throwable, + tag: String ) ``` - Java ```java -DevRevObservabilityExtKt.sendException( +DevRevObservabilityExtKt.captureError( DevRev.INSTANCE, - Throwable exceptionObj, - String exceptionTag + Throwable exception, + String tag ); ``` @@ -1070,9 +1070,9 @@ For example: try { // Your code that may produce an exception } catch (e: Throwable) { - DevRev.sendException( - exceptionObj = e, - exceptionTag = "login-failure" + DevRev.captureError( + exception = e, + tag = "login-failure" ) } ``` @@ -1082,7 +1082,7 @@ try { try { // your code that may throw } catch (Throwable e) { - DevRevObservabilityExtKt.sendException( + DevRevObservabilityExtKt.captureError( DevRev.INSTANCE, e, "login-failure" diff --git a/docs/html/core/ai.devrev.sdk.executors/-default-recording-executor/-default-recording-executor.html b/docs/html/core/ai.devrev.sdk.executors/-default-recording-executor/-default-recording-executor.html index ae1f0e2..e8d8b77 100644 --- a/docs/html/core/ai.devrev.sdk.executors/-default-recording-executor/-default-recording-executor.html +++ b/docs/html/core/ai.devrev.sdk.executors/-default-recording-executor/-default-recording-executor.html @@ -1,23 +1,23 @@ - + DefaultRecordingExecutor - - + + @@ -25,20 +25,18 @@ - - + - -
-
- -
- \ No newline at end of file diff --git a/docs/html/core/ai.devrev.sdk.executors/-default-recording-executor/index.html b/docs/html/core/ai.devrev.sdk.executors/-default-recording-executor/index.html index 2a6b5ac..4472fc0 100644 --- a/docs/html/core/ai.devrev.sdk.executors/-default-recording-executor/index.html +++ b/docs/html/core/ai.devrev.sdk.executors/-default-recording-executor/index.html @@ -1,23 +1,23 @@ - + DefaultRecordingExecutor - - + + @@ -25,20 +25,18 @@ - - + - -
-
- -
-