diff --git a/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEvent.kt b/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEvent.kt index 932897e204..4395bd0922 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEvent.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsEvent.kt @@ -4,4 +4,8 @@ enum class AnalyticsEvent(val event: String) { CARD_IS_SCANNED("card_is_scanned"), TRANSACTION_IS_SENT("transaction_is_sent"), READY_TO_SCAN("ready_to_scan"), + APP_RATING_DISPLAYED("rate_app_warning_displayed"), + APP_RATING_DISMISS("dismiss_rate_app_warning"), + APP_RATING_NEGATIVE("negative_rate_app_feedback"), + APP_RATING_POSITIVE("positive_rate_app_feedback"), } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsHandler.kt index 9dddeee4f2..1dc3586808 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/AnalyticsHandler.kt @@ -4,5 +4,5 @@ import com.tangem.commands.common.card.Card interface AnalyticsHandler { - fun triggerEvent(event: AnalyticsEvent, card: Card?) + fun triggerEvent(event: AnalyticsEvent, card: Card? = null) } \ 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 0d49728dd6..d1d3ce7a38 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 @@ -8,8 +8,7 @@ import com.tangem.commands.common.card.Card object FirebaseAnalyticsHandler : AnalyticsHandler { override fun triggerEvent(event: AnalyticsEvent, card: Card?) { - Firebase.analytics - .logEvent(event.event, setCardData(card)) + Firebase.analytics.logEvent(event.event, setCardData(card)) } fun logException(name: String, throwable: Throwable) { 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 7c8c4d1438..31da876cf0 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 @@ -13,6 +13,7 @@ import com.tangem.commands.common.network.Result import com.tangem.common.CompletionResult import com.tangem.common.extensions.getType import com.tangem.common.extensions.toHexString +import com.tangem.tap.common.analytics.AnalyticsEvent import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.extensions.copyToClipboard import com.tangem.tap.common.redux.AppState @@ -199,7 +200,10 @@ class WalletMiddleware { updateWarningMessages() } val readyToShow = preferencesStorage.appRatingLaunchObserver.isReadyToShow() - if (readyToShow) addWarningMessage(WarningMessagesManager.appRatingWarning(), true) + if (readyToShow) { + FirebaseAnalyticsHandler.triggerEvent(AnalyticsEvent.APP_RATING_DISPLAYED) + addWarningMessage(WarningMessagesManager.appRatingWarning(), true) + } } is WalletAction.CheckHashesCountOnline -> checkHashesCountOnline() is WalletAction.SaveCardId -> { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WarningMessagesAdapter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WarningMessagesAdapter.kt index aae70f9a67..c2129bfb76 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WarningMessagesAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WarningMessagesAdapter.kt @@ -9,6 +9,8 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.ItemDecoration import com.google.android.play.core.review.ReviewManagerFactory +import com.tangem.tap.common.analytics.AnalyticsEvent +import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.extensions.getString import com.tangem.tap.common.extensions.hide import com.tangem.tap.common.extensions.show @@ -78,15 +80,18 @@ class WarningMessageVH(val view: View) : RecyclerView.ViewHolder(view) { view.group_controls_temporary.hide() view.group_controls_rating.show() view.btn_close.setOnClickListener { + FirebaseAnalyticsHandler.triggerEvent(AnalyticsEvent.APP_RATING_DISMISS) store.dispatch(GlobalAction.HideWarningMessage(warning)) store.dispatch(WalletAction.Warnings.AppRating.RemindLater) } view.btn_can_be_better.setOnClickListener { + FirebaseAnalyticsHandler.triggerEvent(AnalyticsEvent.APP_RATING_NEGATIVE) store.dispatch(GlobalAction.HideWarningMessage(warning)) store.dispatch(GlobalAction.SendFeedback(RateCanBeBetterEmail())) } store.dispatch(WalletAction.Warnings.AppRating.SetNeverToShow) view.btn_really_cool.setOnClickListener { + FirebaseAnalyticsHandler.triggerEvent(AnalyticsEvent.APP_RATING_POSITIVE) val context = view.context val reviewManager = ReviewManagerFactory.create(context) val flow = reviewManager.requestReviewFlow()