Commit graph

23 commits

Author SHA1 Message Date
Claudio Costa
9c2b5133ab
[MM-43838] Calls: WebSocket reconnection support (#6497)
* WebSocket reconnection support

* Simplify

* Reposition code

* Return early if already closed
2022-07-25 18:19:55 +02:00
Christopher Poile
c1ce9260b7
handle peer destroyed error gracefully (#6479) 2022-07-21 10:49:10 -04:00
Claudio Costa
ed6daffa0c
[MM-45001] Add support for generating short-lived TURN credentials (#6404)
* Generate TURN credentials if needed

* Reduce calls to getState
2022-06-30 10:06:21 +02:00
Claudio Costa
5b0b1e9af8
Add support for using plugin when MM is served under a subpath (#6403) 2022-06-20 17:07:06 +02:00
Claudio Costa
ee38dd39ea
Add support for ICEServersConfigs (#6371) 2022-06-16 14:15:17 +02:00
Claudio Costa
bb655c8c60
[MM-44651] Implement MaxCallParticipants config setting (#6334)
* Implement MaxCallParticipants config setting

* Add test
2022-06-03 08:18:12 +02:00
Claudio Costa
23509cbb83
[MM-44155] Handle call_end event (#6316)
* Handle call_end event

* exit call screen on call end; /call end for mobile

* handle permissions before sending cmd to server; handle error

Co-authored-by: Christopher Poile <cpoile@gmail.com>
2022-06-02 10:59:11 +02:00
Christopher Poile
c74cd14713
MM-44546 -- Calls: Cloud freemium limits (#6318)
* remove API call to config/pass iceServers; leave call on ws error

* cloud limits

* fix makeStyleSheetFromTheme

* revert podfile & package-lock diffs

* update snapshots

* edge case of cloud server on calls 0.5.3
2022-06-01 19:21:10 -04:00
Christopher Poile
67c65156a7
MM-43904 - Fix: Calls batch actions (#6229)
* fix batch actions

* tests
2022-05-05 12:33:23 -04:00
Christopher Poile
912287fbe0
MM-43904 - Fix: Calls: "Access to route for non-existent plugin" error log (#6210)
* add isCallsPluginEnabled; refactor Calls.PluginId

* revert Podfile.lock changes
2022-05-03 15:02:58 -04:00
Christopher Poile
3739d3d2f8
MM-42320: Calls - Fix for: iOS loses calls audio after leaving 1st call and entering next (#6143)
* allow 2nd+ calls to connect to iOS microphone/audio

* peerconnection callback & index.d.ts, webrtc and incallmanager deps
2022-04-11 12:03:44 -04:00
Elias Nahum
6936d2bca8
Fix floating container using a hook inside the styles (#6146) 2022-04-08 12:42:50 -04:00
Christopher Poile
368584a1b7
MM-42320: Calls - small fix for microphone permissions (#6134)
* small fix for microphone permissions

* use standard permissions check/denied popups

* tests and i18n

* permission wording

* 18n
2022-04-06 14:51:40 -04:00
Christopher Poile
10479d1d35
MM-42821 - Calls mobile: Default calls doesn't work on mobile (#6107)
* use call config when checking for Enable/Disable and StartCall permissions

* store config, refresh after 20 minutes

* load config on startup

* batch load calls and load config on startup/reconnect
2022-04-01 10:17:48 -04:00
Christopher Poile
2a56b6810b
MM-42790 MM-42791 - UI Polish (#6103)
* polish UI

* update snapshots

* add the '(you)' to the end of the user's own name
2022-03-30 17:45:53 -04:00
Christopher Poile
734675978d
MM-42623 - Calls: remove Feature Flag (#6091)
* removed CallsMobile feature flag; added server version check

* added on-demand check and Alert for Calls enabled

* merge with master

* fix deps, typo, test snapshots
2022-03-29 10:54:29 -04:00
Christopher Poile
e086b19d1e
MM-42360 - Calls Mobile: Implement raise hand (#6069)
* implement raise hand

* added tests; updated tests

* spread syntax for combined styles -> array syntax

* add useCallbacks, update test snapshots

* fix dep array

* fix dep array

* sort participants based on muted and raisedHand

* sort participants by name, then by state

* fix screen sharing message

* fix test snapshots

* add monitor indicator; tweak ui

* linting
2022-03-25 15:08:28 -04:00
Christopher Poile
3f73514b98
MM-42403 - Calls Mobile: Join Call banner is too low on iOS (#6055)
* use device-specific measurements

* tests
2022-03-16 08:51:09 -03:00
Christopher Poile
e8e7618497
do not erase joined state on receiving calls data (#6039) 2022-03-11 09:07:06 -03:00
Christopher Poile
0e08d3823f
[MM-42332] Calls: Add speakerphone button (#6037)
* add speakerphone button, set speakerphone mode in redux/InCallManager

* move speakerphone activation into the actions file

* rename style

* revert local project changes

* tests
2022-03-09 08:49:15 -05:00
Elias Nahum
5ea470a235
V1 dependencies and bump to RN 0.67.2 (#5908)
* update dependencies

* eslint fixes

* Upgrade to RN 67

* update other deps

* Update to RN 0.67.2

* fix Android build (mmkv)

* Fix crash when root message is deleted from the thread screen

* Fix gif emoji playing at high speed on iOS ProMotion capable devices
2022-02-02 15:28:57 -03:00
Claudio Costa
2267f0a408
Update Calls (#5875)
* Fix adding tracks

* Use server websocket handler to do signaling

* Start using react-native-webrtc fork to fix track issues

* Update deps lock files

* Use ICE servers list from config if present

* Properly replace voice track

* Remove translations

* Use DeviceEventEmitter to handle voice events

* Fix bad checksum

* Restore non-english translations to avoid conflicts

* Address review

* Remove flaky integrity

* Improve state handling

* Update snapshots and tests

* Update call connecting logic

* Fix permissions check
2022-01-27 08:19:26 +01:00
Jesús Espino
8ef65d8b24
Voicechannels (#5753)
* Some extra work on voice channels interface

* Fixing some TODOs

* Improving styling of call in channel

* Improve calls monitoring

* Replacing some of the fontawesome icons with the compass ones

* Improving the layout

* Migrating to webrtc2 for unified plan

* Add screen on and off behavior

* Adding incall manager plugin

* Moving everything into the products/calls folder

* Make products modules routes relatives

* Make products modules routes @mmproducts

* Removing initiator parameter

* Removing trickle parameter

* Simplifying code

* Removing underscore from private variables

* Removing underscore from private things

* More simplifications

* More simplifications

* More simplifications

* Changing sha sum for mmjstool

* Fixing typo

* Migrating simple-peer to typescript

* Migrating simple-peer to typescript

* Improving the size of the screen share

* Adding feature flag to disable the calls feature in mobile

* Fixing some tests

* Removing obsolte tests

* Added call ended support for the post messages

* Fixing some warnings in the tests

* Adding JoinCall tests

* Adding CallMessage tests

* Adding CurrentCall unit tests

* Adding CallAvatar unit tests

* Adding FloatingCallContainer unit tests

* Adding StartCall unit tests

* Adding EnableDisableCalls unit tests

* Adding CallDuration tests

* Improving CallDuration tests

* Adding CallScreen unit tests

* Adding CallOtherActions screen tests

* Fixing some dark theme styles

* Fixing tests

* More robustness around connecting/disconnecting

* Adding FormattedRelativeTime tests

* Adding tests for ChannelItem

* Adding tests for ChannelInfo

* Adding selectors tests

* Adding reducers unit tests

* Adding actions tests

* Removing most of the TODOs

* Removing another TODO

* Updating tests snapshots

* Removing the last TODO

* Fixed a small problem on pressing while a call is ongoing

* Remove all the inlined functions

* Replacing usage of isLandscape selector with useWindowDimensions

* Removed unnecesary makeStyleSheetFromTheme

* Removing unneded  properties from call_duration

* Fixing possible null channels return from getChannel selector

* Moving other inlined functions to its own constant

* Simplifiying enable/disable calls component

* Improving the behavior when you are in the call of the current channel

* Adding missing translation strings

* Simplified a bit the EnableDisableCalls component

* Moving other inlined functions to its own constant

* Updating snapshots

* Improving usage of makeStyleSheetFromTheme

* Moving data reformating from the rest client to the redux action

* Adding calls to the blocklist to the redux-persist

* Fixing tests

* Updating snapshots

* Update file icon name to the last compass icons version

* Fix loading state

* Only show the call connected if the websocket gets connected

* Taking into consideration the indicator bar to position the calls new bars

* Making the MoreMessagesButton component aware of calls components

* Updating snapshots

* Fixing tests

* Updating snapshot

* Fixing different use cases for start call channel menu

* Fixing tests

* Ask for confirmation to start a call when you are already in another call

* Update app/products/calls/components/floating_call_container.tsx

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Memoizing userIds in join call

* Applying suggestion around combine the blocklist for calls with the one for typing

* Adding explicit types to the rest client

* Removing unneeded permission

* Making updateIntervalInSeconds prop optional in FormattedRelativeTime

* Making updateIntervalInSeconds prop optional in CallDuration

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-11-11 11:32:39 +01:00