|
|
|
@ -5,6 +5,7 @@
|
|
|
|
|
package org.mozilla.fenix.shopping.middleware
|
|
|
|
|
|
|
|
|
|
import mozilla.components.lib.state.MiddlewareContext
|
|
|
|
|
import mozilla.components.lib.state.Store
|
|
|
|
|
import org.mozilla.fenix.GleanMetrics.Shopping
|
|
|
|
|
import org.mozilla.fenix.GleanMetrics.ShoppingSettings
|
|
|
|
|
import org.mozilla.fenix.shopping.store.ReviewQualityCheckAction
|
|
|
|
@ -24,7 +25,7 @@ class ReviewQualityCheckTelemetryMiddleware : ReviewQualityCheckMiddleware {
|
|
|
|
|
next(action)
|
|
|
|
|
|
|
|
|
|
when (action) {
|
|
|
|
|
is ReviewQualityCheckAction.TelemetryAction -> processAction(action)
|
|
|
|
|
is ReviewQualityCheckAction.TelemetryAction -> processAction(context.store, action)
|
|
|
|
|
else -> {
|
|
|
|
|
// no-op
|
|
|
|
|
}
|
|
|
|
@ -32,74 +33,81 @@ class ReviewQualityCheckTelemetryMiddleware : ReviewQualityCheckMiddleware {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun processAction(
|
|
|
|
|
store: Store<ReviewQualityCheckState, ReviewQualityCheckAction>,
|
|
|
|
|
action: ReviewQualityCheckAction.TelemetryAction,
|
|
|
|
|
) = when (action) {
|
|
|
|
|
is ReviewQualityCheckAction.OptIn -> {
|
|
|
|
|
Shopping.surfaceOptInAccepted.record()
|
|
|
|
|
ShoppingSettings.userHasOnboarded.set(true)
|
|
|
|
|
}
|
|
|
|
|
) {
|
|
|
|
|
when (action) {
|
|
|
|
|
is ReviewQualityCheckAction.OptIn -> {
|
|
|
|
|
Shopping.surfaceOptInAccepted.record()
|
|
|
|
|
ShoppingSettings.userHasOnboarded.set(true)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.OptOut -> {
|
|
|
|
|
ShoppingSettings.componentOptedOut.set(true)
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.OptOut -> {
|
|
|
|
|
ShoppingSettings.componentOptedOut.set(true)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.BottomSheetClosed -> {
|
|
|
|
|
Shopping.surfaceClosed.record(
|
|
|
|
|
Shopping.SurfaceClosedExtra(action.source.sourceName),
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.BottomSheetClosed -> {
|
|
|
|
|
Shopping.surfaceClosed.record(
|
|
|
|
|
Shopping.SurfaceClosedExtra(action.source.sourceName),
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.BottomSheetDisplayed -> {
|
|
|
|
|
Shopping.surfaceDisplayed.record(
|
|
|
|
|
Shopping.SurfaceDisplayedExtra(action.view.state),
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.BottomSheetDisplayed -> {
|
|
|
|
|
Shopping.surfaceDisplayed.record(
|
|
|
|
|
Shopping.SurfaceDisplayedExtra(action.view.state),
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.OpenExplainerLearnMoreLink -> {
|
|
|
|
|
Shopping.surfaceReviewQualityExplainerUrlClicked.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.OpenExplainerLearnMoreLink -> {
|
|
|
|
|
Shopping.surfaceReviewQualityExplainerUrlClicked.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.OpenOnboardingLearnMoreLink -> {
|
|
|
|
|
Shopping.surfaceLearnMoreClicked.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.OpenOnboardingLearnMoreLink -> {
|
|
|
|
|
Shopping.surfaceLearnMoreClicked.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.OpenOnboardingPrivacyPolicyLink -> {
|
|
|
|
|
Shopping.surfaceShowPrivacyPolicyClicked.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.OpenOnboardingPrivacyPolicyLink -> {
|
|
|
|
|
Shopping.surfaceShowPrivacyPolicyClicked.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.OpenOnboardingTermsLink -> {
|
|
|
|
|
Shopping.surfaceShowTermsClicked.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.OpenOnboardingTermsLink -> {
|
|
|
|
|
Shopping.surfaceShowTermsClicked.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.NotNowClicked -> {
|
|
|
|
|
Shopping.surfaceNotNowClicked.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.NotNowClicked -> {
|
|
|
|
|
Shopping.surfaceNotNowClicked.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.ShowMoreRecentReviewsClicked -> {
|
|
|
|
|
Shopping.surfaceShowMoreRecentReviewsClicked.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.ShowMoreRecentReviewsClicked -> {
|
|
|
|
|
Shopping.surfaceShowMoreRecentReviewsClicked.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.ExpandSettingsClicked -> {
|
|
|
|
|
Shopping.surfaceExpandSettings.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.NoAnalysisDisplayed -> {
|
|
|
|
|
Shopping.surfaceNoReviewReliabilityAvailable.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.ExpandCollapseSettings -> {
|
|
|
|
|
val state = store.state
|
|
|
|
|
if (state is ReviewQualityCheckState.OptedIn && state.isSettingsExpanded) {
|
|
|
|
|
Shopping.surfaceExpandSettings.record()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.AnalyzeProduct -> {
|
|
|
|
|
Shopping.surfaceAnalyzeReviewsNoneAvailableClicked.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.NoAnalysisDisplayed -> {
|
|
|
|
|
Shopping.surfaceNoReviewReliabilityAvailable.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.ReanalyzeProduct -> {
|
|
|
|
|
Shopping.surfaceReanalyzeClicked.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.AnalyzeProduct -> {
|
|
|
|
|
Shopping.surfaceAnalyzeReviewsNoneAvailableClicked.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.ReportProductBackInStock -> {
|
|
|
|
|
Shopping.surfaceReactivatedButtonClicked.record()
|
|
|
|
|
}
|
|
|
|
|
is ReviewQualityCheckAction.ReanalyzeProduct -> {
|
|
|
|
|
Shopping.surfaceReanalyzeClicked.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.ReportProductBackInStock -> {
|
|
|
|
|
Shopping.surfaceReactivatedButtonClicked.record()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is ReviewQualityCheckAction.OptOutCompleted -> {
|
|
|
|
|
Shopping.surfaceOnboardingDisplayed.record()
|
|
|
|
|
is ReviewQualityCheckAction.OptOutCompleted -> {
|
|
|
|
|
Shopping.surfaceOnboardingDisplayed.record()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|