Skip to content

Commit 2aa98e3

Browse files
committed
Merge branch 'main' into release/0.10.0
2 parents 2850706 + a8cebc1 commit 2aa98e3

File tree

12 files changed

+85
-44
lines changed

12 files changed

+85
-44
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ Sentry.init { options ->
2020
- Bump Cocoa SDK from v8.36.0 to v8.37.0 ([#279](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/279))
2121
- [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#8370)
2222
- [diff](https://github.com/getsentry/sentry-cocoa/compare/8.36.0...8.37.0)
23+
- Bump Java SDK from v7.14.0 to v7.15.0 ([#284](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/284))
24+
- [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#7150)
25+
- [diff](https://github.com/getsentry/sentry-java/compare/7.14.0...7.15.0)
2326

2427
## 0.9.0
2528

buildSrc/src/main/java/Config.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ object Config {
3232
object Libs {
3333
val kotlinStd = "org.jetbrains.kotlin:kotlin-stdlib"
3434

35-
val sentryJavaVersion = "7.14.0"
35+
val sentryJavaVersion = "7.15.0"
3636
val sentryAndroid = "io.sentry:sentry-android:$sentryJavaVersion"
3737
val sentryJava = "io.sentry:sentry:$sentryJavaVersion"
3838

sentry-kotlin-multiplatform/api/android/sentry-kotlin-multiplatform.api

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,16 +233,16 @@ public final class io/sentry/kotlin/multiplatform/SentryReplayOptions {
233233
public final fun copy (Ljava/lang/Double;Ljava/lang/Double;ZZLio/sentry/kotlin/multiplatform/SentryReplayOptions$Quality;)Lio/sentry/kotlin/multiplatform/SentryReplayOptions;
234234
public static synthetic fun copy$default (Lio/sentry/kotlin/multiplatform/SentryReplayOptions;Ljava/lang/Double;Ljava/lang/Double;ZZLio/sentry/kotlin/multiplatform/SentryReplayOptions$Quality;ILjava/lang/Object;)Lio/sentry/kotlin/multiplatform/SentryReplayOptions;
235235
public fun equals (Ljava/lang/Object;)Z
236+
public final fun getMaskAllImages ()Z
237+
public final fun getMaskAllText ()Z
236238
public final fun getOnErrorSampleRate ()Ljava/lang/Double;
237239
public final fun getQuality ()Lio/sentry/kotlin/multiplatform/SentryReplayOptions$Quality;
238-
public final fun getRedactAllImages ()Z
239-
public final fun getRedactAllText ()Z
240240
public final fun getSessionSampleRate ()Ljava/lang/Double;
241241
public fun hashCode ()I
242+
public final fun setMaskAllImages (Z)V
243+
public final fun setMaskAllText (Z)V
242244
public final fun setOnErrorSampleRate (Ljava/lang/Double;)V
243245
public final fun setQuality (Lio/sentry/kotlin/multiplatform/SentryReplayOptions$Quality;)V
244-
public final fun setRedactAllImages (Z)V
245-
public final fun setRedactAllText (Z)V
246246
public final fun setSessionSampleRate (Ljava/lang/Double;)V
247247
public fun toString ()Ljava/lang/String;
248248
}

sentry-kotlin-multiplatform/api/jvm/sentry-kotlin-multiplatform.api

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,16 +230,16 @@ public final class io/sentry/kotlin/multiplatform/SentryReplayOptions {
230230
public final fun copy (Ljava/lang/Double;Ljava/lang/Double;ZZLio/sentry/kotlin/multiplatform/SentryReplayOptions$Quality;)Lio/sentry/kotlin/multiplatform/SentryReplayOptions;
231231
public static synthetic fun copy$default (Lio/sentry/kotlin/multiplatform/SentryReplayOptions;Ljava/lang/Double;Ljava/lang/Double;ZZLio/sentry/kotlin/multiplatform/SentryReplayOptions$Quality;ILjava/lang/Object;)Lio/sentry/kotlin/multiplatform/SentryReplayOptions;
232232
public fun equals (Ljava/lang/Object;)Z
233+
public final fun getMaskAllImages ()Z
234+
public final fun getMaskAllText ()Z
233235
public final fun getOnErrorSampleRate ()Ljava/lang/Double;
234236
public final fun getQuality ()Lio/sentry/kotlin/multiplatform/SentryReplayOptions$Quality;
235-
public final fun getRedactAllImages ()Z
236-
public final fun getRedactAllText ()Z
237237
public final fun getSessionSampleRate ()Ljava/lang/Double;
238238
public fun hashCode ()I
239+
public final fun setMaskAllImages (Z)V
240+
public final fun setMaskAllText (Z)V
239241
public final fun setOnErrorSampleRate (Ljava/lang/Double;)V
240242
public final fun setQuality (Lio/sentry/kotlin/multiplatform/SentryReplayOptions$Quality;)V
241-
public final fun setRedactAllImages (Z)V
242-
public final fun setRedactAllText (Z)V
243243
public final fun setSessionSampleRate (Ljava/lang/Double;)V
244244
public fun toString ()Ljava/lang/String;
245245
}

sentry-kotlin-multiplatform/src/androidMain/kotlin/io/sentry/kotlin/multiplatform/extensions/SentryOptionsExtensions.android.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.sentry.kotlin.multiplatform.extensions
22

33
import io.sentry.android.core.SentryAndroidOptions
4+
import io.sentry.android.replay.maskAllImages
5+
import io.sentry.android.replay.maskAllText
46
import io.sentry.kotlin.multiplatform.JvmSentryReplayQuality
57
import io.sentry.kotlin.multiplatform.SentryOptions
68
import io.sentry.kotlin.multiplatform.SentryReplayOptions
@@ -19,13 +21,13 @@ internal fun SentryOptions.toAndroidSentryOptionsCallback(): (SentryAndroidOptio
1921
androidOptions.anrTimeoutIntervalMillis = kmpOptions.anrTimeoutIntervalMillis
2022

2123
// Replay options
22-
androidOptions.experimental.sessionReplay.redactAllText =
23-
kmpOptions.experimental.sessionReplay.redactAllText
24-
androidOptions.experimental.sessionReplay.redactAllImages =
25-
kmpOptions.experimental.sessionReplay.redactAllImages
24+
androidOptions.experimental.sessionReplay.maskAllText =
25+
kmpOptions.experimental.sessionReplay.maskAllText
26+
androidOptions.experimental.sessionReplay.maskAllImages =
27+
kmpOptions.experimental.sessionReplay.maskAllImages
2628
androidOptions.experimental.sessionReplay.sessionSampleRate =
2729
kmpOptions.experimental.sessionReplay.sessionSampleRate
28-
androidOptions.experimental.sessionReplay.errorSampleRate =
30+
androidOptions.experimental.sessionReplay.onErrorSampleRate =
2931
kmpOptions.experimental.sessionReplay.onErrorSampleRate
3032
androidOptions.experimental.sessionReplay.quality =
3133
kmpOptions.experimental.sessionReplay.quality.toAndroidSentryQuality()

sentry-kotlin-multiplatform/src/androidUnitTest/kotlin/io/sentry/kotlin/multiplatform/PlatformOptions.android.kt

Lines changed: 49 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@ package io.sentry.kotlin.multiplatform
33
import io.sentry.android.core.SentryAndroidOptions
44
import io.sentry.kotlin.multiplatform.extensions.toAndroidSentryOptionsCallback
55
import io.sentry.kotlin.multiplatform.utils.fakeDsn
6+
import kotlin.test.assertContains
67
import kotlin.test.assertEquals
7-
import io.sentry.SentryReplayOptions as NativeSentryReplayOptions
8+
import kotlin.test.assertFalse
9+
import io.sentry.SentryReplayOptions as AndroidSentryReplayOptions
810

911
actual interface PlatformOptions : CommonPlatformOptions {
1012
val isAnrEnabled: Boolean
1113
val anrTimeoutIntervalMillis: Long
1214
val attachScreenshot: Boolean
1315
val attachViewHierarchy: Boolean
14-
val sessionReplay: NativeSentryReplayOptions
16+
val sessionReplay: AndroidSentryReplayOptions
1517
}
1618

1719
class SentryAndroidOptionsWrapper(private val androidOptions: SentryAndroidOptions) :
@@ -64,7 +66,7 @@ class SentryAndroidOptionsWrapper(private val androidOptions: SentryAndroidOptio
6466
override val attachViewHierarchy: Boolean
6567
get() = androidOptions.isAttachViewHierarchy
6668

67-
override val sessionReplay: NativeSentryReplayOptions
69+
override val sessionReplay: AndroidSentryReplayOptions
6870
get() = androidOptions.experimental.sessionReplay
6971

7072
override fun applyFromOptions(options: SentryOptions) {
@@ -75,18 +77,52 @@ class SentryAndroidOptionsWrapper(private val androidOptions: SentryAndroidOptio
7577
actual fun createPlatformOptions(): PlatformOptions =
7678
SentryAndroidOptionsWrapper(SentryAndroidOptions())
7779

78-
actual fun PlatformOptions.assertPlatformSpecificOptions(options: SentryOptions) {
79-
assertEquals(attachScreenshot, options.attachScreenshot)
80-
assertEquals(attachViewHierarchy, options.attachViewHierarchy)
81-
assertEquals(isAnrEnabled, options.isAnrEnabled)
82-
assertEquals(anrTimeoutIntervalMillis, options.anrTimeoutIntervalMillis)
83-
assertEquals(sessionReplay.redactAllText, options.experimental.sessionReplay.redactAllText)
84-
assertEquals(sessionReplay.redactAllImages, options.experimental.sessionReplay.redactAllImages)
85-
assertEquals(sessionReplay.errorSampleRate, options.experimental.sessionReplay.onErrorSampleRate)
86-
assertEquals(sessionReplay.sessionSampleRate, options.experimental.sessionReplay.sessionSampleRate)
87-
assertEquals(sessionReplay.quality.name, options.experimental.sessionReplay.quality.name)
80+
actual fun PlatformOptions.assertPlatformSpecificOptions(kmpOptions: SentryOptions) {
81+
val androidOptions = this
82+
assertEquals(androidOptions.attachScreenshot, kmpOptions.attachScreenshot)
83+
assertEquals(androidOptions.attachViewHierarchy, kmpOptions.attachViewHierarchy)
84+
assertEquals(androidOptions.isAnrEnabled, kmpOptions.isAnrEnabled)
85+
assertEquals(androidOptions.anrTimeoutIntervalMillis, kmpOptions.anrTimeoutIntervalMillis)
86+
87+
val kmpReplayOptions = kmpOptions.experimental.sessionReplay
88+
assertViewClassMasking(
89+
kmpReplayOptions.maskAllText,
90+
androidOptions.sessionReplay.maskViewClasses,
91+
androidOptions.sessionReplay.unmaskViewClasses,
92+
AndroidSentryReplayOptions.TEXT_VIEW_CLASS_NAME
93+
)
94+
assertViewClassMasking(
95+
kmpReplayOptions.maskAllImages,
96+
androidOptions.sessionReplay.maskViewClasses,
97+
androidOptions.sessionReplay.unmaskViewClasses,
98+
AndroidSentryReplayOptions.IMAGE_VIEW_CLASS_NAME
99+
)
100+
assertEquals(
101+
androidOptions.sessionReplay.onErrorSampleRate,
102+
kmpReplayOptions.onErrorSampleRate
103+
)
104+
assertEquals(
105+
androidOptions.sessionReplay.sessionSampleRate,
106+
kmpReplayOptions.sessionSampleRate
107+
)
108+
assertEquals(androidOptions.sessionReplay.quality.name, kmpReplayOptions.quality.name)
88109
}
89110

90111
actual fun createSentryPlatformOptionsConfiguration(): PlatformOptionsConfiguration = {
91112
it.dsn = fakeDsn
92113
}
114+
115+
private fun assertViewClassMasking(
116+
kmpMaskAll: Boolean,
117+
maskViewClasses: Collection<String>,
118+
unmaskViewClasses: Collection<String>,
119+
viewClassName: String
120+
) {
121+
if (kmpMaskAll) {
122+
assertContains(maskViewClasses, viewClassName)
123+
assertFalse(unmaskViewClasses.contains(viewClassName))
124+
} else {
125+
assertFalse(maskViewClasses.contains(viewClassName))
126+
assertContains(unmaskViewClasses, viewClassName)
127+
}
128+
}

sentry-kotlin-multiplatform/src/appleTest/kotlin/io/sentry/kotlin/multiplatform/PlatformOptions.apple.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ expect fun createApplePlatformOptions(): PlatformOptions
6363

6464
expect fun ApplePlatformOptions.assertApplePlatformSpecificOptions(options: SentryOptions)
6565

66-
actual fun PlatformOptions.assertPlatformSpecificOptions(options: SentryOptions) {
67-
(this as ApplePlatformOptions).assertApplePlatformSpecificOptions(options)
66+
actual fun PlatformOptions.assertPlatformSpecificOptions(kmpOptions: SentryOptions) {
67+
(this as ApplePlatformOptions).assertApplePlatformSpecificOptions(kmpOptions)
6868

6969
val appleOptions = this
70-
assertEquals(appleOptions.enableWatchdogTerminationTracking, options.enableWatchdogTerminationTracking)
70+
assertEquals(appleOptions.enableWatchdogTerminationTracking, kmpOptions.enableWatchdogTerminationTracking)
7171
}
7272

7373
actual fun createSentryPlatformOptionsConfiguration(): PlatformOptionsConfiguration = {

sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryReplayOptions.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,18 @@ public data class SentryReplayOptions(
2121
public var onErrorSampleRate: Double? = null,
2222

2323
/**
24-
* Redact all text content. Draws a rectangle of text bounds with text color on top.
24+
* Makss all text content. Draws a rectangle of text bounds with text color on top.
2525
*
2626
* The default is true.
2727
*/
28-
public var redactAllText: Boolean = true,
28+
public var maskAllText: Boolean = true,
2929

3030
/**
31-
* Redact all image content. Draws a rectangle of image bounds with image's dominant color on top.
31+
* Masks all image content. Draws a rectangle of image bounds with image's dominant color on top.
3232
*
3333
* The default is true.
3434
*/
35-
public var redactAllImages: Boolean = true,
35+
public var maskAllImages: Boolean = true,
3636

3737
/**
3838
* Defines the quality of the session replay. The higher the quality, the more accurate the replay

sentry-kotlin-multiplatform/src/commonTest/kotlin/io/sentry/kotlin/multiplatform/SentryOptionsTest.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ class SentryOptionsTest : BaseSentryTest() {
128128
assertEquals(5000L, options.anrTimeoutIntervalMillis)
129129
assertNull(options.experimental.sessionReplay.onErrorSampleRate)
130130
assertNull(options.experimental.sessionReplay.sessionSampleRate)
131-
assertTrue(options.experimental.sessionReplay.redactAllText)
132-
assertTrue(options.experimental.sessionReplay.redactAllImages)
131+
assertTrue(options.experimental.sessionReplay.maskAllText)
132+
assertTrue(options.experimental.sessionReplay.maskAllImages)
133133
assertEquals(SentryReplayOptions.Quality.MEDIUM, options.experimental.sessionReplay.quality)
134134
assertTrue(options.enableWatchdogTerminationTracking)
135135
}
@@ -158,8 +158,8 @@ class SentryOptionsTest : BaseSentryTest() {
158158
enableWatchdogTerminationTracking = false
159159
experimental.sessionReplay.onErrorSampleRate = 0.5
160160
experimental.sessionReplay.sessionSampleRate = 0.5
161-
experimental.sessionReplay.redactAllText = false
162-
experimental.sessionReplay.redactAllImages = false
161+
experimental.sessionReplay.maskAllText = false
162+
experimental.sessionReplay.maskAllImages = false
163163
experimental.sessionReplay.quality = SentryReplayOptions.Quality.LOW
164164
}
165165

@@ -183,4 +183,4 @@ class SentryOptionsTest : BaseSentryTest() {
183183
}
184184
}
185185

186-
expect fun PlatformOptions.assertPlatformSpecificOptions(options: SentryOptions)
186+
expect fun PlatformOptions.assertPlatformSpecificOptions(kmpOptions: SentryOptions)

sentry-kotlin-multiplatform/src/iosMain/kotlin/io/sentry/kotlin/multiplatform/extensions/SentryOptionsExtensions.ios.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ internal fun SentryOptions.toIosOptionsConfiguration(): (CocoaSentryOptions?) ->
2323
"errorSampleRate" to kmpOptions.experimental.sessionReplay.onErrorSampleRate?.toFloat()
2424
)
2525
).apply {
26-
setRedactAllText(kmpOptions.experimental.sessionReplay.redactAllText)
27-
setRedactAllImages(kmpOptions.experimental.sessionReplay.redactAllImages)
26+
setRedactAllText(kmpOptions.experimental.sessionReplay.maskAllText)
27+
setRedactAllImages(kmpOptions.experimental.sessionReplay.maskAllImages)
2828
kmpOptions.experimental.sessionReplay.sessionSampleRate?.let { setSessionSampleRate(it.toFloat()) }
2929
setQuality(kmpOptions.experimental.sessionReplay.quality.ordinal.toLong())
3030
}

0 commit comments

Comments
 (0)