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:
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(