From e60e2750de713dc249eff0fc77f26c5477c23458 Mon Sep 17 00:00:00 2001 From: Manoel Aranda Neto <5731772+marandaneto@users.noreply.github.com> Date: Thu, 16 Dec 2021 13:05:29 +0100 Subject: [PATCH] Fix: Make App start cold/warm visible to Hybrid SDKs (#1848) --- CHANGELOG.md | 1 + sentry-android-core/api/sentry-android-core.api | 1 + .../sentry/android/core/ActivityLifecycleIntegration.java | 6 +++--- .../src/main/java/io/sentry/android/core/AppStartState.java | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e028047cb6..a587e59556 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased * Bump: log4j to 2.16.0 (#1845) +* Fix: Make App start cold/warm visible to Hybrid SDKs (#1848) ## 5.5.0 diff --git a/sentry-android-core/api/sentry-android-core.api b/sentry-android-core/api/sentry-android-core.api index 4ca815023e..8836cdfadb 100644 --- a/sentry-android-core/api/sentry-android-core.api +++ b/sentry-android-core/api/sentry-android-core.api @@ -34,6 +34,7 @@ public final class io/sentry/android/core/AppLifecycleIntegration : io/sentry/In } public final class io/sentry/android/core/AppStartState { + public fun getAppStartInterval ()Ljava/lang/Long; public fun getAppStartTime ()Ljava/util/Date; public static fun getInstance ()Lio/sentry/android/core/AppStartState; public fun isColdStart ()Z diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/ActivityLifecycleIntegration.java b/sentry-android-core/src/main/java/io/sentry/android/core/ActivityLifecycleIntegration.java index 2edf9c68ef..5a68c014ca 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/ActivityLifecycleIntegration.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/ActivityLifecycleIntegration.java @@ -260,7 +260,7 @@ public synchronized void onActivityStarted(final @NonNull Activity activity) { @Override public synchronized void onActivityResumed(final @NonNull Activity activity) { - if (!firstActivityResumed && performanceEnabled) { + if (!firstActivityResumed) { // we only finish the app start if the process is of foregroundImportance if (foregroundImportance) { @@ -277,7 +277,7 @@ public synchronized void onActivityResumed(final @NonNull Activity activity) { } // finishes app start span - if (appStartSpan != null) { + if (performanceEnabled && appStartSpan != null) { appStartSpan.finish(); } firstActivityResumed = true; @@ -355,7 +355,7 @@ ISpan getAppStartSpan() { } private void setColdStart(final @Nullable Bundle savedInstanceState) { - if (!firstActivityCreated && performanceEnabled) { + if (!firstActivityCreated) { // if Activity has savedInstanceState then its a warm start // https://developer.android.com/topic/performance/vitals/launch-time#warm AppStartState.getInstance().setColdStart(savedInstanceState == null); diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/AppStartState.java b/sentry-android-core/src/main/java/io/sentry/android/core/AppStartState.java index f7ae5575dc..7d27740553 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/AppStartState.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/AppStartState.java @@ -44,7 +44,7 @@ void setAppStartEnd(final long appStartEndMillis) { } @Nullable - synchronized Long getAppStartInterval() { + public synchronized Long getAppStartInterval() { if (appStartMillis == null || appStartEndMillis == null) { return null; }