From c036ccfbe21b1275a9d7e724209382a44ca29ad2 Mon Sep 17 00:00:00 2001 From: DreVla Date: Thu, 16 Nov 2023 15:45:09 +0200 Subject: [PATCH] Bug 1865067 - Send surface_reanalyze_clicked only when button tapped The shopping.surface_reanalyze_clicked event was sent everytime the review checker sheet was opened while a product was being reanalyzed. This patch fixes it by sending a separate telemetry action for the button. --- .../middleware/ReviewQualityCheckNetworkMiddleware.kt | 7 +++++-- .../fenix/shopping/store/ReviewQualityCheckAction.kt | 6 ++++++ .../fenix/shopping/store/ReviewQualityCheckStore.kt | 5 ++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNetworkMiddleware.kt b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNetworkMiddleware.kt index 0fae0f693..4bedfac13 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNetworkMiddleware.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNetworkMiddleware.kt @@ -79,7 +79,10 @@ class ReviewQualityCheckNetworkMiddleware( } } - ReviewQualityCheckAction.ReanalyzeProduct, ReviewQualityCheckAction.AnalyzeProduct -> { + ReviewQualityCheckAction.ReanalyzeProduct, + ReviewQualityCheckAction.AnalyzeProduct, + ReviewQualityCheckAction.RestoreReanalysis, + -> { val reanalysis = reviewQualityCheckService.reanalyzeProduct() if (reanalysis == null) { @@ -157,7 +160,7 @@ class ReviewQualityCheckNetworkMiddleware( productAnalysis?.needsAnalysis == true && appStore.state.shoppingState.productsInAnalysis.contains(productPageUrl) ) { - dispatch(ReviewQualityCheckAction.ReanalyzeProduct) + dispatch(ReviewQualityCheckAction.RestoreReanalysis) } } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt index 5cb18e202..0ea528aa5 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt @@ -112,6 +112,12 @@ sealed interface ReviewQualityCheckAction : Action { */ object ReanalyzeProduct : NetworkAction, UpdateAction, TelemetryAction + /** + * Triggered when the product was previously known to be in reanalysis + * process when the sheet was closed and the state should be restored. + */ + object RestoreReanalysis : NetworkAction, UpdateAction + /** * Triggered when the user clicks on the analyze button */ diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt index 57a3e0a5d..f18566f5d 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt @@ -121,7 +121,10 @@ private fun mapStateForUpdateAction( } } - ReviewQualityCheckAction.ReanalyzeProduct, ReviewQualityCheckAction.AnalyzeProduct -> { + ReviewQualityCheckAction.ReanalyzeProduct, + ReviewQualityCheckAction.AnalyzeProduct, + ReviewQualityCheckAction.RestoreReanalysis, + -> { state.mapIfOptedIn { when (it.productReviewState) { is ProductReviewState.AnalysisPresent -> {