From 32fec1bed641565518305534eeb8feb6c511645f Mon Sep 17 00:00:00 2001 From: Nan Date: Wed, 12 Jun 2024 14:41:43 -0700 Subject: [PATCH] address review comments * Still send likely erroneous session time. This way the server can be aware of any issues. * Simplify state when firing subscribers of the Application Service --- .../core/internal/application/impl/ApplicationService.kt | 8 +++----- .../session/internal/session/impl/SessionListener.kt | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/application/impl/ApplicationService.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/application/impl/ApplicationService.kt index bbb013c50c..55f2612324 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/application/impl/ApplicationService.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/application/impl/ApplicationService.kt @@ -30,7 +30,6 @@ class ApplicationService() : IApplicationService, ActivityLifecycleCallbacks, On private val activityLifecycleNotifier = EventProducer() private val applicationLifecycleNotifier = EventProducer() private val systemConditionNotifier = EventProducer() - private var shouldFireOnFocusOnSubscribing = false override val isInForeground: Boolean get() = entryState.isAppOpen || entryState.isNotificationClick @@ -73,7 +72,6 @@ class ApplicationService() : IApplicationService, ActivityLifecycleCallbacks, On /** * Call to "start" this service, expected to be called during initialization of the SDK. - * Detects if this service should fire subscribers' onFocus() callbacks immediately on subscribing. * * @param context The context the SDK has been initialized under. */ @@ -112,8 +110,6 @@ class ApplicationService() : IApplicationService, ActivityLifecycleCallbacks, On activityReferences = 1 nextResumeIsFirstActivity = false } - // Once listeners subscribe, fire their callbacks - shouldFireOnFocusOnSubscribing = true } else { nextResumeIsFirstActivity = true entryState = AppEntryAction.APP_CLOSE @@ -124,7 +120,9 @@ class ApplicationService() : IApplicationService, ActivityLifecycleCallbacks, On override fun addApplicationLifecycleHandler(handler: IApplicationLifecycleHandler) { applicationLifecycleNotifier.subscribe(handler) - if (shouldFireOnFocusOnSubscribing) { + if (current != null) { + // When a listener subscribes, fire its callback + // The listener is too late to receive the earlier onFocus call handler.onFocus(true) } } diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/session/internal/session/impl/SessionListener.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/session/internal/session/impl/SessionListener.kt index 4cd8759a0a..f33886e8f3 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/session/internal/session/impl/SessionListener.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/session/internal/session/impl/SessionListener.kt @@ -48,9 +48,9 @@ internal class SessionListener( override fun onSessionEnded(duration: Long) { val durationInSeconds = duration / 1000 - // Time is invalid if below 1 second or over a day + // Time is erroneous if below 1 second or over a day if (durationInSeconds < 1L || durationInSeconds > SECONDS_IN_A_DAY) { - return + Logging.error("SessionListener.onSessionEnded sending duration of $durationInSeconds seconds") } _operationRepo.enqueue(