diff --git a/app/build.gradle b/app/build.gradle index fdce4d1839..1b06c221fa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -93,8 +93,9 @@ dependencies { implementation 'com.squareup.picasso:picasso:2.71828' // Firebase - implementation 'com.google.firebase:firebase-crashlytics:17.2.2' - implementation 'com.google.firebase:firebase-analytics:17.6.0' + implementation platform('com.google.firebase:firebase-bom:26.0.0') + implementation 'com.google.firebase:firebase-crashlytics' + implementation 'com.google.firebase:firebase-analytics-ktx' testImplementation 'junit:junit:4.13' testImplementation "com.google.truth:truth:1.0.1" diff --git a/app/src/main/java/com/tangem/tap/TapApplication.kt b/app/src/main/java/com/tangem/tap/TapApplication.kt index 9870dd08bf..b19bfc730e 100644 --- a/app/src/main/java/com/tangem/tap/TapApplication.kt +++ b/app/src/main/java/com/tangem/tap/TapApplication.kt @@ -1,8 +1,6 @@ package com.tangem.tap import android.app.Application -import com.tangem.tap.common.analytics.AnalyticsHandler -import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.images.PicassoHelper import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.appReducer @@ -18,7 +16,6 @@ val store = Store( state = AppState() ) lateinit var preferencesStorage: PreferencesStorage -lateinit var analytics: AnalyticsHandler class TapApplication : Application() { override fun onCreate() { @@ -29,6 +26,5 @@ class TapApplication : Application() { NetworkConnectivity.createInstance(store, this) preferencesStorage = PreferencesStorage(this) PicassoHelper.initPicassoWithCaching(this) - analytics = FirebaseAnalyticsHandler(this) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/FirebaseAnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/FirebaseAnalyticsHandler.kt index 6118c73cde..6e7f460773 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/FirebaseAnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/FirebaseAnalyticsHandler.kt @@ -1,15 +1,15 @@ package com.tangem.tap.common.analytics -import android.content.Context import android.os.Bundle import androidx.core.os.bundleOf -import com.google.firebase.analytics.FirebaseAnalytics +import com.google.firebase.analytics.ktx.analytics +import com.google.firebase.ktx.Firebase import com.tangem.commands.Card -class FirebaseAnalyticsHandler(private val context: Context): AnalyticsHandler { +object FirebaseAnalyticsHandler: AnalyticsHandler { override fun triggerEvent(event: AnalyticsEvent, card: Card?) { - FirebaseAnalytics.getInstance(context) - .logEvent(AnalyticsEvent.CARD_IS_SCANNED.event, setCardData(card)) + Firebase.analytics + .logEvent(event.event, setCardData(card)) } private fun setCardData(card: Card?): Bundle { @@ -26,4 +26,4 @@ class FirebaseAnalyticsHandler(private val context: Context): AnalyticsHandler { BATCH_ID("batch_id"), FIRMWARE("firmware"), } -} \ No newline at end of file +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt index 76d43787eb..99c1864c96 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt @@ -6,8 +6,8 @@ import com.tangem.commands.CardStatus import com.tangem.commands.common.network.Result import com.tangem.common.extensions.toHexString import com.tangem.tap.TapConfig -import com.tangem.tap.analytics import com.tangem.tap.common.analytics.AnalyticsEvent +import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.redux.global.CryptoCurrencyName import com.tangem.tap.common.redux.global.FiatCurrencyName import com.tangem.tap.common.redux.global.GlobalAction @@ -81,7 +81,7 @@ class TapWalletManager { suspend fun onCardScanned(data: ScanNoteResponse, addAnalyticsEvent: Boolean = false) { if (addAnalyticsEvent) { - analytics.triggerEvent(AnalyticsEvent.CARD_IS_SCANNED, data.card) + FirebaseAnalyticsHandler.triggerEvent(AnalyticsEvent.CARD_IS_SCANNED, data.card) } tapWorkarounds = TapWorkarounds(data.card) withContext(Dispatchers.Main) { 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 b35b06f802..987e3c1b3b 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 @@ -4,11 +4,15 @@ import android.content.Intent import android.net.Uri import androidx.core.content.ContextCompat.startActivity import com.tangem.common.CompletionResult -import com.tangem.tap.* +import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.NavigationAction +import com.tangem.tap.preferencesStorage +import com.tangem.tap.scope +import com.tangem.tap.store +import com.tangem.tap.tangemSdkManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -26,7 +30,7 @@ class HomeMiddleware { } is HomeAction.ReadCard -> { scope.launch { - val result = tangemSdkManager.scanNote(analytics) + val result = tangemSdkManager.scanNote(FirebaseAnalyticsHandler) withContext(Dispatchers.Main) { when (result) { is CompletionResult.Success -> { 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 f0904be965..34414e9381 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 @@ -5,8 +5,8 @@ import com.tangem.blockchain.common.* import com.tangem.blockchain.extensions.Result import com.tangem.blockchain.extensions.Signer import com.tangem.commands.Card -import com.tangem.tap.analytics import com.tangem.tap.common.analytics.AnalyticsEvent +import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.extensions.stripZeroPlainString import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.global.GlobalAction @@ -96,7 +96,7 @@ private fun sendTransaction( withContext(Dispatchers.Main) { when (result) { is Result.Success -> { - analytics.triggerEvent(AnalyticsEvent.TRANSACTION_IS_SENT, card) + FirebaseAnalyticsHandler.triggerEvent(AnalyticsEvent.TRANSACTION_IS_SENT, card) dispatch(SendAction.SendSuccess) dispatch(GlobalAction.UpdateWalletSignedHashes(result.data.walletSignedHashes)) dispatch(WalletAction.UpdateWallet) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletMiddleware.kt index 5b03acb6da..69a69a8509 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletMiddleware.kt @@ -11,7 +11,7 @@ import com.tangem.common.CompletionResult import com.tangem.common.extensions.CardType import com.tangem.common.extensions.getType import com.tangem.common.extensions.toHexString -import com.tangem.tap.* +import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.extensions.copyToClipboard import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.navigation.AppScreen @@ -23,6 +23,10 @@ import com.tangem.tap.features.send.redux.PrepareSendScreen import com.tangem.tap.features.wallet.models.toPendingTransactions import com.tangem.tap.network.NetworkConnectivity import com.tangem.tap.network.NetworkStateChanged +import com.tangem.tap.preferencesStorage +import com.tangem.tap.scope +import com.tangem.tap.store +import com.tangem.tap.tangemSdkManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -97,7 +101,7 @@ val walletMiddleware: Middleware = { dispatch, state -> } is WalletAction.Scan -> { scope.launch { - val result = tangemSdkManager.scanNote(analytics) + val result = tangemSdkManager.scanNote(FirebaseAnalyticsHandler) when (result) { is CompletionResult.Success -> { store.state.globalState.tapWalletManager