From eeb875b8cb1c2096121d820334f41b6a36462608 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. (cherry picked from commit 5149fb715af82a1c79e47fe7e0d8ea8be8ff8dc5) --- .../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 b8417e934..185f0a12c 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 @@ -74,7 +74,10 @@ class ReviewQualityCheckNetworkMiddleware( } } - ReviewQualityCheckAction.ReanalyzeProduct, ReviewQualityCheckAction.AnalyzeProduct -> { + ReviewQualityCheckAction.ReanalyzeProduct, + ReviewQualityCheckAction.AnalyzeProduct, + ReviewQualityCheckAction.RestoreReanalysis, + -> { val reanalysis = reviewQualityCheckService.reanalyzeProduct() if (reanalysis == null) { @@ -144,7 +147,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 c4c989813..43a8b34e4 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 @@ -98,6 +98,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 bfa190f85..35f319b7e 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 @@ -79,7 +79,10 @@ private fun mapStateForUpdateAction( } } - ReviewQualityCheckAction.ReanalyzeProduct, ReviewQualityCheckAction.AnalyzeProduct -> { + ReviewQualityCheckAction.ReanalyzeProduct, + ReviewQualityCheckAction.AnalyzeProduct, + ReviewQualityCheckAction.RestoreReanalysis, + -> { state.mapIfOptedIn { when (it.productReviewState) { is ProductReviewState.AnalysisPresent -> {