diff --git a/app/src/main/java/com/tangem/tap/common/analytics/Analytics.kt b/app/src/main/java/com/tangem/tap/common/analytics/Analytics.kt index 3950438219..276ef9059f 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/Analytics.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/Analytics.kt @@ -87,11 +87,11 @@ object Analytics : GlobalAnalyticsEventHandler { val eventFilter = analyticsFilters.firstOrNull { it.canBeAppliedTo(event) } when { - eventFilter == null -> analyticsHandlers.forEach { it.send(eventString, eventParams) } + eventFilter == null -> analyticsHandlers.forEach { handler -> handler.send(eventString, eventParams) } eventFilter.canBeSent(event) -> { analyticsHandlers .filter { handler -> eventFilter.canBeConsumedByHandler(handler, event) } - .forEach { it.send(eventString, eventParams) } + .forEach { handler -> handler.send(eventString, eventParams) } } } } diff --git a/app/src/main/java/com/tangem/tap/common/analytics/api/EventFilterApi.kt b/app/src/main/java/com/tangem/tap/common/analytics/api/EventFilterApi.kt index c86313164b..eb0f9587ce 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/api/EventFilterApi.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/api/EventFilterApi.kt @@ -4,10 +4,23 @@ import com.tangem.tap.common.analytics.events.AnalyticsEvent /** [REDACTED_AUTHOR] + * The filter is used to separate events to send and determine which handler it can be processed with. */ interface AnalyticsEventFilter { + /** + * Recognizes the event and checks if the given filter can be applied to the event. + */ fun canBeAppliedTo(event: AnalyticsEvent): Boolean + + /** + * An internal filter check that, on external or internal conditions, recognizes the possibility of + * sending an event. + */ fun canBeSent(event: AnalyticsEvent): Boolean + + /** + * Performs a check to see if the event can be dispatched by a specific handler + */ fun canBeConsumedByHandler(handler: AnalyticsEventHandler, event: AnalyticsEvent): Boolean }