From 3cbab45566ee082cac52d8e262b02b836343e741 Mon Sep 17 00:00:00 2001 From: Sawyer Blatz Date: Thu, 2 Jul 2020 09:47:52 -0700 Subject: [PATCH] For #12157: Don't show two search widget dialogs --- .../java/org/mozilla/fenix/cfr/SearchWidgetCFR.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/cfr/SearchWidgetCFR.kt b/app/src/main/java/org/mozilla/fenix/cfr/SearchWidgetCFR.kt index 41827caba..1b178bc01 100644 --- a/app/src/main/java/org/mozilla/fenix/cfr/SearchWidgetCFR.kt +++ b/app/src/main/java/org/mozilla/fenix/cfr/SearchWidgetCFR.kt @@ -34,7 +34,11 @@ class SearchWidgetCFR( fun displayIfNecessary() { if (!context.settings().isInSearchWidgetExperiment || - !context.settings().shouldDisplaySearchWidgetCFR()) { return } + !context.settings().shouldDisplaySearchWidgetCFR() || + isShown + ) { return } + + isShown = true showSearchWidgetCFR() } @@ -85,14 +89,21 @@ class SearchWidgetCFR( } searchWidgetCFRDialog.setOnCancelListener { + isShown = false context.components.analytics.metrics.track(Event.SearchWidgetCFRCanceled) } searchWidgetCFRDialog.setOnDismissListener { + isShown = false context.settings().incrementSearchWidgetCFRDismissed() } searchWidgetCFRDialog.show() context.components.analytics.metrics.track(Event.SearchWidgetCFRDisplayed) } + + companion object { + // Used to ensure multiple dialogs are not shown on top of each other + var isShown = false + } }