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
Claudio Costa
3887ce30a8
Remove long deprecated Calls code ( #8747 )
2025-05-15 18:20:45 +02:00
Claudio Costa
7192d21134
[MM-63889] Calls: Add backend version check to enable DC locking ( #8799 )
...
* Calls: Add backend version check to enable DC locking
* Update calls-common
2025-04-28 09:04:49 -06: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
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
Claudio Costa
fa7e7ef44d
Update calls-common ( #8255 )
...
* Bump rtc monitor interval to 10s
* Update calls-common
2024-10-11 13:47:49 -06:00
Claudio Costa
e693431dec
[MM-45894] Calls: support for signaling media tracks using data channels ( #8246 )
...
* Replace pako with fflate
* Allow signaling through data channel
* Update calls-common
2024-10-09 16:33:33 -06:00
Claudio Costa
13ca346155
[MM-60291] Fix rendering of live captions ( #8185 )
...
* Load jobs state from call state
* Fix rendering of live captions overlay
2024-08-28 07:28:12 -06:00
Claudio Costa
3656bff4bd
[MM-57698] Implement client ICE candidate pairs metric ( #8051 )
...
* Implement client ICE candidate pairs metric
* Update calls package
2024-07-26 10:14:33 +02:00
Claudio Costa
7682c5ccce
[MM-52657] AV1 support ( #8037 )
...
* AV1 support
* Guard functionality behind config flag
* Update calls package
* Fix default config
* fix
2024-07-26 10:01:33 +02: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
7fbd2e52e2
[MM-58129] Calls: Host controls remove participant, view profile ( #7938 )
...
* host remove command, host removed feedback
* add view profile control
* i18n; dismissBottomSheet later
* PR comments
* remove confusing setPreviousCall(null)
* our own separator, bit more space for Android
* no need for previousCall due to changes on server
* move host removed alert to an error
* channel_id is not send via the msg.broadcast
* channel_id is still sent via the msg.broadcast
2024-05-10 16:43:35 -04:00
Christopher Poile
2eb8adb3f6
[MM-57958] Calls: Host controls: stop screenshare, mute, lower hand ( #7929 )
...
* add muteSession & stopScreenshare controls; obey mute host ctrl
* lower hand host control; obey lower hand ws msg
* no need to await host api call
2024-05-06 15:14:40 -04: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
Claudio Costa
84858e4450
[MM-46339] Handle user leaving channel with active call ( #7754 )
...
* Handle user leaving channel with active call
* Remove debug log
2024-01-15 08:11:25 -06:00
Elias Nahum
edef4ec4a3
Update libraries and dependencies ( #7678 )
...
* update js dependencies
* update react-native libraries
* update watermelonDB
* update RN to 0.72.7
* update fastlane
* fix remove_markdown/at_mention import
* update mattermost libraries
* update fastlane deps
* remove haptic-feedback patch
* update okhttp to 4.12.0 and patch netinfo to accurately identify VPN connections
* create ImaegStyles intersection type
2023-11-25 07:46:13 +08:00
Christopher Poile
daa2b1a497
MM-54351 - Calls: Improve logging ( #7671 )
2023-11-20 20:28:38 -05: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
1fb01dfcdc
MM-54553 - Calls: Enable microphone input in background (Android) ( #7585 )
...
* Add foreground service for Android; add voip UIBackgroundMode for iOS
* remove iOS change for this PR
* create foreground notification channel once at startup
2023-10-13 14:45:14 -04:00
Christopher Poile
0ec2b09fd5
MM-54117 - Calls: Support wiredHeadsets; generalize panel_item ( #7545 )
...
* generalize panel_item; support wiredHeadsets
* i18n
2023-09-25 08:45:14 -04: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
Claudio Costa
06037ab6da
[MM-53994] Calls: fix potential websocket client leak ( #7513 )
...
* Calls: fix potential websocket client leak
* Improve debug log
2023-08-24 14:29:50 -06:00
Christopher Poile
81dd44ae09
MM-52653 - Calls: Attach call to existing thread on /call start ( #7338 )
...
* send rootId when starting a call from a thread
* allow join to start calls in threads and with thread titles
2023-06-15 10:08:50 -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
Daniel Espino García
86658edc30
Refactor errors around the app ( #7306 )
...
* Refactor errors around the app
* Fix recursive function
* Fix tests
2023-05-03 13:08:55 +02: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
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
Claudio Costa
ac3bd14891
[MM-50806] Calls: fix crash on joining call ( #7159 )
...
* Calls: fix crash on joining call
* update Podfile.lock
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2023-02-24 13:25:25 +02:00
Christopher Poile
a44074247e
MM-46312 - Calls: Replace simple-peer with RTCPeer; use up-to-date upstream react-native-webrtc ( #6898 )
...
* move to latest react-native-webrtc release
* make this version of rtcpeer as close as possible to Call's version
* remove need for destroyCb
* upgrade webrtc
* continue merge
* upgrade webrtc
* new linting rules
2023-01-26 14:06:05 -05:00
Christopher Poile
9a89259e96
MM-48836 - Calls: handle slash commands ( #6980 )
2023-01-23 20:08:33 +02:00
Christopher Poile
e140a12b6c
MM-46999 - Calls: Start call in speaker mode ( #6979 )
2023-01-23 09:39:09 -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
89b94d0188
MM-48287 - Calls: Select and send emoji reactions ( #6781 )
...
* add emoji reactions in mobile
* use StyleSheet.create
* PR comment
* prefer no inline functions
* Revert "prefer no inline functions"
This reverts commit b3c4627daca631e50bccf41b4a9e538f902c82ee.
2022-11-25 12:17:06 -05:00
Christopher Poile
a300cc651e
MM-48286 - Calls: Emoji reactions, display incoming reactions ( #6780 )
2022-11-25 12:21:45 +01:00
Daniel Espino García
5fae120826
Add support for review app ( #6772 )
...
* Add app review
* Use overlay instead of modal
* Add fixes for ios
* i18n-extract
* Add to milliseconds function
* Address review feedback
* Add try to queryGlobalValue
* added app review illustration
* add feedback illustration
* Add animations and feedback bot message
* Restrict reviews to build environment variable
* Fix bug with "dont ask anymore"
* Add check for only supported servers
* Add missing change
* Use for await
Co-authored-by: Daniel Espino <danielespino@MacBook-Pro-de-Daniel.local>
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
2022-11-24 18:52:15 +01:00
Daniel Espino García
1aa4188f8e
Move config to its own database table ( #6744 )
...
* Move config to its own database table
* Address feedback
* Fix test
* Revert minimum version related changes
2022-11-11 21:20:42 +04: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
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
38b68733d0
MM-45755 - Calls: Unmute automatically in DM or GM channels ( #6627 )
...
* unmute in dm or gm channels
* refactor leave_and_join
* waitForReady -> waitForPeerConnection; 10ms -> 200ms check frequency
2022-09-08 13:40:55 -04:00
Christopher Poile
c4e93ce2a5
Fix for call screen popping errors ( #6569 )
2022-08-11 14:03:25 -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
Claudio Costa
a2a3f4940d
Calls: WebSocket reconnection support ( #6543 )
...
Co-authored-by: Christopher Poile <cpoile@gmail.com>
2022-08-10 11:12:39 -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