* fix: skip flaky playIncomingCallsRinging test in calls state
Skip the playIncomingCallsRinging test that has been causing
intermittent failures. Added TODO comment to track that the
root cause still needs to be identified.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* add link to ticket that should fix the test
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Unit tests for app/products/calls/observers
* Unit tests for app/products/calls/actions
* Unit tests for app/products/calls/client
* Unit tests for app/products/calls/connection
* Unit tests for app/products/calls/connection/websocket_event_handlers.ts
* Unit tests for app/products/calls/connection/connection.ts
* Unit tests for app/products/calls/state/actions.ts
* Unit tests for app/products/calls/utils.ts
* Unit tests for app/products/calls/alerts.ts
* Unit tests for app/products/calls/calls_manager.ts
* Unit tests for app/products/calls/hooks.ts
* Factor out force logout error
* Reduce use of 'as jest.Mock'
* Add test case
* Use constants
* Better naming
* Fix types after merge
* Fix test
* notification ringing, settings screen, native code patch, ringing mp3s
* i18n
* play preview on first press
* prevent playing from background (only affects Android) to match iOS beh
* stop ringing/vibration on entering background
* ring when coming back from background and new incoming call is present
* no push notification sound when it's a call; improve ringing
* move sounds to asset folder; copy on postinstall for android bundling
* make Ringtone type a string enum
* make Android ring async + await ring and stop; changes from PR comments
* missing fields after merge
* release lock on an exception
* cancel sample ringing when turning notifications off
* copy sound files for android build
* typo
* update snapshots
* testing if the problem is copying the mp3 files
* fix android mp3 assets when building for non-release
* add sounds to .gitignore
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* make joinCall async; adding loading spinner to join/start button
* always close channelInfo
* i18n
* change how we compute active text
* use isPreferred for leave & join call button
* add joiningChannelId to calls state to track when joining a call
* mobile support for live captions
* add the 'Live captions turned on' ephemeral notice
* PR comments
* message should be translatable
* run i18n-extract
* call_recording_state -> call_job_state; ccAvailable is now dynamic
* backwards compatibility with pre calls v0.26.0
* correct mobile version in deprecation comments
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* use mean opinion score detection; add call quality alert bar; tests
* rename MessageBar's file to message_bar
* i18n
* use mosThreshold from calls-common; upgrade calls-common
* use callsBg for text and icon
* ask for bluetooth permissions on Android
* new "switch audio device button" for Android
* i18n strings
* split audio_device_button into platform-specific files; PR comments
* earpiece -> phone
* add comments to clarify speakerphone logic
* update snapshots
* add new compass-icons; use tablet and bluetooth icons; add tablet mode
* fix lint
* follow threads on call join
* treat custom_calls posts as the start of threads
* make thread follow logic robust to race conditions; tests
* only follow thread when CRT is enabled
* Revert "only follow thread when CRT is enabled"
This reverts commit 4e52a2619b35db3d2104f0b6ba5ad8be23f7b224.
* use calls/common rtcpeer; @calls -> @mmcalls
* gitpkg -> standalone github calls-common package
* use new mattermost/calls-common repo; add types to WebSocketMessages
* mmcalls/common -> mattermost/calls; use a version tag
* implement recording permissions and UI
* fix bug when refusing recording while in call thread from call screen
* host controls and UI for recording
* button tweak, and fixing a i18n string issue
* PR comment
* backwards compat & don't show rec controls if not enabled
* move creating/leaving currentCall into the connection; refactoring
* refactoring; two-stage connecting so existing screen stream can be saved
* better separation of concerns
* change warning to debug
* use getServerDatabase instead of getActiveServerDatabase
* fix bugs
* PR comments
* call error bar for microphone permissions; global permissions state
* i18n
* refactor permissionErrorBar component, PR comments
* add module dependency's mocks for tests
* fix error bar height
* change permissions error text
* working on 46999 redo audio handling -- will revert
* Revert "working on 46999 redo audio handling -- will revert"
This reverts commit 87bafc452c6ad6e1d7ae79ce78a0f2b461c2f150.
* only get voice track when we have mic permissions
* Android: enable mic when permissions are granted