tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit b45546efa9944758bef621dd675e1c12319b4cd6
parent e70e0aad471b32c62503c2b71315e11e1c705124
Author: gela <gela.malekpour@gmail.com>
Date:   Fri,  3 Oct 2025 21:02:52 +0000

Bug 1991998 - Add telemetry to snackbar and undo button for removing downloads [part 1] r=android-reviewers,boek

Differential Revision: https://phabricator.services.mozilla.com/D267081

Diffstat:
Mmobile/android/fenix/app/metrics.yaml | 24++++++++++++++++++++++++
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/downloads/listscreen/middleware/DownloadTelemetryMiddleware.kt | 8++++++++
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/downloads/listscreen/middleware/DownloadTelemetryMiddlewareTest.kt | 28++++++++++++++++++++++++++++
3 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/mobile/android/fenix/app/metrics.yaml b/mobile/android/fenix/app/metrics.yaml @@ -14147,6 +14147,30 @@ downloads: notification_emails: - android-probes@mozilla.com expires: never + delete_snackbar_shown: + type: event + description: A delete snackbar was shown after one or more downloads were deleted. + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1991998 + data_reviews: + - https://phabricator.services.mozilla.com/D267081 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + expires: never + delete_snackbar_undo_clicked: + type: event + description: The user clicked the undo button in a downloads delete snackbar. + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1991998 + data_reviews: + - https://phabricator.services.mozilla.com/D267081 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + expires: never client_association: uid: diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/downloads/listscreen/middleware/DownloadTelemetryMiddleware.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/downloads/listscreen/middleware/DownloadTelemetryMiddleware.kt @@ -60,6 +60,14 @@ class DownloadTelemetryMiddleware : Middleware<DownloadUIState, DownloadUIAction Downloads.retryDownload.record(NoExtras()) } + is DownloadUIAction.AddPendingDeletionSet -> { + Downloads.deleteSnackbarShown.record(NoExtras()) + } + + is DownloadUIAction.UndoPendingDeletion -> { + Downloads.deleteSnackbarUndoClicked.record(NoExtras()) + } + else -> {} } } diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/downloads/listscreen/middleware/DownloadTelemetryMiddlewareTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/downloads/listscreen/middleware/DownloadTelemetryMiddlewareTest.kt @@ -143,6 +143,34 @@ class DownloadTelemetryMiddlewareTest { assertEquals("cancel_download", snapshot.single().name) } + @Test + fun `WHEN the user adds a pending deletion set THEN record delete snackbar shown telemetry`() { + val store = createStore() + + assertNull(Downloads.deleteSnackbarShown.testGetValue()) + + store.dispatch(DownloadUIAction.AddPendingDeletionSet(setOf("id"))) + + assertNotNull(Downloads.deleteSnackbarShown.testGetValue()) + val snapshot = Downloads.deleteSnackbarShown.testGetValue()!! + assertEquals(1, snapshot.size) + assertEquals("delete_snackbar_shown", snapshot.single().name) + } + + @Test + fun `WHEN the user undoes a pending deletion THEN record delete snackbar undo clicked telemetry`() { + val store = createStore() + + assertNull(Downloads.deleteSnackbarUndoClicked.testGetValue()) + + store.dispatch(DownloadUIAction.UndoPendingDeletion) + + assertNotNull(Downloads.deleteSnackbarUndoClicked.testGetValue()) + val snapshot = Downloads.deleteSnackbarUndoClicked.testGetValue()!! + assertEquals(1, snapshot.size) + assertEquals("delete_snackbar_undo_clicked", snapshot.single().name) + } + private fun createStore( downloadUIState: DownloadUIState = DownloadUIState.INITIAL, ) = DownloadUIStore(