diff --git a/apps/mobile/assets/sounds/icq.mp3 b/apps/mobile/assets/sounds/icq.mp3 new file mode 100644 index 0000000000..c279380a00 Binary files /dev/null and b/apps/mobile/assets/sounds/icq.mp3 differ diff --git a/apps/mobile/src/app/settings/index.tsx b/apps/mobile/src/app/settings/index.tsx index 0021a9b430..e7a76981c3 100644 --- a/apps/mobile/src/app/settings/index.tsx +++ b/apps/mobile/src/app/settings/index.tsx @@ -49,6 +49,7 @@ const SOUND_OPTIONS: ReadonlyArray<{ value: CompletionSound; label: string }> = { 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 0000000000..c279380a00 Binary files /dev/null and b/packages/ui/src/assets/sounds/icq.mp3 differ diff --git a/packages/ui/src/features/settings/sections/GeneralSettings.tsx b/packages/ui/src/features/settings/sections/GeneralSettings.tsx index 6fe05d71ac..d9588a0e0a 100644 --- a/packages/ui/src/features/settings/sections/GeneralSettings.tsx +++ b/packages/ui/src/features/settings/sections/GeneralSettings.tsx @@ -367,6 +367,7 @@ export function GeneralSettings() { Slide 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;