feature request: in-app notification sound

Aperta
#7,192 2 commenti 2 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@psrsingh ci sta già lavorando.

Dal 16/5/2026.

  • #7327 di @psrsingh — chiusa senza merge

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
react-native, typescript
Ambito
mobile

Direzione di ricerca

Inizia tracciando il modo in cui le impostazioni delle stanze forniscono audioNotificationValue tramite rooms.saveNotification e dove vengono attivate le notifiche in-app nel client mobile. Esamina le risorse audio esistenti e il flusso delle notifiche prima di decidere come si integrano preset, download locali, selezione e riproduzione. Il lavoro è completato quando il suono selezionato per una stanza viene riprodotto per notifiche in-app valide, con un fallback incluso quando necessario.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

🎉 feature type: feature
Feature Description

Currently, the mobile application allows users to select a notification sound (audioNotificationValue) which is successfully saved on the backend via rooms.saveNotification . However, this preference is not respected by the mobile client when in-app notifications are triggered.

This feature proposes enabling the mobile app to play the selected notification sound for in-app messages, ensuring that user preferences are fully applied.

The implementation should:

  • Read the audioNotificationValue from room settings
  • Map it to corresponding sound asset
  • Trigger playback when a valid notification event occurs
Motivation and Use Case

Why this matters

Users expect their notification settings to actually affect behavior. Right now:

  • Changing notification sound has no effect in the mobile app
  • This creates confusion and inconsistency between backend settings and user experience

Use cases

  • A user sets different sounds for different rooms → helps identify message source instantly
  • A user prefers subtle vs loud sounds → improves usability in different environments
  • Teams relying on notifications → need quick auditory distinction

Impact

  • Fixes a broken UX expectation
  • Aligns mobile behavior with backend/web capabilities
  • Improves personalization and usability
Implementation Ideas
  1. Fetch Presets — Backend returns a list of preset sound names (e.g. ["chime", "bell", "ping"]). Each name maps to a downloadable URL, either constructed on the client or returned directly by the API.

  2. Download on Demand — Each preset is shown with a Download button. On tap, the file is downloaded to documentDirectory/notification_sounds/<name>.mp3 via expo-file-system. Download is skipped if the file already exists locally.

  3. UI States — Each preset tracks its own state: not downloaded → downloading → downloaded → selected. User can also preview before selecting.

  4. Private Storage — Files are saved to documentDirectory, which is sandboxed to the app on both iOS and Android. Not visible to other apps or the device media library.

  5. Persist Selection — Active sound preference is saved to AsyncStorage or the existing room settings store as the local file path.

  6. Playback — On in-app notification trigger, resolve the saved path and play via expo-av. Falls back to a bundled default if the file is missing or not yet downloaded.

Is this feature available in the API or web version?

Available in Web Version

Rocket.Chat Server Version

No response

Rocket.Chat App Version

No response

Device Name

No response

OS Version

No response

Additional Context

No response

Lingua principale
TypeScript
Stelle
2.4k
Fork
1.5k
Merge medio
1g 15h
PR unite (30g)
29

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di RocketChat/Rocket.Chat.ReactNative

Tutte le issue di RocketChat/Rocket.Chat.ReactNative

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.