From 142e57868db71308201d51b182bcceadb0b569a8 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 15 Jul 2025 13:37:46 +0500 Subject: [PATCH] Updated on 2026-08-14 --- app/src/main/java/com/tangem/tap/MainActivity.kt | 4 ++-- .../common/pushes/TangemPushNotificationService.kt | 9 +++------ .../converter/PayloadToDeeplinkConverter.kt | 13 +++++++++++++ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index 3a4577ab02..f073431daa 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -31,9 +31,9 @@ import com.tangem.common.routing.entity.SerializableIntent import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.decompose.di.RootAppComponentContext -import com.tangem.core.deeplink.DEEPLINK_KEY import com.tangem.core.deeplink.DeepLinksRegistry import com.tangem.core.deeplink.WEBLINK_KEY +import com.tangem.core.deeplink.converter.PayloadToDeeplinkConverter import com.tangem.core.navigation.email.EmailSender import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.ui.UiDependencies @@ -490,7 +490,7 @@ class MainActivity : AppCompatActivity(), ActivityResultCallbackHolder { private fun handleDeepLink(intent: Intent, isFromOnNewIntent: Boolean) { if (routingFeatureToggle.isDeepLinkNavigationEnabled) { - val deepLinkExtras = intent.getStringExtra(DEEPLINK_KEY)?.toUri() + val deepLinkExtras = PayloadToDeeplinkConverter.convertBundle(intent.extras)?.toUri() val webLink = intent.getStringExtra(WEBLINK_KEY) val receivedDeepLink = intent.data ?: deepLinkExtras 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 ea9a016793..ebeec6dffc 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 @@ -15,9 +15,6 @@ import coil.executeBlocking import coil.request.ImageRequest import com.google.firebase.messaging.FirebaseMessagingService import com.google.firebase.messaging.RemoteMessage -import com.tangem.core.deeplink.DEEPLINK_KEY -import com.tangem.core.deeplink.WEBLINK_KEY -import com.tangem.core.deeplink.converter.PayloadToDeeplinkConverter import com.tangem.domain.common.LogConfig import com.tangem.tap.MainActivity import com.tangem.tap.common.images.createCoilImageLoader @@ -38,11 +35,11 @@ internal class TangemPushNotificationService : FirebaseMessagingService() { val notification = message.notification ?: return val channelId = notification.channelId ?: TANGEM_CHANNEL_ID - val deeplink = PayloadToDeeplinkConverter.convert(message.data) val intent = Intent(applicationContext, MainActivity::class.java).apply { - putExtra(DEEPLINK_KEY, deeplink) - putExtra(WEBLINK_KEY, message.data[WEBLINK_KEY]) + message.data.forEach { + putExtra(it.key, it.value) + } putExtra(OnPushClickedIntentHandler.OPENED_FROM_GCM_PUSH, true) addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) } diff --git a/core/deep-links/src/main/kotlin/com/tangem/core/deeplink/converter/PayloadToDeeplinkConverter.kt b/core/deep-links/src/main/kotlin/com/tangem/core/deeplink/converter/PayloadToDeeplinkConverter.kt index f6ce9ad32e..957ce6762b 100644 --- a/core/deep-links/src/main/kotlin/com/tangem/core/deeplink/converter/PayloadToDeeplinkConverter.kt +++ b/core/deep-links/src/main/kotlin/com/tangem/core/deeplink/converter/PayloadToDeeplinkConverter.kt @@ -1,5 +1,6 @@ package com.tangem.core.deeplink.converter +import android.os.Bundle import com.tangem.common.routing.DeepLinkRoute import com.tangem.common.routing.DeepLinkScheme import com.tangem.core.deeplink.DEEPLINK_KEY @@ -22,6 +23,18 @@ object PayloadToDeeplinkConverter : Converter, String?> { } } + fun convertBundle(bundle: Bundle?): String? { + if (bundle == null) return null + val bundleDataMap = mutableMapOf() + for (key in bundle.keySet()) { + val value = bundle.getString(key) + if (value != null) { + bundleDataMap[key] = value + } + } + return convert(bundleDataMap) + } + @Suppress("ReturnCount") private fun buildNotificationDeeplink(payload: Map): String? { val type = payload[TYPE_KEY] ?: return null