From b84c36d832b940afa9e8b5fc244fc66ce56e5227 Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Tue, 20 Feb 2024 00:53:55 +0100 Subject: [PATCH 1/3] Add isCrashedLastRun --- .../io/sentry/kotlin/multiplatform/SentryBridge.apple.kt | 4 ++++ .../io/sentry/kotlin/multiplatform/SentryBridge.jvm.kt | 4 ++++ .../kotlin/io/sentry/kotlin/multiplatform/SentryBridge.kt | 2 ++ .../kotlin/io/sentry/kotlin/multiplatform/SentryKMP.kt | 7 +++++++ 4 files changed, 17 insertions(+) diff --git a/sentry-kotlin-multiplatform/src/appleMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.apple.kt b/sentry-kotlin-multiplatform/src/appleMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.apple.kt index 3a7cd87d..409fb4b8 100644 --- a/sentry-kotlin-multiplatform/src/appleMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.apple.kt +++ b/sentry-kotlin-multiplatform/src/appleMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.apple.kt @@ -65,6 +65,10 @@ internal actual object SentryBridge { SentrySDK.setUser(user?.toCocoaUser()) } + actual fun isCrashedLastRun(): Boolean { + return SentrySDK.crashedLastRun() + } + actual fun close() { SentrySDK.close() } diff --git a/sentry-kotlin-multiplatform/src/commonJvmMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.jvm.kt b/sentry-kotlin-multiplatform/src/commonJvmMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.jvm.kt index 51b1e662..68eab581 100644 --- a/sentry-kotlin-multiplatform/src/commonJvmMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.jvm.kt +++ b/sentry-kotlin-multiplatform/src/commonJvmMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.jvm.kt @@ -57,6 +57,10 @@ internal actual object SentryBridge { Sentry.setUser(user?.toJvmUser()) } + actual fun isCrashedLastRun(): Boolean { + return Sentry.isCrashedLastRun() ?: false + } + actual fun close() { Sentry.close() } diff --git a/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.kt b/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.kt index 32c6a074..72111626 100644 --- a/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.kt +++ b/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryBridge.kt @@ -27,5 +27,7 @@ internal expect object SentryBridge { fun setUser(user: User?) + fun isCrashedLastRun(): Boolean + fun close() } diff --git a/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryKMP.kt b/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryKMP.kt index 56f6f39e..3b52dd56 100644 --- a/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryKMP.kt +++ b/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryKMP.kt @@ -117,6 +117,13 @@ public object Sentry { SentryBridge.setUser(user) } + /** + * Returns true if the app crashed during last run. + */ + public fun isCrashedLastRun(): Boolean { + return SentryBridge.isCrashedLastRun() + } + /** * Throws a RuntimeException, useful for testing. */ From bee8632e02bb3e0809f5bd3c2d15ed8f0298eccf Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Tue, 20 Feb 2024 01:04:10 +0100 Subject: [PATCH 2/3] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 240e7196..2dcf12f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## Unreleased +### Features + +- Add isCrashedLastRun ([#186](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/186)) + - You can use it with `Sentry.isCrashedLastRun()` + ### Dependencies - Bump Cocoa SDK from v8.17.2 to v8.20.0 ([#180](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/180), [#182](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/182)) From 76463a59216d39594ef465cfc53cd78af3c1cc3e Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Tue, 20 Feb 2024 13:38:01 +0100 Subject: [PATCH 3/3] add api --- .../api/android/sentry-kotlin-multiplatform.api | 1 + .../api/jvm/sentry-kotlin-multiplatform.api | 1 + 2 files changed, 2 insertions(+) diff --git a/sentry-kotlin-multiplatform/api/android/sentry-kotlin-multiplatform.api b/sentry-kotlin-multiplatform/api/android/sentry-kotlin-multiplatform.api index 89233344..7a6f63bd 100644 --- a/sentry-kotlin-multiplatform/api/android/sentry-kotlin-multiplatform.api +++ b/sentry-kotlin-multiplatform/api/android/sentry-kotlin-multiplatform.api @@ -84,6 +84,7 @@ public final class io/sentry/kotlin/multiplatform/Sentry { public final fun crash ()V public final fun init (Landroid/content/Context;Lkotlin/jvm/functions/Function1;)V public final fun init (Lkotlin/jvm/functions/Function1;)V + public final fun isCrashedLastRun ()Z public final fun setUser (Lio/sentry/kotlin/multiplatform/protocol/User;)V } diff --git a/sentry-kotlin-multiplatform/api/jvm/sentry-kotlin-multiplatform.api b/sentry-kotlin-multiplatform/api/jvm/sentry-kotlin-multiplatform.api index e1f8a5cc..f8c0d5bc 100644 --- a/sentry-kotlin-multiplatform/api/jvm/sentry-kotlin-multiplatform.api +++ b/sentry-kotlin-multiplatform/api/jvm/sentry-kotlin-multiplatform.api @@ -81,6 +81,7 @@ public final class io/sentry/kotlin/multiplatform/Sentry { public final fun crash ()V public final fun init (Lio/sentry/kotlin/multiplatform/Context;Lkotlin/jvm/functions/Function1;)V public final fun init (Lkotlin/jvm/functions/Function1;)V + public final fun isCrashedLastRun ()Z public final fun setUser (Lio/sentry/kotlin/multiplatform/protocol/User;)V }