diff --git a/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEvent.kt b/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEventAnOld.kt similarity index 92% rename from app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEvent.kt rename to app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEventAnOld.kt index 90ff7d7f3b..41cc0d9b96 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEvent.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEventAnOld.kt @@ -1,6 +1,6 @@ package com.tangem.tap.common.analytics -enum class AnalyticsEvent(val event: String) { +enum class AnalyticsEventAnOld(val event: String) { CARD_IS_SCANNED("card_is_scanned"), TRANSACTION_IS_SENT("transaction_is_sent"), READY_TO_SCAN("ready_to_scan"), @@ -19,7 +19,7 @@ enum class AnalyticsEvent(val event: String) { GET_CARD("get_card"), } -enum class AnalyticsParam(val param: String) { +enum class AnalyticsParamAnOld(val param: String) { BLOCKCHAIN("blockchain"), CARD_ID("cardId"), BATCH_ID("batch_id"), @@ -37,13 +37,13 @@ enum class AnalyticsParam(val param: String) { SOURCE("source"), } -enum class GetCardSourceParams(val param: String) { +enum class GetCardSourceParamsAnOld(val param: String) { WELCOME("welcome"), ONBOARDING_BUY_MORE("wallet_onboaring_buy_more_cards"), ONBOARDING("wallet_onboarding") } -object Analytics { +object AnalyticsAnOld { enum class ActionToLog(val key: String) { Scan("tap_scan_task"), SendTransaction("send_transaction"), diff --git a/app/src/main/java/com/tangem/tap/common/analytics/GlobalAnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/GlobalAnalyticsHandler.kt index 660664c1f7..f80aacdc29 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/GlobalAnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/GlobalAnalyticsHandler.kt @@ -27,7 +27,7 @@ class GlobalAnalyticsHandler( } override fun handleAnalyticsEvent( - event: AnalyticsEvent, + event: AnalyticsEventAnOld, params: Map, card: Card?, blockchain: String?, @@ -43,8 +43,8 @@ class GlobalAnalyticsHandler( override fun handleCardSdkErrorEvent( error: TangemSdkError, - action: Analytics.ActionToLog, - params: Map, + action: AnalyticsAnOld.ActionToLog, + params: Map, card: Card?, ) { analyticsHandlers.filterIsInstance().forEach { @@ -54,8 +54,8 @@ class GlobalAnalyticsHandler( override fun handleBlockchainSdkErrorEvent( error: BlockchainError, - action: Analytics.ActionToLog, - params: Map, + action: AnalyticsAnOld.ActionToLog, + params: Map, card: Card?, ) { analyticsHandlers.filterIsInstance().forEach { @@ -70,39 +70,39 @@ class GlobalAnalyticsHandler( } } -fun GlobalAnalyticsEventHandler.logWcEvent(event: Analytics.WcAnalyticsEvent) { +fun GlobalAnalyticsEventHandler.logWcEvent(event: AnalyticsAnOld.WcAnalyticsEvent) { when (event) { - is Analytics.WcAnalyticsEvent.Action -> { + is AnalyticsAnOld.WcAnalyticsEvent.Action -> { handleAnalyticsEvent( - event = AnalyticsEvent.WC_SUCCESS_RESPONSE, + event = AnalyticsEventAnOld.WC_SUCCESS_RESPONSE, params = mapOf( - AnalyticsParam.WALLET_CONNECT_ACTION.param to event.action.name, + AnalyticsParamAnOld.WALLET_CONNECT_ACTION.param to event.action.name, ), ) } - is Analytics.WcAnalyticsEvent.Error -> { + is AnalyticsAnOld.WcAnalyticsEvent.Error -> { val params = mapOf( - AnalyticsParam.WALLET_CONNECT_ACTION.param to event.action?.name, - AnalyticsParam.ERROR_DESCRIPTION.param to event.error.message, + AnalyticsParamAnOld.WALLET_CONNECT_ACTION.param to event.action?.name, + AnalyticsParamAnOld.ERROR_DESCRIPTION.param to event.error.message, ).filterNotNull() handleErrorEvent(event.error, params) } - is Analytics.WcAnalyticsEvent.InvalidRequest -> + is AnalyticsAnOld.WcAnalyticsEvent.InvalidRequest -> handleAnalyticsEvent( - event = AnalyticsEvent.WC_INVALID_REQUEST, + event = AnalyticsEventAnOld.WC_INVALID_REQUEST, params = mapOf( - AnalyticsParam.WALLET_CONNECT_REQUEST.param to event.json, + AnalyticsParamAnOld.WALLET_CONNECT_REQUEST.param to event.json, ).filterNotNull(), ) - is Analytics.WcAnalyticsEvent.Session -> { + is AnalyticsAnOld.WcAnalyticsEvent.Session -> { val analyticsEvent = when (event.event) { - Analytics.WcSessionEvent.Disconnect -> AnalyticsEvent.WC_SESSION_DISCONNECTED - Analytics.WcSessionEvent.Connect -> AnalyticsEvent.WC_NEW_SESSION + AnalyticsAnOld.WcSessionEvent.Disconnect -> AnalyticsEventAnOld.WC_SESSION_DISCONNECTED + AnalyticsAnOld.WcSessionEvent.Connect -> AnalyticsEventAnOld.WC_NEW_SESSION } handleAnalyticsEvent( event = analyticsEvent, params = mapOf( - AnalyticsParam.WALLET_CONNECT_DAPP_URL.param to event.url, + AnalyticsParamAnOld.WALLET_CONNECT_DAPP_URL.param to event.url, ).filterNotNull(), ) } diff --git a/app/src/main/java/com/tangem/tap/common/analytics/api/EventHandlerApi.kt b/app/src/main/java/com/tangem/tap/common/analytics/api/EventHandlerApi.kt index 00cb845770..0491d03b80 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/api/EventHandlerApi.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/api/EventHandlerApi.kt @@ -4,9 +4,9 @@ import com.shopify.buy3.Storefront import com.tangem.blockchain.common.BlockchainError import com.tangem.common.card.Card import com.tangem.common.core.TangemSdkError -import com.tangem.tap.common.analytics.Analytics -import com.tangem.tap.common.analytics.AnalyticsEvent -import com.tangem.tap.common.analytics.AnalyticsParam +import com.tangem.tap.common.analytics.AnalyticsAnOld +import com.tangem.tap.common.analytics.AnalyticsEventAnOld +import com.tangem.tap.common.analytics.AnalyticsParamAnOld import com.tangem.tap.common.extensions.filterNotNull /** @@ -19,7 +19,7 @@ interface AnalyticsEventHandler { ) fun handleAnalyticsEvent( - event: AnalyticsEvent, + event: AnalyticsEventAnOld, params: Map = emptyMap(), card: Card? = null, blockchain: String? = null, @@ -30,9 +30,9 @@ interface AnalyticsEventHandler { blockchain: String? = null, params: Map = emptyMap(), ): Map = mapOf( - AnalyticsParam.FIRMWARE.param to card?.firmwareVersion?.stringValue, - AnalyticsParam.BATCH_ID.param to card?.batchId, - AnalyticsParam.BLOCKCHAIN.param to blockchain, + AnalyticsParamAnOld.FIRMWARE.param to card?.firmwareVersion?.stringValue, + AnalyticsParamAnOld.BATCH_ID.param to card?.batchId, + AnalyticsParamAnOld.BLOCKCHAIN.param to blockchain, ).filterNotNull() + params } @@ -48,8 +48,8 @@ interface SdkErrorEventHandler : CardSdkErrorEventHandler, BlockchainSdkErrorEve interface CardSdkErrorEventHandler { fun handleCardSdkErrorEvent( error: TangemSdkError, - action: Analytics.ActionToLog, - params: Map = emptyMap(), + action: AnalyticsAnOld.ActionToLog, + params: Map = emptyMap(), card: Card? = null, ) } @@ -57,8 +57,8 @@ interface CardSdkErrorEventHandler { interface BlockchainSdkErrorEventHandler { fun handleBlockchainSdkErrorEvent( error: BlockchainError, - action: Analytics.ActionToLog, - params: Map = mapOf(), + action: AnalyticsAnOld.ActionToLog, + params: Map = mapOf(), card: Card? = null, ) } diff --git a/app/src/main/java/com/tangem/tap/common/analytics/converters/SdkErrorConverters.kt b/app/src/main/java/com/tangem/tap/common/analytics/converters/SdkErrorConverters.kt index 470933771a..5229df8174 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/converters/SdkErrorConverters.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/converters/SdkErrorConverters.kt @@ -4,8 +4,8 @@ import com.tangem.blockchain.common.BlockchainError import com.tangem.blockchain.common.BlockchainSdkError import com.tangem.common.Converter import com.tangem.common.core.TangemSdkError -import com.tangem.tap.common.analytics.Analytics -import com.tangem.tap.common.analytics.AnalyticsParam +import com.tangem.tap.common.analytics.AnalyticsAnOld +import com.tangem.tap.common.analytics.AnalyticsParamAnOld import com.tangem.tap.common.analytics.TangemSdk import com.tangem.tap.features.demo.DemoTransactionSender @@ -25,18 +25,18 @@ internal class CardSdkErrorConverter : Converter, + val action: AnalyticsAnOld.ActionToLog, + val params: Map, val cardParams: Map, ) } @@ -63,23 +63,23 @@ internal class BlockchainSdkErrorConverter( if (error.customMessage.contains(DemoTransactionSender.ID)) return null val mutableParams = value.params.convertToParamValue().toMutableMap() - mutableParams[AnalyticsParam.ACTION.param] = value.action.key - mutableParams[AnalyticsParam.ERROR_CODE.param] = error.code.toString() - mutableParams[AnalyticsParam.ERROR_DESCRIPTION.param] = "${error.javaClass.simpleName}: ${error.customMessage}" - mutableParams[AnalyticsParam.ERROR_KEY.param] = "BlockchainSdkError" + mutableParams[AnalyticsParamAnOld.ACTION.param] = value.action.key + mutableParams[AnalyticsParamAnOld.ERROR_CODE.param] = error.code.toString() + mutableParams[AnalyticsParamAnOld.ERROR_DESCRIPTION.param] = "${error.javaClass.simpleName}: ${error.customMessage}" + mutableParams[AnalyticsParamAnOld.ERROR_KEY.param] = "BlockchainSdkError" return ErrorEvent(value.error, mutableParams) } data class Model( val error: BlockchainError, - val action: Analytics.ActionToLog, - val params: Map, + val action: AnalyticsAnOld.ActionToLog, + val params: Map, val cardParams: Map, ) } -internal fun Map.convertToParamValue(): Map { +internal fun Map.convertToParamValue(): Map { return mutableMapOf().also { newMap -> this.forEach { newMap[it.key.param] = it.value diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsEvent.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsEvent.kt new file mode 100644 index 0000000000..0451fdd68c --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsEvent.kt @@ -0,0 +1,10 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class AnalyticsEvent( + val category: String, + val event: String, + val params: Map = mapOf(), +) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt new file mode 100644 index 0000000000..aa8d8439f4 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt @@ -0,0 +1,52 @@ +package com.tangem.tap.common.analytics.events + +sealed class AnalyticsParam { + + sealed class CurrencyType(val value: String) { + class Currency(currency: com.tangem.tap.features.wallet.models.Currency) : CurrencyType(currency.currencySymbol) + class Blockchain(blockchain: com.tangem.blockchain.common.Blockchain) : CurrencyType(blockchain.currency) + class Token(token: com.tangem.blockchain.common.Token) : CurrencyType(token.symbol) + } + + // Multicurrency or CurrencyType + sealed class CardCurrency(val value: String) { + object MultiCurrency : CardCurrency("Multicurrency") + class SingleCurrency(type: CurrencyType) : CardCurrency(type.value) + } + + sealed class CardState(val value: String) { + object Empty : CardState("Empty") + object Full : CardState("Full") + } + + sealed class RateApp(val value: String) { + object Liked : RateApp("Liked") + object Disliked : RateApp("Disliked") + object Closed : RateApp("Close") + } + + sealed class OnOffState(val value: String) { + object On : OnOffState("On") + object Off : OnOffState("Off") + } + + sealed class UserCode(val value: String) { + object AccessCode : UserCode("Access Code") + object Passcode : UserCode("Passcode") + } + + sealed class SecurityMode(val value: String) { + object AccessCode : SecurityMode("Access Code") + object Passcode : SecurityMode("Passcode") + object LongTap : SecurityMode("Long Tap") + } + + sealed class SocialNetwork(val value: String) { + object Facebook : SocialNetwork("Facebook") + object Instagram : SocialNetwork("Instagram") + object Youtube : SocialNetwork("Youtube") + object Twitter : SocialNetwork("Twitter") + object LinkedIn : SocialNetwork("LinkedIn") + object GitHub : SocialNetwork("GitHub") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Basic.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Basic.kt new file mode 100644 index 0000000000..bb37145672 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Basic.kt @@ -0,0 +1,28 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class Basic( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Basic", event, params) { + + sealed class SignedIn( + state: AnalyticsParam.CardState, + currency: AnalyticsParam.CardCurrency, + batch: String, + ) : Basic( + event = "Signed in", + params = mapOf( + "State" to state.value, + "Currency" to currency.value, + "Batch" to batch, + ), + ) + + class ToppedUp(currency: AnalyticsParam.CardCurrency) : Basic( + event = "Topped up", + params = mapOf("Currency" to currency.value), + ) +} diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Chat.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Chat.kt new file mode 100644 index 0000000000..a26109ae2a --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Chat.kt @@ -0,0 +1,12 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class Chat( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Chat", event, params) { + + class ScreenOpened : Chat("Chat Screen Opened") +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/DetailsScreen.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/DetailsScreen.kt new file mode 100644 index 0000000000..1ec8d81533 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/DetailsScreen.kt @@ -0,0 +1,12 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class DetailsScreen( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Details Screen", event, params) { + + class ScreenOpened : DetailsScreen("Details Screen Opened") +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/IntroductionProcess.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/IntroductionProcess.kt new file mode 100644 index 0000000000..4b3eb7f431 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/IntroductionProcess.kt @@ -0,0 +1,17 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class IntroductionProcess( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Introduction Process", event, params) { + + class ScreenOpened : IntroductionProcess("Introduction Process Screen Opened") + class ButtonTokensList : IntroductionProcess("Button - Tokens List") + class ButtonBuyCards : IntroductionProcess("Button - Buy Cards") + class ButtonScanCard : IntroductionProcess("Button - Scan Card") + class CardWasScanned : IntroductionProcess("Card Was Scanned") + class ButtonRequestSupport : IntroductionProcess("Button - Request Support") +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/MainScreen.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/MainScreen.kt new file mode 100644 index 0000000000..c6825718b7 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/MainScreen.kt @@ -0,0 +1,29 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class MainScreen( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Main Screen", event, params) { + + class ScreenOpened : MainScreen("Screen opened") + + class ButtonScanCard : MainScreen("Button - Scan Card") + class CardWasScanned : MainScreen("Card Was Scanned") + class ButtonMyWallets : MainScreen("Button - My Wallets") + + class MainCurrencyChanged(currencyType: AnalyticsParam.CurrencyType) : MainScreen( + event = "Main Currency Changed", + params = mapOf("Currency Type" to currencyType.value), + ) + + sealed class NoticeRateAppButton(result: AnalyticsParam.RateApp) : MainScreen( + event = "Notice - Rate The App Button Tapped", + params = mapOf("Result" to result.value), + ) + + class NoticeBackupYourWalletTapped : MainScreen("Notice - Backup Your Wallet Tapped") + class NoticeScanYourCardTapped : MainScreen("Notice - Scan Your Card Tapped") +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/ManageTokens.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/ManageTokens.kt new file mode 100644 index 0000000000..e5e3fdb96a --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/ManageTokens.kt @@ -0,0 +1,33 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class ManageTokens( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Manage Tokens", event, params) { + + class ScreenOpened : ManageTokens("Manage Tokens Screen Opened") + class TokenSearched : ManageTokens("Token Searched") + class TokenSwitcherChanged : ManageTokens("Token Switcher Changed") + class ButtonSaveChanges : ManageTokens("Button - Save Changes") + class ButtonCustomToken : ManageTokens("Button - Custom Token") + + sealed class CustomToken( + event: String, + params: Map = mapOf(), + ) : ManageTokens(event, params) { + + class ScreenOpened : ManageTokens("Custom Token Screen Opened") + + class TokenWasAdded(symbol: String, network: String, address: String) : ManageTokens( + event = "Custom Token Was Added", + params = mapOf( + "Symbol" to symbol, + "Network" to network, + "Address" to address, + ), + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Onboarding.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Onboarding.kt new file mode 100644 index 0000000000..4a57cda71d --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Onboarding.kt @@ -0,0 +1,67 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class Onboarding( + category: String, + event: String, + params: Map = mapOf(), +) : AnalyticsEvent(category, event, params) { + + class Started : Onboarding("Onboarding", "Onboarding Started") + class Finished : Onboarding("Onboarding", "Onboarding Finished") + + sealed class CreateWallet( + event: String, + params: Map = mapOf(), + ) : Onboarding("Onboarding / Create Wallet", event, params) { + + class ScreenOpened : CreateWallet("Create Wallet Screen Opened") + class ButtonCreateWallet : CreateWallet("Button - Create Wallet") + class WalletCreatedSuccessfully : CreateWallet("Wallet Created Successfully") + } + + sealed class Backup( + event: String, + params: Map = mapOf(), + ) : Onboarding("Onboarding / Backup", event, params) { + + class ScreenOpened : Backup("Backup Screen Opened") + class Started : Backup("Backup Started") + class Skipped : Backup("Backup Skipped") + class SettingAccessCodeStarted : Backup("Setting Access Code Started") + class AccessCodeEntered : Backup("Access Code Entered") + class AccessCodeReEntered : Backup("Access Code Re-entered") + + class Finished(cardsCount: String) : Backup( + event = "Backup Finished", + params = mapOf("Cards count" to cardsCount), + ) + } + + sealed class Topup( + event: String, + params: Map = mapOf(), + ) : Onboarding("Onboarding / Top Up", event, params) { + + class ScreenOpened : Topup("Activation Screen Opened") + + class ButtonBuyCrypto(currency: AnalyticsParam.CurrencyType) : Topup( + event = "Button - Buy Crypto", + params = mapOf("Currency" to currency.value), + ) + + class ButtonShowWalletAddress : Topup("Button - Show the Wallet Address") + } + + sealed class Twins( + event: String, + params: Map = mapOf(), + ) : Onboarding("Onboarding / Twins", event, params) { + + class ScreenOpened : Twins("Twinning Screen Opened") + class SetupStarted : Twins("Twin Setup Started") + class SetupFinished : Twins("Twin Setup Finished") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Portfolio.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Portfolio.kt new file mode 100644 index 0000000000..6747c2172d --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Portfolio.kt @@ -0,0 +1,15 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ + +sealed class Portfolio( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Portfolio", event, params) { + + class Refreshed : Portfolio("Refreshed") + class ButtonManageTokens : Portfolio("Button - Manage Tokens") + class TokenTapped : Portfolio("Token is Tapped") +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Settings.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Settings.kt new file mode 100644 index 0000000000..e7b2b5c2e6 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Settings.kt @@ -0,0 +1,64 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class Settings( + category: String = "Settings", + event: String, + params: Map = mapOf(), +) : AnalyticsEvent(category, event, params) { + + class ScreenOpened : Settings(event = "Settings Screen Opened") + class ButtonChat : Settings(event = "Button - Chat") + class ButtonSendFeedback : Settings(event = "Button - Send Feedback") + class ButtonStartWalletConnectSession : Settings(event = "Button - Start Wallet Connect Session") + class ButtonStopWalletConnectSession : Settings(event = "Button - Stop Wallet Connect Session") + class ButtonCardSettings : Settings(event = "Button - Card Settings") + class ButtonAppSettings : Settings(event = "Button - App Settings") + class ButtonCreateBackup : Settings(event = "Button - Create Backup") + + sealed class ButtonSocialNetwork(network: AnalyticsParam.SocialNetwork) : Settings( + event = "Button - Social Network", + params = mapOf("Network" to network.value), + ) + + sealed class CardSettings( + event: String, + params: Map = mapOf(), + ) : Onboarding("Settings / Card Settings", event, params) { + + class ButtonFactoryReset : CardSettings("Button - Factory Reset") + class FactoryResetFinished : CardSettings("Factory Reset Finished") + class UserCodeChanged : CardSettings("User Code Changed") + class ButtonChangeSecurityMode : CardSettings("Button - Change Security Mode") + + sealed class ButtonChangeUserCode(type: AnalyticsParam.UserCode) : CardSettings( + event = "Button - Change User Code", + params = mapOf("Type" to type.value), + ) + + sealed class SecurityModeChanged(mode: AnalyticsParam.SecurityMode) : CardSettings( + event = "Security Mode Changed", + params = mapOf("Mode" to mode.value), + ) + } + + sealed class AppSettings( + event: String, + params: Map = mapOf(), + ) : Onboarding("Settings / App Settings", event, params) { + + sealed class FaceIDSwitcherChanged(state: AnalyticsParam.OnOffState) : CardSettings( + event = "Face ID Switcher Changed", + params = mapOf("State" to state.value), + ) + + sealed class SaveAccessCodeSwitcherChanged(state: AnalyticsParam.OnOffState) : CardSettings( + event = "Save Access Code Switcher Changed", + params = mapOf("State" to state.value), + ) + + class ButtonEnableBiometricAuthentication : AppSettings("Button - Enable Biometric Authentication") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Shop.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Shop.kt new file mode 100644 index 0000000000..c09bf89ab3 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Shop.kt @@ -0,0 +1,22 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class Shop( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Shop", event, params) { + + class ScreenOpened : IntroductionProcess("Shop Screen Opened") + + class Purchased(productSku: String) : Shop( + event = "Purchased", + params = mapOf("SKU" to productSku), + ) + + class Redirected(partnerName: String) : Shop( + event = "Redirected", + params = mapOf("Partner" to partnerName), + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Token.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Token.kt new file mode 100644 index 0000000000..1dc36df5bc --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Token.kt @@ -0,0 +1,62 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class Token( + category: String, + event: String, + params: Map = mapOf(), +) : AnalyticsEvent(category, event, params) { + + class Refreshed : Token("Token", "Refreshed") + class ButtonRemoveToken : Token("Token", "Button - Remove Token") + class ButtonExplore : Token("Token", "Button - Explore") + class ButtonBuy(token: String) : Token("Token", "Button - Buy", mapOf("Token" to token)) + class ButtonSell(token: String) : Token("Token", "Button - Sell", mapOf("Token" to token)) + class ButtonExchange(token: String) : Token("Token", "Button - Exchange", mapOf("Token" to token)) + class ButtonSend(token: String) : Token("Token", "Button - Send", mapOf("Token" to token)) + + sealed class Recieve( + event: String, + params: Map = mapOf(), + ) : Onboarding("Token / Recieve", event, params) { + + class ScreenOpened : Recieve("Recieve Screen Opened") + class ButtonCopyAddress : Recieve("Button - Copy Address") + class ButtonShareAddress : Recieve("Button - Share Address") + } + + sealed class Send( + event: String, + params: Map = mapOf(), + ) : Onboarding("Token / Send", event, params) { + + class ScreenOpened : Send("Send Screen Opened") + class ButtonPaste : Send("Button - Paste") + class ButtonQRCode : Send("Button - QR Code") + class ButtonSwapCurrency : Send("Button - Swap Currency") + + class TransactionSent(token: AnalyticsParam.CurrencyType) : Send( + event = "Transaction Sent", + params = mapOf("Token" to token.value), + ) + } + + sealed class Topup( + event: String, + params: Map = mapOf(), + ) : Onboarding("Token / Topup", event, params) { + + class ScreenOpened : Topup("Top Up Screen Opened") + class P2PScreenOpened : Topup("P2P Screen Opened") + } + + sealed class Withdraw( + event: String, + params: Map = mapOf(), + ) : Onboarding("Token / Withdraw", event, params) { + + class ScreenOpened : Withdraw("Withdraw Screen Opened") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt new file mode 100644 index 0000000000..624145c63d --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt @@ -0,0 +1,14 @@ +package com.tangem.tap.common.analytics.events + +/** +[REDACTED_AUTHOR] + */ +sealed class WalletConnect( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Wallet Connect", event, params) { + + class NewSessionEstablished : WalletConnect("New Session Established") + class SessionDisconnected : WalletConnect("Session Disconnected") + class RequestSigned : WalletConnect("Request Signed") +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeAnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeAnalyticsHandler.kt index ab530b5829..dcc0930b4e 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeAnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeAnalyticsHandler.kt @@ -1,7 +1,7 @@ package com.tangem.tap.common.analytics.handlers.amplitude import com.tangem.common.card.Card -import com.tangem.tap.common.analytics.AnalyticsEvent +import com.tangem.tap.common.analytics.AnalyticsEventAnOld import com.tangem.tap.common.analytics.api.AnalyticsEventHandler class AmplitudeAnalyticsHandler( @@ -13,7 +13,7 @@ class AmplitudeAnalyticsHandler( } override fun handleAnalyticsEvent( - event: AnalyticsEvent, + event: AnalyticsEventAnOld, params: Map, card: Card?, blockchain: String?, diff --git a/app/src/main/java/com/tangem/tap/common/analytics/handlers/appsFlyer/AppsFlyerAnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/handlers/appsFlyer/AppsFlyerAnalyticsHandler.kt index a5ca83d4d5..42ddfb8925 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/handlers/appsFlyer/AppsFlyerAnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/handlers/appsFlyer/AppsFlyerAnalyticsHandler.kt @@ -5,7 +5,7 @@ import com.appsflyer.AFInAppEventType import com.shopify.buy3.Storefront import com.tangem.common.Converter import com.tangem.common.card.Card -import com.tangem.tap.common.analytics.AnalyticsEvent +import com.tangem.tap.common.analytics.AnalyticsEventAnOld import com.tangem.tap.common.analytics.api.AnalyticsEventHandler import com.tangem.tap.common.analytics.api.ShopifyOrderEventHandler @@ -18,7 +18,7 @@ class AppsFlyerAnalyticsHandler( } override fun handleAnalyticsEvent( - event: AnalyticsEvent, + event: AnalyticsEventAnOld, params: Map, card: Card?, blockchain: String?, diff --git a/app/src/main/java/com/tangem/tap/common/analytics/handlers/firebase/FirebaseAnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/handlers/firebase/FirebaseAnalyticsHandler.kt index aba653613e..08404f01f7 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/handlers/firebase/FirebaseAnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/handlers/firebase/FirebaseAnalyticsHandler.kt @@ -6,9 +6,9 @@ import com.tangem.blockchain.common.BlockchainError import com.tangem.common.Converter import com.tangem.common.card.Card import com.tangem.common.core.TangemSdkError -import com.tangem.tap.common.analytics.Analytics -import com.tangem.tap.common.analytics.AnalyticsEvent -import com.tangem.tap.common.analytics.AnalyticsParam +import com.tangem.tap.common.analytics.AnalyticsAnOld +import com.tangem.tap.common.analytics.AnalyticsEventAnOld +import com.tangem.tap.common.analytics.AnalyticsParamAnOld import com.tangem.tap.common.analytics.api.AnalyticsEventHandler import com.tangem.tap.common.analytics.api.ErrorEventHandler import com.tangem.tap.common.analytics.api.SdkErrorEventHandler @@ -25,7 +25,7 @@ class FirebaseAnalyticsHandler( } override fun handleAnalyticsEvent( - event: AnalyticsEvent, + event: AnalyticsEventAnOld, params: Map, card: Card?, blockchain: String?, @@ -39,8 +39,8 @@ class FirebaseAnalyticsHandler( override fun handleCardSdkErrorEvent( error: TangemSdkError, - action: Analytics.ActionToLog, - params: Map, + action: AnalyticsAnOld.ActionToLog, + params: Map, card: Card?, ) { val model = CardSdkErrorConverter.Model(error, action, params, prepareParams(card)) @@ -52,8 +52,8 @@ class FirebaseAnalyticsHandler( override fun handleBlockchainSdkErrorEvent( error: BlockchainError, - action: Analytics.ActionToLog, - params: Map, + action: AnalyticsAnOld.ActionToLog, + params: Map, card: Card?, ) { diff --git a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt index 77d70bf042..296b47185b 100644 --- a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt @@ -26,9 +26,9 @@ import com.tangem.operations.derivation.DeriveMultipleWalletPublicKeysTask import com.tangem.operations.pins.CheckUserCodesCommand import com.tangem.operations.pins.CheckUserCodesResponse import com.tangem.operations.pins.SetUserCodeCommand -import com.tangem.tap.common.analytics.Analytics -import com.tangem.tap.common.analytics.AnalyticsEvent -import com.tangem.tap.common.analytics.AnalyticsParam +import com.tangem.tap.common.analytics.AnalyticsAnOld +import com.tangem.tap.common.analytics.AnalyticsEventAnOld +import com.tangem.tap.common.analytics.AnalyticsParamAnOld import com.tangem.tap.common.analytics.GlobalAnalyticsEventHandler import com.tangem.tap.domain.tasks.CreateWalletAndRescanTask import com.tangem.tap.domain.tasks.product.ResetToFactorySettingsTask @@ -50,7 +50,7 @@ class TangemSdkManager(private val tangemSdk: TangemSdk, private val context: Co additionalBlockchainsToDerive: Collection? = null, messageRes: Int? = null, ): CompletionResult { - analyticsHandler?.handleAnalyticsEvent(AnalyticsEvent.READY_TO_SCAN, card = null) + analyticsHandler?.handleAnalyticsEvent(AnalyticsEventAnOld.READY_TO_SCAN, card = null) val message = Message(context.getString(messageRes ?: R.string.initial_message_scan_header)) return runTaskAsyncReturnOnMain( @@ -76,14 +76,14 @@ class TangemSdkManager(private val tangemSdk: TangemSdk, private val context: Co when (result) { is CompletionResult.Success -> { analyticsHandler?.handleAnalyticsEvent( - event = AnalyticsEvent.CARD_IS_SCANNED, + event = AnalyticsEventAnOld.CARD_IS_SCANNED, card = result.data.card, blockchain = result.data.walletData?.blockchain, ) if (DemoHelper.isDemoCard(result.data)) { analyticsHandler?.handleAnalyticsEvent( - event = AnalyticsEvent.DEMO_MODE_ACTIVATED, - params = mapOf(AnalyticsParam.CARD_ID.param to result.data.card.cardId), + event = AnalyticsEventAnOld.DEMO_MODE_ACTIVATED, + params = mapOf(AnalyticsParamAnOld.CARD_ID.param to result.data.card.cardId), card = result.data.card, blockchain = result.data.walletData?.blockchain, ) @@ -93,7 +93,7 @@ class TangemSdkManager(private val tangemSdk: TangemSdk, private val context: Co (result.error as? TangemSdkError)?.let { error -> analyticsHandler?.handleCardSdkErrorEvent( error = error, - action = Analytics.ActionToLog.Scan, + action = AnalyticsAnOld.ActionToLog.Scan, ) } } diff --git a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt index 9d7353fb5f..feb58ca6f0 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt @@ -14,7 +14,7 @@ import com.tangem.domain.common.ScanResponse import com.tangem.network.common.MoshiConverter import com.tangem.operations.wallet.CreateWalletResponse import com.tangem.tap.common.AssetReader -import com.tangem.tap.common.analytics.Analytics +import com.tangem.tap.common.analytics.AnalyticsAnOld import com.tangem.tap.common.analytics.GlobalAnalyticsEventHandler import com.tangem.tap.tangemSdkManager @@ -39,7 +39,7 @@ class TwinCardsManager( (response.error as? TangemSdkError)?.let { error -> analyticsHandler?.handleCardSdkErrorEvent( error, - Analytics.ActionToLog.CreateWallet, + AnalyticsAnOld.ActionToLog.CreateWallet, card = card ) } @@ -69,7 +69,7 @@ class TwinCardsManager( (response.error as? TangemSdkError)?.let { error -> analyticsHandler?.handleCardSdkErrorEvent( error, - Analytics.ActionToLog.CreateWallet, + AnalyticsAnOld.ActionToLog.CreateWallet, card = card ) } @@ -89,7 +89,7 @@ class TwinCardsManager( (response.error as? TangemSdkError)?.let { error -> analyticsHandler?.handleCardSdkErrorEvent( error, - Analytics.ActionToLog.WriteIssuerData, + AnalyticsAnOld.ActionToLog.WriteIssuerData, card = card ) } diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectManager.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectManager.kt index a3ec71fb94..6bd6cddada 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectManager.kt @@ -4,7 +4,7 @@ import com.tangem.blockchain.common.Blockchain import com.tangem.common.card.EllipticCurve import com.tangem.common.extensions.guard import com.tangem.domain.common.ScanResponse -import com.tangem.tap.common.analytics.Analytics +import com.tangem.tap.common.analytics.AnalyticsAnOld import com.tangem.tap.common.analytics.logWcEvent import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.redux.global.GlobalAction @@ -224,8 +224,8 @@ class WalletConnectManager { private fun onSessionClosed(session: WCSession) { store.state.globalState.analyticsHandler?.logWcEvent( - Analytics.WcAnalyticsEvent.Session( - Analytics.WcSessionEvent.Disconnect, sessions[session]?.peerMeta?.url + AnalyticsAnOld.WcAnalyticsEvent.Session( + AnalyticsAnOld.WcSessionEvent.Disconnect, sessions[session]?.peerMeta?.url ) ) sessions.remove(session) @@ -373,8 +373,8 @@ class WalletConnectManager { ) } store.state.globalState.analyticsHandler?.logWcEvent( - Analytics.WcAnalyticsEvent.Session( - Analytics.WcSessionEvent.Connect, peer.url, + AnalyticsAnOld.WcAnalyticsEvent.Session( + AnalyticsAnOld.WcSessionEvent.Connect, peer.url, ), ) } @@ -388,8 +388,8 @@ class WalletConnectManager { client.onEthSendTransaction = { id: Long, transaction: WCEthereumTransaction -> Timber.d("onEthSendTransaction: $transaction") store.state.globalState.analyticsHandler?.logWcEvent( - Analytics.WcAnalyticsEvent.Action( - Analytics.WcAction.SendTransaction + AnalyticsAnOld.WcAnalyticsEvent.Action( + AnalyticsAnOld.WcAction.SendTransaction ) ) sessions[client.session]?.toWalletConnectSession()?.let { sessionData -> @@ -406,8 +406,8 @@ class WalletConnectManager { client.onEthSignTransaction = { id: Long, transaction: WCEthereumTransaction -> Timber.d("onEthSignTransaction: $transaction") store.state.globalState.analyticsHandler?.logWcEvent( - Analytics.WcAnalyticsEvent.Action( - Analytics.WcAction.SignTransaction + AnalyticsAnOld.WcAnalyticsEvent.Action( + AnalyticsAnOld.WcAction.SignTransaction ) ) sessions[client.session]?.toWalletConnectSession()?.let { sessionData -> @@ -424,8 +424,8 @@ class WalletConnectManager { client.onEthSign = { id: Long, message: WCEthereumSignMessage -> Timber.d("onEthSign: $message") store.state.globalState.analyticsHandler?.logWcEvent( - Analytics.WcAnalyticsEvent.Action( - Analytics.WcAction.PersonalSign + AnalyticsAnOld.WcAnalyticsEvent.Action( + AnalyticsAnOld.WcAction.PersonalSign ) ) sessions[client.session]?.toWalletConnectSession()?.let { sessionData -> @@ -500,8 +500,8 @@ class WalletConnectManager { if (message != null) { Timber.d("onEthSign_v4: $message") store.state.globalState.analyticsHandler?.logWcEvent( - Analytics.WcAnalyticsEvent.Action( - Analytics.WcAction.PersonalSign + AnalyticsAnOld.WcAnalyticsEvent.Action( + AnalyticsAnOld.WcAction.PersonalSign ) ) sessions[client.session]?.toWalletConnectSession()?.let { sessionData -> diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt index 482cf3f42b..f90eb7cbb9 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt @@ -24,7 +24,7 @@ import com.tangem.common.extensions.toDecompressedPublicKey import com.tangem.common.extensions.toHexString import com.tangem.crypto.CryptoUtils import com.tangem.operations.sign.SignHashCommand -import com.tangem.tap.common.analytics.Analytics +import com.tangem.tap.common.analytics.AnalyticsAnOld import com.tangem.tap.common.extensions.safeUpdate import com.tangem.tap.common.extensions.toFormattedString import com.tangem.tap.features.details.redux.walletconnect.WalletConnectSession @@ -145,7 +145,7 @@ class WalletConnectSdkHelper { is SimpleResult.Failure -> { store.state.globalState.analyticsHandler?.handleBlockchainSdkErrorEvent( result.error, - Analytics.ActionToLog.WalletConnectTransaction, + AnalyticsAnOld.ActionToLog.WalletConnectTransaction, ) Timber.e(result.error as BlockchainSdkError) null @@ -175,7 +175,7 @@ class WalletConnectSdkHelper { (result.error as? TangemSdkError)?.let { error -> store.state.globalState.analyticsHandler?.handleCardSdkErrorEvent( error, - Analytics.ActionToLog.WalletConnectSign, + AnalyticsAnOld.ActionToLog.WalletConnectSign, ) } Timber.e(result.error.customMessage) @@ -204,7 +204,7 @@ class WalletConnectSdkHelper { (result.error as? TangemSdkError)?.let { error -> store.state.globalState.analyticsHandler?.handleCardSdkErrorEvent( error, - Analytics.ActionToLog.WalletConnectTransaction, + AnalyticsAnOld.ActionToLog.WalletConnectTransaction, ) } Timber.e(result.error.customMessage) @@ -280,7 +280,7 @@ class WalletConnectSdkHelper { (result.error as? TangemSdkError)?.let { error -> store.state.globalState.analyticsHandler?.handleCardSdkErrorEvent( error, - Analytics.ActionToLog.WalletConnectSign, + AnalyticsAnOld.ActionToLog.WalletConnectSign, ) } Timber.e(result.error.customMessage) diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt index 12f4fee9e2..309c2900d3 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt @@ -3,8 +3,8 @@ package com.tangem.tap.features.details.redux import com.tangem.common.CompletionResult import com.tangem.common.core.TangemSdkError import com.tangem.domain.common.TapWorkarounds.isTangemTwins -import com.tangem.tap.common.analytics.Analytics -import com.tangem.tap.common.analytics.AnalyticsParam +import com.tangem.tap.common.analytics.AnalyticsAnOld +import com.tangem.tap.common.analytics.AnalyticsParamAnOld import com.tangem.tap.common.extensions.dispatchNotification import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.redux.AppState @@ -112,7 +112,7 @@ class DetailsMiddleware { (result.error as? TangemSdkError)?.let { error -> store.state.globalState.analyticsHandler?.handleCardSdkErrorEvent( error, - Analytics.ActionToLog.PurgeWallet, + AnalyticsAnOld.ActionToLog.PurgeWallet, card = store.state.detailsState.scanResponse?.card, ) } @@ -156,9 +156,9 @@ class DetailsMiddleware { (result.error as? TangemSdkError)?.let { error -> store.state.globalState.analyticsHandler?.handleCardSdkErrorEvent( error = error, - action = Analytics.ActionToLog.ChangeSecOptions, + action = AnalyticsAnOld.ActionToLog.ChangeSecOptions, params = mapOf( - AnalyticsParam.NEW_SECURITY_OPTION to + AnalyticsParamAnOld.NEW_SECURITY_OPTION to (selectedOption?.name ?: ""), ), card = store.state.detailsState.scanResponse?.card, diff --git a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt index 4255a371f7..569c2c4a77 100644 --- a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt @@ -6,9 +6,9 @@ import com.tangem.domain.common.ScanResponse import com.tangem.domain.common.extensions.withIOContext import com.tangem.domain.common.extensions.withMainContext import com.tangem.tap.DELAY_SDK_DIALOG_CLOSE -import com.tangem.tap.common.analytics.AnalyticsEvent -import com.tangem.tap.common.analytics.AnalyticsParam -import com.tangem.tap.common.analytics.GetCardSourceParams +import com.tangem.tap.common.analytics.AnalyticsEventAnOld +import com.tangem.tap.common.analytics.AnalyticsParamAnOld +import com.tangem.tap.common.analytics.GetCardSourceParamsAnOld import com.tangem.tap.common.entities.IndeterminateProgressButton import com.tangem.tap.common.extensions.dispatchDialogShow import com.tangem.tap.common.extensions.dispatchOpenUrl @@ -92,8 +92,8 @@ private fun handleHomeAction(appState: () -> AppState?, action: Action, dispatch else -> store.dispatch(NavigationAction.NavigateTo(AppScreen.Shop)) } store.state.globalState.analyticsHandler?.handleAnalyticsEvent( - event = AnalyticsEvent.GET_CARD, - params = mapOf(AnalyticsParam.SOURCE.param to GetCardSourceParams.WELCOME.param), + event = AnalyticsEventAnOld.GET_CARD, + params = mapOf(AnalyticsParamAnOld.SOURCE.param to GetCardSourceParamsAnOld.WELCOME.param), ) } } diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt index 3890f95d40..22cd5ad13a 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt @@ -17,9 +17,9 @@ import com.tangem.common.services.Result import com.tangem.domain.common.TapWorkarounds.isStart2Coin import com.tangem.domain.common.extensions.withMainContext import com.tangem.tap.DELAY_SDK_DIALOG_CLOSE -import com.tangem.tap.common.analytics.Analytics -import com.tangem.tap.common.analytics.AnalyticsEvent -import com.tangem.tap.common.analytics.AnalyticsParam +import com.tangem.tap.common.analytics.AnalyticsAnOld +import com.tangem.tap.common.analytics.AnalyticsEventAnOld +import com.tangem.tap.common.analytics.AnalyticsParamAnOld import com.tangem.tap.common.extensions.dispatchDialogShow import com.tangem.tap.common.extensions.dispatchErrorNotification import com.tangem.tap.common.extensions.dispatchOnMain @@ -222,7 +222,7 @@ private fun sendTransaction( when (sendResult) { is SimpleResult.Success -> { store.state.globalState.analyticsHandler?.handleAnalyticsEvent( - event = AnalyticsEvent.TRANSACTION_IS_SENT, + event = AnalyticsEventAnOld.TRANSACTION_IS_SENT, card = card, blockchain = walletManager.wallet.blockchain.currency, ) @@ -252,8 +252,8 @@ private fun sendTransaction( ) store.state.globalState.analyticsHandler?.handleBlockchainSdkErrorEvent( error = sendResult.error, - action = Analytics.ActionToLog.SendTransaction, - params = mapOf(AnalyticsParam.BLOCKCHAIN to walletManager.wallet.blockchain.currency), + action = AnalyticsAnOld.ActionToLog.SendTransaction, + params = mapOf(AnalyticsParamAnOld.BLOCKCHAIN to walletManager.wallet.blockchain.currency), card = card, ) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt index 52a199ff60..ca2323f38e 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt @@ -11,7 +11,7 @@ import com.tangem.common.services.Result import com.tangem.domain.common.extensions.withMainContext import com.tangem.operations.attestation.Attestation import com.tangem.operations.attestation.OnlineCardVerifier -import com.tangem.tap.common.analytics.Analytics +import com.tangem.tap.common.analytics.AnalyticsAnOld import com.tangem.tap.common.extensions.copyToClipboard import com.tangem.tap.common.extensions.dispatchDebugErrorNotification import com.tangem.tap.common.extensions.dispatchOnMain @@ -188,7 +188,7 @@ class WalletMiddleware { (result.error as? TangemSdkError)?.let { error -> store.state.globalState.analyticsHandler?.handleCardSdkErrorEvent( error, - Analytics.ActionToLog.CreateWallet, + AnalyticsAnOld.ActionToLog.CreateWallet, card = store.state.detailsState.scanResponse?.card ) } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WarningsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WarningsMiddleware.kt index 528d4a0f43..8bf72ef3c7 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WarningsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WarningsMiddleware.kt @@ -8,7 +8,7 @@ import com.tangem.common.card.Card import com.tangem.common.card.FirmwareVersion import com.tangem.domain.common.ScanResponse import com.tangem.domain.common.TapWorkarounds.isTestCard -import com.tangem.tap.common.analytics.AnalyticsEvent +import com.tangem.tap.common.analytics.AnalyticsEventAnOld import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.extensions.isGreaterThan import com.tangem.tap.common.redux.global.GlobalState @@ -81,7 +81,7 @@ class WarningsMiddleware { preferencesStorage.appRatingLaunchObserver.foundWalletWithFunds() } if (preferencesStorage.appRatingLaunchObserver.isReadyToShow()) { - store.state.globalState.analyticsHandler?.handleAnalyticsEvent(AnalyticsEvent.APP_RATING_DISPLAYED) + store.state.globalState.analyticsHandler?.handleAnalyticsEvent(AnalyticsEventAnOld.APP_RATING_DISPLAYED) addWarningMessage(WarningMessagesManager.appRatingWarning(), true) } } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WarningMessagesAdapter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WarningMessagesAdapter.kt index 4a5e240442..57e8e81f77 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WarningMessagesAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WarningMessagesAdapter.kt @@ -7,7 +7,7 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.google.android.play.core.review.ReviewManagerFactory -import com.tangem.tap.common.analytics.AnalyticsEvent +import com.tangem.tap.common.analytics.AnalyticsEventAnOld import com.tangem.tap.common.extensions.getActivity import com.tangem.tap.common.extensions.getColor import com.tangem.tap.common.extensions.getString @@ -109,12 +109,12 @@ class WarningMessageVH(val binding: LayoutWarningCardActionBinding) : RecyclerVi binding.btnClose.show() val analyticsHandler = store.state.globalState.analyticsHandler binding.btnClose.setOnClickListener { - analyticsHandler?.handleAnalyticsEvent(AnalyticsEvent.APP_RATING_DISMISS) + analyticsHandler?.handleAnalyticsEvent(AnalyticsEventAnOld.APP_RATING_DISMISS) store.dispatch(GlobalAction.HideWarningMessage(warning)) store.dispatch(WalletAction.Warnings.AppRating.RemindLater) } binding.btnCanBeBetter.setOnClickListener { - analyticsHandler?.handleAnalyticsEvent(AnalyticsEvent.APP_RATING_NEGATIVE) + analyticsHandler?.handleAnalyticsEvent(AnalyticsEventAnOld.APP_RATING_NEGATIVE) store.dispatch(WalletAction.Warnings.AppRating.SetNeverToShow) store.dispatch(GlobalAction.HideWarningMessage(warning)) store.dispatch(GlobalAction.SendEmail(RateCanBeBetterEmail())) @@ -122,7 +122,7 @@ class WarningMessageVH(val binding: LayoutWarningCardActionBinding) : RecyclerVi binding.btnReallyCool.setOnClickListener { val activity = binding.root.context.getActivity() ?: return@setOnClickListener - analyticsHandler?.handleAnalyticsEvent(AnalyticsEvent.APP_RATING_POSITIVE) + analyticsHandler?.handleAnalyticsEvent(AnalyticsEventAnOld.APP_RATING_POSITIVE) store.dispatch(WalletAction.Warnings.AppRating.SetNeverToShow) val reviewManager = ReviewManagerFactory.create(activity) val task = reviewManager.requestReviewFlow()