Updated on 2026-08-14

This commit is contained in:
Tangem 2025-09-17 15:16:22 +05:00
parent 64c7c64b3a
commit 713cad5fd7
26 changed files with 100 additions and 359 deletions

View file

@ -7,5 +7,5 @@ import android.content.Intent
*/
interface IntentHandler {
fun handleIntent(intent: Intent?, isFromForeground: Boolean): Boolean
fun handleIntent(intent: Intent?): Boolean
}

View file

@ -1,27 +0,0 @@
package com.tangem.tap.features.intentHandler
import android.content.Intent
import java.util.concurrent.CopyOnWriteArrayList
/**
[REDACTED_AUTHOR]
*/
// TODO: fixme: close it with the combined interfaces IntentHandler and IntentHandlerHolder
class IntentProcessor {
private val intentHandlers = CopyOnWriteArrayList<IntentHandler>()
fun addHandler(handler: IntentHandler) {
intentHandlers.add(handler)
}
fun removeAll() {
intentHandlers.clear()
}
fun handleIntent(intent: Intent?, isFromForeground: Boolean, skipNavigationHandlers: Boolean = false) {
intentHandlers
.filterNot { handler -> skipNavigationHandlers && handler is AffectsNavigation }
.forEach { handler -> handler.handleIntent(intent, isFromForeground) }
}
}

View file

@ -1,24 +0,0 @@
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?.containsKey(OPENED_FROM_GCM_PUSH) ?: false
return if (fromPush) {
analyticsEventHandler.send(Push.PushNotificationOpened)
true
} else {
false
}
}
companion object {
const val OPENED_FROM_GCM_PUSH = "google.sent_time" // every bundle from FCM contains this key
}
}