From d8bdb6cf3bbb157d2cfdee12a34ec9434f5fc5b4 Mon Sep 17 00:00:00 2001 From: Cris Barreiro Date: Wed, 27 Nov 2024 14:39:54 +0100 Subject: [PATCH 1/3] Set report flow to form when launchiung hybrid site from the prompt --- .../java/com/duckduckgo/app/browser/BrowserTabFragment.kt | 8 +++++++- .../api/ui/PrivacyDashboardHybridScreenParams.kt | 7 ++++++- .../dashboard/impl/ui/PrivacyDashboardHybridActivity.kt | 8 +++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index bfbd6e26982e..8118b1449597 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -225,6 +225,7 @@ import com.duckduckgo.autofill.api.domain.app.LoginTriggerType import com.duckduckgo.autofill.api.emailprotection.EmailInjector import com.duckduckgo.browser.api.WebViewVersionProvider import com.duckduckgo.browser.api.brokensite.BrokenSiteData +import com.duckduckgo.browser.api.brokensite.BrokenSiteData.ReportFlow.PROMPT import com.duckduckgo.common.ui.DuckDuckGoFragment import com.duckduckgo.common.ui.store.BrowserAppTheme import com.duckduckgo.common.ui.view.DaxDialog @@ -272,6 +273,7 @@ import com.duckduckgo.navigation.api.GlobalActivityStarter import com.duckduckgo.navigation.api.GlobalActivityStarter.DeeplinkActivityParams import com.duckduckgo.privacy.dashboard.api.ui.PrivacyDashboardHybridScreenParams import com.duckduckgo.privacy.dashboard.api.ui.PrivacyDashboardHybridScreenParams.BrokenSiteForm +import com.duckduckgo.privacy.dashboard.api.ui.PrivacyDashboardHybridScreenParams.BrokenSiteForm.BrokenSiteFormReportFlow import com.duckduckgo.privacy.dashboard.api.ui.WebBrokenSiteForm import com.duckduckgo.privacyprotectionspopup.api.PrivacyProtectionsPopup import com.duckduckgo.privacyprotectionspopup.api.PrivacyProtectionsPopupFactory @@ -1906,7 +1908,11 @@ class BrowserTabFragment : val context = context ?: return if (webBrokenSiteForm.shouldUseWebBrokenSiteForm()) { - globalActivityStarter.startIntent(context, BrokenSiteForm(tabId)) + val reportFlow = when (data.reportFlow) { + PROMPT -> BrokenSiteFormReportFlow.PROMPT + else -> BrokenSiteFormReportFlow.MENU + } + globalActivityStarter.startIntent(context, BrokenSiteForm(tabId, reportFlow)) ?.let { startActivity(it) } } else { val options = ActivityOptions.makeSceneTransitionAnimation(browserActivity).toBundle() diff --git a/privacy-dashboard/privacy-dashboard-api/src/main/java/com/duckduckgo/privacy/dashboard/api/ui/PrivacyDashboardHybridScreenParams.kt b/privacy-dashboard/privacy-dashboard-api/src/main/java/com/duckduckgo/privacy/dashboard/api/ui/PrivacyDashboardHybridScreenParams.kt index dbfb8b105167..f559d2ba9341 100644 --- a/privacy-dashboard/privacy-dashboard-api/src/main/java/com/duckduckgo/privacy/dashboard/api/ui/PrivacyDashboardHybridScreenParams.kt +++ b/privacy-dashboard/privacy-dashboard-api/src/main/java/com/duckduckgo/privacy/dashboard/api/ui/PrivacyDashboardHybridScreenParams.kt @@ -32,5 +32,10 @@ sealed class PrivacyDashboardHybridScreenParams : GlobalActivityStarter.Activity * Use this parameter to launch the site breakage reporting form. * @param tabId The tab ID */ - data class BrokenSiteForm(override val tabId: String) : PrivacyDashboardHybridScreenParams() + data class BrokenSiteForm(override val tabId: String, val reportFlow: BrokenSiteFormReportFlow) : PrivacyDashboardHybridScreenParams() { + enum class BrokenSiteFormReportFlow { + MENU, + PROMPT, + } + } } diff --git a/privacy-dashboard/privacy-dashboard-impl/src/main/java/com/duckduckgo/privacy/dashboard/impl/ui/PrivacyDashboardHybridActivity.kt b/privacy-dashboard/privacy-dashboard-impl/src/main/java/com/duckduckgo/privacy/dashboard/impl/ui/PrivacyDashboardHybridActivity.kt index 966abd1e39d4..c9bc0a9859b2 100644 --- a/privacy-dashboard/privacy-dashboard-impl/src/main/java/com/duckduckgo/privacy/dashboard/impl/ui/PrivacyDashboardHybridActivity.kt +++ b/privacy-dashboard/privacy-dashboard-impl/src/main/java/com/duckduckgo/privacy/dashboard/impl/ui/PrivacyDashboardHybridActivity.kt @@ -96,7 +96,13 @@ class PrivacyDashboardHybridActivity : DuckDuckGoActivity() { onSubmitBrokenSiteReport = { payload -> val reportFlow = when (params) { is PrivacyDashboardPrimaryScreen, null -> ReportFlow.DASHBOARD - is BrokenSiteForm -> ReportFlow.MENU + is BrokenSiteForm -> { + if ((params as BrokenSiteForm).reportFlow == BrokenSiteForm.BrokenSiteFormReportFlow.MENU) { + ReportFlow.MENU + } else { + ReportFlow.PROMPT + } + } } viewModel.onSubmitBrokenSiteReport(payload, reportFlow) }, From 301c7fce1e41ba5ca73bd10113860d12f2f47424 Mon Sep 17 00:00:00 2001 From: Cris Barreiro Date: Wed, 27 Nov 2024 15:39:30 +0100 Subject: [PATCH 2/3] Rename pixels according to the spec --- app/src/main/java/com/duckduckgo/app/pixels/AppPixelName.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/duckduckgo/app/pixels/AppPixelName.kt b/app/src/main/java/com/duckduckgo/app/pixels/AppPixelName.kt index f071652ff980..adc08da6c5e6 100644 --- a/app/src/main/java/com/duckduckgo/app/pixels/AppPixelName.kt +++ b/app/src/main/java/com/duckduckgo/app/pixels/AppPixelName.kt @@ -363,10 +363,10 @@ enum class AppPixelName(override val pixelName: String) : Pixel.PixelName { REFRESH_ACTION_DAILY_PIXEL("m_refresh_action_daily"), RELOAD_TWICE_WITHIN_12_SECONDS("m_reload_twice_within_12_seconds"), - RELOAD_THREE_TIMES_WITHIN_20_SECONDS("m_reload_three_times_within_20_seconds"), + RELOAD_THREE_TIMES_WITHIN_20_SECONDS("m_reload-three-times-within-20-seconds"), - SITE_NOT_WORKING_WEBSITE_BROKEN("site_not_working_website_is_broken"), - SITE_NOT_WORKING_SHOWN("site_not_working_shown"), + SITE_NOT_WORKING_WEBSITE_BROKEN("m_site-not-working_website-is-broken"), + SITE_NOT_WORKING_SHOWN("m_site-not-working_shown"), URI_LOADED("m_uri_loaded"), From 29e816472149346ab832f54134cefaf96c48fde7 Mon Sep 17 00:00:00 2001 From: Cris Barreiro Date: Thu, 28 Nov 2024 15:41:42 +0100 Subject: [PATCH 3/3] Address PR comments --- .../dashboard/impl/ui/PrivacyDashboardHybridActivity.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/privacy-dashboard/privacy-dashboard-impl/src/main/java/com/duckduckgo/privacy/dashboard/impl/ui/PrivacyDashboardHybridActivity.kt b/privacy-dashboard/privacy-dashboard-impl/src/main/java/com/duckduckgo/privacy/dashboard/impl/ui/PrivacyDashboardHybridActivity.kt index c9bc0a9859b2..f781328f44a1 100644 --- a/privacy-dashboard/privacy-dashboard-impl/src/main/java/com/duckduckgo/privacy/dashboard/impl/ui/PrivacyDashboardHybridActivity.kt +++ b/privacy-dashboard/privacy-dashboard-impl/src/main/java/com/duckduckgo/privacy/dashboard/impl/ui/PrivacyDashboardHybridActivity.kt @@ -94,13 +94,12 @@ class PrivacyDashboardHybridActivity : DuckDuckGoActivity() { onBrokenSiteClicked = { viewModel.onReportBrokenSiteSelected() }, onClose = { this@PrivacyDashboardHybridActivity.finish() }, onSubmitBrokenSiteReport = { payload -> - val reportFlow = when (params) { + val reportFlow = when (val params = params) { is PrivacyDashboardPrimaryScreen, null -> ReportFlow.DASHBOARD is BrokenSiteForm -> { - if ((params as BrokenSiteForm).reportFlow == BrokenSiteForm.BrokenSiteFormReportFlow.MENU) { - ReportFlow.MENU - } else { - ReportFlow.PROMPT + when (params.reportFlow) { + BrokenSiteForm.BrokenSiteFormReportFlow.MENU -> ReportFlow.MENU + BrokenSiteForm.BrokenSiteFormReportFlow.PROMPT -> ReportFlow.PROMPT } } }