From 901d2878eb0cb6077f7f51f3bfe37452d74f5612 Mon Sep 17 00:00:00 2001 From: Benjamin Knofe-Vider Date: Tue, 16 Jun 2026 14:40:43 +0200 Subject: [PATCH] feat: add ICQ completion sound Adds the classic ICQ "Uh-oh!" new-message sound as a selectable completion sound on both desktop/web and mobile, following the existing sound pattern. Generated-By: PostHog Code Task-Id: 245d3f95-a569-4f32-967d-f9742e439044 --- apps/mobile/assets/sounds/icq.mp3 | Bin 0 -> 8359 bytes apps/mobile/src/app/settings/index.tsx | 1 + .../preferences/stores/preferencesStore.ts | 3 ++- apps/mobile/src/features/tasks/utils/sounds.ts | 3 +++ packages/ui/src/assets/sounds/icq.mp3 | Bin 0 -> 8359 bytes .../settings/sections/GeneralSettings.tsx | 1 + .../ui/src/features/settings/settingsStore.ts | 3 ++- packages/ui/src/utils/sounds.ts | 2 ++ 8 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 apps/mobile/assets/sounds/icq.mp3 create mode 100644 packages/ui/src/assets/sounds/icq.mp3 diff --git a/apps/mobile/assets/sounds/icq.mp3 b/apps/mobile/assets/sounds/icq.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c279380a0000b50a1e688111910208c29363ecd0 GIT binary patch literal 8359 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 = { value: "shoot", label: "Shoot" }, { value: "slide", label: "Slide" }, { value: "drop", label: "Drop" }, + { value: "icq", label: "ICQ" }, ]; const VOLUME_OPTIONS = [ diff --git a/apps/mobile/src/features/preferences/stores/preferencesStore.ts b/apps/mobile/src/features/preferences/stores/preferencesStore.ts index 5873c02546..8065640c97 100644 --- a/apps/mobile/src/features/preferences/stores/preferencesStore.ts +++ b/apps/mobile/src/features/preferences/stores/preferencesStore.ts @@ -35,7 +35,8 @@ export type CompletionSound = | "ring" | "shoot" | "slide" - | "drop"; + | "drop" + | "icq"; export type InitialTaskMode = "plan" | "last_used"; diff --git a/apps/mobile/src/features/tasks/utils/sounds.ts b/apps/mobile/src/features/tasks/utils/sounds.ts index 2bf901bc07..0817354bb0 100644 --- a/apps/mobile/src/features/tasks/utils/sounds.ts +++ b/apps/mobile/src/features/tasks/utils/sounds.ts @@ -7,6 +7,8 @@ import { // eslint-disable-next-line @typescript-eslint/no-require-imports const dropAsset = require("../../../../assets/sounds/drop.mp3"); // eslint-disable-next-line @typescript-eslint/no-require-imports +const icqAsset = require("../../../../assets/sounds/icq.mp3"); +// eslint-disable-next-line @typescript-eslint/no-require-imports const knockAsset = require("../../../../assets/sounds/knock.mp3"); // eslint-disable-next-line @typescript-eslint/no-require-imports const meepAsset = require("../../../../assets/sounds/meep.mp3"); @@ -27,6 +29,7 @@ const SOUND_ASSETS: Record = { shoot: shootAsset, slide: slideAsset, drop: dropAsset, + icq: icqAsset, }; let audioModeConfigured = false; diff --git a/packages/ui/src/assets/sounds/icq.mp3 b/packages/ui/src/assets/sounds/icq.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c279380a0000b50a1e688111910208c29363ecd0 GIT binary patch literal 8359 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 Switch Wilhelm scream + ICQ {completionSound !== "none" && ( diff --git a/packages/ui/src/features/settings/settingsStore.ts b/packages/ui/src/features/settings/settingsStore.ts index ba3a8a1064..fd5578094c 100644 --- a/packages/ui/src/features/settings/settingsStore.ts +++ b/packages/ui/src/features/settings/settingsStore.ts @@ -39,7 +39,8 @@ export type CompletionSound = | "shoot" | "slide" | "switch" - | "wilhelm"; + | "wilhelm" + | "icq"; export type TerminalFont = | "berkeley-mono" diff --git a/packages/ui/src/utils/sounds.ts b/packages/ui/src/utils/sounds.ts index ea17f2199a..ae61f978bb 100644 --- a/packages/ui/src/utils/sounds.ts +++ b/packages/ui/src/utils/sounds.ts @@ -3,6 +3,7 @@ import bubblesUrl from "../assets/sounds/bubbles.mp3"; import daniloUrl from "../assets/sounds/danilo.mp3"; import dropUrl from "../assets/sounds/drop.mp3"; import guitarUrl from "../assets/sounds/guitar.mp3"; +import icqUrl from "../assets/sounds/icq.mp3"; import knockUrl from "../assets/sounds/knock.mp3"; import meepUrl from "../assets/sounds/meep.mp3"; import meepSmolUrl from "../assets/sounds/meep-smol.mp3"; @@ -27,6 +28,7 @@ const SOUND_URLS: Record, string> = { slide: slideUrl, switch: switchUrl, wilhelm: wilhelmUrl, + icq: icqUrl, }; let currentAudio: HTMLAudioElement | null = null;