feature request: in-app notification sound

Đang mở
#7,192 2 bình luận 2 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@psrsingh đang làm issue này rồi.

Từ ngày 16/5/2026.

  • #7327 của @psrsingh — đã đóng, không merge

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
48/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
react-native, typescript
Lĩnh vực
mobile

Hướng nghiên cứu

Bắt đầu bằng cách lần theo cách cài đặt phòng cung cấp audioNotificationValue từ rooms.saveNotification và vị trí các thông báo trong ứng dụng được kích hoạt trong client di động. Xem lại các sound asset hiện có và luồng thông báo trước khi quyết định cách các preset, bản tải xuống cục bộ, việc chọn và phát được kết hợp với nhau. Được xem là hoàn thành khi âm thanh phòng đã chọn được phát cho các thông báo trong ứng dụng hợp lệ, với fallback được tích hợp khi cần.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

🎉 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

Ngôn ngữ chính
TypeScript
Star
2.4k
Fork
1.5k
Merge trung bình
1 ngày 15 giờ
Pull request đã merge (30 ngày)
29

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của RocketChat/Rocket.Chat.ReactNative

Tất cả issue của RocketChat/Rocket.Chat.ReactNative

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.