Commit graph

41 commits

Author SHA1 Message Date
Daniel Espino García
cff12f7182
Enable exhaustive deps in the repo (#9508)
* Enable exhaustive deps in the repo

* Add tests for the new hooks

* Update claude.md

* Remove pre-commit overwrite
2026-02-18 11:56:16 +01:00
Guillermo Vayá
97db6d1cc7
[MM-67173] to-fix: skip flaky playIncomingCallsRinging test in calls state (#9415)
* 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>
2026-01-15 10:52:05 -04:00
Claudio Costa
5030525c3e
Derive connection state for current call from RTC peer (#8878)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-16 15:08:06 -06:00
Daniel Espino García
af0a7525c8
Refactor Open Profile (#8746)
* Refactor Open Profile

* Add missing changes

* Fix tests

* Fix tests

* Address feedback
2025-05-13 17:07:13 +02:00
Elias Nahum
374f812b98
Update dependencies (#8721)
* update fastlane

* update dev dependencies

* update to eslint 9+

* update testing-library

* update react-intl

* update bottom-sheet

* update expo

* update reanimated

* upgrade msgpack

* upgrade datepicker

* upgrade react-navigation

* update sentry

* update FlasList

* update fuse.js moment-timezone node-html-parser and semver

* update gesture-handler

* update image-picker

* update react-native-keychain

* update react-native-localize

* update react-native-navigation

* update watermelonDB

* update react-native-permissions

* update react-native-safe-area-context and react-native-screens

* update react-native-share and react-native-svg

* update react-native-video and react-native-webrtc

* update @mattermost/rnutils

* update @mattermost/rnshare

* update @mattermost/hardware-keyboard

* fix isMainActivity

* update android dependencies

* fix upload file progress indicator

* fix entry update config & license

* revert to stable version of @sentry/react-native

* update react-intl again

* update moment-timezone

* upgrade @react-native-camera-roll/camera-roll

* update @react-native-clipboard/clipboard

* update @react-navigation again

* update @shopify/flash-list

* update eslint

* update expo again

* update html-entities

* update mime-db

* update react-native-permissions

* Revert "update react-intl again"

This reverts commit e8e6d5a60dfa56b82b810cbbd7cdffec7697ffc7.

* Revert "update react-intl"

This reverts commit c77f329bb38910aeeba03869b72d77a8b0e00ba1.

* update react-native-keychain

* update and patch react-intl

* mend

* feedback during review 1
2025-04-07 09:30:06 +08:00
Daniel Espino García
85e01a7fb6
Add model mocks to TestHelper (#8715)
* Add model mocks to TestHelper

* Address feedback
2025-03-28 09:40:08 +01:00
Claudio Costa
44bce6c319
[MM-59773] Add unit tests for Calls (#8480)
* 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
2025-01-21 12:02:03 -06:00
Christopher Poile
92bdb2847b
[MM-57486] [MM-58008] Calls: Mobile ringing for incoming calls (#7984)
* 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>
2024-07-03 10:22:46 -04:00
Christopher Poile
1f2a71c499
[MM-58581] Calls: End call confirmations (#8004)
* end call confirmations

* i18n

* remove unneeded asyncs

* better alert for android
2024-06-18 10:02:24 -04:00
Christopher Poile
c93e16218a
[MM-57250] Calls: Provide feedback after user clicks Start call (#7967)
* 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
2024-06-06 15:39:15 -04:00
Daniel Espino García
9d1030a445
Push react native to 0.73.6 (#7863)
* Bump react native to 0.73.6

* iOS changes

* Fix gallery

* Fix test

* Add missing patch

* Unify react native navigation patch

* Update the rest of libraries

* iOS updates

* Update mattermost libraries

* Fix tests and final bumps

* iOS podfile update

* Update android locks

* Revert webrtc update because it was messing with the tests

* Update podfile for webrtc
2024-04-22 12:44:39 +02:00
Christopher Poile
4e68662899
[MM-57019] Calls: Live captions support for mobile (#7854)
* 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>
2024-03-20 09:10:05 -04:00
Christopher Poile
c9fe72460b
MM-54865 - Calls: Multisession support (#7647)
* add multisession support for calls mobile

* ensure backwards compatibility

* remove extra line
2023-11-16 14:30:49 -05:00
Christopher Poile
83f81985cd
MM-53486 - Incoming calls notification banner (#7477)
* upgrade calls-common

* incoming call notifications

* tests

* i18n

* PR comments

* PR comments

* PR comment
2023-08-30 13:58:54 -04:00
Christopher Poile
dbd943ab8d
MM-52949 - Calls: Blank screen after ending a call and exiting its thread (#7380)
* remove thread and call screen

* simplify how we remove the call screen

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-06-12 08:55:48 -04:00
Christopher Poile
c90ace706c
MM-49970 - Calls: Call quality status banner (#7304)
* 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
2023-05-04 15:28:15 -04:00
Christopher Poile
c1430757b8
MM-51776 - Calls: Audio device selections, & fix bluetooth (#7286)
* 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
2023-04-27 11:44:14 -04:00
Christopher Poile
e6254885ee
MM-43737 - Calls: Follow call thread on user joining a call (#7293)
* 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.
2023-04-26 15:20:07 -04:00
Elias Nahum
784b05fe97
Upgrade Dependencies (#7299)
* upgrade reanimated

* update devDependencies

* upgrade react-intl

* update react-native and some dependencies

* update react-native-permissions

* update RN

* use Share sheet for Report a problem

* update Sentry

* remove step to downloadWebRTC

* update detox deps

* feedback review
2023-04-21 12:16:54 -04:00
Christopher Poile
c0cb14e927
MM-50010 - Share common calls code between web and mobile (#7211)
* 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
2023-03-21 09:18:45 -04:00
Christopher Poile
c03758f549
clear screensharing state if current screensharer leaves call (#7213) 2023-03-20 10:02:58 -03:00
Christopher Poile
bdaba41df1
MM-51226 - Calls: Emojis not showing in reaction stream (#7198) 2023-03-10 14:07:34 -05:00
Christopher Poile
03fe46f229
MM-48605: Calls - Fix for start time in join call banner is incorrect (#7095)
* "fix" the wrong start time

* cleanup unused field
2023-02-08 09:25:41 -05:00
Claudio Costa
ab50164d34
[MM-49996] Add /call recording slash command (#7062)
* Add  slash command

* Fix alert

* Implement alert for recording errors

* Default locked
2023-02-06 21:14:22 -06:00
Elias Nahum
7aa5bd0611
Update Dependencies and bug fixes (#7000)
* update dependencies

* update dependencies

* feedback review

* update @mattermost/react-native-turbo-mailer
2023-01-24 09:14:23 +02:00
Christopher Poile
eae0a15b16
MM-48753 - Calls: GA requirements (#6814)
* calls GA requirements

* clarifying comments; simplify ephemeral message (move it to the server)
2022-12-02 11:34:37 -05:00
Christopher Poile
0f8798ca55
MM-48611 - Calls: Calls recording host controls and UI (#6787)
* 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
2022-11-30 11:20:00 -05:00
Christopher Poile
6660c134f5
MM-48072 - Calls: Implement recording permissions and UI for participants (#6784)
* implement recording permissions and UI

* fix bug when refusing recording while in call thread from call screen

* merge conflicts
2022-11-30 10:15:20 -05:00
Christopher Poile
a300cc651e
MM-48286 - Calls: Emoji reactions, display incoming reactions (#6780) 2022-11-25 12:21:45 +01:00
Christopher Poile
7038a17ef4
MM-48000: Call started in another client creates a CurrentCall on mobile client (#6708)
* 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
2022-11-08 14:45:10 -05:00
Christopher Poile
8374d7e87f
MM-47004 - Calls: Client-side errors for microphone permissions (#6669)
* 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
2022-11-08 10:52:52 -05:00
Christopher Poile
7f5dc3c718
MM-47763 - Calls: "who is speaking" state (#6721)
* move voiceOn to the currentCall state

* simplify

* prefer no inline fns
2022-11-07 17:11:40 -05:00
Christopher Poile
e38e547ce2
MM-45972 - Calls: test ws messages when app is in background (#6720)
* update current call on reconnect

* move loadConfigAndCalls above deferredAppEntryActions
2022-11-07 16:29:59 -05:00
Christopher Poile
681b6b0b0f
MM-47003 - Calls - Fix for: peer connection timeout (#6658)
* force negotiation

* fix message bug

* remove forced negotiation
2022-10-03 13:12:02 -04:00
Christopher Poile
d30b97ba99
MM-45747 - Cloud freemium limits & Max participants limits (#6578) 2022-08-20 08:57:14 -04:00
Christopher Poile
6e3b2c2bd9
fix reconnect state; correct new channel state (#6574) 2022-08-12 16:02:04 -04:00
Christopher Poile
59c03b7b36
move currentCall creation into userJoined event (#6571) 2022-08-12 09:50:19 -04:00
Claudio Costa
c71b28a6a8
[MM-45749] Support for advanced ICE server configs and TURN credentials (#6544)
* Support for advanced ICE server configs and TURN credentials

* PR comments

* merge conflicts

Co-authored-by: Christopher Poile <cpoile@gmail.com>
2022-08-10 12:33:02 -04:00
Christopher Poile
f61ea842af
MM-45746 - Handle call_end ws event and '/call end' slash command (#6542) 2022-08-05 07:39:10 -04:00
Christopher Poile
17dbfdcb99
MM-45745 - Calls channel info screen options (#6502)
* implement calls_channel_info; joinCall refactoring

* i18n

* Start/Join call as top button; movable copy channel link button

* MM-45971 - Calls v2 PR comments (#6514)

* don't clobber config if api req failed

* combine two loops into one

* update dependencies

* fetch user model on user connected

* fix state exports; spacing; unneeded field in ServerConfig type

* remove useless return in websocket handler

* constant sorting

* move microphone permission request to leave_and_join_alert

* ServerConfig -> ServerCallsConfig

* console.log -> logError

* ternary -> Platform.select

* merge conflicts

* add destructive options to OptionBox; require DismissChannelInfo fn

* add CopyLink option to quick actions list

* showSnackBar on link copied

* adjust quick_options_height

* Screens.Call

* fix CopyLink spacing

* fix observeUsersById, observe needed columns; fix JoinCallBanner mount

* optimized observables; bug fixes

* remove unneeded `return null`

* PR comments

* readable-stream -> 3.6.0

* merge conflicts

* PR comments
2022-07-29 11:10:32 -04:00
Christopher Poile
5bb240dec8
MM-43300: Calls v2 first cut (#6475)
* Android and iOS requirements

* external types

* babel config for calls, package.json for calls dependencies

* state in rxJS; tests

* actions, client/rest, websocket events, constants

* webrtc connection logic

* calls components / screens

* handle peer destroyed gracefully

* PR comments

* remove ViewPropTypes from mocks; no need to ignore error in LogBox

* calls.d.ts -> calls.ts; i18-extract

* @app/products/calls -> @calls

* PR comments; test cleanup

* Revert "remove ViewPropTypes from mocks; no need to ignore error in LogBox"

This reverts commit f9bd171a544de9c02da8387455f904b3840fc5dc.

* working on typing withServerUrl

* added exportedForInternalUse instead of commenting "internal export"

* better switchToThread in call_screen

* i18n

* typed withServerUrl
2022-07-22 15:57:12 -04:00