From 38276b01ea7c3db66fa246d89f4b95d65814f454 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 27 Nov 2024 19:10:17 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../main/java/com/tangem/tap/MainActivity.kt | 2 ++ .../tap/common/analytics/events/Push.kt | 13 ++++++++++ .../tap/common/analytics/events/SignIn.kt | 2 +- .../pushes/TangemPushNotificationService.kt | 2 ++ .../handlers/OnPushClickedIntentHandler.kt | 24 +++++++++++++++++++ 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/tangem/tap/common/analytics/events/Push.kt create mode 100644 app/src/main/java/com/tangem/tap/features/intentHandler/handlers/OnPushClickedIntentHandler.kt diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index e0669f7e68..699817b550 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -74,6 +74,7 @@ import com.tangem.tap.common.redux.NotificationsHandler import com.tangem.tap.domain.walletconnect2.domain.WalletConnectInteractor import com.tangem.tap.features.intentHandler.IntentProcessor import com.tangem.tap.features.intentHandler.handlers.BackgroundScanIntentHandler +import com.tangem.tap.features.intentHandler.handlers.OnPushClickedIntentHandler import com.tangem.tap.features.intentHandler.handlers.WalletConnectLinkIntentHandler import com.tangem.tap.features.main.MainViewModel import com.tangem.tap.features.main.model.Toast @@ -392,6 +393,7 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac private fun initIntentHandlers() { val hasSavedWalletsProvider = { userWalletsListManager.hasUserWallets } + intentProcessor.addHandler(OnPushClickedIntentHandler(analyticsEventsHandler)) intentProcessor.addHandler(BackgroundScanIntentHandler(hasSavedWalletsProvider, lifecycleScope)) intentProcessor.addHandler(WalletConnectLinkIntentHandler()) } diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Push.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Push.kt new file mode 100644 index 0000000000..46c647b06f --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Push.kt @@ -0,0 +1,13 @@ +package com.tangem.tap.common.analytics.events + +import com.tangem.core.analytics.models.AnalyticsEvent + +internal sealed class Push(event: String) : AnalyticsEvent( + category = "Push", + event = event, + params = emptyMap(), + error = null, +) { + + data object PushNotificationOpened : Push(event = "Push Notification Opened") +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/SignIn.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/SignIn.kt index de174fd193..212969481a 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/SignIn.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/SignIn.kt @@ -11,7 +11,7 @@ sealed class SignIn( error: Throwable? = null, ) : AnalyticsEvent("Sign In", event, params, error) { - class ScreenOpened : SignIn(event = "Sing In Screen Opened") + class ScreenOpened : SignIn(event = "Sign In Screen Opened") class ButtonBiometricSignIn : SignIn(event = "Button - Biometric Sign In") class ButtonCardSignIn : SignIn(event = "Button - Card Sign In") diff --git a/app/src/main/java/com/tangem/tap/common/pushes/TangemPushNotificationService.kt b/app/src/main/java/com/tangem/tap/common/pushes/TangemPushNotificationService.kt index 4a207104ca..c80f34373b 100644 --- a/app/src/main/java/com/tangem/tap/common/pushes/TangemPushNotificationService.kt +++ b/app/src/main/java/com/tangem/tap/common/pushes/TangemPushNotificationService.kt @@ -18,6 +18,7 @@ import com.google.firebase.messaging.RemoteMessage import com.tangem.domain.common.LogConfig import com.tangem.tap.MainActivity import com.tangem.tap.common.images.createCoilImageLoader +import com.tangem.tap.features.intentHandler.handlers.OnPushClickedIntentHandler import com.tangem.wallet.R import timber.log.Timber @@ -37,6 +38,7 @@ internal class TangemPushNotificationService : FirebaseMessagingService() { // TODO refactoring: [REDACTED_JIRA] val intent = Intent(applicationContext, MainActivity::class.java) + intent.putExtra(OnPushClickedIntentHandler.IS_OPENED_FROM_PUSH, true) intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) val pendingIntent = PendingIntent.getActivity( /* context = */ this, diff --git a/app/src/main/java/com/tangem/tap/features/intentHandler/handlers/OnPushClickedIntentHandler.kt b/app/src/main/java/com/tangem/tap/features/intentHandler/handlers/OnPushClickedIntentHandler.kt new file mode 100644 index 0000000000..e21d25ea54 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/features/intentHandler/handlers/OnPushClickedIntentHandler.kt @@ -0,0 +1,24 @@ +package com.tangem.tap.features.intentHandler.handlers + +import android.content.Intent +import com.tangem.core.analytics.api.AnalyticsEventHandler +import com.tangem.tap.common.analytics.events.Push +import com.tangem.tap.features.intentHandler.IntentHandler + +internal class OnPushClickedIntentHandler(val analyticsEventHandler: AnalyticsEventHandler) : IntentHandler { + + override fun handleIntent(intent: Intent?, isFromForeground: Boolean): Boolean { + val fromPush = intent?.extras?.getBoolean(IS_OPENED_FROM_PUSH) ?: false + + return if (fromPush) { + analyticsEventHandler.send(Push.PushNotificationOpened) + true + } else { + false + } + } + + companion object { + const val IS_OPENED_FROM_PUSH = "IS_OPENED_FROM_PUSH" + } +} \ No newline at end of file