Skip to content

Commit 7acee85

Browse files
authored
Merge 4547a08 into c58587b
2 parents c58587b + 4547a08 commit 7acee85

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.content.pm.PackageManager;
66
import android.os.Bundle;
77
import io.sentry.ILogger;
8+
import io.sentry.InitPriority;
89
import io.sentry.SentryIntegrationPackageStorage;
910
import io.sentry.SentryLevel;
1011
import io.sentry.protocol.SdkVersion;
@@ -104,6 +105,8 @@ final class ManifestMetadataReader {
104105

105106
static final String ENABLE_METRICS = "io.sentry.enable-metrics";
106107

108+
static final String FORCE_INIT = "io.sentry.force-init";
109+
107110
/** ManifestMetadataReader ctor */
108111
private ManifestMetadataReader() {}
109112

@@ -263,6 +266,13 @@ static void applyMetadata(
263266
options.setSendClientReports(
264267
readBool(metadata, logger, CLIENT_REPORTS_ENABLE, options.isSendClientReports()));
265268

269+
final boolean isAutoInitEnabled = readBool(metadata, logger, AUTO_INIT, true);
270+
if (isAutoInitEnabled) {
271+
options.setInitPriority(InitPriority.LOW);
272+
}
273+
274+
options.setForceInit(readBool(metadata, logger, FORCE_INIT, options.isForceInit()));
275+
266276
options.setCollectAdditionalContext(
267277
readBool(
268278
metadata,

sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1420,4 +1420,29 @@ class ManifestMetadataReaderTest {
14201420
// Assert
14211421
assertFalse(fixture.options.isEnableMetrics)
14221422
}
1423+
1424+
@Test
1425+
fun `applyMetadata reads forceInit flag to options`() {
1426+
// Arrange
1427+
val bundle = bundleOf(ManifestMetadataReader.FORCE_INIT to true)
1428+
val context = fixture.getContext(metaData = bundle)
1429+
1430+
// Act
1431+
ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider)
1432+
1433+
// Assert
1434+
assertTrue(fixture.options.isForceInit)
1435+
}
1436+
1437+
@Test
1438+
fun `applyMetadata reads forceInit flag to options and keeps default if not found`() {
1439+
// Arrange
1440+
val context = fixture.getContext()
1441+
1442+
// Act
1443+
ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider)
1444+
1445+
// Assert
1446+
assertFalse(fixture.options.isForceInit)
1447+
}
14231448
}

sentry/src/main/java/io/sentry/SentryOptions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2593,6 +2593,7 @@ public SentryOptions() {
25932593
*/
25942594
private SentryOptions(final boolean empty) {
25952595
if (!empty) {
2596+
setInitPriority(InitPriority.LOWEST);
25962597
setSpanFactory(new DefaultSpanFactory());
25972598
// SentryExecutorService should be initialized before any
25982599
// SendCachedEventFireAndForgetIntegration

0 commit comments

Comments
 (0)