Compare commits

...

114 Commits

Author SHA1 Message Date
damencho
265d8c4b29 fix: Fixes using s2s for visitors. 2023-01-10 21:50:23 +01:00
bgrozev
e8e05c21ab chore(deps) lib-jitsi-meet@latest (#12754)
https://github.com/jitsi/lib-jitsi-meet/compare/v1564.0.0+e2aa3700...v1569.0.0+5f8d02c9
2023-01-10 13:21:01 -06:00
bgrozev
b0591ed968 feat: Append ?room= to conferenceRequestUrl. (#12753)
* feat: Append ?room= to conferenceRequestUrl.

* Declare conferenceRequestUrl in IConfig.
2023-01-10 13:20:48 -06:00
Narendiran Arthanarieswaran
84fe52491f feat(android) created Monochrome Icon 2023-01-10 15:50:37 +02:00
Calinteodor
450da1a6df feat(base/media): SS mobile align (#12743)
* feat(base/media/native): updated styles and converted VideoTransform.js to tsx
2023-01-10 15:31:57 +02:00
Oana Emilia Ianc
720d4555ab jaas: pass the jitsi installation type at provisioning (#12750) 2023-01-10 12:10:47 +02:00
Calinteodor
c764397994 Update react native paper dependency to latest (#12740)
* Update react-native-paper to latest
2023-01-10 11:18:03 +02:00
Jaya Allamsetty
0ad7b3db55 fix(config) Delete deprecated config.
Client (receiver constraints)  and bridge use the new b/w allocation strategy by default.
2023-01-09 10:35:40 -05:00
Jaya Allamsetty
7e30053d51 fix(config): Remove unused config values.
capScreenshareBitrate and setScreenSharingResolutionConstraints are no longer valid.
2023-01-04 10:41:19 -05:00
Horatiu Muresan
0ad52a06ce feat(prejoin) Disable join buttons during joining
- use new `Button` component for drop down buttons
2023-01-04 14:22:51 +02:00
bgrozev
82fd465819 Re-use existing flags for visitor functioonality. (#12703)
* Fix documentation.

* Re-use existing flags instead for visitor functionality.

* Make the linter happy.

* Declare the disableFocus flag in configType.ts

* chore(deps) lib-jitsi-meet@latest

https://github.com/jitsi/lib-jitsi-meet/compare/v1561.0.0+2d4cd935...v1564.0.0+e2aa3700
2023-01-03 16:03:42 -06:00
Jaya Allamsetty
561d0c9a10 ref(participants) Remove sortedRemoteScreenshares used by legacy SS. 2023-01-03 10:08:48 -05:00
Hristo Terezov
3b8ad78a62 fix(audio-only):Don't disable on SS started. (#12733)
Implementing this on mobile in order to match the web implementation.
2023-01-03 11:28:50 +02:00
Christoph Settgast
77e02a0994 chore(ci): update to checkout@v3 to fix node12 warnings (#12722)
Warning is: Node.js 12 actions are deprecated. For more information
see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/.
Please update the following actions to use Node.js 16: actions/checkout@v2
2022-12-22 21:31:24 +01:00
Christoph Settgast
965e7dc41d ci: move jsonlint to npm run script (#12721)
easier local execution than looking through GH actions
2022-12-22 21:31:07 +01:00
Christoph Settgast
ad0ad31df9 fix(lang) update German translation (#12720) 2022-12-22 21:30:43 +01:00
Horatiu Muresan
2bb2a68e01 chore(welcome-page) Welcome page redesign (#12717) 2022-12-22 15:18:06 +02:00
Horatiu Muresan
c441e8abca fix(welcome-page) Fix error before joining a meeting from welcome page (#12718) 2022-12-22 15:15:38 +02:00
Hristo Terezov
27754c8874 fix(filmstrip): scroll
Add SS tiles to the number of participants in scroll calculations. This
fixes an issue where the scroll is not displayed if there is a SS tile
and only part of 1 tile is overflowing.
2022-12-21 21:54:10 -06:00
dependabot[bot]
580f56010a chore(deps): bump loader-utils from 1.4.1 to 1.4.2
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.1...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-21 20:23:39 +01:00
Jaya Allamsetty
4bad63e484 chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1560.0.0+92a5738b...v1561.0.0+2d4cd935
2022-12-21 13:57:48 -05:00
Hristo Terezov
9cc41469d2 ref(setScreenshareMuted): remove mediaType 2022-12-21 11:02:02 -06:00
Hristo Terezov
5077a33fcb ref(setVideoMuted): remove mediaType param. 2022-12-21 11:02:02 -06:00
Jaya Allamsetty
e7078786e6 fix(config) Remove code related to deprecated configs 'preferH264' and 'disableH264'. 2022-12-21 10:58:38 -05:00
Gabriel Borlea
291370a263 fix(face-landmarks): check for track state only if image capture is not polyfill (#12711) 2022-12-21 15:34:40 +02:00
Horatiu Muresan
32dbdf2e5c feat(deeplinking) Move deeplinking to config.js (#12704) 2022-12-20 19:03:57 +02:00
Hristo Terezov
17b5009e63 feat(audioOnly): do not disable when SS starts 2022-12-20 09:57:45 -06:00
Saúl Ibarra Corretgé
d91f49ec88 fix(rn) temporarily disable P2P
We're getting some no-video problems after the migration to Unified Plan
(before it was only working for same plan clients FWIW).

It was already disabled on Android, so the same in iOS while we figure
this out.
2022-12-20 16:09:19 +01:00
PO-jfiniel
7187530430 fix(android,config) allow to override integer config
This commit allow to override integer configuration like this one:

JitsiMeetConferenceOptions options =
    new JitsiMeetConferenceOptions.Builder()
    .setConfigOverride("resolution", 1080)
    .build();
2022-12-20 13:30:17 +01:00
Saúl Ibarra Corretgé
d3d442e4d2 fix(rn,polyfills) simplify WebRTC polyfills
Use the polyfiller provided by react-native-webrtc.

Drop the permissions API polyfill since we no longer use it in the app
and lib-jitsi-meet already works without it.
2022-12-16 17:55:53 +01:00
Saúl Ibarra Corretgé
294d2c9f6e fix(rn,config) make sure VP9 is never selected 2022-12-16 17:55:53 +01:00
Saúl Ibarra Corretgé
12c002e015 deps(rn) react-native-webrtc@106.0.1
Fixes fps selection during gUM and fliping the active flag in sender
encodings.
2022-12-16 17:55:53 +01:00
Saúl Ibarra Corretgé
9720b4858c chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1557.0.0+8df33524...v1560.0.0+92a5738b
2022-12-16 17:54:33 +01:00
tmoldovan8x8
9fae488070 fix(rn) removes settings dialog webviews and opens urls in browser 2022-12-16 13:30:37 +01:00
Mihaela Dumitru
0e47f72b5f fix(invite-dialog) adjust dial in limit display condition and styling (#12654) 2022-12-16 09:50:48 +02:00
Jaya Allamsetty
298c4bd1e3 fix(conference) Fixes an issue where first unmute with disableInitialGUM=true was resulting in user staying muted.
When device list changes, create a new track with the preferred device only if the user is unmuted. If the user is audio/video muted, remove the existing track from conference. A new track will be created and replaced automatically when the user unmutes. Also since screensharing is a separate source, always check for updated camera devices.
2022-12-15 17:39:25 -05:00
Gabriel Borlea
955367a157 fix(config): cleanup config function (#12690)
* fix(config): avoid cleaning analytics config

* fix cleanup function
2022-12-15 18:00:22 +02:00
Saúl Ibarra Corretgé
c30d1e7479 fix(rn,dynamic-branding) fix handling bogus response from the backend 2022-12-15 12:19:17 +01:00
Avram Tudor
cbbe58a1ec fix(prejoin) fix prejoin app dialogs not being visible (#12689) 2022-12-15 11:29:08 +02:00
Robert Pintilii
aef5328aeb ref(TS) Convert some features to TS (#12651) 2022-12-14 14:23:07 +02:00
Gabriel Borlea
f5ac1b6271 chore(deps) lib-jitsi-meet@latest (#12684)
https://github.com/jitsi/lib-jitsi-meet/compare/v1556.0.0+d9ee8f59...v1557.0.0+8df33524
2022-12-14 12:12:45 +02:00
Titus Moldovan
ca9f0a6788 fix(rn,screenshare) rework the logic for unified-plan with multi-stream 2022-12-14 08:35:33 +01:00
Saúl Ibarra Corretgé
e7c5ae5936 fix(rn,config) don't disable multi-stream sending on RN
We don't plan to send both (camera and screen) streams at once, but we
do plan to align with web and have both streams at the same time, with
the camera being muted when we start screen sharing.
2022-12-14 08:35:33 +01:00
Saúl Ibarra Corretgé
c43a319576 feat(deps,rn) update react-native-webrtc@106
Brings in Unified Plan support!
2022-12-14 08:35:33 +01:00
Saúl Ibarra Corretgé
585c9aa0d2 chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1554.0.0+a25023e7...v1556.0.0+d9ee8f59
2022-12-14 08:34:36 +01:00
Horatiu Muresan
768f10d966 feat(route) Redirect to a custom welcome page 2022-12-13 22:04:11 +02:00
Horatiu Muresan
704740969b fix(prejoin) Fix missing lib error 2022-12-13 22:04:11 +02:00
damencho
d444a45f00 chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1553.0.0+57646337...v1554.0.0+a25023e7
2022-12-13 10:18:31 -06:00
Дамян Минков
9fbbe05d6c feat: Adds docs, config and scripts around the visitor mode. (#12658)
* feat: Moves handle of vnode from conferenceIQ stanza error to result.

* feat: Handles redirected to visitor node event.

* feat: Adds README and configurations.

* squash: Drop comment.

* copy edits

* image fix

* fix background for dark mode

* fix the background

* feat: Update s2soutinjection.

* Update README commands formatting.

* Update doc/extra-large-conference/README.md

Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>

* squash: Creates a generateVisitorConfig helper.

* squash: Moves the folder from doc.

* squash: Update example.

* squash: Drop config.

* squash: Rename var to look like template.

* squash: Fix plugins path.

* squash: Fix sort order of import.

* squash: Fix lint errors.

Co-authored-by: scott boone <scott.e.boone@gmail.com>
Co-authored-by: Scott Boone <scott.boone@8x8.com>
Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
2022-12-13 08:26:22 -06:00
Gabriel Borlea
3445c513ba chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1549.0.0+877c4546...v1553.0.0+57646337
2022-12-13 15:14:01 +01:00
Mihaela Dumitru
6a4276b4c8 fix(salesforce) require selected records + styling (#12669) 2022-12-12 19:15:45 +02:00
damencho
338b02a6b6 feat: Prints the error on problem sharing YouTube video. 2022-12-12 09:39:25 -06:00
damencho
ef2631e95a fix: Error in patching config.js 2022-12-12 09:14:16 -06:00
damencho
226ef9f33d fix: Fixes undefined error in some cases after patching config.js. 2022-12-12 08:46:42 -06:00
tmoldovan8x8
91ec5307ab fix(android) adds default notification icons 2022-12-12 15:12:05 +02:00
Nils Ohlmeier
fe0b7d3acc chore(deps): bumped rtcstats 9.5.0 -> 9.5.1 (#12664) 2022-12-09 21:14:00 -08:00
Saúl Ibarra Corretgé
9533650594 fix(e2ee) avoid running middleware when there is no conference
When hanging up, the conference transitions to undefined, so we should
skip all processing related to setting up listeners for a new
conference.
2022-12-09 14:44:18 +01:00
Avram Tudor
d7bedb2e07 ref(misc) remove unused code for dock / undock (#12661)
* ref(misc) remove unused code for dock / undock

* remove translations
2022-12-09 15:19:57 +02:00
Mihaela Dumitru
33e4da32e2 feat(giphy) disable feature from dynamic branding (#12620) 2022-12-08 16:02:31 +02:00
bgrozev
9a8a8ef7ad Bump js-utils to 2.0.5 (filter room names). (#12625)
* Bump js-utils to 2.0.5 (filter room names).
2022-12-07 10:35:42 -06:00
Calin-Teodor
703ed731c8 feat(base/redux): fixed local storage on native 2022-12-07 18:16:53 +02:00
William Liang
83dfb67f23 fix(video-mute) prevent multiple camera track creation 2022-12-07 10:23:20 -05:00
Robert Pintilii
51bdf67cf2 fix(dialog) Fix Dialog on mobile (#12650)
Use JitsiPortal on mobile
2022-12-07 11:27:55 +02:00
damencho
3adbda791c chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1548.0.0+8acdeb1d...v1549.0.0+877c4546
2022-12-06 19:10:02 -06:00
Jaya Allamsetty
924bb0e7ff chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1545.0.0+f8e587f7...v1548.0.0+8acdeb1d
2022-12-06 16:31:06 -06:00
tmoldovan8x8
4c9bfe3d4d feat(E2EE) add initial SAS verification UI 2022-12-06 18:29:33 +01:00
Jaya Allamsetty
1139311809 chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1543.0.0+c57ac97e...v1545.0.0+f8e587f7
2022-12-06 10:53:20 -05:00
Calinteodor
2ad2e6ff0e feat(polls/web): removed sort options from polls (#12641)
* feat(polls/web): removed sort options from polls
2022-12-05 15:18:24 +02:00
damencho
46cc2e37ae feat: Update lib-jitsi-meet.
Fixes version of binary ljm.
2022-12-02 15:31:33 -06:00
Saúl Ibarra Corretgé
0ebac2ac6d fixup! 2022-12-02 19:05:47 +01:00
Saúl Ibarra Corretgé
90e33ee799 fixup devcontainer 2022-12-02 19:05:47 +01:00
Saúl Ibarra Corretgé
be982ae996 fix(build) use http for GitHub codespaces 2022-12-02 19:05:47 +01:00
Saúl Ibarra Corretgé
56114fe863 Create devcontainer.json 2022-12-02 19:05:47 +01:00
Saúl Ibarra Corretgé
a2e8a7f28f fix(toolbox) hide drawer after toggling camera
Fixes: https://github.com/jitsi/jitsi-meet/issues/12628
2022-12-02 15:31:44 +01:00
Pawel Domas
af072c3070 fix: get the current conference
state['features/base/conference'].conference is not the right way to get the current conference.
See getCurrentConference selector - it accounts for joining and other states.
2022-12-01 16:02:35 -05:00
Jaya Allamsetty
f42772ec5b chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1539.0.0+eb4873d2...v1541.0.0+9b34e0f7
2022-11-29 15:28:51 -05:00
Gabriel Borlea
2556a7ab77 fix(face-landmarks): assign empty array to facelandmarks in speakerstats if undefined 2022-11-29 19:12:43 +01:00
Charles Zablit
3cbf160f2b fix: always display transcription (#12325)
* feat: always display transcription

* fix: unused import
2022-11-29 09:50:19 -06:00
Дамян Минков
744960bb1a feat: Several module optimizations to avoid constant parsing of jids. (#12594)
* feat: Several module optimizations to avoid constant parsing of jids.

Caches the parsed values in a rotating table with limited size.
Skips constant creating of a stanza with never changing values - create it once and then just clone it.

* squash: Fixes extract_subdomain multiple values.

* squash: Fix table values when there is a nil element.

* squash: Fix skipping the roomless IQs.

* squash: Fix comments.
2022-11-28 14:18:59 -06:00
Дамян Минков
76471a0ea9 feat: Modules for implementing visitor nodes. (#12593)
* feat: Modules for implementing visitor nodes.

Still WIP, uses visitor nodes prosodies where we create the main participants and forward the visitors to watch. Used for huge conferences.

* squash: Fix comments.
2022-11-28 14:18:33 -06:00
Robert Pintilii
0ba033e07d ref(TS) Improve TS (#12612)
Remove unnecessary @ts-ignores
Remove unnecessary eslint-disable
2022-11-28 12:52:45 +02:00
Robert Pintilii
cb3fb3ada9 ref(TS) Convert some features to TS (#12611) 2022-11-28 12:52:24 +02:00
Calinteodor
48a6472b3b feat(lobby/prejoin/native): style updates (#12615)
feat(lobby/prejoin/native): style updates (#12615)
2022-11-25 13:59:45 +02:00
Roberto Vieira
691e92b7ec fix(ios) make initialPositionInSuperView a variable
Fixes: https://github.com/jitsi/jitsi-meet/issues/12446
2022-11-25 10:44:27 +01:00
Calin-Teodor
6e36340a83 feat(conference): fixed padding 2022-11-24 19:41:56 +02:00
Mihaela Dumitru
ae424c95de chore(whiteboard): bump excalidraw version (#12614) 2022-11-24 17:43:08 +02:00
Mihaela Dumitru
95b2979eb3 feat(whiteboard): use jitsi room name for socket io connection (#12610) 2022-11-24 14:20:40 +02:00
_norbert
a0c130568b fix(lang) update Hungarian translation 2022-11-23 19:33:13 +01:00
Robert Pintilii
643cc2db81 ref(TS) Convert some features to TS (#12591) 2022-11-23 11:12:26 +02:00
Calinteodor
6bce0bc917 fix: Native styles fixes (#12606)
* feat(conference/native): update indicator styles

* feat(prejoin/native): removed unnecessary styles

* feat(mobile/navigation): fixed header buttons style

* feat(mobile/navigation): fixed linter
2022-11-22 21:50:16 +02:00
Calinteodor
93566e313e feat(native): Last mobile release UI fixes (#12603)
* feat(base/modal): order props alphabetically

* feat(base/ui): added ripple color for tertiary button

* feat(prejoin): removed autoFocus from input and adjusted content

* feat(conference): adjusted RaisedHandCountLabel and added extra code spaces

* feat(prejoin): fixed content to fit tablets

* feat(conference): moved header button styles to navigation styles

* feat(mobile/navigation): updated header navigation button styles

* feat(prejoin): updated elements width, removed left inset
2022-11-22 18:13:36 +02:00
Gabriel Borlea
a7c653bc30 chore(deps) lib-jitsi-meet@latest (#12604)
https://github.com/jitsi/lib-jitsi-meet/compare/v1538.0.0+871968af...v1539.0.0+eb4873d2
2022-11-22 16:19:34 +02:00
Gabriel Borlea
4b969cf4ab feat(face-landmarks): add face landmarks timeline (#12561)
* feat(face-landmarks): add face landmarks timeline

fixes after rebase

* fixes after rebase compiling and linting

* fix: change keyboard shorcut for participants stats

* fix: label for emotions switch

* fix: linting issues

* code review changes

* fix linting issues

* code review changes 2

* fix typo
2022-11-22 15:56:37 +02:00
Saúl Ibarra Corretgé
3081b41d0d fix(android) temporarily disable P2P
For some reason one of the users gets a black screen when doing Android
to Android calls. If iOS is involved things Just Work (TM).

It seems to be related to the use of H.264, but since it works with iOS
there must be something else to it.
2022-11-22 14:00:47 +01:00
Saúl Ibarra Corretgé
30e5d213cb fix(android) sort codecs in the same order as iOS 2022-11-22 14:00:47 +01:00
Saúl Ibarra Corretgé
752da71387 feat(android) set compile and target SDKs to 32 2022-11-22 11:37:08 +01:00
Saúl Ibarra Corretgé
645609974a deps(android) update native dependencies 2022-11-22 11:37:08 +01:00
Saúl Ibarra Corretgé
4f2f6df2bb chore(deps) update xmldom to version 0.79 2022-11-22 11:37:08 +01:00
Jaya Allamsetty
e93c480e7c fix(conference) Remove the check for multi-stream mode for web client. 2022-11-21 14:40:25 -05:00
Calinteodor
a795e0797a feat(native): New mobile release UI fixes (#12592) 2022-11-21 16:07:27 +02:00
Andrei Gavrilescu
94ec2c720d feat(rtcstats): report pc connection failure (#12560)
* report pc connection failure

* typos

* code review / update rtcstats

* check for undefined APP
2022-11-21 15:32:18 +02:00
Abdullah Kerem Öğe
b11e14ea34 feat(deps,rn) update React Native to version 0.68.5 2022-11-21 10:37:48 +01:00
Robert Pintilii
f5f55c4f23 fix(dialog) Improvements (#12590)
Remove focus outline for the close icon
Increase max height
2022-11-21 11:09:03 +02:00
Duduman Bogdan Vlad
243a330318 feat(thumbnail,filmstrip) show blackend thumbnail for participant on stage 2022-11-21 10:03:03 +01:00
_norbert
98bc87ea18 lang: fixing typo in a hungarian lang file (#12559)
* fixing typo in a hungarian lang file

* revert end of line

Co-authored-by: bartuczns <bartucz.norbertsandor@nisz.hu>
2022-11-19 15:35:43 -06:00
Saúl Ibarra Corretgé
f7926c9cfb fixup! 2022-11-18 19:56:36 +01:00
Saúl Ibarra Corretgé
533501deb6 fixup! 2022-11-18 19:56:36 +01:00
Saúl Ibarra Corretgé
f38c9f5450 feat(notification,external-api) notify bridge channel failures 2022-11-18 19:56:36 +01:00
Jaya Allamsetty
55b80c948f chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1535.0.0+e6263e7c...v1538.0.0+871968af
2022-11-18 13:38:37 -05:00
Calinteodor
971fe0481f feat(chat/polls/native) Update chat and polls UI (#12550)
* feat(chat/polls/native): update ui
2022-11-18 14:46:54 +02:00
Calin-Teodor
1259e54d46 fix(conference/native): apply width and height only on the connection indicator 2022-11-18 13:22:55 +01:00
Calin-Teodor
0cb95f1dd6 fix(conference/native): video quality label ui updates 2022-11-18 13:22:55 +01:00
Calin-Teodor
5cde9a138b fix(conference/native): fixed title bar indicators style 2022-11-18 13:22:55 +01:00
robertpin
867c488e10 fix(dialog) Update max height 2022-11-18 13:22:43 +01:00
406 changed files with 8378 additions and 3987 deletions

View File

@@ -0,0 +1,15 @@
{
"name": "Jitsi Meet Dev Container",
"image": "mcr.microsoft.com/devcontainers/universal:2",
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "16"
}
},
"hostRequirements": {
"cpus": 4,
"memory": "8gb",
"storage": "32gb"
},
"postCreateCommand": "bash -i -c 'nvm use && npm install && cp tsconfig.web.json tsconfig.json'"
}

View File

@@ -7,7 +7,7 @@ jobs:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
@@ -20,12 +20,11 @@ jobs:
- name: Check if the git repository is clean
run: $(exit $(git status --porcelain --untracked-files=no | head -255 | wc -l)) || (echo "Dirty git tree"; git diff; exit 1)
- run: npm run lint:ci
- run: for file in lang/*.json; do npx --yes jsonlint -q $file || exit 1; done
linux-build:
name: Build Frontend (Linux)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
@@ -36,7 +35,7 @@ jobs:
name: Build Frontend (macOS)
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16

View File

@@ -141,7 +141,7 @@ react/features/sample/
```
The middleware must be imported in `react/features/app/` specifically
in `middlewares.any`, `middlewares.native.js` or `middlewares.web.js` where appropriate.
in `middlewares.any.ts`, `middlewares.native.ts` or `middlewares.web.ts` where appropriate.
Likewise for the reducer.
An `index.js` file must not be provided for exporting actions, action types and

View File

@@ -76,7 +76,7 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'androidx.appcompat:appcompat:1.5.1'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,70 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="262.91376dp"
android:height="262.91376dp"
android:viewportWidth="262.91376"
android:viewportHeight="262.91376">
<group android:scaleX="0.75" android:scaleY="0.75" android:translateX="35" android:translateY="35">
<clip-path
android:pathData="m0,0 l262.914,-0L262.914,262.914 0,262.914 0,0Z"/>
<path
android:pathData="m142.646,105.099c0.117,0.026 0.255,0.036 0.406,0.036 3.186,-0 10.297,-4.615 11.617,-6.721l0.1,-0.17 0.153,-0.135c0.451,-0.441 1.746,-2.773 2.374,-4.17 -6.751,-2.023 -7.49,-5.677 -8.153,-8.919 -0.069,-0.376 -0.138,-0.717 -0.204,-1.019 -0.074,-0.397 -0.153,-0.8 -0.226,-1.112C138.668,86.221 135.593,88.094 133.921,89.483 133.056,90.201 132.542,92.251 135.042,97.926 136.323,100.816 140.727,104.733 142.646,105.099"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="m115.413,146.042c5.934,-0 18.464,-3.543 26.748,-5.887 1.21,-0.336 2.33,-0.66 3.351,-0.944 0.166,-0.046 0.321,-0.091 0.472,-0.124 -0.463,-0.461 -1.239,-1.159 -2.497,-2.216 -5.521,-3.741 -10.736,-5.484 -16.403,-5.484 -1.237,-0 -2.522,0.071 -3.923,0.231 -4.801,0.55 -8.8,1.69 -10.722,2.237 -0.967,0.284 -1.263,0.366 -1.567,0.366 -0.58,-0 -1.079,-0.341 -1.273,-0.878 -0.194,-0.534 -0.027,-1.121 0.425,-1.507l0.024,-0.011c3.316,-2.784 9.489,-7.951 21.198,-10.256 2.027,-0.401 4.202,-0.605 6.454,-0.605 5.242,-0 10.67,1.086 16.125,3.219 7.436,2.899 12.521,6.625 16.602,9.62 2.199,1.609 4.105,3.007 5.755,3.771 0.421,0.2 0.637,0.255 0.746,0.265 0.074,-0.095 0.23,-0.365 0.474,-1.069 0.066,-0.185 0.529,-2.161 -2.806,-13.374 -1.931,-6.51 -4.264,-13.156 -5.479,-16.104 -2.356,-5.711 -1.778,-9.76 -1.051,-12.125 -1.999,0.735 -4.033,1.87 -6.174,3.446L161.758,98.711C160.694,99.506 159.599,100.404 158.426,101.454 151.517,107.64 146.344,110.864 143.035,111.04l-0.093,0.004 -0.093,-0.009c-2.912,-0.245 -7.324,-4.489 -9.133,-6.634 -0.373,-0.251 -0.8,-0.366 -1.366,-0.366 -0.564,-0 -1.202,0.116 -1.82,0.235C130.086,104.354 129.623,104.441 129.167,104.489 127.708,104.632 125.668,105.106 123.694,105.561 122.746,105.777 121.762,106.005 120.864,106.189 120.851,106.19 120.463,106.272 119.774,106.454 114.903,107.891 111.228,109.55 109.432,111.111 109.414,111.127 109.352,111.174 109.266,111.242 108.048,112.105 105.124,114.567 104.248,118.762L104.237,118.795C102.398,126.516 105.187,136.087 108.892,141.554 110.636,144.125 112.513,145.727 114.048,145.959 114.437,146.015 114.891,146.042 115.413,146.042"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="m90.093,173.175c-1.252,-1.472 -1.783,-3.324 -1.574,-5.521 0.884,-10.642 -0.329,-13.215 -0.891,-13.829 -0.131,-0.144 -0.207,-0.144 -0.265,-0.144 -0.022,-0 -0.041,0.003 -0.064,0.003 -1.044,0.248 -8.066,5.002 -9.615,19.171 -0.749,6.845 0.561,15.63 1.679,20.974 0.897,-3.155 2.314,-6.624 5.057,-10.204 2.556,-3.326 5.345,-5.955 8.801,-8.253C92.143,174.93 90.991,174.235 90.093,173.175"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="m94.906,156.389c-0.03,2.229 -0.326,4.36 -0.61,6.445 -0.151,1.119 -0.314,2.286 -0.434,3.46 -0.161,2.341 0.346,3.166 0.571,3.406 0.127,0.136 0.326,0.287 0.76,0.287 0.339,-0 0.741,-0.091 1.161,-0.268 4.202,-1.756 8.195,-4.815 10.115,-6.515C103.522,161.892 98.995,159.058 94.906,156.389"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="m154.002,81.595c-0.031,0.074 -0.065,0.148 -0.101,0.216 -0.821,2.403 0.306,5.664 2.419,6.898 0.561,0.327 1.106,0.526 1.624,0.596 0.072,0.006 0.148,0.009 0.219,0.009 1.645,-0 2.971,-1.199 3.961,-3.561C162.752,83.959 162.836,81.827 162.37,79.904 162.003,78.409 161.057,76.627 160.453,75.738 159.332,76.509 157.111,78.207 155.585,79.553 154.518,80.582 154.136,81.229 154.002,81.595"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="M148.97,77.699C153.957,73.194 156.988,65.754 158.253,61.334 153.915,65.513 148.633,67.758 145.25,69.198 144.084,69.695 143.08,70.124 142.477,70.476 142.224,70.623 141.965,70.77 141.708,70.919 139.654,72.109 136.55,73.905 136.1,75.011l-0.012,0.036 -0.012,0.034c-1.406,2.956 -2.199,7.401 -2.457,9.95 3.266,-1.99 6.625,-3.322 9.416,-4.42C145.628,79.585 147.863,78.703 148.97,77.699"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="m164.464,51.921c-0.84,5.539 -2.205,10.799 -4.751,16.347 2.781,-3.144 4.396,-6.568 4.941,-10.401C164.886,56.275 165.097,54.756 164.464,51.921"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="M148.749,142.639C148.718,142.598 148.684,142.56 148.658,142.519 148.523,142.539 148.307,142.584 147.972,142.683l-0.14,0.04c-1.726,0.644 -4.899,1.708 -8.556,2.946 -4.396,1.479 -9.365,3.154 -13.526,4.649 -5.297,1.975 -7.021,2.755 -7.557,3.024 -0.098,0.266 -0.203,0.599 -0.327,0.965 -1.254,3.816 -4.125,12.541 -18.276,18.653 2.928,2.956 9.289,8.27 21.809,8.27 1.082,-0 2.21,-0.036 3.341,-0.12 9.451,-0.666 18.342,-4.855 25.026,-11.78 6.087,-6.291 9.538,-14.136 9.585,-21.7C157.876,147.509 155.367,147.135 153.043,146.033 153.014,146.02 150.361,144.745 148.749,142.639"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="m189.478,117.853c-0.523,9.749 -2.122,18.424 -4.744,25.8 -2.128,5.988 -4.94,11.134 -8.356,15.316 -5.676,6.931 -11.555,9.256 -12.804,9.304 -0.866,-0 -1.313,-0.309 -3.046,-1.528 -0.17,-0.114 -0.37,-0.252 -0.581,-0.4 -3.313,5.953 -8.505,11.097 -15.065,14.959 -7.079,4.144 -15.297,6.423 -23.157,6.423 -9.078,-0 -17.13,-2.924 -23.341,-8.456 -7.467,4.799 -12.31,9.074 -16.267,27.005l-1.363,6.17 -2.971,-5.564c-0.424,-0.786 -1.929,-3.731 -3.332,-8.887 -1.934,-7.104 -2.86,-15.181 -2.758,-24.01 0.117,-10.049 3.154,-16.526 5.68,-20.186 2.98,-4.314 6.837,-6.994 10.076,-6.994 0.216,-0 0.428,0.006 0.616,0.035 5.159,0.575 8.435,2.75 14.396,6.686l1.899,1.252c2.059,1.344 4.481,2.7 5.259,2.989 0.54,-0.284 1.749,-2.3 2.155,-5.271l0.069,-0.451c0.005,-0.045 0.009,-0.091 0.014,-0.131 -0.036,-0.02 -0.065,-0.029 -0.094,-0.041 -4.008,-1.375 -9.539,-7.7 -12.364,-17.134 -2.684,-9.382 -2.129,-17.185 1.644,-23.193 6.12,-9.736 19.198,-11.974 23.466,-12.702 1.331,-0.266 2.716,-0.511 4.041,-0.717 0.255,-0.061 0.469,-0.121 0.642,-0.168 -0.031,-0.126 -0.071,-0.265 -0.114,-0.43 -0.108,-0.417 -0.23,-0.891 -0.354,-1.447 -1.345,-6.035 -0.664,-11.069 0.181,-15.193 0.928,-4.546 1.489,-7.287 3.747,-9.936 3.029,-4.165 8.319,-5.936 11.479,-6.991 0.746,-0.249 1.511,-0.509 1.894,-0.689 8.988,-4.31 11.82,-8.739 12.615,-11.694 0.656,-2.451 1.699,-8.884 1.251,-13.335 -0.085,-0.805 0.129,-1.521 0.621,-2.065 0.45,-0.505 1.101,-0.794 1.778,-0.794 1.515,-0 2.82,-0 7.511,14.598 2.481,7.698 0.645,14.903 -5.45,21.424l-0.226,0.231c0.024,0.044 0.049,0.09 0.08,0.144 2.57,4.236 3.963,9.54 3.553,13.51 -0.099,0.906 -0.265,1.775 -0.419,2.549 -0.003,0.01 -0.003,0.016 -0.004,0.029 0.516,-0.032 1.119,-0.055 1.775,-0.055 3.052,-0 7.435,0.474 10.989,2.735 2.135,1.352 4.845,3.439 6.835,7.615C189.223,102.942 190.076,109.575 189.478,117.853m4.77,-23.191c-2.916,-6.1 -6.989,-9.177 -9.793,-10.96 -2.355,-1.494 -5.064,-2.584 -8.077,-3.24l-0.676,-0.146 -0.111,-0.689c-0.339,-2.119 -0.918,-4.275 -1.715,-6.406l-0.185,-0.49 0.292,-0.434c5.095,-7.594 6.323,-16.17 3.54,-24.802 -2.191,-6.824 -3.895,-11.211 -5.341,-13.799 -2.954,-5.305 -7.006,-6.417 -9.891,-6.417 -2.964,-0 -5.8,1.261 -7.789,3.457 -2.043,2.254 -2.993,5.207 -2.678,8.31 0.316,3.134 -0.494,8.516 -1.014,10.439 -0.04,0.117 -0.975,2.929 -8.201,6.428 -0.162,0.056 -0.512,0.179 -1.053,0.359 -3.729,1.246 -10.666,3.571 -15.258,9.64 -3.465,4.205 -4.332,8.441 -5.338,13.346 -0.586,2.865 -1.236,6.744 -1.079,11.344l0.026,0.841 -0.824,0.188c-11.646,2.585 -20.025,7.835 -24.909,15.605 -5.054,8.04 -5.919,18.055 -2.543,29.853 0.063,0.204 0.126,0.407 0.189,0.615l0.527,1.608 -1.665,-0.286c-0.561,-0.101 -1.135,-0.18 -1.729,-0.241 -0.493,-0.06 -1.001,-0.082 -1.509,-0.082 -5.633,-0 -11.663,3.585 -16.128,9.592 -3.451,4.641 -7.588,12.849 -7.735,25.601 -0.114,9.573 0.906,18.401 3.038,26.228 1.581,5.795 3.326,9.329 4.004,10.577l13.306,24.94 6.096,-27.619c2.454,-11.09 4.864,-15.262 7.725,-18.111l0.561,-0.563 0.679,0.411c6.605,3.977 14.466,6.084 22.73,6.084 9.286,-0 18.965,-2.682 27.259,-7.551 5.38,-3.16 9.974,-7.036 13.649,-11.531l0.45,-0.369 0.85,-0.02c2.156,-0.068 5.16,-1.164 8.222,-3.004 2.6,-1.555 6.543,-4.428 10.501,-9.262 3.997,-4.884 7.274,-10.854 9.716,-17.734 2.876,-8.073 4.625,-17.489 5.204,-28.004 0.689,-9.668 -0.434,-17.641 -3.327,-23.704"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="m180.026,98.414c-1.67,-2.596 -3.771,-4.206 -5.475,-4.206 -0.313,-0 -0.613,0.051 -0.895,0.161 -0.911,0.361 -2.356,4.532 -1.714,7.566 0.434,2.066 2.938,9.04 4.151,12.394 0.456,1.281 0.68,1.91 0.754,2.142 0.064,0.183 0.145,0.448 0.256,0.774 0.97,2.971 3.467,10.586 4.206,16.761 1.549,-6.579 2.424,-14.512 2.085,-23.997C183.235,105.662 182.04,101.538 180.026,98.414"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="M168.088,142.604C169.896,142.111 171.33,141.705 172.398,141.395 170.213,139.874 167.689,137.979 164.247,135.304c-8.418,-6.546 -17.449,-9.87 -26.839,-9.87 -5.135,-0 -9.611,0.991 -13.156,2.186 0.882,-0.05 1.779,-0.079 2.7,-0.079 1.1,-0 2.247,0.04 3.411,0.119 3.652,0.246 13.061,1.901 21.565,12.047 1.714,2.039 3.559,3.73 8.794,3.73 1.873,-0 4.051,-0.207 6.662,-0.645C167.544,142.751 167.793,142.678 168.088,142.604"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
<path
android:pathData="m164.3,147.583c-0.122,1.563 -0.376,4.509 -0.782,6.76 -0.495,2.719 -1.31,5.02 -1.791,6.226 0.85,0.786 1.694,1.553 2.247,2.043 2.214,-1.447 9.47,-6.96 14.483,-19.474C176.847,144.229 174.59,145.178 171.671,146.018 168.701,146.861 165.82,147.357 164.3,147.583"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"/>
</group>
</vector>

View File

@@ -2,4 +2,5 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
</adaptive-icon>

View File

@@ -2,4 +2,5 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
</adaptive-icon>

View File

@@ -1,5 +1,4 @@
import groovy.json.JsonSlurper
import org.apache.tools.ant.taskdefs.condition.Os
import org.gradle.util.VersionNumber
// Top-level build file where you can add configuration options common to all
@@ -12,16 +11,16 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.4'
classpath 'com.google.gms:google-services:4.3.10'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
classpath 'com.google.gms:google-services:4.3.14'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
}
}
ext {
buildToolsVersion = "31.0.0"
compileSdkVersion = 31
compileSdkVersion = 32
minSdkVersion = 23
targetSdkVersion = 31
targetSdkVersion = 32
supportLibVersion = "28.0.0"
if (System.properties['os.arch'] == "aarch64") {

View File

@@ -81,6 +81,8 @@ public class JitsiMeetView extends FrameLayout {
result.putBoolean(key, (Boolean)bValue);
} else if (valueType.contentEquals("String")) {
result.putString(key, (String)bValue);
} else if (valueType.contentEquals("Integer")) {
result.putInt(key, (int)bValue);
} else if (valueType.contentEquals("Bundle")) {
result.putBundle(key, mergeProps((Bundle)aValue, (Bundle)bValue));
} else {

View File

@@ -42,10 +42,10 @@ public class WebRTCVideoDecoderFactory implements VideoDecoderFactory {
public VideoCodecInfo[] getSupportedCodecs() {
List<VideoCodecInfo> codecs = new ArrayList<>();
codecs.add(H264Utils.DEFAULT_H264_BASELINE_PROFILE_CODEC);
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP8.name(), new HashMap<>()));
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.name(), new HashMap<>()));
codecs.add(new VideoCodecInfo(VideoCodecMimeType.AV1.name(), new HashMap<>()));
codecs.add(H264Utils.DEFAULT_H264_BASELINE_PROFILE_CODEC);
return codecs.toArray(new VideoCodecInfo[codecs.size()]);
}

View File

@@ -43,10 +43,10 @@ public class WebRTCVideoEncoderFactory implements VideoEncoderFactory {
public VideoCodecInfo[] getSupportedCodecs() {
List<VideoCodecInfo> codecs = new ArrayList<>();
codecs.add(H264Utils.DEFAULT_H264_BASELINE_PROFILE_CODEC);
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP8.name(), new HashMap<>()));
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.name(), new HashMap<>()));
codecs.add(new VideoCodecInfo(VideoCodecMimeType.AV1.name(), new HashMap<>()));
codecs.add(H264Utils.DEFAULT_H264_BASELINE_PROFILE_CODEC);
return codecs.toArray(new VideoCodecInfo[codecs.size()]);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -44,8 +44,10 @@ import {
conferenceUniqueIdSet,
conferenceWillJoin,
conferenceWillLeave,
dataChannelClosed,
dataChannelOpened,
e2eRttChanged,
generateVisitorConfig,
getConferenceOptions,
kickedOut,
lockStateChanged,
@@ -54,10 +56,7 @@ import {
p2pStatusChanged,
sendLocalParticipant
} from './react/features/base/conference';
import {
getMultipleVideoSendingSupportFeatureFlag,
getReplaceParticipant
} from './react/features/base/config/functions';
import { getReplaceParticipant } from './react/features/base/config/functions';
import {
checkAndNotifyForNewDevice,
getAvailableDevices,
@@ -134,9 +133,12 @@ import {
import { maybeSetLobbyChatMessageListener } from './react/features/lobby/actions.any';
import { setNoiseSuppressionEnabled } from './react/features/noise-suppression/actions';
import {
DATA_CHANNEL_CLOSED_NOTIFICATION_ID,
NOTIFICATION_TIMEOUT_TYPE,
hideNotification,
isModerationNotificationDisplayed,
showNotification
showNotification,
showWarningNotification
} from './react/features/notifications';
import { mediaPermissionPromptVisibilityChanged } from './react/features/overlay';
import { suspendDetected } from './react/features/power-monitor';
@@ -276,7 +278,8 @@ class ConferenceConnector {
/**
*
*/
constructor(resolve, reject) {
constructor(resolve, reject, conference) {
this._conference = conference;
this._resolve = resolve;
this._reject = reject;
this.reconnectTimeout = null;
@@ -335,6 +338,26 @@ class ConferenceConnector {
break;
}
case JitsiConferenceErrors.REDIRECTED: {
generateVisitorConfig(APP.store.getState(), params);
connection.disconnect().then(() => {
connect(this._conference.roomName).then(con => {
const localTracks = getLocalTracks(APP.store.getState()['features/base/tracks']);
const jitsiTracks = localTracks.map(t => t.jitsiTrack);
// visitors connect muted
jitsiTracks.forEach(t => t.mute());
// TODO disable option to unmute audio or video
this._conference.startConference(con, jitsiTracks);
});
});
break;
}
case JitsiConferenceErrors.GRACEFUL_SHUTDOWN:
APP.UI.notifyGracefulShutdown();
break;
@@ -458,6 +481,11 @@ export default {
*/
_localTracksInitialized: false,
/**
* Flag used to prevent the creation of another local video track in this.muteVideo if one is already in progress.
*/
isCreatingLocalTrack: false,
isSharingScreen: false,
/**
@@ -726,7 +754,7 @@ export default {
// XXX The API will take care of disconnecting from the XMPP
// server (and, thus, leaving the room) on unload.
return new Promise((resolve, reject) => {
new ConferenceConnector(resolve, reject).connect();
new ConferenceConnector(resolve, reject, this).connect();
});
},
@@ -1027,11 +1055,13 @@ export default {
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
if (!localVideo && !mute) {
if (!localVideo && !mute && !this.isCreatingLocalTrack) {
const maybeShowErrorDialog = error => {
showUI && APP.store.dispatch(notifyCameraError(error));
};
this.isCreatingLocalTrack = true;
// Try to create local video if there wasn't any.
// This handles the case when user joined with no video
// (dismissed screen sharing screen or in audio only mode), but
@@ -1053,6 +1083,9 @@ export default {
logger.debug(`muteVideo: calling useVideoStream for track: ${videoTrack}`);
return this.useVideoStream(videoTrack);
})
.finally(() => {
this.isCreatingLocalTrack = false;
});
} else {
// FIXME show error dialog if it fails (should be handled by react)
@@ -1338,7 +1371,7 @@ export default {
this._createRoom(localTracks);
return new Promise((resolve, reject) => {
new ConferenceConnector(resolve, reject).connect();
new ConferenceConnector(resolve, reject, this).connect();
});
},
@@ -1418,30 +1451,13 @@ export default {
return;
}
// In the multi-stream mode, add the track to the conference if there is no existing track, replace it
// otherwise.
if (getMultipleVideoSendingSupportFeatureFlag(state)) {
const trackAction = oldTrack
? replaceLocalTrack(oldTrack, newTrack, room)
: addLocalTrack(newTrack);
// Add the track to the conference if there is no existing track, replace it otherwise.
const trackAction = oldTrack
? replaceLocalTrack(oldTrack, newTrack, room)
: addLocalTrack(newTrack);
APP.store.dispatch(trackAction)
.then(() => {
this.setVideoMuteStatus();
})
.then(resolve)
.catch(error => {
logger.error(`useVideoStream failed: ${error}`);
reject(error);
})
.then(onFinish);
return;
}
APP.store.dispatch(
replaceLocalTrack(oldTrack, newTrack, room))
APP.store.dispatch(trackAction)
.then(() => {
this._setSharingScreen(newTrack);
this.setVideoMuteStatus();
})
.then(resolve)
@@ -2067,6 +2083,18 @@ export default {
room.on(
JitsiConferenceEvents.DATA_CHANNEL_OPENED, () => {
APP.store.dispatch(dataChannelOpened());
APP.store.dispatch(hideNotification(DATA_CHANNEL_CLOSED_NOTIFICATION_ID));
}
);
room.on(
JitsiConferenceEvents.DATA_CHANNEL_CLOSED, ev => {
APP.store.dispatch(dataChannelClosed(ev.code, ev.reason));
APP.store.dispatch(showWarningNotification({
descriptionKey: 'notify.dataChannelClosedDescription',
titleKey: 'notify.dataChannelClosed',
uid: DATA_CHANNEL_CLOSED_NOTIFICATION_ID
}, NOTIFICATION_TIMEOUT_TYPE.STICKY));
}
);
@@ -2314,7 +2342,7 @@ export default {
* @param {MediaDeviceInfo[]} devices
* @returns {Promise}
*/
_onDeviceListChanged(devices) {
async _onDeviceListChanged(devices) {
const oldDevices = APP.store.getState()['features/base/devices'].availableDevices;
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
@@ -2328,13 +2356,10 @@ export default {
const newDevices
= mediaDeviceHelper.getNewMediaDevicesAfterDeviceListChanged(
devices,
this.isSharingScreen,
localVideo,
localAudio,
newLabelsOnly);
const promises = [];
const audioWasMuted = this.isLocalAudioMuted();
const videoWasMuted = this.isLocalVideoMuted();
const requestedInput = {
audio: Boolean(newDevices.audioinput),
video: Boolean(newDevices.videoinput)
@@ -2346,7 +2371,6 @@ export default {
= setAudioOutputDeviceId(newDevices.audiooutput, dispatch)
.catch(); // Just ignore any errors in catch block.
promises.push(setAudioOutputPromise);
}
@@ -2363,8 +2387,7 @@ export default {
}
// Let's handle unknown/non-preferred devices
const newAvailDevices
= APP.store.getState()['features/base/devices'].availableDevices;
const newAvailDevices = APP.store.getState()['features/base/devices'].availableDevices;
let newAudioDevices = [];
let oldAudioDevices = [];
@@ -2380,103 +2403,85 @@ export default {
// check for audio
if (newAudioDevices.length > 0) {
APP.store.dispatch(
checkAndNotifyForNewDevice(newAudioDevices, oldAudioDevices));
APP.store.dispatch(checkAndNotifyForNewDevice(newAudioDevices, oldAudioDevices));
}
// check for video
if (!requestedInput.video) {
APP.store.dispatch(
checkAndNotifyForNewDevice(newAvailDevices.videoInput, oldDevices.videoInput));
APP.store.dispatch(checkAndNotifyForNewDevice(newAvailDevices.videoInput, oldDevices.videoInput));
}
// When the 'default' mic needs to be selected, we need to
// pass the real device id to gUM instead of 'default' in order
// to get the correct MediaStreamTrack from chrome because of the
// following bug.
// When the 'default' mic needs to be selected, we need to pass the real device id to gUM instead of 'default'
// in order to get the correct MediaStreamTrack from chrome because of the following bug.
// https://bugs.chromium.org/p/chromium/issues/detail?id=997689
const hasDefaultMicChanged = newDevices.audioinput === 'default';
// This is the case when the local video is muted and a preferred device is connected.
// When the local video is muted and a preferred device is connected, update the settings and remove the track
// from the conference. A new track will be created and replaced when the user unmutes their camera.
if (requestedInput.video && this.isLocalVideoMuted()) {
// We want to avoid creating a new video track in order to prevent turning on the camera.
requestedInput.video = false;
APP.store.dispatch(updateSettings({ // Update the current selected camera for the device selection dialog.
APP.store.dispatch(updateSettings({
cameraDeviceId: newDevices.videoinput
}));
requestedInput.video = false;
delete newDevices.videoinput;
// Removing the current video track in order to force the unmute to select the preferred device.
logger.debug('_onDeviceListChanged: Removing the current video track.');
this.useVideoStream(null);
// Remove the track from the conference.
if (localVideo) {
await this.useVideoStream(null);
logger.debug('_onDeviceListChanged: Removed the current video track.');
}
}
promises.push(
mediaDeviceHelper.createLocalTracksAfterDeviceListChanged(
// When the local audio is muted and a preferred device is connected, update the settings and remove the track
// from the conference. A new track will be created and replaced when the user unmutes their mic.
if (requestedInput.audio && this.isLocalAudioMuted()) {
APP.store.dispatch(updateSettings({
micDeviceId: newDevices.audioinput
}));
requestedInput.audio = false;
delete newDevices.audioinput;
// Remove the track from the conference.
if (localAudio) {
await this.useAudioStream(null);
logger.debug('_onDeviceListChanged: Removed the current audio track.');
}
}
// Create the tracks and replace them only if the user is unmuted.
if (requestedInput.audio || requestedInput.video) {
let tracks = [];
try {
tracks = await mediaDeviceHelper.createLocalTracksAfterDeviceListChanged(
createLocalTracksF,
newDevices.videoinput,
hasDefaultMicChanged
? getDefaultDeviceId(APP.store.getState(), 'audioInput')
: newDevices.audioinput)
.then(tracks => {
// If audio or video muted before, or we unplugged current
// device and selected new one, then mute new track.
const muteSyncPromises = tracks.map(track => {
if ((track.isVideoTrack() && videoWasMuted)
|| (track.isAudioTrack() && audioWasMuted)) {
return track.mute();
}
: newDevices.audioinput);
} catch (error) {
logger.error(`Track creation failed on device change, ${error}`);
return Promise.resolve();
});
return Promise.reject(error);
}
return Promise.all(muteSyncPromises)
.then(() =>
Promise.all(Object.keys(requestedInput).map(mediaType => {
if (requestedInput[mediaType]) {
const useStream
= mediaType === 'audio'
? this.useAudioStream.bind(this)
: this.useVideoStream.bind(this);
const track = tracks.find(t => t.getType() === mediaType) || null;
// Use the new stream or null if we failed to obtain it.
return useStream(track)
.then(() => {
if (track?.isAudioTrack() && hasDefaultMicChanged) {
// workaround for the default device to be shown as selected in the
// settings even when the real device id was passed to gUM because of
// the above mentioned chrome bug.
track._realDeviceId = track.deviceId = 'default';
}
mediaType === 'audio'
? this._updateAudioDeviceId()
: this._updateVideoDeviceId();
});
}
return Promise.resolve();
})));
})
.then(() => {
// Log and sync known mute state.
if (audioWasMuted) {
sendAnalytics(createTrackMutedEvent(
'audio',
'device list changed'));
logger.log('Audio mute: device list changed');
muteLocalAudio(true);
}
if (!this.isSharingScreen && videoWasMuted) {
sendAnalytics(createTrackMutedEvent(
'video',
'device list changed'));
logger.log('Video mute: device list changed');
muteLocalVideo(true);
}
}));
for (const track of tracks) {
if (track.isAudioTrack()) {
promises.push(
this.useAudioStream(track)
.then(() => {
hasDefaultMicChanged && (track._realDeviceId = track.deviceId = 'default');
this._updateAudioDeviceId();
}));
} else {
promises.push(
this.useVideoStream(track)
.then(() => {
this._updateVideoDeviceId();
}));
}
}
}
return Promise.all(promises)
.then(() => {

101
config.js
View File

@@ -79,11 +79,6 @@ var config = {
// This is useful when the client runs on a host with limited resources.
// noAutoPlayVideo: false,
// Whether to use fake constraints (height: 99999, width: 99999) when calling getDisplayMedia on
// Chromium based browsers. This is intended as a workaround for
// https://bugs.chromium.org/p/chromium/issues/detail?id=1056311
// setScreenSharingResolutionConstraints: true,
// Enable callstats only for a percentage of users.
// This takes a value between 0 and 100 which determines the probability for
// the callstats to be enabled.
@@ -262,17 +257,6 @@ var config = {
// applied locally. FIXME: having these 2 options is confusing.
// startWithVideoMuted: false,
// If set to true, prefer to use the H.264 video codec (if supported).
// Note that it's not recommended to do this because simulcast is not
// supported when using H.264. For 1-to-1 calls this setting is enabled by
// default and can be toggled in the p2p section.
// This option has been deprecated, use preferredCodec under videoQuality section instead.
// preferH264: true,
// If set to true, disable H.264 video codec by stripping it out of the
// SDP.
// disableH264: false,
// Desktop sharing
// Optional desktop sharing frame rate options. Default value: min:5, max:5.
@@ -434,12 +418,6 @@ var config = {
// 90: 2,
// },
// Provides a way to translate the legacy bridge signaling messages, 'LastNChangedEvent',
// 'SelectedEndpointsChangedEvent' and 'ReceiverVideoConstraint' into the new 'ReceiverVideoConstraints' message
// that invokes the new bandwidth allocation algorithm in the bridge which is described here
// - https://github.com/jitsi/jitsi-videobridge/blob/master/doc/allocation.md.
// useNewBandwidthAllocationStrategy: false,
// Specify the settings for video quality optimizations on the client.
// videoQuality: {
// // Provides a way to prevent a video codec from being negotiated on the JVB connection. The codec specified
@@ -580,9 +558,19 @@ var config = {
// Require users to always specify a display name.
// requireDisplayName: true,
// DEPRECATED! Use 'welcomePage.disabled' instead.
// Whether to use a welcome page or not. In case it's false a random room
// will be joined when no room is specified.
enableWelcomePage: true,
// enableWelcomePage: true,
// Configs for welcome page.
// welcomePage: {
// // Whether to disable welcome page. In case it's disabled a random room
// // will be joined when no room is specified.
// disabled: false,
// // If set,landing page will redirect to this URL.
// customUrl: ''
// },
// Disable app shortcuts that are registered upon joining a conference
// disableShortcuts: false,
@@ -701,7 +689,6 @@ var config = {
// 'chat',
// 'closedcaptions',
// 'desktop',
// 'dock-iframe',
// 'download',
// 'embedmeeting',
// 'etherpad',
@@ -729,7 +716,6 @@ var config = {
// 'stats',
// 'tileview',
// 'toggle-camera',
// 'undock-iframe',
// 'videoquality',
// 'whiteboard',
// ],
@@ -915,18 +901,10 @@ var config = {
// If not set, the effective value is 'all'.
// iceTransportPolicy: 'all',
// If set to true, it will prefer to use H.264 for P2P calls (if H.264
// is supported). This setting is deprecated, use preferredCodec instead.
// preferH264: true,
// Provides a way to set the video codec preference on the p2p connection. Acceptable
// codec values are 'VP8', 'VP9' and 'H264'.
// preferredCodec: 'H264',
// If set to true, disable H.264 video codec by stripping it out of the
// SDP. This setting is deprecated, use disabledCodec instead.
// disableH264: false,
// Provides a way to prevent a video codec from being negotiated on the p2p connection.
// disabledCodec: '',
@@ -1083,10 +1061,67 @@ var config = {
// use only.
// _desktopSharingSourceDevice: 'sample-id-or-label',
// DEPRECATED! Use deeplinking.disabled instead.
// If true, any checks to handoff to another application will be prevented
// and instead the app will continue to display in the current browser.
// disableDeepLinking: false,
// The deeplinking config.
// For information about the properties of
// deeplinking.[ios/android].dynamicLink check:
// https://firebase.google.com/docs/dynamic-links/create-manually
// deeplinking: {
//
// // The desktop deeplinking config.
// desktop: {
// appName: 'Jitsi Meet'
// },
// // If true, any checks to handoff to another application will be prevented
// // and instead the app will continue to display in the current browser.
// disabled: false,
// // whether to hide the logo on the deep linking pages.
// hideLogo: false,
// // whether to show deeplinking image.
// showImage: false,
// // The ios deeplinking config.
// ios: {
// appName: 'Jitsi Meet',
// // Specify mobile app scheme for opening the app from the mobile browser.
// appScheme: 'org.jitsi.meet',
// // Custom URL for downloading ios mobile app.
// downloadLink: 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905',
// dynamicLink: {
// apn: 'org.jitsi.meet',
// appCode: 'w2atb',
// customDomain: undefined,
// ibi: 'com.atlassian.JitsiMeet.ios',
// isi: '1165103905'
// }
// },
// // The android deeplinking config.
// android: {
// appName: 'Jitsi Meet',
// // Specify mobile app scheme for opening the app from the mobile browser.
// appScheme: 'org.jitsi.meet',
// // Custom URL for downloading android mobile app.
// downloadLink: 'https://play.google.com/store/apps/details?id=org.jitsi.meet',
// // Android app package name.
// appPackage: 'org.jitsi.meet',
// fDroidUrl: 'https://f-droid.org/en/packages/org.jitsi.meet/',
// dynamicLink: {
// apn: 'org.jitsi.meet',
// appCode: 'w2atb',
// customDomain: undefined,
// ibi: 'com.atlassian.JitsiMeet.ios',
// isi: '1165103905'
// }
// }
// },
// A property to disable the right click context menu for localVideo
// the menu has option to flip the locally seen video for local presentations
// disableLocalVideoFlip: false,

View File

@@ -126,6 +126,12 @@ form {
background-size: contain;
}
.leftwatermarknomargin {
background-position: center left;
background-repeat: no-repeat;
background-size: contain;
}
.rightwatermark {
right: 32px;
top: 32px;

View File

@@ -121,13 +121,6 @@ ol.poll-result-list {
display: flex;
}
.poll-dragged {
opacity: 0.5;
* {
cursor: grabbing !important;
}
}
.poll-question {
font-size: 16px;
font-weight: 600;

View File

@@ -170,8 +170,9 @@ $welcomePageHeaderPaddingBottom: 0px;
$welcomePageHeaderTitleMaxWidth: initial;
$welcomePageHeaderTextAlign: center;
$welcomePageHeaderContainerMarginTop: 104px;
$welcomePageHeaderContainerDisplay: flex;
$welcomePageHeaderContainerMargin: 104px 32px 0 32px;
$welcomePageHeaderContainerMargin: $welcomePageHeaderContainerMarginTop auto 0;
$welcomePageHeaderTextTitleMarginBottom: 0;
$welcomePageHeaderTextTitleFontSize: 42px;

View File

@@ -29,6 +29,16 @@ body.welcome-page {
flex-direction: column;
margin: $welcomePageHeaderContainerMargin;
z-index: $zindex2;
align-items: center;
position: relative;
max-width: 688px;
}
.header-watermark-container {
position: absolute;
width: 100%;
height: 100%;
margin-top: calc(20px - #{$welcomePageHeaderContainerMarginTop});
}
.header-text-title {
@@ -123,16 +133,11 @@ body.welcome-page {
max-width: calc(100% - 40px);
padding: 16px 0 39px 0;
width: $welcomePageEnterRoomWidth;
text-align: center;
p {
color: $welcomePageDescriptionColor;
float: left;
text-align: $welcomePageHeaderTextAlign;
a {
color: inherit;
font-weight: 600;
}
a {
color: inherit;
font-weight: 600;
}
}
}
@@ -200,8 +205,8 @@ body.welcome-page {
color: $welcomePageDescriptionColor;
padding: 4px;
position: absolute;
top: 32px;
right: 32px;
top: calc(35px - #{$welcomePageHeaderContainerMarginTop});
right: 0;
z-index: $zindex2;
* {
@@ -224,6 +229,11 @@ body.welcome-page {
width: $welcomePageWatermarkWidth;
height: $welcomePageWatermarkHeight;
}
.watermark.leftwatermarknomargin {
width: $welcomePageWatermarkWidth;
height: $welcomePageWatermarkHeight;
}
}
&.without-content {
@@ -242,10 +252,17 @@ body.welcome-page {
padding-top: 40px;
}
.welcome-card-row {
.welcome-card-column {
display: flex;
justify-content: center;
padding: 0 32px;
flex-direction: column;
align-items: center;
max-width: 688px;
margin: auto;
> div {
margin-bottom: 16px;
}
}
.welcome-card-text {
@@ -253,7 +270,7 @@ body.welcome-page {
}
.welcome-card {
width: 49%;
width: 100%;
border-radius: 8px;
&--dark {
@@ -268,10 +285,6 @@ body.welcome-page {
&--grey {
background: #F2F3F4;
}
&--shadow {
box-shadow: 0px 4px 30px rgba(0, 0, 0, 0.15);
}
}
.welcome-footer {

View File

@@ -2,7 +2,8 @@ $sidePanelWidth: 300px;
.prejoin-third-party {
flex-direction: column-reverse;
z-index: auto;
.content {
height: auto;
margin: 0 auto;

View File

@@ -50,7 +50,7 @@
* Override default InlineDialog behaviour, since it does not play nicely with relative widths
*/
& > div:nth-child(2) {
background: #fff;
background: #E0E0E0;
padding: 0;
position: absolute !important;
width: 100%;

View File

@@ -176,6 +176,10 @@ case "$1" in
fi
# Fixes multi-stream flags to workaround problem with mobile joining a multi-stream call with multi-stream disabled
FIX_MSG="//Enables multi-stream, do not delete me"
if ! grep -q "^${FIX_MSG}" $JITSI_MEET_CONFIG; then
sed -i "s#config.flags.sourceNameSignaling#${FIX_MSG}\nconfig.flags = config.flags || {};\nconfig.flags.sourceNameSignaling#g" $JITSI_MEET_CONFIG
fi
if ! grep -q "^config.flags.sourceNameSignaling*" $JITSI_MEET_CONFIG; then
echo "config.flags.sourceNameSignaling = true;" >> $JITSI_MEET_CONFIG
fi

View File

@@ -15,6 +15,17 @@ upstream jvb1 {
server 127.0.0.1:9090;
keepalive 2;
}
map $arg_vnode $prosody_node {
default prosody;
v1 v1;
v2 v2;
v3 v3;
v4 v4;
v5 v5;
v6 v6;
v7 v7;
v8 v8;
}
server {
listen 80;
listen [::]:80;
@@ -95,7 +106,7 @@ server {
# BOSH
location = /http-bind {
proxy_pass http://prosody/http-bind?prefix=$prefix&$args;
proxy_pass http://$prosody_node/http-bind?prefix=$prefix&$args;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
@@ -104,7 +115,7 @@ server {
# xmpp websockets
location = /xmpp-websocket {
proxy_pass http://prosody/xmpp-websocket?prefix=$prefix&$args;
proxy_pass http://$prosody_node/xmpp-websocket?prefix=$prefix&$args;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

3
globals.d.ts vendored
View File

@@ -13,6 +13,8 @@ declare global {
keyboardshortcut: {
registerShortcut: Function;
unregisterShortcut: Function;
openDialog: Function;
enable: Function;
}
};
const interfaceConfig: any;
@@ -22,6 +24,7 @@ declare global {
JITSI_MEET_LITE_SDK?: boolean;
interfaceConfig?: any;
JitsiMeetJS?: any;
JitsiMeetElectron?: any;
}
const config: IConfig;

2
globals.native.d.ts vendored
View File

@@ -23,6 +23,8 @@ interface IWindow {
onerror: (event: string, source: any, lineno: any, colno: any, e: Error) => void;
onunhandledrejection: (event: any) => void;
setInterval: typeof setInterval;
clearInterval: typeof clearInterval;
setTimeout: typeof setTimeout;
clearTimeout: typeof clearTimeout;
setImmediate: typeof setImmediate;

View File

@@ -76,11 +76,6 @@ var interfaceConfig = {
GENERATE_ROOMNAMES_ON_WELCOME_PAGE: true,
/**
* Hide the logo on the deep linking pages.
*/
HIDE_DEEP_LINKING_LOGO: false,
/**
* Hide the invite prompt in the header when alone in the meeting.
*/
@@ -108,23 +103,6 @@ var interfaceConfig = {
*/
MOBILE_APP_PROMO: true,
/**
* Specify custom URL for downloading android mobile app.
*/
MOBILE_DOWNLOAD_LINK_ANDROID: 'https://play.google.com/store/apps/details?id=org.jitsi.meet',
/**
* Specify custom URL for downloading f droid app.
*/
MOBILE_DOWNLOAD_LINK_F_DROID: 'https://f-droid.org/en/packages/org.jitsi.meet/',
/**
* Specify URL for downloading ios mobile app.
*/
MOBILE_DOWNLOAD_LINK_IOS: 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905',
NATIVE_APP_NAME: 'Jitsi Meet',
// Names of browsers which should show a warning stating the current browser
// has a suboptimal experience. Browsers which are not listed as optimal or
// unsupported are considered suboptimal. Valid values are:
@@ -159,7 +137,6 @@ var interfaceConfig = {
*/
SHOW_CHROME_EXTENSION_BANNER: false,
SHOW_DEEP_LINKING_IMAGE: false,
SHOW_JITSI_WATERMARK: true,
SHOW_POWERED_BY: false,
SHOW_PROMOTIONAL_CLOSE_PAGE: false,
@@ -200,6 +177,33 @@ var interfaceConfig = {
*/
// TILE_VIEW_MAX_COLUMNS: 5,
// List of undocumented settings
/**
INDICATOR_FONT_SIZES
PHONE_NUMBER_REGEX
*/
// -----------------DEPRECATED CONFIGS BELOW THIS LINE-----------------------------
/**
* Specify URL for downloading ios mobile app.
*/
// MOBILE_DOWNLOAD_LINK_IOS: 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905',
/**
* Specify custom URL for downloading android mobile app.
*/
// MOBILE_DOWNLOAD_LINK_ANDROID: 'https://play.google.com/store/apps/details?id=org.jitsi.meet',
// SHOW_DEEP_LINKING_IMAGE: false,
/**
* Specify mobile app scheme for opening the app from the mobile browser.
*/
// APP_SCHEME: 'org.jitsi.meet',
// NATIVE_APP_NAME: 'Jitsi Meet',
/**
* Specify Firebase dynamic link properties for the mobile apps.
*/
@@ -212,22 +216,19 @@ var interfaceConfig = {
// },
/**
* Specify mobile app scheme for opening the app from the mobile browser.
* Hide the logo on the deep linking pages.
*/
// APP_SCHEME: 'org.jitsi.meet',
// HIDE_DEEP_LINKING_LOGO: false,
/**
* Specify the Android app package name.
*/
// ANDROID_APP_PACKAGE: 'org.jitsi.meet',
// List of undocumented settings
/**
INDICATOR_FONT_SIZES
PHONE_NUMBER_REGEX
*/
// -----------------DEPRECATED CONFIGS BELOW THIS LINE-----------------------------
* Specify custom URL for downloading f droid app.
*/
// MOBILE_DOWNLOAD_LINK_F_DROID: 'https://f-droid.org/en/packages/org.jitsi.meet/',
// Connection indicators (
// CONNECTION_INDICATOR_AUTO_HIDE_ENABLED,

View File

@@ -13,14 +13,14 @@ PODS:
- CocoaLumberjack/Core (= 3.7.2)
- CocoaLumberjack/Core (3.7.2)
- DoubleConversion (1.1.6)
- FBLazyVector (0.68.4)
- FBReactNativeSpec (0.68.4):
- FBLazyVector (0.68.5)
- FBReactNativeSpec (0.68.5):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.68.4)
- RCTTypeSafety (= 0.68.4)
- React-Core (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- RCTRequired (= 0.68.5)
- RCTTypeSafety (= 0.68.5)
- React-Core (= 0.68.5)
- React-jsi (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- Firebase/Analytics (8.15.0):
- Firebase/Core
- Firebase/Core (8.15.0):
@@ -163,201 +163,201 @@ PODS:
- DoubleConversion
- fmt (~> 6.2.1)
- glog
- RCTRequired (0.68.4)
- RCTTypeSafety (0.68.4):
- FBLazyVector (= 0.68.4)
- RCTRequired (0.68.5)
- RCTTypeSafety (0.68.5):
- FBLazyVector (= 0.68.5)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.68.4)
- React-Core (= 0.68.4)
- React (0.68.4):
- React-Core (= 0.68.4)
- React-Core/DevSupport (= 0.68.4)
- React-Core/RCTWebSocket (= 0.68.4)
- React-RCTActionSheet (= 0.68.4)
- React-RCTAnimation (= 0.68.4)
- React-RCTBlob (= 0.68.4)
- React-RCTImage (= 0.68.4)
- React-RCTLinking (= 0.68.4)
- React-RCTNetwork (= 0.68.4)
- React-RCTSettings (= 0.68.4)
- React-RCTText (= 0.68.4)
- React-RCTVibration (= 0.68.4)
- React-callinvoker (0.68.4)
- React-Codegen (0.68.4):
- FBReactNativeSpec (= 0.68.4)
- RCTRequired (= 0.68.5)
- React-Core (= 0.68.5)
- React (0.68.5):
- React-Core (= 0.68.5)
- React-Core/DevSupport (= 0.68.5)
- React-Core/RCTWebSocket (= 0.68.5)
- React-RCTActionSheet (= 0.68.5)
- React-RCTAnimation (= 0.68.5)
- React-RCTBlob (= 0.68.5)
- React-RCTImage (= 0.68.5)
- React-RCTLinking (= 0.68.5)
- React-RCTNetwork (= 0.68.5)
- React-RCTSettings (= 0.68.5)
- React-RCTText (= 0.68.5)
- React-RCTVibration (= 0.68.5)
- React-callinvoker (0.68.5)
- React-Codegen (0.68.5):
- FBReactNativeSpec (= 0.68.5)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.68.4)
- RCTTypeSafety (= 0.68.4)
- React-Core (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-Core (0.68.4):
- RCTRequired (= 0.68.5)
- RCTTypeSafety (= 0.68.5)
- React-Core (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- React-Core (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.68.4)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-Core/Default (= 0.68.5)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/CoreModulesHeaders (0.68.4):
- React-Core/CoreModulesHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/Default (0.68.4):
- React-Core/Default (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/DevSupport (0.68.4):
- React-Core/DevSupport (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.68.4)
- React-Core/RCTWebSocket (= 0.68.4)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-jsinspector (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-Core/Default (= 0.68.5)
- React-Core/RCTWebSocket (= 0.68.5)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-jsinspector (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTActionSheetHeaders (0.68.4):
- React-Core/RCTActionSheetHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTAnimationHeaders (0.68.4):
- React-Core/RCTAnimationHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTBlobHeaders (0.68.4):
- React-Core/RCTBlobHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTImageHeaders (0.68.4):
- React-Core/RCTImageHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTLinkingHeaders (0.68.4):
- React-Core/RCTLinkingHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTNetworkHeaders (0.68.4):
- React-Core/RCTNetworkHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTSettingsHeaders (0.68.4):
- React-Core/RCTSettingsHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTTextHeaders (0.68.4):
- React-Core/RCTTextHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTVibrationHeaders (0.68.4):
- React-Core/RCTVibrationHeaders (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-Core/RCTWebSocket (0.68.4):
- React-Core/RCTWebSocket (0.68.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.68.4)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-Core/Default (= 0.68.5)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsiexecutor (= 0.68.5)
- React-perflogger (= 0.68.5)
- Yoga
- React-CoreModules (0.68.4):
- React-CoreModules (0.68.5):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/CoreModulesHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- React-RCTImage (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-cxxreact (0.68.4):
- RCTTypeSafety (= 0.68.5)
- React-Codegen (= 0.68.5)
- React-Core/CoreModulesHeaders (= 0.68.5)
- React-jsi (= 0.68.5)
- React-RCTImage (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- React-cxxreact (0.68.5):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-callinvoker (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsinspector (= 0.68.4)
- React-logger (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-runtimeexecutor (= 0.68.4)
- React-jsi (0.68.4):
- React-callinvoker (= 0.68.5)
- React-jsi (= 0.68.5)
- React-jsinspector (= 0.68.5)
- React-logger (= 0.68.5)
- React-perflogger (= 0.68.5)
- React-runtimeexecutor (= 0.68.5)
- React-jsi (0.68.5):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsi/Default (= 0.68.4)
- React-jsi/Default (0.68.4):
- React-jsi/Default (= 0.68.5)
- React-jsi/Default (0.68.5):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsiexecutor (0.68.4):
- React-jsiexecutor (0.68.5):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-jsinspector (0.68.4)
- React-logger (0.68.4):
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-perflogger (= 0.68.5)
- React-jsinspector (0.68.5)
- React-logger (0.68.5):
- glog
- react-native-background-timer (2.4.1):
- React-Core
@@ -385,76 +385,76 @@ PODS:
- react-native-video/Video (6.0.0-alpha.1):
- PromisesSwift
- React-Core
- react-native-webrtc (1.106.1):
- react-native-webrtc (106.0.1):
- JitsiWebRTC (~> 106.0.0)
- React-Core
- react-native-webview (11.15.1):
- React-Core
- React-perflogger (0.68.4)
- React-RCTActionSheet (0.68.4):
- React-Core/RCTActionSheetHeaders (= 0.68.4)
- React-RCTAnimation (0.68.4):
- React-perflogger (0.68.5)
- React-RCTActionSheet (0.68.5):
- React-Core/RCTActionSheetHeaders (= 0.68.5)
- React-RCTAnimation (0.68.5):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/RCTAnimationHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTBlob (0.68.4):
- RCTTypeSafety (= 0.68.5)
- React-Codegen (= 0.68.5)
- React-Core/RCTAnimationHeaders (= 0.68.5)
- React-jsi (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- React-RCTBlob (0.68.5):
- RCT-Folly (= 2021.06.28.00-v2)
- React-Codegen (= 0.68.4)
- React-Core/RCTBlobHeaders (= 0.68.4)
- React-Core/RCTWebSocket (= 0.68.4)
- React-jsi (= 0.68.4)
- React-RCTNetwork (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTImage (0.68.4):
- React-Codegen (= 0.68.5)
- React-Core/RCTBlobHeaders (= 0.68.5)
- React-Core/RCTWebSocket (= 0.68.5)
- React-jsi (= 0.68.5)
- React-RCTNetwork (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- React-RCTImage (0.68.5):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/RCTImageHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- React-RCTNetwork (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTLinking (0.68.4):
- React-Codegen (= 0.68.4)
- React-Core/RCTLinkingHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTNetwork (0.68.4):
- RCTTypeSafety (= 0.68.5)
- React-Codegen (= 0.68.5)
- React-Core/RCTImageHeaders (= 0.68.5)
- React-jsi (= 0.68.5)
- React-RCTNetwork (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- React-RCTLinking (0.68.5):
- React-Codegen (= 0.68.5)
- React-Core/RCTLinkingHeaders (= 0.68.5)
- React-jsi (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- React-RCTNetwork (0.68.5):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/RCTNetworkHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTSettings (0.68.4):
- RCTTypeSafety (= 0.68.5)
- React-Codegen (= 0.68.5)
- React-Core/RCTNetworkHeaders (= 0.68.5)
- React-jsi (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- React-RCTSettings (0.68.5):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/RCTSettingsHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTText (0.68.4):
- React-Core/RCTTextHeaders (= 0.68.4)
- React-RCTVibration (0.68.4):
- RCTTypeSafety (= 0.68.5)
- React-Codegen (= 0.68.5)
- React-Core/RCTSettingsHeaders (= 0.68.5)
- React-jsi (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- React-RCTText (0.68.5):
- React-Core/RCTTextHeaders (= 0.68.5)
- React-RCTVibration (0.68.5):
- RCT-Folly (= 2021.06.28.00-v2)
- React-Codegen (= 0.68.4)
- React-Core/RCTVibrationHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-runtimeexecutor (0.68.4):
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (0.68.4):
- React-Codegen (= 0.68.5)
- React-Core/RCTVibrationHeaders (= 0.68.5)
- React-jsi (= 0.68.5)
- ReactCommon/turbomodule/core (= 0.68.5)
- React-runtimeexecutor (0.68.5):
- React-jsi (= 0.68.5)
- ReactCommon/turbomodule/core (0.68.5):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-callinvoker (= 0.68.4)
- React-Core (= 0.68.4)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-logger (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-callinvoker (= 0.68.5)
- React-Core (= 0.68.5)
- React-cxxreact (= 0.68.5)
- React-jsi (= 0.68.5)
- React-logger (= 0.68.5)
- React-perflogger (= 0.68.5)
- RNCalendarEvents (2.2.0):
- React
- RNCAsyncStorage (1.17.3):
@@ -706,8 +706,8 @@ SPEC CHECKSUMS:
boost: a7c83b31436843459a1961bfd74b96033dc77234
CocoaLumberjack: b7e05132ff94f6ae4dfa9d5bce9141893a21d9da
DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
FBLazyVector: 023a2028f218d648b588348bfa9261b4914b93db
FBReactNativeSpec: 9f4902cc009389d3704ff75de2aa513dee34d5c2
FBLazyVector: 2b47ff52037bd9ae07cc9b051c9975797814b736
FBReactNativeSpec: 0e0d384ef17a33b385f13f0c7f97702c7cd17858
Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d
FirebaseAnalytics: 7761cbadb00a717d8d0939363eb46041526474fa
FirebaseCore: 5743c5785c074a794d35f2fff7ecc254a91e08b1
@@ -732,18 +732,18 @@ SPEC CHECKSUMS:
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
PromisesSwift: 99fddfe4a0ec88a56486644c0da106694c92a604
RCT-Folly: 4d8508a426467c48885f1151029bc15fa5d7b3b8
RCTRequired: e6003505912d056f21f64465063cf4b79418f2b9
RCTTypeSafety: d7ef4745c8d9c9faa65c26b4b6230fc5cd4c4424
React: 6692c30fb74ab29078b25c31c9841d863e08cdd9
React-callinvoker: fe2b234fa518d8bb7600707c536ab0a3e1f5edba
React-Codegen: 9964bb2422c7014894182ac50068caae05f68551
React-Core: a07bcd2f15ff93cddc9ceb07eddeec3d2ff8d990
React-CoreModules: 7fb4ee0fc35ad2b7daf775f0ef6309efdd8d3d82
React-cxxreact: 51a8058a35a2f02ad4175334a7cd24aa5558ced4
React-jsi: 69b974b418d2658a3f1799903be7cbcb8ac59755
React-jsiexecutor: 4f35a29798ba9d0d892a84001d11f626688dbb8e
React-jsinspector: 6f75220cd4b6020976d340ab21c63458dd3cad9e
React-logger: 7013d2499df6346e6a72802d4084badaaa82543b
RCTRequired: 0f06b6068f530932d10e1a01a5352fad4eaacb74
RCTTypeSafety: b0ee81f10ef1b7d977605a2b266823dabd565e65
React: 3becd12bd51ea8a43bdde7e09d0f40fba7820e03
React-callinvoker: 11abfff50e6bf7a55b3a90b4dc2187f71f224593
React-Codegen: f8946ce0768fb8e92e092e30944489c4b2955b2d
React-Core: 203cdb6ee2657b198d97d41031c249161060e6ca
React-CoreModules: 6eb0c06a4a223fde2cb6a8d0f44f58b67e808942
React-cxxreact: afb0c6c07d19adbd850747fedeac20c6832d40b9
React-jsi: 14d37a6db2af2c1a49f6f5c2e4ee667c364ae45c
React-jsiexecutor: 45c0496ca8cef6b02d9fa0274c25cf458fe91a56
React-jsinspector: eb202e43b3879aba9a14f3f65788aec85d4e1ea9
React-logger: 98f663b292a60967ebbc6d803ae96c1381183b6d
react-native-background-timer: 17ea5e06803401a379ebf1f20505b793ac44d0fe
react-native-get-random-values: 30b3f74ca34e30e2e480de48e4add2706a40ac8f
react-native-keep-awake: afad8a51dfef9fe9655a6344771be32c8596d774
@@ -755,20 +755,20 @@ SPEC CHECKSUMS:
react-native-slider: 6e9b86e76cce4b9e35b3403193a6432ed07e0c81
react-native-splash-screen: 4312f786b13a81b5169ef346d76d33bc0c6dc457
react-native-video: bb6f12a7198db53b261fefb5d609dc77417acc8b
react-native-webrtc: 4a4c31be61f88d1d3356526eebce72f462a6760e
react-native-webrtc: aa3a0fdc4c410813892b97d18947f223d3e50f0c
react-native-webview: ea4899a1056c782afa96dd082179a66cbebf5504
React-perflogger: 0b0500685176e53ea582c45179a653aa82e4ae49
React-RCTActionSheet: 38469be9d20242f9c717e43c2983e8e3e6c640c4
React-RCTAnimation: 93774f3e8857e7c3c1cbbd277056d02be4496be1
React-RCTBlob: 6d0567d7a6561b62feb8c3b1cc33b3c591ba85ab
React-RCTImage: 1006a91318a6181a0256b89d2e321b6ea0e2e6e3
React-RCTLinking: 0b2300493c879c3bcac2d4c6b0178e8d0e5e2202
React-RCTNetwork: b9a33a95703651abed92490e50396d54b7270a17
React-RCTSettings: e6464123e5b5062fc23bb5adb51188a6061e9601
React-RCTText: 188d6f0ae20cd28891f59ecad41028ee2f793757
React-RCTVibration: a67beb7d2f3c73e9b74c4124ef61b84c601be649
React-runtimeexecutor: 088723cf020113e64736a709f52719dbb359c73e
ReactCommon: 1a4f19f3b4366feec03a98bdbb200b6085c5000f
React-perflogger: 0458a87ea9a7342079e7a31b0d32b3734fb8415f
React-RCTActionSheet: 22538001ea2926dea001111dd2846c13a0730bc9
React-RCTAnimation: 732ce66878d4aa151d56a0d142b1105aa12fd313
React-RCTBlob: 9cb9e3e9a41d27be34aaf89b0e0f52c7ca415d57
React-RCTImage: 6bd16627eb9c4bb79903c4cdec7c551266ee1a5b
React-RCTLinking: e9edfc8919c8fa9a3f3c7b34362811f58a2ebba4
React-RCTNetwork: 880eccd21bbe2660a0b63da5ccba75c46eceeaa6
React-RCTSettings: 8c85d8188c97d6c6bd470af6631a6c4555b79bb3
React-RCTText: bbd275ee287730c5acbab1aadc0db39c25c5c64e
React-RCTVibration: 9819a3bf6230e4b2a99877c21268b0b2416157a1
React-runtimeexecutor: b1f1995089b90696dbc2a7ffe0059a80db5c8eb1
ReactCommon: 149e2c0acab9bac61378da0db5b2880a1b5ff59b
RNCalendarEvents: 7e65eb4a94f53c1744d1e275f7fafcfaa619f7a3
RNCAsyncStorage: 005c0e2f09575360f142d0d1f1f15e4ec575b1af
RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495
@@ -781,7 +781,7 @@ SPEC CHECKSUMS:
RNSound: 27e8268bdb0a1f191f219a33267f7e0445e8d62f
RNSVG: f3b60aeeaa81960e2e0536c3a9eef50b667ef3a9
RNWatch: dae6c858a2051dbdcfb00b9a86cf4d90400263b4
Yoga: c926c8eec5c78a788b51e6c8a604825d00d694d7
Yoga: c4d61225a466f250c35c1ee78d2d0b3d41fe661c
PODFILE CHECKSUM: e671cdcdb80fab67e305861c36bfae8ed5a5b0ef

View File

@@ -46,7 +46,7 @@ public class PiPViewCoordinator {
}
}
public let initialPositionInSuperView: Position = .lowerRightCorner
public var initialPositionInSuperView: Position = .lowerRightCorner
// Unused. Remove on the next major release.
@available(*, deprecated, message: "The PiP window size is now fixed to 150px.")

View File

@@ -1061,7 +1061,6 @@
"chat": "اظهِر/اخفِ نافذة الدردشة",
"clap": "تصفيق",
"collapse": "قلّص",
"dock": "إرساء في النافذة الرئيسية",
"document": "اظهِر/اخفِ الملف المشارك",
"download": "نزِّل التطبيق",
"embedMeeting": "ضمِّن المُلتقى",
@@ -1115,7 +1114,6 @@
"tileView": "اظهِر/اخفِ عرض العنوان",
"toggleCamera": "بدِّل الكاميرا",
"toggleFilmstrip": "بدِّل وضع الشريط السينمائي (filmstrip)",
"undock": "فك في نافذة منفصلة",
"videoblur": "استعمل/اخرج من وضع تغبيش خلفية الفيديو",
"videomute": "بدِّل وضع اخفاء الفيديو"
},
@@ -1133,7 +1131,6 @@
"closeReactionsMenu": "إغلاق قائمة ردود الفعل",
"disableNoiseSuppression": "قم بتعطيل خاصية منع الضوضاء",
"disableReactionSounds": "يمكنك تعطيل أصوات ردود الفعل لهذا المُلتقى",
"dock": "إرساء في النافذة الرئيسية",
"documentClose": "أغلق الملف المشارك",
"documentOpen": "افتح الملف المشارك",
"download": "نزِّل التطبيق",
@@ -1205,7 +1202,6 @@
"talkWhileMutedPopup": "أتحاول التحدث؟ الميكروفون لديك مكتوم.",
"tileViewToggle": "بدِّل عنوان العرض",
"toggleCamera": "بدِّل الكاميرا",
"undock": "فك في نافذة منفصلة",
"videoSettings": "اعدادات الفيديو",
"videomute": "استعمل / أوقف الكاميرا"
},

View File

@@ -1027,7 +1027,6 @@
"chat": "Obre o tanca el xat",
"clap": "Picament de mans",
"collapse": "Col·lapsa",
"dock": "Acobla a la finestra principal",
"document": "Activa o desactiva el document compartit",
"download": "Baixeu les nostres aplicacions",
"embedMeeting": "Insereix la reunió",
@@ -1079,7 +1078,6 @@
"tileView": "Activa o desactiva el mode mosaic",
"toggleCamera": "Activa o desactiva la càmera",
"toggleFilmstrip": "Mostra o amaga la cinta",
"undock": "Desacobla en una finestra separada",
"videoblur": "Activa o desactiva el desenfocament del vídeo",
"videomute": "Activa o desactiva la càmera"
},
@@ -1096,7 +1094,6 @@
"closeChat": "Tanca el xat",
"closeReactionsMenu": "Tanca el menú de reaccions",
"disableReactionSounds": "Podeu desactivar els sons de reacció per a aquesta reunió",
"dock": "Acobla en la finestra principal",
"documentClose": "Tanca el document compartit",
"documentOpen": "Obre el document compartit",
"download": "Baixeu les nostres aplicacions",
@@ -1166,7 +1163,6 @@
"talkWhileMutedPopup": "Intenteu parlar? Esteu silenciat.",
"tileViewToggle": "Activa o desactiva el mode mosaic",
"toggleCamera": "Activa o desactiva la càmera",
"undock": "Desacobla en una finestra principal",
"videoSettings": "Paràmetres de vídeo",
"videomute": "Inicia o atura la càmera"
},

View File

@@ -1060,7 +1060,6 @@
"chat": "Přepnout okno zpráv",
"clap": "Tleskat",
"collapse": "Zabalit",
"dock": "Dokovat v hlavním okně",
"document": "Přepnout sdílený dokument",
"download": "Stáhnout naše aplikace",
"embedMeeting": "Vložit setkání",
@@ -1114,7 +1113,6 @@
"tileView": "Přepnout dlaždicové zobrazení",
"toggleCamera": "Přepnout kameru",
"toggleFilmstrip": "Přepnout video náhledy",
"undock": "Oddokovat do samostatného okna",
"videoblur": "Přepnout rozmazání videa",
"videomute": "Přepnout ztišení videa"
},
@@ -1132,7 +1130,6 @@
"closeReactionsMenu": "Zavrít menu reakcí",
"disableNoiseSuppression": "Vypnout potlačení šumu",
"disableReactionSounds": "Vypnout zvuky reakcí",
"dock": "Dokovat v hlavním okně",
"documentClose": "Zavřít sdílený dokument",
"documentOpen": "Otevřít sdílený dokument",
"download": "Stáhnout naše aplikace",
@@ -1204,7 +1201,6 @@
"talkWhileMutedPopup": "Snažíte se mluvit? Máte ztišený mikrofon.",
"tileViewToggle": "Přepnout dlaždicové zobrazení",
"toggleCamera": "Přepnout kameru",
"undock": "",
"videoSettings": "",
"videomute": "Zapnout / Vypnout kameru"
},

View File

@@ -147,6 +147,7 @@
"bridgeCount": "Serverzahl: ",
"codecs": "Codecs (A/V): ",
"connectedTo": "Verbunden mit:",
"e2eeVerified": "E2EE verifiziert:",
"framerate": "Bildwiederholrate:",
"less": "Weniger anzeigen",
"localaddress": "Lokale Adresse:",
@@ -408,6 +409,10 @@
"user": "Anmeldename",
"userIdentifier": "Benutzername",
"userPassword": "Passwort",
"verifyParticipantConfirm": "Sie stimmen überein",
"verifyParticipantDismiss": "Sie stimmen nicht überein",
"verifyParticipantQuestion": "EXPERIMENTELL: Frage Person {{participantName}} ob sie den selben Inhalt in der selben Reihenfolge sieht.",
"verifyParticipantTitle": "Personsverifikation",
"videoLink": "Video-Link",
"viewUpgradeOptions": "Upgradeoptionen anzeigen",
"viewUpgradeOptionsContent": "Sie müssen Ihren Tarif erweitern, um Premium-Features wie Aufnahme, Transkription, RTMP-Streaming und mehr zu nutzen.",
@@ -437,9 +442,6 @@
"noResults": "Keine Ergebnisse :(",
"search": "GIPHY durchsuchen"
},
"helpView": {
"title": "Hilfecenter"
},
"incomingCall": {
"answer": "Antworten",
"audioCallTitle": "Eingehender Anruf",
@@ -563,7 +565,6 @@
"lobby": {
"admit": "Zulassen",
"admitAll": "Alle zulassen",
"allow": "Annehmen",
"backToKnockModeButton": "Kein Passwort, stattdessen Beitritt anfragen",
"chat": "Chat",
"dialogTitle": "Lobbymodus",
@@ -649,6 +650,8 @@
"connectedOneMember": "{{name}} nimmt am Meeting teil",
"connectedThreePlusMembers": "{{name}} und {{count}} andere Personen nehmen am Meeting teil",
"connectedTwoMembers": "{{first}} und {{second}} nehmen am Meeting teil",
"dataChannelClosed": "Schlechte Videoqualität",
"dataChannelClosedDescription": "Die Steuerungsverbindung (Bridge Channel) wurde unterbrochen, daher ist die Videoqulität auf die schlechteste Stufe limitiert.",
"disconnected": "getrennt",
"displayNotifications": "Benachrichtigungen anzeigen für",
"focus": "Konferenzleitung",
@@ -709,6 +712,8 @@
"reactionSoundsForAll": "Interaktionstöne für alle deaktivieren",
"screenShareNoAudio": "Die Option \"Audio freigeben\" wurde bei der Auswahl des Fensters nicht ausgewählt.",
"screenShareNoAudioTitle": "Share audio was not checked",
"screenSharingAudioOnlyDescription": "Durch die Bildschirmfreigabe wird der Modus \"Beste Leistung\" beeinflusst und daher mehr Datenrate benötigt.",
"screenSharingAudioOnlyTitle": "Modus \"Beste Leistung\"",
"selfViewTitle": "Sie können die eigene Ansicht immer in den Einstellungen reaktivieren",
"somebody": "Jemand",
"startSilentDescription": "Treten Sie dem Meeting noch einmal bei, um Ihr Audio zu aktivieren",
@@ -858,9 +863,6 @@
"rejected": "Abgelehnt",
"ringing": "Es klingelt …"
},
"privacyView": {
"title": "Datenschutz"
},
"profile": {
"avatar": "Benutzerbild",
"setDisplayNameLabel": "Anzeigename festlegen",
@@ -1003,6 +1005,7 @@
"displayName": "Anzeigename",
"displayNamePlaceholderText": "z.B. Erika Musterfrau",
"email": "E-Mail",
"emailPlaceholderText": "email@beispiel.de",
"goTo": "Gehe zu",
"header": "Einstellungen",
"help": "Hilfe",
@@ -1011,6 +1014,7 @@
"profileSection": "Profil",
"serverURL": "Server-URL",
"showAdvanced": "Erweiterte Einstellungen anzeigen",
"startCarModeInLowBandwidthMode": "Automodus mit Datensparmodus starten",
"startWithAudioMuted": "Stumm beitreten",
"startWithVideoMuted": "Ohne Video beitreten",
"terms": "Nutzungsbedingungen",
@@ -1066,7 +1070,6 @@
"chat": "Chatfenster öffnen / schließen",
"clap": "Klatschen",
"collapse": "Einklappen",
"dock": "In Hauptfenster einbinden",
"document": "Geteiltes Dokument schließen",
"download": "Unsere Apps herunterladen",
"embedMeeting": "Konferenz einbetten",
@@ -1120,7 +1123,6 @@
"tileView": "Kachelansicht ein-/ausschalten",
"toggleCamera": "Kamera wechseln",
"toggleFilmstrip": "Miniaturansichten ein-/ausschalten",
"undock": "In eigenem Fenster anzeigen",
"videoblur": "Unscharfer Hintergrund ein-/ausschalten",
"videomute": "„Video stummschalten“ ein-/ausschalten",
"whiteboard": "Whiteboard ein-/ausschalten"
@@ -1139,7 +1141,6 @@
"closeReactionsMenu": "Interaktionsmenü schließen",
"disableNoiseSuppression": "Rauschunterdrückung deaktivieren",
"disableReactionSounds": "Sie können die Interaktionstöne für diese Konferenz deaktivieren",
"dock": "In Hauptfenster einbinden",
"documentClose": "Geteiltes Dokument schließen",
"documentOpen": "Geteiltes Dokument öffnen",
"download": "Unsere Apps herunterladen",
@@ -1213,7 +1214,6 @@
"talkWhileMutedPopup": "Versuchen Sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.",
"tileViewToggle": "Kachelansicht ein-/ausschalten",
"toggleCamera": "Kamera wechseln",
"undock": "In eigenem Fenster anzeigen",
"videoSettings": "Kameraeinstellungen",
"videomute": "Kamera starten / stoppen"
},
@@ -1294,6 +1294,7 @@
"show": "Im Vordergrund anzeigen",
"showSelfView": "Eigene Ansicht anzeigen",
"unpinFromStage": "Lösen",
"verify": "Person verifizieren",
"videoMuted": "Kamera ausgeschaltet",
"videomute": "Person hat die Kamera angehalten"
},
@@ -1361,6 +1362,7 @@
"recentList": "Verlauf",
"recentListDelete": "Eintrag löschen",
"recentListEmpty": "Ihr Konferenzverlauf ist derzeit leer. Reden Sie mit Ihrem Team und Ihre vergangenen Konferenzen landen hier.",
"recentMeetings": "Ihre letzten Konferenzen",
"reducedUIText": "Willkommen bei {{app}}!",
"roomNameAllowedChars": "Der Konferenzname sollte keines der folgenden Zeichen enthalten: ?, &, :, ', \", %, #.",
"roomname": "Konferenzname eingeben",
@@ -1369,6 +1371,7 @@
"settings": "Einstellungen",
"startMeeting": "Meeting starten",
"terms": "AGB",
"title": "Sichere, voll funktionale und komplett kostenlose Videokonferenzen"
"title": "Sichere, voll funktionale und komplett kostenlose Videokonferenzen",
"upcomingMeetings": "Ihre zukünftigen Konferenzen"
}
}

View File

@@ -365,7 +365,7 @@
"mute": "Mute or unmute your microphone",
"pushToTalk": "Press to transmit",
"raiseHand": "Raise or lower your hand",
"showSpeakerStats": "Show speaker stats",
"showSpeakerStats": "Show participants stats",
"toggleChat": "Open or close the chat",
"toggleFilmstrip": "Show or hide video thumbnails",
"toggleScreensharing": "Switch between camera and screen sharing",
@@ -579,7 +579,7 @@
"minutes": "{{count}}m",
"name": "Name",
"seconds": "{{count}}s",
"speakerStats": "Speaker Stats",
"speakerStats": "Participants Stats",
"speakerTime": "Speaker Time"
},
"startupoverlay": {
@@ -626,7 +626,7 @@
"sharedvideo": "Toggle video sharing",
"shortcuts": "Toggle shortcuts",
"show": "Show on stage",
"speakerStats": "Toggle speaker statistics",
"speakerStats": "Toggle participants statistics",
"tileView": "Toggle tile view",
"toggleCamera": "Toggle camera",
"videoblur": "",
@@ -662,7 +662,7 @@
"shareRoom": "Invite someone",
"sharedvideo": "Share video",
"shortcuts": "View shortcuts",
"speakerStats": "Speaker stats",
"speakerStats": "Participants stats",
"startScreenSharing": "Start screen sharing",
"startSubtitles": "Start subtitles",
"startvideoblur": "",

View File

@@ -1067,7 +1067,6 @@
"chat": "Otvori/Zatvori chat",
"clap": "Plješći",
"collapse": "Sklopi",
"dock": "Prikvači u glavni prozor",
"document": "Uključi/Isključi dijeljeni dokument",
"download": "Preuzmi naše aplikacije",
"embedMeeting": "Ugradi sastanak",
@@ -1121,7 +1120,6 @@
"tileView": "Uključi/Isključi pločasti prikaz",
"toggleCamera": "Uključi/Isključi kameru",
"toggleFilmstrip": "Uključi/Isključi slike videa",
"undock": "Odspoji u zasebni prozor",
"videoblur": "Uključi/Isključi zamućenje videa",
"videomute": "Pokreni/Prekini kameru",
"whiteboard": "Pokaži/Sakrij ploču za prezentacije"
@@ -1140,7 +1138,6 @@
"closeReactionsMenu": "Zatvori izbornik reakcija",
"disableNoiseSuppression": "Isključi suzbijanje šumova",
"disableReactionSounds": "Za ovaj sastanak možeš isključiti zvukove reakcija",
"dock": "Prikvači u glavni prozor",
"documentClose": "Zatvori dijeljeni dokument",
"documentOpen": "Otvori dijeljeni dokument",
"download": "Preuzmi naše aplikacije",
@@ -1214,7 +1211,6 @@
"talkWhileMutedPopup": "Pokušavaš govoriti? Tvoj zvuk je isključen.",
"tileViewToggle": "Uključi/Isključi pločasti prikaz",
"toggleCamera": "Uključi/Isključi kameru",
"undock": "Odspoji u zasebni prozor",
"videoSettings": "Videopostavke",
"videomute": "Pokreni/Prekini kameru"
},

View File

@@ -1033,7 +1033,6 @@
"chat": "chat-woknješko pokazać/schować",
"clap": "placać",
"collapse": "pomjeńšić",
"dock": "we hłownej wobrazowce fiksěrować",
"document": "dźěleny dokument začinić",
"download": "naše aplikacije downloadować ",
"embedMeeting": "konferencu integrować",
@@ -1085,7 +1084,6 @@
"tileView": "kachlicowy napohlad zapnyć/hasnyć",
"toggleCamera": "kameru měnić",
"toggleFilmstrip": "miniaturowy napohlad zapnyć/hasnyć ",
"undock": "rozwjazać",
"videoblur": "njejasny widejo zapnyć/hasnyć ",
"videomute": "„něme šaltowanje wideja zapnyć/hasnyć "
},
@@ -1102,7 +1100,6 @@
"closeChat": "chat začinić",
"closeReactionsMenu": "meni za interakcije začinić",
"disableReactionSounds": "Móžeće zwuki za interakcije za tutu konferencu deaktiwěrować.",
"dock": "fiksěrować",
"documentClose": "dźěleny dokument začinić",
"documentOpen": "dźěleny dokument wočinić",
"download": "naše aplikacije downloadować",
@@ -1172,7 +1169,6 @@
"talkWhileMutedPopup": "Spytaće Wy rěčeć? Waš mikrofon je němy.",
"tileViewToggle": " kachlicowy napohlad zapnyć/hasnyć ",
"toggleCamera": "kameru měnić",
"undock": "rozwjazać",
"videoSettings": "nastajenja za widejo",
"videomute": "kameru startować/hasnyć"
},

View File

@@ -27,6 +27,25 @@
"audioOnly": {
"audioOnly": "Alacsony sávszélesség"
},
"breakoutRooms": {
"actions": {
"add": "Pihenőszoba hozzáadása",
"autoAssign": "Automatikus hozzárendelés a pihenőszobákhoz",
"close": "Bezárás",
"join": "Csatlakozás",
"leaveBreakoutRoom": "Pihenőszoba elhagyása",
"more": "Bővebben",
"remove": "Eltávolítás",
"sendToBreakoutRoom": "Résztvevő áthelyezése ide:"
},
"defaultName": "Pihenőszoba #{{index}}",
"mainRoom": "Fő szoba",
"notifications": {
"joined": "Csatlakozva a \"{{name}}\" pihenőszobához",
"joinedMainRoom": "Csatlakozva a fő szobához",
"joinedTitle": "Pihenőszobák"
}
},
"calendarSync": {
"addMeetingURL": "Értekezlet hivatkozásának hozzáadása",
"confirmAddLink": "Hozzáadható egy Jitsi hivatkozás az eseményhez?",
@@ -46,6 +65,7 @@
"today": "Ma"
},
"chat": {
"enter": "Belépés a szobába",
"error": "Hiba: az üzenetet nem sikerült elküldeni. Hiba oka: {{error}}",
"fieldPlaceHolder": "Írja ide az üzenetét",
"messageTo": "Privát üzenet a felhasználónak: {{recipient}}",
@@ -58,14 +78,21 @@
"noMessagesMessage": "A találkozón még nincsenek üzenetek. Itt kezdhet beszélgetést!",
"privateNotice": "Privát üzenet a felhasználónak: {{recipient}}",
"sendButton": "Küldés",
"tabs": {
"chat": "Csevegés",
"polls": "Szavazás"
},
"title": "Csevegés",
"titleWithPolls": "Csevegés",
"you": "neked"
"titleWithPolls": "Csevegés és szavazás",
"you": "te"
},
"chromeExtensionBanner": {
"buttonText": "Chrome kiterjesztés telepítése",
"dontShowAgain": "Ne jelenjen meg újra",
"installExtensionText": "Kiterjesztés telepítése a Google Calendar és az Office 365 integrációjához"
"installExtensionText": "Kiterjesztés telepítése a Google Calendar és az Office 365 integrációjához",
"raiseHandAction": "Kéz felemelése",
"reactionSounds": "Hangok kikapcsolása",
"reactionSoundsForAll": "Hangok kikapcsolása mindenkinek"
},
"connectingOverlay": {
"joiningRoom": "Kapcsolódás az értekezlethez…"
@@ -189,12 +216,18 @@
"dismiss": "Elutasítás",
"displayNameRequired": "Helló! Mi a neve?",
"done": "Kész",
"enterDisplayName": "Adja meg itt a nevét",
"e2eeDescription": "A végpontok közötti titkosítás jelenleg KÍSÉRLETES. Ne feledje, hogy a végpontok közötti titkosítás bekapcsolása hatékonyan letiltja a szerveroldali szolgáltatásokat, például: telefonos részvételt. Ne feledje azt is, hogy az értekezlet csak olyan felhasználók számára működik, akik olyan böngészőkből csatlakoznak, amelyek támogatják a beilleszthető adatfolyamokat.",
"e2eeLabel": "Végpontok közötti titkosítás engedélyezése",
"embedMeeting": "Meeting beágyazása",
"enterDisplayName": "Adja meg a nevét",
"error": "Hiba",
"externalInstallationMsg": "Telepíteni kell a munkaasztal megosztására való kiterjesztést.",
"externalInstallationTitle": "Kiterjesztésre van szükség",
"goToStore": "Ugrás az alkalmazásbolthoz",
"gracefulShutdown": "Jelenleg a szolgáltatás karbantartás miatt nem elérhető. Később próbálja meg ismét.",
"grantModeratorDialog": "Biztos, hogy moderátori jogokat kíván adni a következőnek: {{participantName}}?",
"grantModeratorTitle": "Moderátori jogok megadása",
"hideShareAudioHelper": "Ne mutassa ezt az ablakot többé",
"incorrectPassword": "Helytelen felhasználói név és jelszó",
"incorrectRoomLockPassword": "Helytelen jelszó",
"inlineInstallExtension": "Telepítés azonnal",
@@ -217,21 +250,34 @@
"maxUsersLimitReached": "A lehetséges résztvevők maximális száma elérve. A konferencia tele van. Lépjen kapcsolatba az értekezlet tulajdonosával vagy próbálkozzon később!",
"maxUsersLimitReachedTitle": "A lehetséges résztvevők maximális száma elérve",
"micConstraintFailedError": "A mikrofon nem felel meg bizonyos kikötéseknek.",
"micNotFoundError": "Nem található mikrofon.",
"micNotFoundError": "A mikrofon nem található.",
"micNotSendingData": "A számítógép beállításai között kell visszahangosítani a mikrofont vagy beállítani a hangfelvétel szintjét",
"micNotSendingDataTitle": "A mikrofon le van némítva a rendszerbeállításokban",
"micPermissionDeniedError": "Nem adott engedélyt a mikrofon használatához. Csatlakozhat a beszélgetéshez, de a többiek nem fogják Önt hallani. A címsorban lévő kamera ikonnal lehet ezt helyrehozni.",
"micUnknownError": "Ismeretlen ok miatt nem lehet a mikrofont használni.",
"moderationAudioLabel": "Engedélyezze a résztvevőknek saját némításuk feloldását",
"moderationVideoLabel": "Engedélyezze a résztvevőknek saját kamerájuk elindítását",
"muteEveryoneDialog": "Valóban mindenki elnémítható? Nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja majd hangosítani.",
"muteEveryoneElseDialog": "Némítás után már nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja hangosítani.",
"muteEveryoneElseTitle": "Mindenki elnémítása, kivéve: {{whom}}?",
"muteEveryoneElsesVideoDialog": "A kamera letiltása után nem tudja újra bekapcsolni, de ők bármikor újra bekapcsolhatják.",
"muteEveryoneElsesVideoTitle": "Mindenki kamerájának tilátsa, kivéve {{whom}}?",
"muteEveryoneSelf": "önmagamat",
"muteEveryoneStartMuted": "Mindenki elnémítva kezd ezután",
"muteEveryoneTitle": "Mindenki elnémítása?",
"muteEveryonesVideoDialog": "A résztvevők bármikor be tudják kapcsolni a kamerájukat.",
"muteEveryonesVideoDialogModerationOn": "A résztvevők bármikor kérhetik videójuk bekapcsolását.",
"muteEveryonesVideoTitle": "Minden résztvevő kameráját leállítja?",
"muteParticipantBody": "Nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja majd hangosítani.",
"muteParticipantButton": "Némítás",
"muteParticipantDialog": "Valóban elnémítható ez a résztvevő? Nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja majd hangosítani.",
"muteParticipantTitle": "Elnémítható a résztvevő?",
"muteParticipantsVideoBody": "Ön nem tudja újra bekapcsolni a kamerát, de ők bármikor újra bekapcsolhatják.",
"muteParticipantsVideoButton": "Kamera leállítása",
"muteParticipantsVideoDialog": "Biztosan le akarja tiltani ennek a résztvevőnek a kameráját? Ön nem tudja újra bekapcsolni a kamerát, de ők bármikor újra bekapcsolhatják.",
"muteParticipantsVideoDialogModerationOn": "Are you sure you want to turn off this participant's camera? You won't be able to turn the camera back on and neither will they.",
"muteParticipantsVideoTitle": "Letiltja ennek a résztvevőnek a kameráját?",
"password": "Jelszó",
"passwordLabel": "Az értekezletet zárolta egy résztvevő. Csatlakozáshoz adja meg a $t(lockRoomPassword).",
"passwordNotSupported": "Az értekezlet $t(lockRoomPassword) beállítása nem támogatott.",
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nem támogatott",
@@ -249,6 +295,7 @@
"remoteControlShareScreenWarning": "Vegye figyelembe, hogy ha megnyomja az „Engedélyezés” lehetőséget, akkor megosztja a képernyőt!",
"remoteControlStopMessage": "A távoli munkamenet irányítása befejeződött!",
"remoteControlTitle": "Távoli asztal vezérlése",
"remoteUserControls": "{{username}} vezérlői",
"removePassword": "$t(lockRoomPassword) eltávolítása",
"removeSharedVideoMsg": "Valóban eltávolítható a megosztott videó?",
"removeSharedVideoTitle": "Megosztott videó eltávolítása",
@@ -267,11 +314,14 @@
"sendPrivateMessageTitle": "Privátban legyen elküldve?",
"serviceUnavailable": "Szolgáltatás nem elérhető",
"sessTerminated": "Hívás megszakadt",
"shareAudio": "Tovább",
"shareAudioTitle": "Hang megosztása",
"shareVideoLinkError": "Adjon meg egy helyes linket.",
"shareVideoTitle": "Videó megosztása",
"shareYourScreen": "Képernyő megosztása",
"shareYourScreenDisabled": "Képernyőmegosztás letiltva.",
"shareYourScreenDisabledForGuest": "Vendég nem végezhet képernyőmegosztást.",
"sharedVideoLinkPlaceholder": "YouTube link vagy közvetlen videó link",
"startLiveStreaming": "Élő közvetítés kezdése",
"startRecording": "Felvétel indítása",
"startRemoteControlErrorMessage": "Hiba történt a távoli vezérlés munkamenetének indítása közben!",
@@ -287,6 +337,7 @@
"transcribing": "Átirat készítése",
"unlockRoom": "Értekezlet $t(lockRoomPassword) eltávolítása",
"userPassword": "felhasználói jelszó",
"videoLink": "Videó link",
"yourEntireScreen": "A teljes képernyő"
},
"documentSharing": {
@@ -367,11 +418,16 @@
"showSpeakerStats": "Beszéd statisztikák megjelenítése",
"toggleChat": "Csevegés megnyitása vagy bezárása",
"toggleFilmstrip": "Videó bélyegképek megjelenítése vagy elrejtése",
"toggleParticipantsPane": "A résztvevők panel megjelenítése vagy elrejtése",
"toggleScreensharing": "Váltás kamera és képernyőmegosztás között",
"toggleShortcuts": "Gyorsbillentyűk megjelenítése vagy elrejtése",
"videoMute": "Kamera elindítása vagy leállítása",
"videoQuality": "Hívás minőségének kezelése"
},
"largeVideo": {
"screenIsShared": "Ön megosztja a képernyőjét",
"showMeWhatImSharing": "Látni szeretném mit osztok meg"
},
"liveStreaming": {
"busy": "Dolgozunk a közvetítési erőforrások felszabadításán. Kísérelje meg újra néhány perc múlva.",
"busyTitle": "Jelenleg minden közvetítő foglalt",
@@ -405,6 +461,44 @@
"unavailableTitle": "Élő közvetítés elérhetetlen",
"youtubeTerms": "YouTube szolgáltatási feltételek"
},
"lobby": {
"admit": "Engedélyezés",
"admitAll": "Mindet engedélyez",
"allow": "Engedélyez",
"backToKnockModeButton": "Csatlakozási kérelem küldése",
"chat": "Chat",
"dialogTitle": "Lobby mód",
"disableDialogContent": "A lobby mód jelenleg elérhető. Lehetőséged van csak azokat behívni a megbeszélésre, akik erre jogosultak általad. Szeretnéd kikapcsolni?",
"disableDialogSubmit": "Elutasítás",
"emailField": "Írd be az email címed",
"enableDialogPasswordField": "Jelszó megadása (választható)",
"enableDialogSubmit": "Elfogadás",
"enableDialogText": "A Lobby mód lehetővé teszi a megbeszélés védelmét azáltal, hogy csak a moderátor hivatalos jóváhagyása után engedi be az embereket.",
"enterPasswordButton": "Adja meg az értekezlet jelszavát",
"enterPasswordTitle": "Adja meg a jelszót az értekezlethez való csatlakozáshoz",
"errorMissingPassword": "Kérjük, adja meg az értekezlet jelszavát",
"invalidPassword": "Helytelen jelszó",
"joinRejectedMessage": "Csatlakozási kérelmét egy moderátor elutasította.",
"joinRejectedTitle": "Csatlakozási kérelem elutasítva.",
"joinTitle": "Csatlakozás az értekezlethez",
"joinWithPasswordMessage": "Csatlakozás jelszóval, kérjük várjon...",
"joiningMessage": "Amint valaki elfogadja kérését, csatlakoztatjuk az értekezlethez",
"joiningTitle": "Értekezlethez csatlakozás kérése...",
"joiningWithPasswordTitle": "Csatlakozás jelszóval...",
"knockButton": "Csatlakozási kérelem küldése",
"knockTitle": "Valaki szeretne csatlakozni az értekezlethez",
"nameField": "Adja meg a nevét",
"notificationLobbyAccessDenied": "{{targetParticipantName}} elutasításra került a csatlakozásod {{originParticipantName}} által",
"notificationLobbyAccessGranted": "{{targetParticipantName}} a csatlakozozásod elfogadva lett {{originParticipantName}} által",
"notificationLobbyDisabled": "Lobby tiltva lett {{originParticipantName}} által.",
"notificationLobbyEnabled": "Lobby engedélyezve lett {{originParticipantName}} által.",
"notificationTitle": "Lobby",
"passwordField": "Adja meg az értekezlet jelszavát",
"passwordJoinButton": "Csatlakozás",
"reject": "Elutasít",
"rejectAll": "Mindet elutasít",
"toggleLabel": "Lobby engedélyezése"
},
"localRecording": {
"clientState": {
"off": "Kikapcsolva",
@@ -449,11 +543,18 @@
"focus": "Konferencia fókusza",
"focusFail": "{{component}} nem elérhető újrapróbálkozás {{ms}} másodperc múlva",
"grantedTo": "Moderátori jogok biztosítva {{to}} számára!",
"hostAskedUnmute": "Kérlek hangosítsd vissza a mikrofonod.",
"invitedOneMember": "{{name}} meg lett hívva",
"invitedThreePlusMembers": "{{name}} és {{count}} másik felhasználó meg lett hívva",
"invitedTwoMembers": "{{first}} és {{second}} lett meghívva",
"kickParticipant": "{{kicked}} résztvevőt kirúgta {{kicker}}",
"leftOneMember": "{{name}} elhagyta az értekezletet",
"leftThreePlusMembers": "{{name}} és mások elhagyták az értekezletet",
"leftTwoMembers": "{{first}} és {{second}} elhagyták az értekezletet",
"localRecordingStarted": "{{name}} elkezdte rögzíteni az értekezletet.",
"localRecordingStopped": "{{name}} leállította a rögzítést.",
"me": "Én",
"moderationInEffectTitle": "A moderátor elnémította a mikrofonját",
"moderator": "Moderátori jogok biztosítva!",
"muted": "A beszélgetést elnémítva kezdte meg.",
"mutedRemotelyDescription": "Bármikor visszahangosíthatja magát, ha készen áll a beszédre. Némítsa le magát ismét, ha a felesleges zajoktól meg kívánja védeni az értekezletet.",
@@ -462,6 +563,10 @@
"newDeviceAction": "Alkalmaz",
"newDeviceAudioTitle": "Új hangeszköz észlelve",
"newDeviceCameraTitle": "Új kamera észlelve",
"noiseSuppressionFailedTitle": "Nem sikerült elindítani a zajcsökkentést",
"noiseSuppressionNoTrackDescription": "Kérjük, először kapcsolja ki a mikrofon némítását.",
"noiseSuppressionStereoDescription": "A sztereó zajcsökkentés jelenleg nem támogatott.",
"participantWantsToJoin": "Csatlakozni szeretne az értekezlethez",
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) egy másik résztvevő által eltávolítva",
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) egy másik résztvevő által beállítva",
"raisedHand": "{{name}} beszélni szeretne.",
@@ -472,9 +577,115 @@
"suboptimalExperienceTitle": "Böngészőhiba",
"unmute": "Visszahangosítás"
},
"participantsPane": {
"actions": {
"allow": "Engedélyezés a résztvevőknek, hogy:",
"allowVideo": "Videó engedélyezése",
"askUnmute": "Kérje a némítás feloldását",
"audioModeration": "A némítást feloldhassák",
"blockEveryoneMicCamera": "Block everyone's mic and camera",
"invite": "Meghívás",
"moreModerationActions": "További moderálási opciók",
"moreModerationControls": "További moderálási vezérlők",
"moreParticipantOptions": "Résztvevő további beállításai",
"mute": "Némítás",
"muteAll": "Mindenkit elnémít",
"muteEveryoneElse": "Mute everyone else",
"stopEveryonesVideo": "Mindenki videójának leállítása",
"stopVideo": "Videó leállítása",
"unblockEveryoneMicCamera": "Unblock everyone's mic and camera",
"videoModeration": "Elindíthassák a videójukat"
},
"close": "Bezár",
"header": "Résztvevők",
"headings": {
"lobby": "Lobby ({{count}})",
"participantsList": "Résztvevők ({{count}})",
"waitingLobby": "Lobby-ban várakozók ({{count}})"
},
"search": "Résztvevők keresése"
},
"passwordDigitsOnly": "Legfeljebb {{number}} szám",
"passwordSetRemotely": "egy másik résztvevő által beállítva",
"polls": {
"answer": {
"skip": "Kihagyás",
"submit": "Küldés"
},
"by": "Létrehozta: {{ name }}",
"create": {
"addOption": "Opció hozzáadása",
"answerPlaceholder": "Opció {{index}}",
"cancel": "Mégsem",
"create": "Szavazás létrehozása",
"pollOption": "Opció {{index}}",
"pollQuestion": "Szavazás kérdése",
"questionPlaceholder": "Írja le a kérdést",
"removeOption": "Opció eltávolítása",
"send": "Küldés"
},
"notification": {
"description": "Szavazás megnyitása",
"title": "Új szavazás létrehozva"
},
"results": {
"changeVote": "Módosítás",
"empty": "Még nincsenek szavazások. Indítson szavazást itt!",
"hideDetailedResults": "Részletek elrejtése",
"showDetailedResults": "Részletek",
"vote": "Szavazás"
}
},
"poweredby": "Működteti a",
"prejoin": {
"audioAndVideoError": "Hang és videó hiba:",
"audioDeviceProblem": "Hiba lépett fel az hangeszközzel",
"audioOnlyError": "Hang hiba:",
"audioTrackError": "Nem lehet a hangot rögzíteni.",
"callMe": "Hívj fel",
"callMeAtNumber": "Hívj fel ezen a számon:",
"calling": "Hívás",
"configuringDevices": "Eszköz beállítás...",
"connectedWithAudioQ": "Csak hanggal szeretne csatlakozni?",
"connection": {
"good": "Az internet kapcsolat jónak tűnik!",
"nonOptimal": "Az internet kapcsolat nem optimális",
"poor": "Az internet kapcsolat nagyon gyenge!"
},
"connectionDetails": {
"goodQuality": "Fantasztikus! A média minősége kiváló lesz."
},
"copyAndShare": "Másolom és megosztom az értekezlet linkjét",
"dialInMeeting": "Behívás az értekezletbe",
"dialInPin": "Behívás az értkezeletbe és megadom a PIN kódot:",
"dialing": "Tárcsázás",
"doNotShow": "Ne mutassa mégegyszer ezt a képernyőt",
"errorDialOut": "Nem sikerült a behívás",
"errorDialOutDisconnected": "Nem sikerült a behívás. Kapcsolat bontása",
"errorDialOutFailed": "Nem sikerült a behívás. Hiba a hívásban",
"errorDialOutStatus": "Hiba a hívás státusz megadásában",
"errorMissingName": "Kérlet add meg a neved, hogy csatlakozhass a megbeszéléshez",
"errorNoPermissions": "Engedélyeznie kell a mikrofonhoz és a kamerához való hozzáférést",
"errorStatusCode": "Hiba a hiváskor, hiba kód: {{status}}",
"errorValidation": "Hívószám validációs hiba",
"iWantToDialIn": "Hívni szeretném",
"initiated": "Hívás felépítés",
"joinAudioByPhone": "Csatlakozás telefon beszélgetéssel",
"joinMeeting": "Csatlakozás",
"joinMeetingInLowBandwidthMode": "Csatlakozás alacsony sávszélességi módban",
"joinWithoutAudio": "Csatlakozás hang nélkül",
"keyboardShortcuts": "Gyorsbillentyűk engedélyezése",
"linkCopied": "A link a vágólapra másolva",
"lookGood": "A mikrofon megfelelően működik",
"or": "vagy",
"premeeting": "Csatlakozás előtt",
"screenSharingError": "Képernyő megosztás hiba:",
"showScreen": "Csatlakozás előtti kamerakép",
"startWithPhone": "Kezdés telefonhanggal",
"videoOnlyError": "Videó hiba:",
"videoTrackError": "Nem sikerült a videó megjelenítés.",
"viewAllNumbers": "Összes szám megjelenítése"
},
"presenceStatus": {
"busy": "Foglalt",
"calling": "Hívás…",
@@ -509,13 +720,19 @@
"failedToStart": "A felvétel indítása meghiúsult",
"fileSharingdescription": "Felvétel megosztása az értekezlet résztvevőivel",
"live": "ÉLŐ",
"localRecordingNoNotificationWarning": "A felvételt nem közöljük más résztvevőkkel. Értesítenie kell velük, hogy a találkozót rögzítették.",
"localRecordingStartWarning": "A megbeszélésből való kilépés előtt feltétlenül állítsa le a felvételt, hogy elmentse azt.",
"localRecordingStartWarningTitle": "Állítsa le a felvételt a mentéshez",
"localRecordingWarning": "Győződjön meg arról, hogy az aktuális lapot választotta a megfelelő videó és hang használatához. A felvétel jelenleg 1 GB-ra van korlátozva, ami körülbelül 100 perc.",
"loggedIn": "Belépve mint {{userName}}",
"off": "Felvétel leállítva",
"offBy": "{{name}} leállította a felvételt",
"on": "Felvétel",
"onBy": "{{name}} elindította a felvételt",
"onlyRecordSelf": "Csak az én hang- és videófolyamomat rögzítse",
"pending": "Értekezlet rögzítésének előkészítése…",
"rec": "REC",
"saveLocalRecording": "Felvétel mentése helyileg (béta)",
"serviceDescription": "A felvételt a rögzítési szolgáltatás veszi fel",
"serviceName": "Felvétel szolgáltatás",
"signIn": "Belépés",
@@ -527,6 +744,12 @@
"sectionList": {
"pullToRefresh": "Húzás a frissítéshez"
},
"security": {
"about": "Hozzáadhat jelszót az értekezlethez. A résztvevőknek meg kell adniuk a jelszót, mielőtt csatlakozhatnak az értekezlethez.",
"aboutReadOnly": "A moderátor résztvevői hozzáadhatnak egy jelszót az értekezlethez. A résztvevőknek meg kell adniuk a jelszót, mielőtt csatlakozhatnak az értekezlethez.",
"header": "Biztonsági beállítások",
"insecureRoomNameWarning": "The room name is unsafe. Unwanted participants may join your conference. Consider securing your meeting using the security button."
},
"settings": {
"calendar": {
"about": "A {{appName}} naptárintegráció a naptár biztonságos elérésére szolgál, így olvasni tudja a soron következő eseményeket.",
@@ -535,8 +758,13 @@
"signedIn": "Jelenleg ehhez az címhez tartozó naptár eseményei érhetőek el: {{email}}. Alább a „szétkapcsolás” gombra kattintva lehet leállítani a naptár eseményeinek elérését.",
"title": "Naptár"
},
"desktopShareFramerate": "Képernyőmegosztás sebessége (FPS)",
"desktopShareHighFpsWarning": "A nagyobb képkockasebesség az asztali megosztásnál hatással lehet a sávszélességre. Az új beállítások érvénybe léptetéséhez újra kell indítania a képernyőmegosztást.",
"desktopShareWarning": "Az új beállítások érvénybe léptetéséhez újra kell indítania a képernyőmegosztást.",
"devices": "Eszközök",
"followMe": "Mindenki engem kövessen",
"framesPerSecond": "képkocka / másodperc",
"incomingMessage": "Bejövő üzenet",
"language": "Nyelv",
"loggedIn": "Belépve mint {{name}}",
"microphones": "Mikrofonok",
@@ -544,12 +772,22 @@
"more": "Továbbiak",
"name": "Név",
"noDevice": "Nincs",
"participantJoined": "Résztvevő csatlakozott",
"participantKnocking": "Résztvevő belépett a lobby-ba",
"participantLeft": "Résztvevő kilépett",
"playSounds": "Hangok lejátszása a következőkhöz:",
"reactions": "Meeting reakciók",
"sameAsSystem": "Rendszerhang ({{label}})",
"selectAudioOutput": "Hangkimenet",
"selectCamera": "Kamera",
"selectMic": "Mikrofon",
"selfView": "Saját kép",
"sounds": "Hangok",
"speakers": "Hangszórók",
"startAudioMuted": "Mindenki elnémítva kezd",
"startReactionsMuted": "Reakció hangok némítása mindenki számára",
"startVideoMuted": "Mindenki videó nélkül kezd",
"talkWhileMuted": "Lenémított beszéd",
"title": "Beállítások"
},
"settingsView": {
@@ -577,14 +815,23 @@
},
"speaker": "Hangszóró",
"speakerStats": {
"angry": "Mérges",
"disgusted": "Felháborodott",
"fearful": "Félelmetes",
"happy": "Boldog",
"hours": "{{count}} h",
"minutes": "{{count}} perc",
"name": "Név",
"neutral": "Semleges",
"sad": "Szomorú",
"search": "Keresés",
"seconds": "{{count}} mp",
"speakerStats": "Beszélő statisztika",
"speakerTime": "Beszélő ideje"
"speakerTime": "Beszélő ideje",
"surprised": "Meglepett"
},
"startupoverlay": {
"genericTitle": "Az értekezlethez engedélyezni kell a mikrofont és kamerát.",
"policyText": " ",
"title": "A {{app}} használni szeretné a mikrofont és a kamerát."
},
@@ -599,36 +846,49 @@
"Settings": "Beállítások átváltása",
"audioOnly": "Csak a hang átváltása",
"audioRoute": "Hangeszköz kijelölése",
"boo": "Szomorú",
"callQuality": "Videóminőség kezelése",
"cc": "Feliratok átváltása",
"chat": "Csevegés ablak átváltása",
"clap": "Taps",
"document": "Megosztott dokumentum átváltása",
"download": "Alkalmazás letöltése",
"embedMeeting": "Meeting beágyazása",
"feedback": "Visszajelzés küldése",
"fullScreen": "Teljes képernyő átváltása",
"grantModerator": "Moderátori jogok megadása",
"hangup": "Beszélgetés elhagyása",
"help": "Súgó",
"invite": "Személyek meghívása",
"kick": "Résztvevő kirúgása",
"laugh": "Nevetés",
"like": "Hüvelykujj fel",
"localRecording": "Helyi felvétel vezérlőelemeinek átváltása",
"lockRoom": "Értekezlet jelszavának átváltása",
"moreActions": "További műveltek menü átváltása",
"moreActionsMenu": "További műveltek menü",
"moreActions": "További műveletek menü átváltása",
"moreActionsMenu": "További műveletek menü",
"moreOptions": "További beállítások megjelenítése",
"mute": "Hang némításának átváltása",
"muteEveryone": "Mindenki elnémítása",
"muteEveryonesVideoStream": "Mindenki videójának leállítása",
"noiseSuppression": "Zajcsökkentés",
"participants": "Résztvevők",
"pip": "Kép és képben mód átváltása",
"privateMessage": "Privát üzenet küldése",
"profile": "Adja meg a profilját",
"raiseHand": "Kéz felemelésének átváltása",
"recording": "Felvétel átváltása",
"remoteMute": "Résztvevők némítása",
"security": "Biztonsági Beállítások",
"shareRoom": "Valaki meghívása",
"shareYourScreen": "Képernyőmegosztás átváltása",
"shareaudio": "Hang megosztása",
"sharedvideo": "Videó megosztásának átváltása",
"shortcuts": "Gyorsbillentyűk átváltása",
"show": "Megjelenítés a színpadon",
"silence": "Néma",
"speakerStats": "Beszélő statisztika átváltása",
"surprised": "Meglepett",
"tileView": "Mozaikos nézet átváltása",
"toggleCamera": "Kamera átváltása",
"toggleFilmstrip": "Filmszalag átváltása",
@@ -639,13 +899,18 @@
"audioOnlyOff": "Alacsony sávszélességű mód letiltása",
"audioOnlyOn": "Alacsony sávszélességű mód engedélyezése",
"audioRoute": "Hangeszköz kijelölése",
"audioSettings": "Hangbeállítások",
"authenticate": "Hitelesítés",
"boo": "Szomorú",
"callQuality": "Videominőség kezelése",
"chat": "Csevegés megnyitása / bezárása",
"clap": "Taps",
"closeChat": "Csevegés bezárása",
"disableReactionSounds": "Kikapcsolhatja a reakcióhangokat a Meeting-en",
"documentClose": "Megosztott dokumentum bezárása",
"documentOpen": "Megosztott dokumentum megnyitása",
"download": "Alkalmazás letöltése",
"embedMeeting": "Meeting beágyazása",
"enterFullScreen": "Teljes képernyős megtekintés",
"enterTileView": "Mozaikos nézet indítása",
"exitFullScreen": "Kilépés a teljes képernyőből",
@@ -654,10 +919,14 @@
"hangup": "Kilépés",
"help": "Súgó",
"invite": "Személyek meghívása",
"joinBreakoutRoom": "Csatlakozás a pihenőszobához",
"laugh": "Nevetés",
"leaveBreakoutRoom": "Pihenőszoba elhagyása",
"like": "Hüvelykujj fel",
"login": "Bejelentkezés",
"logout": "Kijelentkezés",
"lowerYourHand": "Kéz leengedése",
"moreActions": "További műveltek",
"moreActions": "További műveletek",
"moreOptions": "További beállítások",
"mute": "Némítás / Visszahangosítás",
"muteEveryone": "Mindenki elnémítása",
@@ -666,28 +935,42 @@
"noAudioSignalDialInDesc": "Be is tárcsázhat:",
"noAudioSignalDialInLinkDesc": "Betárcsázási számok",
"noAudioSignalTitle": "Nincs bemenet a mikrofonjáról!",
"noiseSuppression": "Zajcsökkentés",
"noisyAudioInputDesc": "Úgy tűnik, hogy ez a mikrofon zajos. Le kellene némítani vagy cserélni az eszközt.",
"noisyAudioInputTitle": "Zajosnak tűnik a mikrofonja!",
"openChat": "Csevegés megnyitása",
"participants": "Résztvevők",
"pip": "Belépés kép a képben módba",
"privateMessage": "Privát üzenet küldése",
"profile": "Adja meg a profilját",
"raiseHand": "Kéz felemelése / leengedése",
"raiseYourHand": "Kéz felemelése",
"reactionBoo": "Boo reakció küldése",
"reactionClap": "Tapsolás reakció küldése",
"reactionLaugh": "Nevetés reakció küldése",
"reactionLike": "Hüvelykujj fel reakció küldése",
"reactionSilence": "Néma arc reakció küldése",
"reactionSurprised": "Meglepett reakció küldése",
"security": "Biztonsági Beállítások",
"selectBackground": "Háttér beállítása",
"shareRoom": "Valaki meghívása",
"shareaudio": "Hang megosztása",
"sharedvideo": "Videó megosztása",
"shortcuts": "Gyorsbillentyűk megtekintése",
"silence": "Néma",
"speakerStats": "Beszélő statisztika",
"startScreenSharing": "Képernyőmegosztás kezdése",
"startSubtitles": "Feliratok kezdése",
"startvideoblur": "Háttér elhomályosítása",
"stopScreenSharing": "Képernyőmegosztás leállítása",
"stopSharedVideo": "Videó leállítása",
"stopSharedVideo": "Kamera leállítása",
"stopSubtitles": "Felirat leállítása",
"stopvideoblur": "Háttér elhomályosításának letiltása",
"surprised": "Meglepett",
"talkWhileMutedPopup": "Úgy tűnik beszélni szeretne, de le van némítva.",
"tileViewToggle": "Mozaikos nézet átváltása",
"toggleCamera": "Kamera átváltása",
"videoSettings": "Videóbeállítások",
"videomute": "Kamera indítása / leállítása"
},
"transcribing": {
@@ -725,12 +1008,15 @@
"pending": "{{displayName}} -t meghívta"
},
"videoStatus": {
"adjustFor": "Igazítsa a legjobb:",
"audioOnly": "CsH",
"audioOnlyExpanded": "Jelenleg az alacsony sávszélességű mód az aktív, vagyis csak hangot lehet fogadni és képernyőmegosztást.",
"bestPerformance": "Teljesítményhez",
"callQuality": "Videominőség",
"hd": "MF",
"hdTooltip": "Magas felbontású videó megtekintése",
"highDefinition": "Magas felbontású",
"highestQuality": "Minőséghez",
"labelTooiltipNoVideo": "Nincs videó",
"labelTooltipAudioOnly": "Alacsony sávszélességű mód aktiválva",
"ld": "AF",
@@ -738,6 +1024,7 @@
"lowDefinition": "Alacsony felbontású",
"onlyAudioAvailable": "„Csak hang” mód elérhető",
"onlyAudioSupported": "Csak a hang támogatott ebben a böngészőben.",
"performanceSettings": "Teljesítménybeállítások",
"sd": "SF",
"sdTooltip": "Szabványos felbontású videó megtekintése",
"standardDefinition": "Szabványos felbontású"
@@ -745,7 +1032,10 @@
"videothumbnail": {
"domute": "Némítás",
"domuteOthers": "Mindenki más elnémítása",
"domuteVideoOfOthers": "Mindenki más kamerájának letiltása",
"flip": "Tükrözés",
"grantModerator": "Moderátori jogok megadása",
"hideSelfView": "Saját kép elrejtése",
"kick": "Kirúgás",
"moderator": "Moderátor",
"mute": "A résztvevő le van némítva",
@@ -754,6 +1044,29 @@
"show": "Megjelenítés a színpadon",
"videomute": "A résztvevő leállította a kameráját"
},
"virtualBackground": {
"addBackground": "Háttér hozzáadása",
"apply": "Alkalmaz",
"backgroundEffectError": "Hiba a háttér effekt hozzáadásnál.",
"blur": "Elmosódott",
"deleteImage": "Delete image",
"desktopShare": "Asztal megosztása",
"desktopShareError": "Nem lehet asztalt megosztani",
"image1": "Tengerpart",
"image2": "Fehér semleges fal",
"image3": "Fehér üres szoba",
"image4": "Fekete állólámpa",
"image5": "Hegy",
"image6": "Erdő",
"image7": "Napfelkelte",
"none": "Nincs",
"pleaseWait": "Kérjük várjon...",
"removeBackground": "Háttér eltávolítása",
"slightBlur": "Enyhén elmosódott",
"title": "Virtuális háttérképek",
"uploadedImage": "Feltöltött kép {{index}}"
},
"volumeSlider": "Hangerő szabályzó",
"welcomepage": {
"accessibilityLabel": {
"join": "Koppintson a csatlakozáshoz",
@@ -771,17 +1084,20 @@
"getHelp": "Segítség kérése",
"go": "Indítás",
"goSmall": "Indítás",
"headerSubtitle": "Biztonságos és magas színvonalú konferenciák",
"info": "Információ",
"jitsiOnMobile": "Jitsi Mobil töltse le az app-ot, és indítson megbeszélést bárhonnan",
"join": "LÉTREHOZ /HOZZÁAD",
"privacy": "Adatvédelem",
"recentList": "Legutóbbi",
"recentListDelete": "Törlés",
"recentListDelete": "Lista törlés",
"recentListEmpty": "A legutóbbi lista jelenleg üres. Csevegjen a csapattal és minden előző értekezlet itt lesz megtalálható.",
"reducedUIText": "Üdvözlet a {{app}} programban!",
"roomNameAllowedChars": "Az értekezlet neve nem tartalmazhatja a következő karaktereket: ?, &, :, ', \", %, #.",
"roomname": "Adja meg a szoba nevét",
"roomnameHint": "Adja meg a kívánt nevet vagy URL-t, amelyhez csatlakozni szeretne. Bármiképp elnevezheti, csak ossza meg az értekezlet résztvevőivel, hogy ők ugyanezt a nevet tudják majd megadni.",
"sendFeedback": "Visszajelzés küldése",
"startMeeting": "Csatlakozás",
"terms": "Feltételek",
"title": "Biztonságos, maradéktalanul felszerelt és teljesen ingyenes videokonferencia"
}

View File

@@ -1067,7 +1067,6 @@
"chat": "Conversazione",
"clap": "Applaudi",
"collapse": "Riduci",
"dock": "Aggancia alla finestra principale",
"document": "Documenti condivisi",
"download": "Scarica le nostre app",
"embedMeeting": "Incorpora riunione altrove",
@@ -1121,7 +1120,6 @@
"tileView": "Vedi tutti i partecipanti, o uno solo",
"toggleCamera": "Cambia videocamera",
"toggleFilmstrip": "Pellicola",
"undock": "Sgancia in una finestra separata",
"videoblur": "Sfoca video",
"videomute": "Videocamera",
"whiteboard": "Usa lavagna"
@@ -1140,7 +1138,6 @@
"closeReactionsMenu": "Chiudi il menù reazioni",
"disableNoiseSuppression": "Interrompi riduzione rumore",
"disableReactionSounds": "Puoi disattivare i suoni delle reaction, in questa riunione",
"dock": "Aggancia nella finestra principale",
"documentClose": "Chiudi documento condiviso",
"documentOpen": "Apri documento condiviso",
"download": "Scarica le nostre app",
@@ -1214,7 +1211,6 @@
"talkWhileMutedPopup": "Stai provando a parlare? Il microfono è disattivato.",
"tileViewToggle": "Vedi tutti i partecipanti insieme, o uno solo",
"toggleCamera": "Cambia videocamera",
"undock": "Sgancia in una finestra separata",
"videoSettings": "Impostazioni video",
"videomute": "Videocamera"
},

View File

@@ -1057,7 +1057,6 @@
"chat": "Przełączanie okna rozmowy",
"clap": "Klaskanie",
"collapse": "Zwiń",
"dock": "Zadokuj w głównym oknie",
"document": "Przełączanie wspólnego dokumentu",
"download": "Pobierz nasze aplikacje",
"embedMeeting": "Osadź spotkanie",
@@ -1109,7 +1108,6 @@
"tileView": "Przełącz widok kafelkowy",
"toggleCamera": "Przełączanie kamery",
"toggleFilmstrip": "Przełącz filmstrip",
"undock": "Oddokuj w osobnym oknie",
"videoblur": "Przełącz rozmazanie obrazu",
"videomute": "Przełączanie wyciszonego filmu wideo"
},
@@ -1127,7 +1125,6 @@
"closeReactionsMenu": "Zamknij reakcje",
"disableNoiseSuppression": "Wyłącz tłumienie szumów",
"disableReactionSounds": "Wyłącz dźwięki reakcji dla tego spotkania",
"dock": "Zadokuj w głównym oknie",
"documentClose": "Zamknij udostępniony dokument",
"documentOpen": "Otwarty udostępniony dokument",
"download": "Pobierz nasze aplikacje",
@@ -1197,7 +1194,6 @@
"talkWhileMutedPopup": "Próbujesz mówić? Jesteś wyciszony.",
"tileViewToggle": "Przełączanie kafelkowego widoku",
"toggleCamera": "Przełączanie kamery",
"undock": "Oddokuj w osobnym oknie",
"videoSettings": "Ustawienia video",
"videomute": "Włącz / Wyłącz kamerę"
},

View File

@@ -1067,7 +1067,6 @@
"chat": "Abrir / Fechar chat",
"clap": "Aplausos",
"collapse": "Colapsar",
"dock": "Ancorar na janela principal",
"document": "Mudar para documento partilhado",
"download": "Descarregar as nossas aplicações",
"embedMeeting": "Reunião incorporada",
@@ -1121,7 +1120,6 @@
"tileView": "Mudar a vista em quadrícula",
"toggleCamera": "Mudar a câmara",
"toggleFilmstrip": "Mudar a película de filme",
"undock": "Desancorar numa janela separada",
"videoblur": "Mudar o desfoque de vídeo",
"videomute": "Iniciar / Parar câmara",
"whiteboard": "Mostrar / Esconder quadro branco"
@@ -1140,7 +1138,6 @@
"closeReactionsMenu": "Fechar menu de reações",
"disableNoiseSuppression": "Desativar a supressão de ruído",
"disableReactionSounds": "Pode desactivar os sons de reacção para esta reunião",
"dock": "Ancorar na janela principal",
"documentClose": "Fechar documento partilhado",
"documentOpen": "Abrir documento partilhado",
"download": "Descarregar as nossas aplicações",
@@ -1214,7 +1211,6 @@
"talkWhileMutedPopup": "Está a tentar falar? Está com o microfone desativado.",
"tileViewToggle": "Mudar para vista em quadrícula",
"toggleCamera": "Mudar a câmara",
"undock": "Desancorar numa janela separada",
"videoSettings": "Definições de vídeo",
"videomute": "Iniciar / Parar câmara"
},

View File

@@ -1067,7 +1067,6 @@
"chat": "Öppna eller stäng chattfönster",
"clap": "Klappa",
"collapse": "Kollaps",
"dock": "Docka i huvudfönstret",
"document": "Öppna eller stäng delat dokument",
"download": "Ladda ner app",
"embedMeeting": "Bädda in möte",
@@ -1121,7 +1120,6 @@
"tileView": "Öppna eller stäng panelvyn",
"toggleCamera": "Växla kamera",
"toggleFilmstrip": "Växla filmremsa",
"undock": "Lossa till ett separat fönster",
"videoblur": "Växla videooskärpa",
"videomute": "Sätt på eller stäng av mikrofonen",
"whiteboard": "Visa/dölj whiteboardtavlan"
@@ -1140,7 +1138,6 @@
"closeReactionsMenu": "Stäng meny för reaktioner",
"disableNoiseSuppression": "Inaktivera brusreducering",
"disableReactionSounds": "Du kan inaktivera reaktionsljud för det här mötet",
"dock": "Docka i huvudfönstret",
"documentClose": "Stäng delat dokument",
"documentOpen": "Öppna delat dokument",
"download": "Ladda ner vår app",
@@ -1214,7 +1211,6 @@
"talkWhileMutedPopup": "Försöker du tala? Din mikrofon är tystad.",
"tileViewToggle": "Öppna eller stäng panelvyn",
"toggleCamera": "Byta kamera",
"undock": "Lossa till ett separat fönster",
"videoSettings": "Video inställningar",
"videomute": "Aktivera / avaktivera kameran"
},

View File

@@ -1067,7 +1067,6 @@
"chat": "Mesajlaşma penceresini aç/kapat",
"clap": "Alkış",
"collapse": "Daralt",
"dock": "Ana pencerede sabitleyin",
"document": "Paylaşılan dokümanı aç/kapat",
"download": "Uygulamalarımızı indirin",
"embedMeeting": "Toplantıyı yerleştir",
@@ -1121,7 +1120,6 @@
"tileView": "Döşeme görünümünü aç/kapat",
"toggleCamera": "Kamerayı değiştir",
"toggleFilmstrip": "Film şeridini aç/kapat",
"undock": "Ayrı pencereye çıkarın",
"videoblur": "Video bulanıklaştırma aç/kapat",
"videomute": "Sessiz videoyu aç/kapat",
"whiteboard": "Beyaztahtayı Göster / Gizle"
@@ -1140,7 +1138,6 @@
"closeReactionsMenu": "Reaksiyon menüsünü kapat",
"disableNoiseSuppression": "",
"disableReactionSounds": "Toplantı için reaksiyon seslerini devre dışı bırak",
"dock": "Ana pencerede sabitleyin",
"documentClose": "Paylaşılan dokümanı kapat",
"documentOpen": "Paylaşılan dokümanı aç",
"download": "Uygulamalarımızı indirin",
@@ -1214,7 +1211,6 @@
"talkWhileMutedPopup": "Bir şey mi dediniz? Mikrofonunuz kapalı.",
"tileViewToggle": "Döşeme görünümünü aç/kapat",
"toggleCamera": "Kamerayı değiştir",
"undock": "Ayrı pencereye çıkarın",
"videoSettings": "Video ayarları",
"videomute": "Kamera başlat / durdur"
},

View File

@@ -1067,7 +1067,6 @@
"chat": "Показати/приховати чат",
"clap": "Овації",
"collapse": "Згорнути",
"dock": "Закріпити в головному вікні",
"document": "Відкрити/закрити спільний документ",
"download": "Звантажити мобільний застосунок",
"embedMeeting": "Вставити зустріч",
@@ -1121,7 +1120,6 @@
"tileView": "Увімкнути/вимкнути плитки",
"toggleCamera": "Увімкнути/вимкнути камеру",
"toggleFilmstrip": "Показати/приховати панель видів",
"undock": "Відкріпити в окремому вікні",
"videoblur": "Увімкнути/вимкнути розмиття фону",
"videomute": "Увімкнути/вимкнути камеру",
"whiteboard": "Показати/приховати дошку"
@@ -1140,7 +1138,6 @@
"closeReactionsMenu": "Закрити меню реакцій",
"disableNoiseSuppression": "Вимкнути придушення шуму",
"disableReactionSounds": "Ви можете вимкнути звуки реакції для цієї зустрічі",
"dock": "Закріпити в головному вікні",
"documentClose": "Закрити спільний документ",
"documentOpen": "Відкрити спільний документ",
"download": "Звантажити мобільний застосунок",
@@ -1214,7 +1211,6 @@
"talkWhileMutedPopup": "Намагаєтесь говорити? Ваш мікрофон вимкнено.",
"tileViewToggle": "Плитки",
"toggleCamera": "Увімкнути/вимкнути камеру",
"undock": "Відкріпити в окремому вікні",
"videoSettings": "Налаштування камери",
"videomute": "Камера"
},

View File

@@ -1067,7 +1067,6 @@
"chat": "打开/关闭聊天窗口",
"clap": "鼓掌",
"collapse": "收起",
"dock": "在主窗口停靠",
"document": "开启/关闭文件共享",
"download": "下载应用",
"embedMeeting": "嵌入会议",
@@ -1121,7 +1120,6 @@
"tileView": "开启/关闭画廊视图",
"toggleCamera": "开启/关闭摄像头",
"toggleFilmstrip": "开启/关闭幻灯片",
"undock": "取消停靠到单独的窗口",
"videoblur": "开启/关闭视频模糊",
"videomute": "启动/停止摄像头",
"whiteboard": "显示/隐藏白板"
@@ -1140,7 +1138,6 @@
"closeReactionsMenu": "关闭反应菜单",
"disableNoiseSuppression": "关闭噪音抑制",
"disableReactionSounds": "你可以禁用此会议的反应声音",
"dock": "在主窗口停靠",
"documentClose": "关闭文件共享",
"documentOpen": "开启文件共享",
"download": "下载我们的APP",
@@ -1214,7 +1211,6 @@
"talkWhileMutedPopup": "你在尝试发言吗? 当前你是静音状态。",
"tileViewToggle": "画面模式",
"toggleCamera": "开启/关闭摄像头",
"undock": "取消停靠到单独的窗口",
"videoSettings": "视频设置",
"videomute": "开启/关闭摄像头"
},

View File

@@ -1067,7 +1067,6 @@
"chat": "打開/關閉聊天視窗",
"clap": "鼓掌",
"collapse": "收回",
"dock": "停靠在主視窗中",
"document": "啟用/停用分享文檔",
"download": "下載我們的應用程式",
"embedMeeting": "嵌入會議",
@@ -1121,7 +1120,6 @@
"tileView": "啟用/停用畫廊檢視",
"toggleCamera": "啟用/停用網路攝影機",
"toggleFilmstrip": "啟用/停用簡報",
"undock": "取消停靠到單獨的视窗",
"videoblur": "啟用/停用畫面模糊",
"videomute": "啟用/停用網路攝影機",
"whiteboard": "啟用/停用白板"
@@ -1140,7 +1138,6 @@
"closeReactionsMenu": "關閉反應選單",
"disableNoiseSuppression": "停用雜訊抑制",
"disableReactionSounds": "您可以停用此會議的反應音效",
"dock": "停靠在主視窗中",
"documentClose": "關閉分享檔案欄",
"documentOpen": "開啟分享檔案欄",
"download": "下載我們的應用程式",
@@ -1214,7 +1211,6 @@
"talkWhileMutedPopup": "您要發言嗎?目前您處於靜音。",
"tileViewToggle": "啟動/停用畫廊檢視",
"toggleCamera": "啟動/停用網路攝影機",
"undock": "取消停靠到單獨的视窗",
"videoSettings": "視訊設定",
"videomute": "啟動/停用網路攝影機"
},

View File

@@ -147,6 +147,7 @@
"bridgeCount": "Server count: ",
"codecs": "Codecs (A/V): ",
"connectedTo": "Connected to:",
"e2eeVerified": "E2EE verified:",
"framerate": "Frame rate:",
"less": "Show less",
"localaddress": "Local address:",
@@ -408,6 +409,10 @@
"user": "User",
"userIdentifier": "User identifier",
"userPassword": "User password",
"verifyParticipantConfirm": "They match",
"verifyParticipantDismiss": "They do not match",
"verifyParticipantQuestion": "EXPERIMENTAL: Ask participant {{participantName}} if they see the same content, in the same order.",
"verifyParticipantTitle": "User verification",
"videoLink": "Video link",
"viewUpgradeOptions": "View upgrade options",
"viewUpgradeOptionsContent": "To get unlimited access to premium features like recording, transcriptions, RTMP Streaming & more, you'll need to upgrade your plan.",
@@ -437,9 +442,6 @@
"noResults": "No results found :(",
"search": "Search GIPHY"
},
"helpView": {
"title": "Help center"
},
"incomingCall": {
"answer": "Answer",
"audioCallTitle": "Incoming call",
@@ -511,7 +513,7 @@
"mute": "Mute or unmute your microphone",
"pushToTalk": "Push to talk",
"raiseHand": "Raise or lower your hand",
"showSpeakerStats": "Show speaker stats",
"showSpeakerStats": "Show participants stats",
"toggleChat": "Open or close the chat",
"toggleFilmstrip": "Show or hide video thumbnails",
"toggleParticipantsPane": "Show or hide the participants pane",
@@ -563,7 +565,6 @@
"lobby": {
"admit": "Admit",
"admitAll": "Admit all",
"allow": "Allow",
"backToKnockModeButton": "Ask to join",
"chat": "Chat",
"dialogTitle": "Lobby mode",
@@ -649,6 +650,8 @@
"connectedOneMember": "{{name}} joined the meeting",
"connectedThreePlusMembers": "{{name}} and many others joined the meeting",
"connectedTwoMembers": "{{first}} and {{second}} joined the meeting",
"dataChannelClosed": "Video quality impaired",
"dataChannelClosedDescription": "The bridge channel has been disconnected and thus video quality is limited to its lowest setting.",
"disconnected": "disconnected",
"displayNotifications": "Display notifications for",
"focus": "Conference focus",
@@ -709,6 +712,8 @@
"reactionSoundsForAll": "Disable sounds for all",
"screenShareNoAudio": "Share audio box was not checked in the window selection screen.",
"screenShareNoAudioTitle": "Couldn't share system audio!",
"screenSharingAudioOnlyDescription": "Please note that by sharing your screen you're affecting the \"Best performance\" mode and you will use more bandwidth.",
"screenSharingAudioOnlyTitle": "\"Best performance\" mode",
"selfViewTitle": "You can always un-hide the self-view from settings",
"somebody": "Somebody",
"startSilentDescription": "Rejoin the meeting to enable audio",
@@ -858,9 +863,6 @@
"rejected": "Rejected",
"ringing": "Ringing..."
},
"privacyView": {
"title": "Privacy"
},
"profile": {
"avatar": "avatar",
"setDisplayNameLabel": "Set your display name",
@@ -1036,7 +1038,7 @@
"sad": "Sad",
"search": "Search",
"seconds": "{{count}}s",
"speakerStats": "Speaker Stats",
"speakerStats": "Participants Stats",
"speakerTime": "Speaker Time",
"surprised": "Surprised"
},
@@ -1068,7 +1070,6 @@
"chat": "Open / Close chat",
"clap": "Clap",
"collapse": "Collapse",
"dock": "Dock in main window",
"document": "Toggle shared document",
"download": "Download our apps",
"embedMeeting": "Embed meeting",
@@ -1117,12 +1118,11 @@
"shortcuts": "Toggle shortcuts",
"show": "Show on stage",
"silence": "Silence",
"speakerStats": "Toggle speaker statistics",
"speakerStats": "Toggle participants statistics",
"surprised": "Surprised",
"tileView": "Toggle tile view",
"toggleCamera": "Toggle camera",
"toggleFilmstrip": "Toggle filmstrip",
"undock": "Undock into separate window",
"videoblur": "Toggle video blur",
"videomute": "Start / Stop camera",
"whiteboard": "Show / Hide whiteboard"
@@ -1141,7 +1141,6 @@
"closeReactionsMenu": "Close reactions menu",
"disableNoiseSuppression": "Disable noise suppression",
"disableReactionSounds": "You can disable reaction sounds for this meeting",
"dock": "Dock in main window",
"documentClose": "Close shared document",
"documentOpen": "Open shared document",
"download": "Download our apps",
@@ -1204,7 +1203,7 @@
"shortcuts": "View shortcuts",
"showWhiteboard": "Show whiteboard",
"silence": "Silence",
"speakerStats": "Speaker stats",
"speakerStats": "Participants stats",
"startScreenSharing": "Start screen sharing",
"startSubtitles": "Subtitles • {{language}}",
"stopAudioSharing": "Stop audio sharing",
@@ -1215,7 +1214,6 @@
"talkWhileMutedPopup": "Trying to speak? You are muted.",
"tileViewToggle": "Toggle tile view",
"toggleCamera": "Toggle camera",
"undock": "Undock into separate window",
"videoSettings": "Video settings",
"videomute": "Start / Stop camera"
},
@@ -1296,6 +1294,7 @@
"show": "Show on stage",
"showSelfView": "Show self view",
"unpinFromStage": "Unpin",
"verify": "Verify participant",
"videoMuted": "Camera disabled",
"videomute": "Participant has stopped the camera"
},
@@ -1363,6 +1362,7 @@
"recentList": "Recent",
"recentListDelete": "Delete entry",
"recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",
"recentMeetings": "Your recent meetings",
"reducedUIText": "Welcome to {{app}}!",
"roomNameAllowedChars": "Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.",
"roomname": "Enter room name",
@@ -1371,6 +1371,7 @@
"settings": "Settings",
"startMeeting": "Start meeting",
"terms": "Terms",
"title": "Secure, fully featured, and completely free video conferencing"
"title": "Secure, fully featured, and completely free video conferencing",
"upcomingMeetings": "Your upcoming meetings"
}
}

View File

@@ -1450,6 +1450,22 @@ class API {
});
}
/**
* Notify external application that the data channel has been closed.
*
* @param {number} code - The close code.
* @param {string} reason - The close reason.
*
* @returns {void}
*/
notifyDataChannelClosed(code: number, reason: string) {
this._sendEvent({
name: 'data-channel-closed',
code,
reason
});
}
/**
* Notify external application that the data channel has been opened.
*
@@ -1655,22 +1671,6 @@ class API {
});
}
/**
* Notify external application (if API is enabled) that the iframe
* docked state has been changed. The responsibility for implementing
* the dock / undock functionality lies with the external application.
*
* @param {boolean} docked - Whether or not the iframe has been set to
* be docked or undocked.
* @returns {void}
*/
notifyIframeDockStateChanged(docked: boolean) {
this._sendEvent({
name: 'iframe-dock-state-changed',
docked
});
}
/**
* Notify external application of a participant, remote or local, being
* removed from the conference by another participant.
@@ -1920,6 +1920,27 @@ class API {
});
}
/**
* Notify the external application that a PeerConnection lost connectivity. This event is fired only if
* a PC `failed` but connectivity to the rtcstats server is still maintained signaling that there is a
* problem establishing a link between the app and the JVB server or the remote peer in case of P2P.
* Will only fire if rtcstats is enabled.
*
* @param {boolean} isP2P - Type of PC.
* @param {boolean} wasConnected - Was this connection previously connected. If it was it could mean
* that connectivity was disrupted, if not it most likely means that the app could not reach
* the JVB server, or the other peer in case of P2P.
*
* @returns {void}
*/
notifyPeerConnectionFailure(isP2P, wasConnected) {
this._sendEvent({
name: 'peer-connection-failure',
isP2P,
wasConnected
});
}
/**
* Disposes the allocated resources.
*

View File

@@ -106,6 +106,7 @@ const events = {
'camera-error': 'cameraError',
'chat-updated': 'chatUpdated',
'content-sharing-participants-changed': 'contentSharingParticipantsChanged',
'data-channel-closed': 'dataChannelClosed',
'data-channel-opened': 'dataChannelOpened',
'device-list-changed': 'deviceListChanged',
'display-name-change': 'displayNameChange',
@@ -116,7 +117,6 @@ const events = {
'feedback-submitted': 'feedbackSubmitted',
'feedback-prompt-displayed': 'feedbackPromptDisplayed',
'filmstrip-display-changed': 'filmstripDisplayChanged',
'iframe-dock-state-changed': 'iframeDockStateChanged',
'incoming-message': 'incomingMessage',
'knocking-participant': 'knockingParticipant',
'log': 'log',
@@ -134,6 +134,7 @@ const events = {
'participant-role-changed': 'participantRoleChanged',
'participants-pane-toggled': 'participantsPaneToggled',
'password-required': 'passwordRequired',
'peer-connection-failure': 'peerConnectionFailure',
'prejoin-screen-loaded': 'prejoinScreenLoaded',
'proxy-connection-event': 'proxyConnectionEvent',
'raise-hand-updated': 'raiseHandUpdated',

View File

@@ -158,7 +158,6 @@ export default {
* Determines if currently selected media devices should be changed after
* list of available devices has been changed.
* @param {MediaDeviceInfo[]} newDevices
* @param {boolean} isSharingScreen
* @param {JitsiLocalTrack} localVideo
* @param {JitsiLocalTrack} localAudio
* @returns {{
@@ -169,13 +168,12 @@ export default {
*/
getNewMediaDevicesAfterDeviceListChanged( // eslint-disable-line max-params
newDevices,
isSharingScreen,
localVideo,
localAudio,
newLabels) {
return {
audioinput: getNewAudioInputDevice(newDevices, localAudio, newLabels),
videoinput: isSharingScreen ? undefined : getNewVideoInputDevice(newDevices, localVideo, newLabels),
videoinput: getNewVideoInputDevice(newDevices, localVideo, newLabels),
audiooutput: getNewAudioOutputDevice(newDevices)
};
},

269
package-lock.json generated
View File

@@ -27,11 +27,11 @@
"@giphy/react-components": "5.6.0",
"@giphy/react-native-sdk": "1.7.0",
"@hapi/bourne": "2.0.0",
"@jitsi/excalidraw": "https://github.com/jitsi/excalidraw/releases/download/v0.0.11/jitsi-excalidraw-0.0.11.tgz",
"@jitsi/js-utils": "2.0.4",
"@jitsi/excalidraw": "https://github.com/jitsi/excalidraw/releases/download/v0.0.12/jitsi-excalidraw-0.0.12.tgz",
"@jitsi/js-utils": "2.0.5",
"@jitsi/logger": "2.0.0",
"@jitsi/rnnoise-wasm": "0.1.0",
"@jitsi/rtcstats": "9.4.1",
"@jitsi/rtcstats": "9.5.1",
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.3.tgz",
"@microsoft/microsoft-graph-client": "3.0.1",
"@mui/material": "5.10.2",
@@ -55,7 +55,7 @@
"@types/w3c-image-capture": "1.0.6",
"@vladmandic/human": "2.6.5",
"@vladmandic/human-models": "2.5.9",
"@xmldom/xmldom": "0.7.6",
"@xmldom/xmldom": "0.7.9",
"amplitude-js": "8.2.1",
"base64-js": "1.3.1",
"bc-css-flags": "3.0.0",
@@ -74,7 +74,7 @@
"js-md5": "0.6.1",
"js-sha512": "0.8.0",
"jwt-decode": "2.2.0",
"lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1535.0.0+e6263e7c/lib-jitsi-meet.tgz",
"lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1569.0.0+5f8d02c9/lib-jitsi-meet.tgz",
"lodash": "4.17.21",
"moment": "2.29.4",
"moment-duration-format": "2.2.2",
@@ -88,7 +88,7 @@
"react-focus-lock": "2.5.1",
"react-i18next": "10.11.4",
"react-linkify": "1.0.0-alpha",
"react-native": "0.68.4",
"react-native": "0.68.5",
"react-native-background-timer": "2.4.1",
"react-native-calendar-events": "2.2.0",
"react-native-callstats": "3.73.7",
@@ -102,7 +102,7 @@
"react-native-keep-awake": "4.0.0",
"react-native-orientation-locker": "1.5.0",
"react-native-pager-view": "5.4.9",
"react-native-paper": "4.11.1",
"react-native-paper": "5.1.2",
"react-native-performance": "2.1.0",
"react-native-safe-area-context": "3.3.2",
"react-native-screens": "3.13.1",
@@ -114,14 +114,14 @@
"react-native-url-polyfill": "1.3.0",
"react-native-video": "https://git@github.com/react-native-video/react-native-video#7c48ae7c8544b2b537fb60194e9620b9fcceae52",
"react-native-watch-connectivity": "1.0.11",
"react-native-webrtc": "1.106.1",
"react-native-webrtc": "106.0.1",
"react-native-webview": "11.15.1",
"react-native-youtube-iframe": "2.2.1",
"react-redux": "7.1.0",
"react-textarea-autosize": "8.3.0",
"react-transition-group": "2.4.0",
"react-window": "1.8.6",
"react-youtube": "7.13.1",
"react-youtube": "10.1.0",
"redux": "4.0.4",
"redux-thunk": "2.4.1",
"resemblejs": "4.0.0",
@@ -147,7 +147,7 @@
"@types/js-md5": "0.4.3",
"@types/lodash": "4.14.182",
"@types/react": "17.0.14",
"@types/react-native": "0.68.7",
"@types/react-native": "0.68.9",
"@types/react-redux": "7.1.24",
"@types/react-window": "1.8.5",
"@types/unorm": "1.3.28",
@@ -2928,9 +2928,9 @@
}
},
"node_modules/@callstack/react-theme-provider": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.7.tgz",
"integrity": "sha512-Ab6rbD2w4u9W3yf7LQQ8evx9m8fZNsoWxt+MFm3AyZnyKQNCJf4K7ip9tHHZgSs+HTdoj38lEqPehvFOVQKvAg==",
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.8.tgz",
"integrity": "sha512-5U231sYY2sqQOaELX0WBCn+iluV8bFaXIS7em03k4W5Xz0AhGvKlnpLIhDGFP8im/SvNW7/2XoR0BsClhn9t6Q==",
"dependencies": {
"deepmerge": "^3.2.0",
"hoist-non-react-statics": "^3.3.0"
@@ -3746,9 +3746,9 @@
}
},
"node_modules/@jitsi/excalidraw": {
"version": "0.0.11",
"resolved": "https://github.com/jitsi/excalidraw/releases/download/v0.0.11/jitsi-excalidraw-0.0.11.tgz",
"integrity": "sha512-R0om5mYmjjozmJ6i5PXPSQy8/kiMTCqk/QVxOVryEUlHps4UeLNx+Gb/tjzNBN/C6db6ea+Vxt/l27nh9frphg==",
"version": "0.0.12",
"resolved": "https://github.com/jitsi/excalidraw/releases/download/v0.0.12/jitsi-excalidraw-0.0.12.tgz",
"integrity": "sha512-WFzaH5GCZLA5DTSZ6ReqAz9g53mSgi+211zTC7AFZUYZme5tzKpPg55AKkJZA3ZIRikkbKaEfP/dC4QOH5NMmA==",
"license": "MIT",
"peerDependencies": {
"react": "^17.0.2",
@@ -3756,9 +3756,9 @@
}
},
"node_modules/@jitsi/js-utils": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.0.4.tgz",
"integrity": "sha512-voXa8Y8srv/q3gD9wWOGMPVqOWT4s0n4B/ApkPDAIN8EG/6mpzAfHNMi4BIOQeeo2P0srIdcD6Y/1S/ftjuhYQ==",
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.0.5.tgz",
"integrity": "sha512-Aa7lt/sGsDymWnKJtM1RePmR2b2J5TwY3QLv5iOmzMDYR+5RE0NyYc/vKW51JeatDVSkj+LT7kpUDvtJua0rmQ==",
"dependencies": {
"bowser": "2.7.0",
"js-md5": "0.7.3"
@@ -3780,9 +3780,9 @@
"integrity": "sha512-JujivPbOUvdRYa2xqByHYKfKGNGa7ZPyNLaNuh8hEp9XsiNfjaJAHdboq6M1VY9TP+765nyxC0LjpAw1VkikOQ=="
},
"node_modules/@jitsi/rtcstats": {
"version": "9.4.1",
"resolved": "https://registry.npmjs.org/@jitsi/rtcstats/-/rtcstats-9.4.1.tgz",
"integrity": "sha512-JrRBk9xLAnRgBP9aqTjR41DBAQYMkupOfy8XMIumdjxlDqf8dQygvYRc253xdHejr/kSHCvnaFoVIM3hHfeooQ==",
"version": "9.5.1",
"resolved": "https://registry.npmjs.org/@jitsi/rtcstats/-/rtcstats-9.5.1.tgz",
"integrity": "sha512-UDcsNwPvweQ6owV/chwabd6DsQd2aB4qjqrOB+BlJnETZ+zssGYAey3ezaiNK6nxevwBkbHj980/S9v+2y4btg==",
"dependencies": {
"@jitsi/js-utils": "^2.0.0",
"sdp": "^3.0.3",
@@ -6493,9 +6493,9 @@
}
},
"node_modules/@types/react-native": {
"version": "0.68.7",
"resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.68.7.tgz",
"integrity": "sha512-icGr0/iTPLsvIrUoLvu5uluDFBMZEir+DbwgrHnvazO3fJv1C/kpZZLGplQ3noYyDLjuBynwOUgoaZpGyFI4Iw==",
"version": "0.68.9",
"resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.68.9.tgz",
"integrity": "sha512-/1nbdoynVMjNsudurxHiEf9rSdviKAkV+pVgwpNk21v7gKJfzoHyT3nFunPuMoDgvvdZR5ofUrOJuCPbzF2GUw==",
"dev": true,
"dependencies": {
"@types/react": "^17"
@@ -7349,9 +7349,9 @@
}
},
"node_modules/@xmldom/xmldom": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz",
"integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==",
"version": "0.7.9",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.9.tgz",
"integrity": "sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA==",
"engines": {
"node": ">=10.0.0"
}
@@ -13497,13 +13497,13 @@
},
"node_modules/lib-jitsi-meet": {
"version": "0.0.0",
"resolved": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1535.0.0+e6263e7c/lib-jitsi-meet.tgz",
"integrity": "sha512-RgMoesoWyscWi2fL9Hxp8PUwDlUtHbo+GhXosD3GeKR0zmihu/kxTONMUifGQnF8XdtcjaZfL2jCJynLwYKlkw==",
"resolved": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1569.0.0+5f8d02c9/lib-jitsi-meet.tgz",
"integrity": "sha512-XD0YS84XjK+KnjW3qT4oZ4/+n2mSTHpJNwYqFgvvrFd1MHLL96k9UOIcTkU/yOuxkf69ZKfx9QtCnfnYrpkTIQ==",
"license": "Apache-2.0",
"dependencies": {
"@jitsi/js-utils": "2.0.0",
"@jitsi/logger": "2.0.0",
"@jitsi/sdp-interop": "https://git@github.com/jitsi/sdp-interop#3d49eb4aa26863a3f8d32d7581cdb4321244266b",
"@jitsi/sdp-interop": "git+https://github.com/jitsi/sdp-interop#3d49eb4aa26863a3f8d32d7581cdb4321244266b",
"@jitsi/sdp-simulcast": "0.4.0",
"async": "3.2.3",
"base64-js": "1.3.1",
@@ -13516,7 +13516,7 @@
"sdp-transform": "2.3.0",
"strophe.js": "1.3.4",
"strophejs-plugin-disco": "0.0.2",
"strophejs-plugin-stream-management": "https://git@github.com/jitsi/strophejs-plugin-stream-management#001cf02bef2357234e1ac5d163611b4d60bf2b6a",
"strophejs-plugin-stream-management": "git+https://github.com/jitsi/strophejs-plugin-stream-management#001cf02bef2357234e1ac5d163611b4d60bf2b6a",
"uuid": "8.1.0",
"webrtc-adapter": "8.1.1"
}
@@ -13571,9 +13571,9 @@
}
},
"node_modules/loader-utils": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.1.tgz",
"integrity": "sha512-1Qo97Y2oKaU+Ro2xnDMR26g1BwMT29jNbem1EvcujW2jqt+j5COXyscjM7bLQkM9HaxI7pkWeW7gnI072yMI9Q==",
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
"integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"dependencies": {
"big.js": "^5.2.2",
@@ -14711,9 +14711,9 @@
}
},
"node_modules/null-loader/node_modules/loader-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz",
"integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==",
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
"integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -16128,9 +16128,9 @@
}
},
"node_modules/react-native": {
"version": "0.68.4",
"resolved": "https://registry.npmjs.org/react-native/-/react-native-0.68.4.tgz",
"integrity": "sha512-Hp5qwztQ1XNnV43QTz1kUx33iZHmJqbbe7L19V9psaWtX/h9j6SEtZ3UHBrigIPlppkIP1E5x3CDr9FdD4d6CA==",
"version": "0.68.5",
"resolved": "https://registry.npmjs.org/react-native/-/react-native-0.68.5.tgz",
"integrity": "sha512-t3kiQ/gumFV+0r/NRSIGtYxanjY4da0utFqHgkMcRPJVwXFWC0Fr8YiOeRGYO1dp8EfrSsOjtfWic/inqVYlbQ==",
"dependencies": {
"@jest/create-cache-key-function": "^27.0.1",
"@react-native-community/cli": "^7.0.3",
@@ -16281,14 +16281,6 @@
"react-native": ">=0.47.0"
}
},
"node_modules/react-native-iphone-x-helper": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
"integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==",
"peerDependencies": {
"react-native": ">=0.42.0"
}
},
"node_modules/react-native-keep-awake": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/react-native-keep-awake/-/react-native-keep-awake-4.0.0.tgz",
@@ -16314,17 +16306,18 @@
}
},
"node_modules/react-native-paper": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-4.11.1.tgz",
"integrity": "sha512-mAQ74KUrOIcMEg1crrIsA7eXDaPk/fjvKFDLcN7gBBeV/zhhQiqc+/y6t+8STKsZutRA2U5/eB+0MBisybokmQ==",
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.1.2.tgz",
"integrity": "sha512-muf70CPtji6gTukV+9ecvzOYFOflK2hi4t4GLt9y4Ynhf/YQCvXsefPTp45n7RS6bz9+ueG4jtuGg64oOY8dxA==",
"dependencies": {
"@callstack/react-theme-provider": "^3.0.7",
"@callstack/react-theme-provider": "^3.0.8",
"color": "^3.1.2",
"react-native-iphone-x-helper": "^1.3.1"
"use-event-callback": "^0.1.0"
},
"peerDependencies": {
"react": "*",
"react-native": "*",
"react-native-safe-area-context": "*",
"react-native-vector-icons": "*"
}
},
@@ -16501,13 +16494,14 @@
}
},
"node_modules/react-native-webrtc": {
"version": "1.106.1",
"resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-1.106.1.tgz",
"integrity": "sha512-955gqWFdISARz9D4hmnPzKQwpaU+AGqUbU+vBjzLCozUseSJ69tTQg2cShyPCBH6A1rwJQE+mrdjcpkeGbx3pQ==",
"version": "106.0.1",
"resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-106.0.1.tgz",
"integrity": "sha512-0l911lDIqj7jKMvxwQEF6mQt6CMnmOZjgwyifNT28w3XY4p+0Tm/mg5S0UqjbFzcUWeI5w2q/Xk7zn0mcbEhPg==",
"hasInstallScript": true,
"dependencies": {
"adm-zip": "0.5.9",
"base64-js": "1.5.1",
"debug": "4.3.4",
"event-target-shim": "6.0.2",
"tar": "6.1.11"
},
@@ -16766,36 +16760,21 @@
}
},
"node_modules/react-youtube": {
"version": "7.13.1",
"resolved": "https://registry.npmjs.org/react-youtube/-/react-youtube-7.13.1.tgz",
"integrity": "sha512-b++TLHmHDpd0ZBS1wcbYabbuchU+W4jtx5A2MUQX0BINNKKsaIQX29sn/aLvZ9v5luwAoceia3VGtyz9blaB9w==",
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/react-youtube/-/react-youtube-10.1.0.tgz",
"integrity": "sha512-ZfGtcVpk0SSZtWCSTYOQKhfx5/1cfyEW1JN/mugGNfAxT3rmVJeMbGpA9+e78yG21ls5nc/5uZJETE3cm3knBg==",
"dependencies": {
"fast-deep-equal": "3.1.3",
"prop-types": "15.7.2",
"prop-types": "15.8.1",
"youtube-player": "5.5.2"
},
"engines": {
"node": ">= 10.x"
"node": ">= 14.x"
},
"peerDependencies": {
"react": ">=0.14.1"
}
},
"node_modules/react-youtube/node_modules/prop-types": {
"version": "15.7.2",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
"react-is": "^16.8.1"
}
},
"node_modules/react-youtube/node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
@@ -18191,9 +18170,9 @@
}
},
"node_modules/string-replace-loader/node_modules/loader-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz",
"integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==",
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
"integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dev": true,
"dependencies": {
"big.js": "^5.2.2",
@@ -19380,6 +19359,14 @@
"react": "^16.8.0 || ^17.0.0"
}
},
"node_modules/use-event-callback": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/use-event-callback/-/use-event-callback-0.1.0.tgz",
"integrity": "sha512-5fTzY5UEXHMK5UR0NRkUz6TPfWmmX9fO8Tx3SnHrfMPdrQ7Rna0gDBy0r56SP68TwsP9DgwSBzeysCu3A/Z2NA==",
"peerDependencies": {
"react": ">=16.8"
}
},
"node_modules/use-isomorphic-layout-effect": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz",
@@ -22506,9 +22493,9 @@
}
},
"@callstack/react-theme-provider": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.7.tgz",
"integrity": "sha512-Ab6rbD2w4u9W3yf7LQQ8evx9m8fZNsoWxt+MFm3AyZnyKQNCJf4K7ip9tHHZgSs+HTdoj38lEqPehvFOVQKvAg==",
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.8.tgz",
"integrity": "sha512-5U231sYY2sqQOaELX0WBCn+iluV8bFaXIS7em03k4W5Xz0AhGvKlnpLIhDGFP8im/SvNW7/2XoR0BsClhn9t6Q==",
"requires": {
"deepmerge": "^3.2.0",
"hoist-non-react-statics": "^3.3.0"
@@ -23178,13 +23165,13 @@
"dev": true
},
"@jitsi/excalidraw": {
"version": "https://github.com/jitsi/excalidraw/releases/download/v0.0.11/jitsi-excalidraw-0.0.11.tgz",
"integrity": "sha512-R0om5mYmjjozmJ6i5PXPSQy8/kiMTCqk/QVxOVryEUlHps4UeLNx+Gb/tjzNBN/C6db6ea+Vxt/l27nh9frphg=="
"version": "https://github.com/jitsi/excalidraw/releases/download/v0.0.12/jitsi-excalidraw-0.0.12.tgz",
"integrity": "sha512-WFzaH5GCZLA5DTSZ6ReqAz9g53mSgi+211zTC7AFZUYZme5tzKpPg55AKkJZA3ZIRikkbKaEfP/dC4QOH5NMmA=="
},
"@jitsi/js-utils": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.0.4.tgz",
"integrity": "sha512-voXa8Y8srv/q3gD9wWOGMPVqOWT4s0n4B/ApkPDAIN8EG/6mpzAfHNMi4BIOQeeo2P0srIdcD6Y/1S/ftjuhYQ==",
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.0.5.tgz",
"integrity": "sha512-Aa7lt/sGsDymWnKJtM1RePmR2b2J5TwY3QLv5iOmzMDYR+5RE0NyYc/vKW51JeatDVSkj+LT7kpUDvtJua0rmQ==",
"requires": {
"bowser": "2.7.0",
"js-md5": "0.7.3"
@@ -23208,9 +23195,9 @@
"integrity": "sha512-JujivPbOUvdRYa2xqByHYKfKGNGa7ZPyNLaNuh8hEp9XsiNfjaJAHdboq6M1VY9TP+765nyxC0LjpAw1VkikOQ=="
},
"@jitsi/rtcstats": {
"version": "9.4.1",
"resolved": "https://registry.npmjs.org/@jitsi/rtcstats/-/rtcstats-9.4.1.tgz",
"integrity": "sha512-JrRBk9xLAnRgBP9aqTjR41DBAQYMkupOfy8XMIumdjxlDqf8dQygvYRc253xdHejr/kSHCvnaFoVIM3hHfeooQ==",
"version": "9.5.1",
"resolved": "https://registry.npmjs.org/@jitsi/rtcstats/-/rtcstats-9.5.1.tgz",
"integrity": "sha512-UDcsNwPvweQ6owV/chwabd6DsQd2aB4qjqrOB+BlJnETZ+zssGYAey3ezaiNK6nxevwBkbHj980/S9v+2y4btg==",
"requires": {
"@jitsi/js-utils": "^2.0.0",
"sdp": "^3.0.3",
@@ -23220,7 +23207,7 @@
"@jitsi/sdp-interop": {
"version": "git+https://git@github.com/jitsi/sdp-interop.git#3d49eb4aa26863a3f8d32d7581cdb4321244266b",
"integrity": "sha512-80u69QNTBArnCd1CGbTTrl/8AsZOOMF82dQhrgXBQAnrimdpomX1fMZ82ZkxyWyYvRMPG167u43Tp8y1g2DLNA==",
"from": "@jitsi/sdp-interop@https://git@github.com/jitsi/sdp-interop#3d49eb4aa26863a3f8d32d7581cdb4321244266b",
"from": "@jitsi/sdp-interop@git+https://github.com/jitsi/sdp-interop#3d49eb4aa26863a3f8d32d7581cdb4321244266b",
"requires": {
"lodash.clonedeep": "4.5.0",
"sdp-transform": "2.14.1"
@@ -25178,9 +25165,9 @@
}
},
"@types/react-native": {
"version": "0.68.7",
"resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.68.7.tgz",
"integrity": "sha512-icGr0/iTPLsvIrUoLvu5uluDFBMZEir+DbwgrHnvazO3fJv1C/kpZZLGplQ3noYyDLjuBynwOUgoaZpGyFI4Iw==",
"version": "0.68.9",
"resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.68.9.tgz",
"integrity": "sha512-/1nbdoynVMjNsudurxHiEf9rSdviKAkV+pVgwpNk21v7gKJfzoHyT3nFunPuMoDgvvdZR5ofUrOJuCPbzF2GUw==",
"dev": true,
"requires": {
"@types/react": "^17"
@@ -25794,9 +25781,9 @@
"dev": true
},
"@xmldom/xmldom": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz",
"integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ=="
"version": "0.7.9",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.9.tgz",
"integrity": "sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA=="
},
"@xobotyi/scrollbar-width": {
"version": "1.9.5",
@@ -30510,12 +30497,12 @@
}
},
"lib-jitsi-meet": {
"version": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1535.0.0+e6263e7c/lib-jitsi-meet.tgz",
"integrity": "sha512-RgMoesoWyscWi2fL9Hxp8PUwDlUtHbo+GhXosD3GeKR0zmihu/kxTONMUifGQnF8XdtcjaZfL2jCJynLwYKlkw==",
"version": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1569.0.0+5f8d02c9/lib-jitsi-meet.tgz",
"integrity": "sha512-XD0YS84XjK+KnjW3qT4oZ4/+n2mSTHpJNwYqFgvvrFd1MHLL96k9UOIcTkU/yOuxkf69ZKfx9QtCnfnYrpkTIQ==",
"requires": {
"@jitsi/js-utils": "2.0.0",
"@jitsi/logger": "2.0.0",
"@jitsi/sdp-interop": "https://git@github.com/jitsi/sdp-interop#3d49eb4aa26863a3f8d32d7581cdb4321244266b",
"@jitsi/sdp-interop": "git+https://github.com/jitsi/sdp-interop#3d49eb4aa26863a3f8d32d7581cdb4321244266b",
"@jitsi/sdp-simulcast": "0.4.0",
"async": "3.2.3",
"base64-js": "1.3.1",
@@ -30528,7 +30515,7 @@
"sdp-transform": "2.3.0",
"strophe.js": "1.3.4",
"strophejs-plugin-disco": "0.0.2",
"strophejs-plugin-stream-management": "https://git@github.com/jitsi/strophejs-plugin-stream-management#001cf02bef2357234e1ac5d163611b4d60bf2b6a",
"strophejs-plugin-stream-management": "git+https://github.com/jitsi/strophejs-plugin-stream-management#001cf02bef2357234e1ac5d163611b4d60bf2b6a",
"uuid": "8.1.0",
"webrtc-adapter": "8.1.1"
},
@@ -30579,9 +30566,9 @@
"dev": true
},
"loader-utils": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.1.tgz",
"integrity": "sha512-1Qo97Y2oKaU+Ro2xnDMR26g1BwMT29jNbem1EvcujW2jqt+j5COXyscjM7bLQkM9HaxI7pkWeW7gnI072yMI9Q==",
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
"integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -31488,9 +31475,9 @@
},
"dependencies": {
"loader-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz",
"integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==",
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
"integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -32535,9 +32522,9 @@
}
},
"react-native": {
"version": "0.68.4",
"resolved": "https://registry.npmjs.org/react-native/-/react-native-0.68.4.tgz",
"integrity": "sha512-Hp5qwztQ1XNnV43QTz1kUx33iZHmJqbbe7L19V9psaWtX/h9j6SEtZ3UHBrigIPlppkIP1E5x3CDr9FdD4d6CA==",
"version": "0.68.5",
"resolved": "https://registry.npmjs.org/react-native/-/react-native-0.68.5.tgz",
"integrity": "sha512-t3kiQ/gumFV+0r/NRSIGtYxanjY4da0utFqHgkMcRPJVwXFWC0Fr8YiOeRGYO1dp8EfrSsOjtfWic/inqVYlbQ==",
"requires": {
"@jest/create-cache-key-function": "^27.0.1",
"@react-native-community/cli": "^7.0.3",
@@ -32652,11 +32639,6 @@
"resolved": "https://registry.npmjs.org/react-native-immersive/-/react-native-immersive-2.0.0.tgz",
"integrity": "sha512-9TL05nTHN/x9sN1wbUlBoGyzH4NCuZ/7WEEUp5CvOoKuUABvdYosov0O0SAMbm/5J913RRoy98VB6tGNi9lRSw=="
},
"react-native-iphone-x-helper": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
"integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg=="
},
"react-native-keep-awake": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/react-native-keep-awake/-/react-native-keep-awake-4.0.0.tgz",
@@ -32673,13 +32655,13 @@
"integrity": "sha512-D6tzxpwMGdl6CXgtskGWhKRc5cJakCazESRGt7PkqnpyiH3N35ft1KmR82pCSQetAFlytFiToeu3a/dG5CELvA=="
},
"react-native-paper": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-4.11.1.tgz",
"integrity": "sha512-mAQ74KUrOIcMEg1crrIsA7eXDaPk/fjvKFDLcN7gBBeV/zhhQiqc+/y6t+8STKsZutRA2U5/eB+0MBisybokmQ==",
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.1.2.tgz",
"integrity": "sha512-muf70CPtji6gTukV+9ecvzOYFOflK2hi4t4GLt9y4Ynhf/YQCvXsefPTp45n7RS6bz9+ueG4jtuGg64oOY8dxA==",
"requires": {
"@callstack/react-theme-provider": "^3.0.7",
"@callstack/react-theme-provider": "^3.0.8",
"color": "^3.1.2",
"react-native-iphone-x-helper": "^1.3.1"
"use-event-callback": "^0.1.0"
}
},
"react-native-performance": {
@@ -32804,12 +32786,13 @@
}
},
"react-native-webrtc": {
"version": "1.106.1",
"resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-1.106.1.tgz",
"integrity": "sha512-955gqWFdISARz9D4hmnPzKQwpaU+AGqUbU+vBjzLCozUseSJ69tTQg2cShyPCBH6A1rwJQE+mrdjcpkeGbx3pQ==",
"version": "106.0.1",
"resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-106.0.1.tgz",
"integrity": "sha512-0l911lDIqj7jKMvxwQEF6mQt6CMnmOZjgwyifNT28w3XY4p+0Tm/mg5S0UqjbFzcUWeI5w2q/Xk7zn0mcbEhPg==",
"requires": {
"adm-zip": "0.5.9",
"base64-js": "1.5.1",
"debug": "4.3.4",
"event-target-shim": "6.0.2",
"tar": "6.1.11"
},
@@ -32978,30 +32961,13 @@
}
},
"react-youtube": {
"version": "7.13.1",
"resolved": "https://registry.npmjs.org/react-youtube/-/react-youtube-7.13.1.tgz",
"integrity": "sha512-b++TLHmHDpd0ZBS1wcbYabbuchU+W4jtx5A2MUQX0BINNKKsaIQX29sn/aLvZ9v5luwAoceia3VGtyz9blaB9w==",
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/react-youtube/-/react-youtube-10.1.0.tgz",
"integrity": "sha512-ZfGtcVpk0SSZtWCSTYOQKhfx5/1cfyEW1JN/mugGNfAxT3rmVJeMbGpA9+e78yG21ls5nc/5uZJETE3cm3knBg==",
"requires": {
"fast-deep-equal": "3.1.3",
"prop-types": "15.7.2",
"prop-types": "15.8.1",
"youtube-player": "5.5.2"
},
"dependencies": {
"prop-types": {
"version": "15.7.2",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
"react-is": "^16.8.1"
}
},
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
}
}
},
"readable-stream": {
@@ -34116,9 +34082,9 @@
},
"dependencies": {
"loader-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz",
"integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==",
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
"integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -34249,7 +34215,7 @@
"strophejs-plugin-stream-management": {
"version": "git+https://git@github.com/jitsi/strophejs-plugin-stream-management.git#001cf02bef2357234e1ac5d163611b4d60bf2b6a",
"integrity": "sha512-ijQSXeEEmGl4dfLx8RcQDCvzg1UPtEArowaCHZr8ITdBOH/X6JxxGzy/DVeMLVSvSy73tH7pGK6iPjBqQajwdQ==",
"from": "strophejs-plugin-stream-management@https://git@github.com/jitsi/strophejs-plugin-stream-management#001cf02bef2357234e1ac5d163611b4d60bf2b6a"
"from": "strophejs-plugin-stream-management@git+https://github.com/jitsi/strophejs-plugin-stream-management#001cf02bef2357234e1ac5d163611b4d60bf2b6a"
},
"style-loader": {
"version": "3.3.1",
@@ -34979,6 +34945,11 @@
"resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.2.1.tgz",
"integrity": "sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw=="
},
"use-event-callback": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/use-event-callback/-/use-event-callback-0.1.0.tgz",
"integrity": "sha512-5fTzY5UEXHMK5UR0NRkUz6TPfWmmX9fO8Tx3SnHrfMPdrQ7Rna0gDBy0r56SP68TwsP9DgwSBzeysCu3A/Z2NA=="
},
"use-isomorphic-layout-effect": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz",

View File

@@ -32,11 +32,11 @@
"@giphy/react-components": "5.6.0",
"@giphy/react-native-sdk": "1.7.0",
"@hapi/bourne": "2.0.0",
"@jitsi/excalidraw": "https://github.com/jitsi/excalidraw/releases/download/v0.0.11/jitsi-excalidraw-0.0.11.tgz",
"@jitsi/js-utils": "2.0.4",
"@jitsi/excalidraw": "https://github.com/jitsi/excalidraw/releases/download/v0.0.12/jitsi-excalidraw-0.0.12.tgz",
"@jitsi/js-utils": "2.0.5",
"@jitsi/logger": "2.0.0",
"@jitsi/rnnoise-wasm": "0.1.0",
"@jitsi/rtcstats": "9.4.1",
"@jitsi/rtcstats": "9.5.1",
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.3.tgz",
"@microsoft/microsoft-graph-client": "3.0.1",
"@mui/material": "5.10.2",
@@ -60,7 +60,7 @@
"@types/w3c-image-capture": "1.0.6",
"@vladmandic/human": "2.6.5",
"@vladmandic/human-models": "2.5.9",
"@xmldom/xmldom": "0.7.6",
"@xmldom/xmldom": "0.7.9",
"amplitude-js": "8.2.1",
"base64-js": "1.3.1",
"bc-css-flags": "3.0.0",
@@ -79,7 +79,7 @@
"js-md5": "0.6.1",
"js-sha512": "0.8.0",
"jwt-decode": "2.2.0",
"lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1535.0.0+e6263e7c/lib-jitsi-meet.tgz",
"lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1569.0.0+5f8d02c9/lib-jitsi-meet.tgz",
"lodash": "4.17.21",
"moment": "2.29.4",
"moment-duration-format": "2.2.2",
@@ -93,7 +93,7 @@
"react-focus-lock": "2.5.1",
"react-i18next": "10.11.4",
"react-linkify": "1.0.0-alpha",
"react-native": "0.68.4",
"react-native": "0.68.5",
"react-native-background-timer": "2.4.1",
"react-native-calendar-events": "2.2.0",
"react-native-callstats": "3.73.7",
@@ -107,7 +107,7 @@
"react-native-keep-awake": "4.0.0",
"react-native-orientation-locker": "1.5.0",
"react-native-pager-view": "5.4.9",
"react-native-paper": "4.11.1",
"react-native-paper": "5.1.2",
"react-native-performance": "2.1.0",
"react-native-safe-area-context": "3.3.2",
"react-native-screens": "3.13.1",
@@ -119,14 +119,14 @@
"react-native-url-polyfill": "1.3.0",
"react-native-video": "https://git@github.com/react-native-video/react-native-video#7c48ae7c8544b2b537fb60194e9620b9fcceae52",
"react-native-watch-connectivity": "1.0.11",
"react-native-webrtc": "1.106.1",
"react-native-webrtc": "106.0.1",
"react-native-webview": "11.15.1",
"react-native-youtube-iframe": "2.2.1",
"react-redux": "7.1.0",
"react-textarea-autosize": "8.3.0",
"react-transition-group": "2.4.0",
"react-window": "1.8.6",
"react-youtube": "7.13.1",
"react-youtube": "10.1.0",
"redux": "4.0.4",
"redux-thunk": "2.4.1",
"resemblejs": "4.0.0",
@@ -152,7 +152,7 @@
"@types/js-md5": "0.4.3",
"@types/lodash": "4.14.182",
"@types/react": "17.0.14",
"@types/react-native": "0.68.7",
"@types/react-native": "0.68.9",
"@types/react-redux": "7.1.24",
"@types/react-window": "1.8.5",
"@types/unorm": "1.3.28",
@@ -199,7 +199,8 @@
"tsc:web": "tsc --noEmit --project tsconfig.web.json",
"tsc:native": "tsc --noEmit --project tsconfig.native.json",
"tsc:ci": "npm run tsc:web && npm run tsc:native",
"lint:ci": "eslint --ext .js,.ts,.tsx --max-warnings 0 . && npm run tsc:ci",
"lint:ci": "eslint --ext .js,.ts,.tsx --max-warnings 0 . && npm run tsc:ci && npm run lint:lang",
"lint:lang": "for file in lang/*.json; do npx --yes jsonlint -q $file || exit 1; done",
"lang-sort": "./resources/lang-sort.sh",
"lint-fix": "eslint --ext .js,.ts,.tsx --max-warnings 0 --fix .",
"postinstall": "patch-package --error-on-fail && jetify",

View File

@@ -1,5 +1,3 @@
/* eslint-disable lines-around-comment */
import logger from '../logger';
import AbstractHandler, { IEvent } from './AbstractHandler';
@@ -103,8 +101,10 @@ export default class AmplitudeHandler extends AbstractHandler {
return {
sessionId: amplitude.getInstance().getSessionId(),
// @ts-ignore
deviceId: amplitude.getInstance().options.deviceId,
// @ts-ignore
userId: amplitude.getInstance().options.userId
};

View File

@@ -21,6 +21,7 @@ import { isVpaasMeeting } from '../jaas/functions';
import { clearNotifications, showNotification } from '../notifications/actions';
import { NOTIFICATION_TIMEOUT_TYPE } from '../notifications/constants';
import { setFatalError } from '../overlay/actions';
import { isWelcomePageEnabled } from '../welcome/functions';
import {
redirectToStaticPage,
@@ -203,7 +204,7 @@ export function maybeRedirectToWelcomePage(options: { feedbackSubmitted?: boolea
// if Welcome page is enabled redirect to welcome page after 3 sec, if
// there is a thank you message to be shown, 0.5s otherwise.
if (getState()['features/base/config'].enableWelcomePage) {
if (isWelcomePageEnabled(getState())) {
setTimeout(
() => {
dispatch(redirectWithStoredParams('/'));

View File

@@ -8,7 +8,7 @@ import { Conference } from '../conference';
import { getDeepLinkingPage } from '../deep-linking';
import { UnsupportedDesktopBrowser } from '../unsupported-browser';
import { BlankPage, WelcomePage } from '../welcome';
import { isWelcomePageEnabled } from '../welcome/functions';
import { getCustomLandingPageURL, isWelcomePageEnabled } from '../welcome/functions';
/**
* Determines which route is to be rendered in order to depict a specific Redux
@@ -75,7 +75,13 @@ function _getWebWelcomePageRoute(state) {
if (isWelcomePageEnabled(state)) {
if (isSupportedBrowser()) {
route.component = WelcomePage;
const customLandingPage = getCustomLandingPageURL(state);
if (customLandingPage) {
route.href = customLandingPage;
} else {
route.component = WelcomePage;
}
} else {
route.component = UnsupportedDesktopBrowser;
}

View File

@@ -11,6 +11,7 @@ import '../base/media/middleware';
import '../base/net-info/middleware';
import '../base/participants/middleware';
import '../base/responsive-ui/middleware';
import '../base/redux/middleware';
import '../base/settings/middleware';
import '../base/sounds/middleware';
import '../base/testing/middleware';

View File

@@ -2,7 +2,6 @@ import '../authentication/middleware';
import '../base/i18n/middleware';
import '../base/devices/middleware';
import '../base/media/middleware';
import '../base/redux/middleware';
import '../dynamic-branding/middleware';
import '../e2ee/middleware';
import '../external-api/middleware';

View File

@@ -1,5 +1,3 @@
// @flow
import { ColorPalette, getRGBAFormat } from '../styles';
/**
@@ -14,21 +12,6 @@ export default {
icon: 'rgb(28, 32, 37)',
text: 'rgb(28, 32, 37)'
},
'Chat': {
displayName: 'rgb(94, 109, 121)',
localMsgBackground: 'rgb(215, 230, 249)',
lobbyMsgBackground: 'rgb(106, 80, 211)',
lobbyMsgNotice: 'rgb(16, 10, 41)',
privateMsgBackground: 'rgb(250, 219, 219)',
privateMsgNotice: 'rgb(186, 39, 58)',
remoteMsgBackground: 'rgb(241, 242, 246)',
replyBorder: 'rgb(219, 197, 200)',
replyIcon: 'rgb(94, 109, 121)'
},
'Conference': {
inviteButtonBackground: 'rgb(0, 119, 225)',
onVideoText: 'white'
},
'Dialog': {},
'Header': {
background: ColorPalette.blue,

View File

@@ -138,6 +138,18 @@ export const CONFERENCE_WILL_LEAVE = 'CONFERENCE_WILL_LEAVE';
*/
export const DATA_CHANNEL_OPENED = 'DATA_CHANNEL_OPENED';
/**
* The type of (redux) action which signals that the data channel with the
* bridge has been closed.
*
* {
* type: DATA_CHANNEL_CLOSED,
* code: number,
* reason: string
* }
*/
export const DATA_CHANNEL_CLOSED = 'DATA_CHANNEL_CLOSED';
/**
* The type of action which signals that the user has been kicked out from
* the conference.

View File

@@ -1,4 +1,3 @@
/* eslint-disable lines-around-comment */
import { createStartMutedConfigurationEvent } from '../../analytics/AnalyticsEvents';
import { sendAnalytics } from '../../analytics/functions';
import { appNavigate } from '../../app/actions';
@@ -41,6 +40,7 @@ import {
CONFERENCE_UNIQUE_ID_SET,
CONFERENCE_WILL_JOIN,
CONFERENCE_WILL_LEAVE,
DATA_CHANNEL_CLOSED,
DATA_CHANNEL_OPENED,
E2E_RTT_CHANGED,
KICKED_OUT,
@@ -110,6 +110,7 @@ function _addConferenceListeners(conference: IJitsiConference, dispatch: IStore[
JitsiConferenceEvents.CONFERENCE_LEFT,
(...args: any[]) => {
dispatch(conferenceTimestampChanged(0));
// @ts-ignore
dispatch(conferenceLeft(conference, ...args));
});
@@ -581,6 +582,26 @@ export function dataChannelOpened() {
};
}
/**
* Signals the data channel with the bridge was abruptly closed.
*
* @param {number} code - Close code.
* @param {string} reason - Close reason.
*
* @returns {{
* type: DATA_CHANNEL_CLOSED,
* code: number,
* reason: string
* }}
*/
export function dataChannelClosed(code: number, reason: string) {
return {
type: DATA_CHANNEL_CLOSED,
code,
reason
};
}
/**
* Action to end a conference for all participants.
*

View File

@@ -252,6 +252,37 @@ export function getConferenceOptions(stateful: IStateful) {
return options;
}
/**
* Override the global config (that is, window.config) with XMPP configuration required to join as a visitor.
*
* @param {IStateful} stateful - The redux store state.
* @param {Array<string>} params - The received parameters.
* @returns {void}
*/
export function generateVisitorConfig(stateful: IStateful, params: Array<string>) {
const [ vnode, focusJid ] = params;
const config = toState(stateful)['features/base/config'];
if (!config || !config.hosts) {
logger.warn('Wrong configuration, missing hosts.');
return;
}
const oldDomain = config.hosts.domain;
config.hosts.domain = `${vnode}.meet.jitsi`;
config.hosts.muc = config.hosts.muc.replace(oldDomain, config.hosts.domain);
config.focusUserJid = focusJid;
// This flag disables sending the initial conference request
config.disableFocus = true;
config.bosh += `?vnode=${vnode}`;
config.websocket += `?vnode=${vnode}`;
}
/**
* Returns the UTC timestamp when the first participant joined the conference.
*
@@ -454,18 +485,18 @@ export function sendLocalParticipant(
name
} = getLocalParticipant(stateful) ?? {};
avatarURL && conference.sendCommand(AVATAR_URL_COMMAND, {
avatarURL && conference?.sendCommand(AVATAR_URL_COMMAND, {
value: avatarURL
});
email && conference.sendCommand(EMAIL_COMMAND, {
email && conference?.sendCommand(EMAIL_COMMAND, {
value: email
});
if (features && features['screen-sharing'] === 'true') {
conference.setLocalParticipantProperty('features_screen-sharing', true);
conference?.setLocalParticipantProperty('features_screen-sharing', true);
}
conference.setDisplayName(name);
conference?.setDisplayName(name);
}
/**

View File

@@ -1,4 +1,6 @@
import { FaceLandmarks } from '../../face-landmarks/types';
import { LOCKED_LOCALLY, LOCKED_REMOTELY } from '../../room-lock/constants';
import { ISpeakerStats } from '../../speaker-stats/reducer';
import { CONNECTION_WILL_CONNECT, SET_LOCATION_URL } from '../connection/actionTypes';
import { JitsiConferenceErrors } from '../lib-jitsi-meet';
import ReducerRegistry from '../redux/ReducerRegistry';
@@ -44,6 +46,7 @@ export interface IJitsiConference {
avModerationApprove: Function;
avModerationReject: Function;
createVideoSIPGWSession: Function;
dial: Function;
disableAVModeration: Function;
enableAVModeration: Function;
end: Function;
@@ -53,27 +56,33 @@ export interface IJitsiConference {
getMeetingUniqueId: Function;
getParticipantById: Function;
getParticipants: Function;
getSpeakerStats: () => ISpeakerStats;
grantOwner: Function;
isAVModerationSupported: Function;
isCallstatsEnabled: Function;
isE2EEEnabled: Function;
isEndConferenceSupported: Function;
isLobbySupported: Function;
isSIPCallingSupported: Function;
isStartAudioMuted: Function;
isStartVideoMuted: Function;
join: Function;
joinLobby: Function;
kickParticipant: Function;
lock: Function;
muteParticipant: Function;
myLobbyUserId: Function;
myUserId: Function;
off: Function;
on: Function;
options: any;
removeTrack: Function;
replaceTrack: Function;
room: IJitsiConferenceRoom;
sendCommand: Function;
sendCommandOnce: Function;
sendEndpointMessage: Function;
sendFaceLandmarks: (faceLandmarks: FaceLandmarks) => void;
sendFeedback: Function;
sendLobbyMessage: Function;
sessionId: string;
@@ -83,6 +92,7 @@ export interface IJitsiConference {
setReceiverConstraints: Function;
setSenderVideoConstraint: Function;
setSubject: Function;
startVerification: Function;
}
export interface IConferenceState {
@@ -100,7 +110,7 @@ export interface IConferenceState {
leaving?: Object;
localSubject?: string;
locked?: string;
membersOnly?: Object;
membersOnly?: IJitsiConference;
obfuscatedRoom?: string;
obfuscatedRoomSource?: string;
p2p?: Object;
@@ -223,7 +233,8 @@ function _authStatusChanged(state: IConferenceState,
* @returns {Object} The new state of the feature base/conference after the
* reduction of the specified action.
*/
function _conferenceFailed(state: IConferenceState, { conference, error }: { conference: Object; error: Error; }) {
function _conferenceFailed(state: IConferenceState, { conference, error }: {
conference: IJitsiConference; error: Error; }) {
// The current (similar to getCurrentConference in
// base/conference/functions.any.js) conference which is joining or joined:
const conference_ = state.conference || state.joining;

View File

@@ -2,7 +2,6 @@ type ToolbarButtons = 'camera' |
'chat' |
'closedcaptions' |
'desktop' |
'dock-iframe' |
'download' |
'embedmeeting' |
'etherpad' |
@@ -29,7 +28,6 @@ type ToolbarButtons = 'camera' |
'stats' |
'tileview' |
'toggle-camera' |
'undock-iframe' |
'videoquality' |
'__end';
@@ -90,6 +88,36 @@ export type Sounds = 'ASKED_TO_UNMUTE_SOUND' |
'RECORDING_ON_SOUND' |
'TALK_WHILE_MUTED_SOUND';
export interface IMobileDynamicLink {
apn: string;
appCode: string;
customDomain?: string;
ibi: string;
isi: string;
}
export interface IDeeplinkingPlatformConfig {
appName: string;
}
export interface IDeeplinkingMobileConfig extends IDeeplinkingPlatformConfig {
appPackage?: string;
appScheme: string;
downloadLink: string;
dynamicLink?: IMobileDynamicLink;
fDroidUrl?: string;
}
export interface IDeeplinkingConfig {
android?: IDeeplinkingMobileConfig;
desktop?: IDeeplinkingPlatformConfig;
disabled: boolean;
hideLogo: boolean;
ios?: IDeeplinkingMobileConfig;
showImage: boolean;
}
export interface IConfig {
_desktopSharingSourceDevice?: string;
analytics?: {
@@ -129,6 +157,7 @@ export interface IConfig {
preventExecution: boolean;
}>;
callDisplayName?: string;
callFlowsEnabled?: boolean;
callStatsConfigParams?: {
additionalIDs?: {
customerID?: string;
@@ -160,6 +189,7 @@ export interface IConfig {
alwaysVisible?: Array<string>;
autoHide?: Array<string>;
};
conferenceRequestUrl?: string;
connectionIndicators?: {
autoHide?: boolean;
autoHideTimeout?: number;
@@ -177,6 +207,7 @@ export interface IConfig {
};
};
corsAvatarURLs?: Array<string>;
deeplinking?: IDeeplinkingConfig;
defaultLanguage?: string;
defaultLocalDisplayName?: string;
defaultLogoUrl?: string;
@@ -203,7 +234,7 @@ export interface IConfig {
disableChatSmileys?: boolean;
disableDeepLinking?: boolean;
disableFilmstripAutohiding?: boolean;
disableH264?: boolean;
disableFocus?: boolean;
disableIncomingMessageSound?: boolean;
disableInitialGUM?: boolean;
disableInviteFunctions?: boolean;
@@ -316,6 +347,7 @@ export interface IConfig {
sdkKey?: string;
tileTime?: number;
};
googleApiApplicationClientID?: string;
gravatar?: {
baseUrl?: string;
disabled?: boolean;
@@ -340,10 +372,13 @@ export interface IConfig {
domain: string;
focus?: string;
muc: string;
visitorFocus: string;
};
iAmRecorder?: boolean;
iAmSipGateway?: boolean;
inviteAppName?: string | null;
inviteServiceCallFlowsUrl?: string;
inviteServiceUrl?: string;
jaasActuatorUrl?: string;
jaasFeedbackMetadataURL?: string;
jaasTokenUrl?: string;
@@ -366,6 +401,7 @@ export interface IConfig {
localSubject?: string;
locationURL?: URL;
maxFullResolutionParticipants?: number;
microsoftApiApplicationClientID?: string;
moderatedRoomServiceUrl?: string;
mouseMoveCallbackInterval?: number;
noticeMessage?: string;
@@ -379,12 +415,10 @@ export interface IConfig {
opusMaxAverageBitrate?: number;
p2p?: {
backToP2PDelay?: number;
disableH264?: boolean;
disabledCodec?: string;
enableUnifiedOnChrome?: boolean;
enabled?: boolean;
iceTransportPolicy?: string;
preferH264?: boolean;
preferredCodec?: string;
stunServers?: Array<{ urls: string; }>;
};
@@ -395,7 +429,6 @@ export interface IConfig {
};
pcStatsInterval?: number;
peopleSearchUrl?: string;
preferH264?: boolean;
preferredTranscribeLanguage?: string;
prejoinConfig?: {
enabled?: boolean;
@@ -450,12 +483,10 @@ export interface IConfig {
subject?: string;
testing?: {
callStatsThreshold?: number;
capScreenshareBitrate?: number;
disableE2EE?: boolean;
mobileXmppWsThreshold?: number;
noAutoPlayVideo?: boolean;
p2pTestMode?: boolean;
setScreenSharingResolutionConstraints?: boolean;
testMode?: boolean;
};
tileView?: {
@@ -481,7 +512,6 @@ export interface IConfig {
useAppLanguage?: boolean;
};
useHostPageLocalStorage?: boolean;
useNewBandwidthAllocationStrategy?: boolean;
useTurnUdp?: boolean;
videoQuality?: {
disabledCodec?: string;
@@ -504,6 +534,10 @@ export interface IConfig {
webrtcIceUdpDisable?: boolean;
websocket?: string;
websocketKeepAliveUrl?: string;
welcomePage?: {
customUrl?: string;
disabled?: boolean;
};
whiteboard?: {
collabServerBaseUrl?: string;
enabled?: boolean;

View File

@@ -81,6 +81,8 @@ export default [
'brandingRoomAlias',
'debug',
'debugAudioLevels',
'deeplinking.disabled',
'deeplinking.showImage',
'defaultLocalDisplayName',
'defaultRemoteDisplayName',
'deploymentUrls',
@@ -99,7 +101,6 @@ export default [
'disabledSounds',
'disableFilmstripAutohiding',
'disableInitialGUM',
'disableH264',
'disableHPF',
'disableInviteFunctions',
'disableIncomingMessageSound',
@@ -197,7 +198,6 @@ export default [
'p2p',
'participantsPane',
'pcStatsInterval',
'preferH264',
'preferredCodec',
'prejoinConfig',
'prejoinPageEnabled',

View File

@@ -1,6 +1,6 @@
/* eslint-disable lines-around-comment */
// @ts-ignore
import Bourne from '@hapi/bourne';
// eslint-disable-next-line lines-around-comment
// @ts-ignore
import { jitsiLocalStorage } from '@jitsi/js-utils';
import _ from 'lodash';
@@ -60,7 +60,7 @@ export function getMeetingRegion(state: IReduxState) {
* @returns {boolean}
*/
export function getMultipleVideoSendingSupportFeatureFlag(state: IReduxState) {
return navigator.product !== 'ReactNative' && isUnifiedPlanEnabled(state);
return isUnifiedPlanEnabled(state);
}
/**

View File

@@ -4,7 +4,7 @@ import { IReduxState } from '../../app/types';
import { REPLACE_PARTICIPANT } from '../flags/constants';
import { getFeatureFlag } from '../flags/functions';
import { IConfig } from './configType';
import { IConfig, IDeeplinkingConfig } from './configType';
export * from './functions.any';
@@ -15,11 +15,18 @@ export * from './functions.any';
* @returns {void}
*/
export function _cleanupConfig(config: IConfig) {
config.analytics = {};
config.analytics = config.analytics ?? {};
config.analytics.scriptURLs = [];
if (NativeModules.AppInfo.LIBRE_BUILD) {
delete config.analytics?.amplitudeAPPKey;
delete config.analytics?.googleAnalyticsTrackingId;
delete config.analytics?.rtcstatsEnabled;
delete config.analytics?.rtcstatsEndpoint;
delete config.analytics?.rtcstatsPollInterval;
delete config.analytics?.rtcstatsSendSdp;
delete config.analytics?.rtcstatsUseLegacy;
delete config.analytics?.obfuscateRoomName;
delete config.callStatsID;
delete config.callStatsSecret;
config.giphy = { enabled: false };
@@ -35,3 +42,14 @@ export function _cleanupConfig(config: IConfig) {
export function getReplaceParticipant(state: IReduxState): string {
return getFeatureFlag(state, REPLACE_PARTICIPANT, false);
}
/**
* Sets the defaults for deeplinking.
*
* @param {IDeeplinkingConfig} _deeplinking - The deeplinking config.
* @returns {void}
*/
export function _setDeeplinkingDefaults(_deeplinking: IDeeplinkingConfig) {
return;
}

View File

@@ -1,6 +1,6 @@
import { IReduxState } from '../../app/types';
import { IConfig } from './configType';
import { IConfig, IDeeplinkingConfig, IDeeplinkingMobileConfig, IDeeplinkingPlatformConfig } from './configType';
import { TOOLBAR_BUTTONS } from './constants';
export * from './functions.any';
@@ -8,10 +8,11 @@ export * from './functions.any';
/**
* Removes all analytics related options from the given configuration, in case of a libre build.
*
* @param {*} config - The configuration which needs to be cleaned up.
* @param {*} _config - The configuration which needs to be cleaned up.
* @returns {void}
*/
export function _cleanupConfig(config: IConfig) { // eslint-disable-line @typescript-eslint/no-unused-vars
export function _cleanupConfig(_config: IConfig) {
return;
}
/**
@@ -60,3 +61,43 @@ export function areAudioLevelsEnabled(state: IReduxState): boolean {
// Default to false for React Native as audio levels are of no interest to the mobile app.
return navigator.product !== 'ReactNative' && !state['features/base/config'].disableAudioLevels;
}
/**
* Sets the defaults for deeplinking.
*
* @param {IDeeplinkingConfig} deeplinking - The deeplinking config.
* @returns {void}
*/
export function _setDeeplinkingDefaults(deeplinking: IDeeplinkingConfig) {
const {
desktop = {} as IDeeplinkingPlatformConfig,
android = {} as IDeeplinkingMobileConfig,
ios = {} as IDeeplinkingMobileConfig
} = deeplinking;
desktop.appName = desktop.appName || 'Jitsi Meet';
ios.appName = ios.appName || 'Jitsi Meet';
ios.appScheme = ios.appScheme || 'org.jitsi.meet';
ios.downloadLink = ios.downloadLink
|| 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905';
if (ios.dynamicLink) {
ios.dynamicLink.apn = ios.dynamicLink.apn || 'org.jitsi.meet';
ios.dynamicLink.appCode = ios.dynamicLink.appCode || 'w2atb';
ios.dynamicLink.ibi = ios.dynamicLink.ibi || 'com.atlassian.JitsiMeet.ios';
ios.dynamicLink.isi = ios.dynamicLink.isi || '1165103905';
}
android.appName = android.appName || 'Jitsi Meet';
android.appScheme = android.appScheme || 'org.jitsi.meet';
android.downloadLink = android.downloadLink
|| 'https://play.google.com/store/apps/details?id=org.jitsi.meet';
android.appPackage = android.appPackage || 'org.jitsi.meet';
android.fDroidUrl = android.fDroidUrl || 'https://f-droid.org/en/packages/org.jitsi.meet/';
if (android.dynamicLink) {
android.dynamicLink.apn = android.dynamicLink.apn || 'org.jitsi.meet';
android.dynamicLink.appCode = android.dynamicLink.appCode || 'w2atb';
android.dynamicLink.ibi = android.dynamicLink.ibi || 'com.atlassian.JitsiMeet.ios';
android.dynamicLink.isi = android.dynamicLink.isi || '1165103905';
}
}

View File

@@ -52,7 +52,9 @@ function _setConfig({ dispatch, getState }: IStore, next: Function, action: AnyA
const settings = state['features/base/settings'];
const config: IConfig = {};
if (typeof settings.disableP2P !== 'undefined') {
// FIXME: P2P is currently temporality disabled on mobile.
// eslint-disable-next-line no-constant-condition
if (false && typeof settings.disableP2P !== 'undefined') {
config.p2p = { enabled: !settings.disableP2P };
}

View File

@@ -11,8 +11,14 @@ import {
SET_CONFIG,
UPDATE_CONFIG
} from './actionTypes';
import { IConfig } from './configType';
import { _cleanupConfig } from './functions';
import {
IConfig,
IDeeplinkingConfig,
IDeeplinkingMobileConfig,
IDeeplinkingPlatformConfig,
IMobileDynamicLink
} from './configType';
import { _cleanupConfig, _setDeeplinkingDefaults } from './functions';
/**
* The initial state of the feature base/config when executing in a
@@ -47,14 +53,18 @@ const INITIAL_RN_STATE: IConfig = {
// fastest to merely disable them.
disableAudioLevels: true,
// FIXME: Mobile codecs should probably be configurable separately, rather
// than requiring this override here...
p2p: {
// Temporarily disable P2P on mobile while we sort out some (codec?) issues.
enabled: false,
disabledCodec: 'vp9',
preferredCodec: 'h264'
},
videoQuality: {
// FIXME: Mobile codecs should probably be configurable separately, rather
// than requiring this override here...
enforcePreferredCodec: true,
disabledCodec: 'vp9',
preferredCodec: 'vp8'
}
};
@@ -74,6 +84,7 @@ export interface IConfigState extends IConfig {
analysis?: {
obfuscateRoomName?: boolean;
};
disableRemoteControl?: boolean;
error?: Error;
}
@@ -287,6 +298,52 @@ function _translateInterfaceConfig(oldValue: IConfig) {
}
}
// if we have `deeplinking` defined, ignore deprecated values. Otherwise, compose the config.
if (!oldValue.deeplinking) {
const disabled = Boolean(oldValue.disableDeepLinking);
const deeplinking: IDeeplinkingConfig = {
desktop: {} as IDeeplinkingPlatformConfig,
hideLogo: false,
disabled,
showImage: false,
android: {} as IDeeplinkingMobileConfig,
ios: {} as IDeeplinkingMobileConfig
};
if (typeof interfaceConfig === 'object') {
const mobileDynamicLink = interfaceConfig.MOBILE_DYNAMIC_LINK;
const dynamicLink: IMobileDynamicLink | undefined = mobileDynamicLink ? {
apn: mobileDynamicLink.APN,
appCode: mobileDynamicLink.APP_CODE,
ibi: mobileDynamicLink.IBI,
isi: mobileDynamicLink.ISI,
customDomain: mobileDynamicLink.CUSTOM_DOMAIN
} : undefined;
if (deeplinking.desktop) {
deeplinking.desktop.appName = interfaceConfig.NATIVE_APP_NAME;
}
deeplinking.hideLogo = Boolean(interfaceConfig.HIDE_DEEP_LINKING_LOGO);
deeplinking.showImage = interfaceConfig.SHOW_DEEP_LINKING_IMAGE;
deeplinking.android = {
appName: interfaceConfig.NATIVE_APP_NAME,
appScheme: interfaceConfig.APP_SCHEME,
downloadLink: interfaceConfig.MOBILE_DOWNLOAD_LINK_ANDROID,
appPackage: interfaceConfig.ANDROID_APP_PACKAGE,
fDroidUrl: interfaceConfig.MOBILE_DOWNLOAD_LINK_F_DROID,
dynamicLink
};
deeplinking.ios = {
appName: interfaceConfig.NATIVE_APP_NAME,
appScheme: interfaceConfig.APP_SCHEME,
downloadLink: interfaceConfig.MOBILE_DOWNLOAD_LINK_IOS,
dynamicLink
};
}
newValue.deeplinking = deeplinking;
}
return newValue;
}
@@ -334,6 +391,13 @@ function _translateLegacyConfig(oldValue: IConfig) {
});
}
newValue.welcomePage = oldValue.welcomePage || {};
if (oldValue.hasOwnProperty('enableWelcomePage')
&& !newValue.welcomePage.hasOwnProperty('disabled')
) {
newValue.welcomePage.disabled = !oldValue.enableWelcomePage;
}
newValue.prejoinConfig = oldValue.prejoinConfig || {};
if (oldValue.hasOwnProperty('prejoinPageEnabled')
&& !newValue.prejoinConfig.hasOwnProperty('enabled')
@@ -468,6 +532,8 @@ function _translateLegacyConfig(oldValue: IConfig) {
};
}
_setDeeplinkingDefaults(newValue.deeplinking as IDeeplinkingConfig);
return newValue;
}

View File

@@ -189,6 +189,9 @@ export function constructOptions(state: IReduxState) {
if (options.websocketKeepAliveUrl) {
options.websocketKeepAliveUrl = appendURLParam(options.websocketKeepAliveUrl, 'room', roomName ?? '');
}
if (options.conferenceRequestUrl) {
options.conferenceRequestUrl = appendURLParam(options.conferenceRequestUrl, 'room', roomName ?? '');
}
}
return options;

View File

@@ -16,6 +16,7 @@ import { ConnectionFailedError } from './actions.any';
export interface IConnectionState {
connecting?: any;
connection?: {
addFeature: Function;
disconnect: Function;
getJid: () => string;
getLogs: () => Object;

View File

@@ -4,6 +4,7 @@ import WaitForOwnerDialog from '../../authentication/components/web/WaitForOwner
import ChatPrivacyDialog from '../../chat/components/web/ChatPrivacyDialog';
import DesktopPicker from '../../desktop-picker/components/DesktopPicker';
import DisplayNamePrompt from '../../display-name/components/web/DisplayNamePrompt';
import ParticipantVerificationDialog from '../../e2ee/components/ParticipantVerificationDialog';
import EmbedMeetingDialog from '../../embed-meeting/components/EmbedMeetingDialog';
// @ts-ignore
import FeedbackDialog from '../../feedback/components/FeedbackDialog.web';
@@ -49,7 +50,7 @@ const NEW_DIALOG_LIST = [ KeyboardShortcutsDialog, ChatPrivacyDialog, DisplayNam
SharedVideoDialog, SpeakerStats, LanguageSelectorDialog, MuteEveryoneDialog, MuteEveryonesVideoDialog,
GrantModeratorDialog, KickRemoteParticipantDialog, MuteRemoteParticipantsVideoDialog, VideoQualityDialog,
VirtualBackgroundDialog, LoginDialog, WaitForOwnerDialog, DesktopPicker, RemoteControlAuthorizationDialog,
LogoutDialog, SalesforceLinkDialog ];
LogoutDialog, SalesforceLinkDialog, ParticipantVerificationDialog ];
// This function is necessary while the transition from @atlaskit dialog to our component is ongoing.
const isNewDialog = (component: any) => NEW_DIALOG_LIST.some(comp => comp === component);

View File

@@ -1,8 +1,8 @@
/* eslint-disable lines-around-comment */
import React, { useCallback } from 'react';
// @ts-ignore
import { Container } from '../../react/base';
// eslint-disable-next-line lines-around-comment
// @ts-ignore
import { styleTypeToObject } from '../../styles';

View File

@@ -1,3 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.3332 3.33329C18.3332 2.41282 17.587 1.66663 16.6665 1.66663H8.33317C7.4127 1.66663 6.6665 2.41282 6.6665 3.33329V4.99996H3.33317C2.4127 4.99996 1.6665 5.74615 1.6665 6.66663V16.6666C1.6665 17.5871 2.4127 18.3333 3.33317 18.3333H13.3332C14.2536 18.3333 14.9998 17.5871 14.9998 16.6666V15H16.6665C17.587 15 18.3332 14.2538 18.3332 13.3333V3.33329ZM8.33317 3.33329H16.6665L16.6665 13.3333H14.9998V6.66663C14.9998 5.74615 14.2536 4.99996 13.3332 4.99996H8.33317V3.33329ZM3.33317 6.66663V16.6666H13.3332V6.66663H3.33317ZM6.6665 12.1024V9.99996C6.6665 9.53972 6.29341 9.16663 5.83317 9.16663C5.37293 9.16663 4.99984 9.53972 4.99984 9.99996V14.1296V14.1666C4.99984 14.5693 5.28549 14.9053 5.66523 14.983C5.71947 14.9941 5.77564 15 5.83317 15L5.83356 14.9992C5.83397 14.9992 5.83439 14.9992 5.8348 14.9992L5.83445 15H5.87022H9.99984C10.4601 15 10.8332 14.6269 10.8332 14.1666C10.8332 13.7064 10.4601 13.3333 9.99984 13.3333H7.89741L11.4116 9.81913C11.7515 9.47922 11.7515 8.92813 11.4116 8.58822C11.0717 8.24832 10.5206 8.24832 10.1807 8.58822L6.6665 12.1024Z" />
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,10 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="10" cy="10" r="10" fill="url(#paint0_radial_72_1897)"/>
<path opacity="0.8" fill-rule="evenodd" clip-rule="evenodd" d="M5.46845 5.14411C5.08781 4.88541 4.56951 4.98428 4.31081 5.36492C4.05212 5.74557 4.15098 6.26387 4.53163 6.52257L5.47766 7.16551C5.18224 7.46624 5.00002 7.87855 5.00002 8.33341C5.00002 9.25388 5.74622 10.0001 6.66669 10.0001C7.58716 10.0001 8.33336 9.25388 8.33336 8.33341C8.33336 8.23415 8.32468 8.13691 8.30804 8.04242C8.54426 7.66462 8.44124 7.16449 8.06956 6.91188L5.46845 5.14411ZM6.66305 14.7842C6.30373 14.5781 6.1795 14.1198 6.38556 13.7605C6.75032 13.1244 7.27645 12.5959 7.91081 12.2283C8.54518 11.8607 9.26532 11.6669 9.99852 11.6667C10.7317 11.6664 11.452 11.8596 12.0866 12.2268C12.7213 12.5939 13.2478 13.1221 13.613 13.7578C13.8193 14.117 13.6954 14.5754 13.3362 14.7818C12.9771 14.9881 12.5186 14.8642 12.3123 14.505C12.0786 14.0981 11.7416 13.7601 11.3354 13.5251C10.9293 13.2901 10.4683 13.1665 9.99906 13.1667C9.52981 13.1668 9.06892 13.2908 8.66293 13.5261C8.25693 13.7614 7.92021 14.0996 7.68677 14.5067C7.4807 14.866 7.02237 14.9902 6.66305 14.7842ZM15.7903 5.36492C15.5316 4.98428 15.0134 4.88541 14.6327 5.14411L12.0316 6.91188C11.7043 7.13434 11.5853 7.54876 11.7229 7.90254C11.6862 8.03998 11.6667 8.18441 11.6667 8.33341C11.6667 9.25388 12.4129 10.0001 13.3334 10.0001C14.2538 10.0001 15 9.25388 15 8.33341C15 7.89926 14.834 7.50388 14.562 7.20728L15.5695 6.52257C15.9502 6.26387 16.049 5.74557 15.7903 5.36492Z" fill="black"/>
<defs>
<radialGradient id="paint0_radial_72_1897" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(10 4.58333) rotate(90) scale(15.4167)">
<stop offset="0.359375" stop-color="#F26325"/>
<stop offset="1" stop-color="#F24A25"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,10 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="10" cy="10" r="10" fill="url(#paint0_radial_351_6183)"/>
<path opacity="0.8" fill-rule="evenodd" clip-rule="evenodd" d="M4.16669 7.50001C4.16669 7.03977 4.53978 6.66667 5.00002 6.66667H7.50002C7.96026 6.66667 8.33335 7.03977 8.33335 7.50001C8.33335 7.96024 7.96026 8.33334 7.50002 8.33334H5.00002C4.53978 8.33334 4.16669 7.96024 4.16669 7.50001ZM6.66669 15C6.66669 13.1591 8.15907 11.6667 10 11.6667C11.841 11.6667 13.3334 13.1591 13.3334 15H6.66669ZM12.5 6.66667C12.0398 6.66667 11.6667 7.03977 11.6667 7.50001C11.6667 7.96024 12.0398 8.33334 12.5 8.33334H15C15.4603 8.33334 15.8334 7.96024 15.8334 7.50001C15.8334 7.03977 15.4603 6.66667 15 6.66667H12.5Z" fill="black"/>
<defs>
<radialGradient id="paint0_radial_351_6183" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(10 4.58333) rotate(90) scale(15.4167)">
<stop offset="0.359375" stop-color="#98E791"/>
<stop offset="1" stop-color="#3C9845"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,10 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="10" cy="10" r="10" fill="url(#paint0_radial_72_1884)"/>
<path opacity="0.8" fill-rule="evenodd" clip-rule="evenodd" d="M8.33333 7.49999C8.33333 8.42047 7.58714 9.16666 6.66667 9.16666C5.74619 9.16666 5 8.42047 5 7.49999C5 6.57952 5.74619 5.83333 6.66667 5.83333C7.58714 5.83333 8.33333 6.57952 8.33333 7.49999ZM15 7.49999C15 8.42047 14.2538 9.16666 13.3333 9.16666C12.4129 9.16666 11.6667 8.42047 11.6667 7.49999C11.6667 6.57952 12.4129 5.83333 13.3333 5.83333C14.2538 5.83333 15 6.57952 15 7.49999ZM10 11.6667C8.15905 11.6667 6.66667 13.159 6.66667 15H13.3333C13.3333 13.159 11.8409 11.6667 10 11.6667Z" fill="black"/>
<defs>
<radialGradient id="paint0_radial_72_1884" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(10 4.58333) rotate(90) scale(15.4167)">
<stop offset="0.359375" stop-color="#6BEBD4"/>
<stop offset="1" stop-color="#077EA4"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1018 B

View File

@@ -0,0 +1,10 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="10" cy="10" r="10" fill="url(#paint0_radial_72_1844)"/>
<path opacity="0.8" fill-rule="evenodd" clip-rule="evenodd" d="M8.33333 7.49999C8.33333 8.42047 7.58714 9.16666 6.66667 9.16666C5.74619 9.16666 5 8.42047 5 7.49999C5 6.57952 5.74619 5.83333 6.66667 5.83333C7.58714 5.83333 8.33333 6.57952 8.33333 7.49999ZM15 7.49999C15 8.42047 14.2538 9.16666 13.3333 9.16666C12.4129 9.16666 11.6667 8.42047 11.6667 7.49999C11.6667 6.57952 12.4129 5.83333 13.3333 5.83333C14.2538 5.83333 15 6.57952 15 7.49999ZM7.53238 12.6776C7.37535 12.2943 6.93734 12.1109 6.55404 12.2679C6.17075 12.4249 5.98732 12.8629 6.14435 13.2462C6.45676 14.0088 6.98828 14.6616 7.6717 15.1221C8.35513 15.5826 9.15976 15.8301 9.98384 15.8333C10.8079 15.8365 11.6144 15.5953 12.3014 15.1401C12.9884 14.6849 13.525 14.0362 13.8433 13.2761C14.0033 12.894 13.8233 12.4546 13.4412 12.2946C13.0591 12.1346 12.6197 12.3146 12.4597 12.6967C12.256 13.1832 11.9126 13.5983 11.4729 13.8896C11.0332 14.181 10.5171 14.3354 9.98966 14.3333C9.46224 14.3313 8.94728 14.1729 8.50989 13.8782C8.0725 13.5834 7.73232 13.1656 7.53238 12.6776Z" fill="black"/>
<defs>
<radialGradient id="paint0_radial_72_1844" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(10 4.58333) rotate(90) scale(15.4167)">
<stop offset="0.359375" stop-color="#F2AD25"/>
<stop offset="1" stop-color="#F27B25"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,10 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="10" cy="10" r="10" fill="url(#paint0_radial_72_1850)"/>
<path opacity="0.8" fill-rule="evenodd" clip-rule="evenodd" d="M8.33333 7.49999C8.33333 8.42047 7.58714 9.16666 6.66667 9.16666C5.74619 9.16666 5 8.42047 5 7.49999C5 6.57952 5.74619 5.83333 6.66667 5.83333C7.58714 5.83333 8.33333 6.57952 8.33333 7.49999ZM15 7.49999C15 8.42047 14.2538 9.16666 13.3333 9.16666C12.4129 9.16666 11.6667 8.42047 11.6667 7.49999C11.6667 6.57952 12.4129 5.83333 13.3333 5.83333C14.2538 5.83333 15 6.57952 15 7.49999ZM7.5 13.3333C7.03976 13.3333 6.66667 13.7064 6.66667 14.1667C6.66667 14.6269 7.03976 15 7.5 15H12.5C12.9602 15 13.3333 14.6269 13.3333 14.1667C13.3333 13.7064 12.9602 13.3333 12.5 13.3333H7.5Z" fill="black"/>
<defs>
<radialGradient id="paint0_radial_72_1850" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(10 4.58333) rotate(90) scale(15.4167)">
<stop offset="0.359375" stop-color="#AAAAAA"/>
<stop offset="1" stop-color="#5E5E5E"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,10 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="10" cy="10" r="10" fill="url(#paint0_radial_72_1862)"/>
<path opacity="0.8" fill-rule="evenodd" clip-rule="evenodd" d="M8.33333 7.49999C8.33333 8.42047 7.58714 9.16666 6.66667 9.16666C5.74619 9.16666 5 8.42047 5 7.49999C5 6.57952 5.74619 5.83333 6.66667 5.83333C7.58714 5.83333 8.33333 6.57952 8.33333 7.49999ZM15 7.49999C15 8.42047 14.2538 9.16666 13.3333 9.16666C12.4129 9.16666 11.6667 8.42047 11.6667 7.49999C11.6667 6.57952 12.4129 5.83333 13.3333 5.83333C14.2538 5.83333 15 6.57952 15 7.49999ZM6.38554 13.7605C6.17948 14.1198 6.30371 14.5781 6.66303 14.7842C7.02235 14.9902 7.48068 14.866 7.68675 14.5067C7.92019 14.0996 8.25691 13.7614 8.66291 13.5261C9.0689 13.2908 9.52979 13.1668 9.99904 13.1667C10.4683 13.1665 10.9293 13.2901 11.3354 13.5251C11.7416 13.7601 12.0786 14.0981 12.3123 14.505C12.5186 14.8642 12.977 14.9881 13.3362 14.7818C13.6954 14.5754 13.8193 14.117 13.613 13.7578C13.2477 13.1221 12.7212 12.5939 12.0866 12.2268C11.452 11.8596 10.7317 11.6664 9.9985 11.6667C9.2653 11.6669 8.54516 11.8607 7.91079 12.2283C7.27643 12.5959 6.7503 13.1244 6.38554 13.7605Z" fill="black"/>
<defs>
<radialGradient id="paint0_radial_72_1862" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(10 4.58333) rotate(90) scale(15.4167)">
<stop offset="0.359375" stop-color="#65B3FB"/>
<stop offset="1" stop-color="#256BF2"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,10 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="10" cy="10" r="10" fill="url(#paint0_radial_72_1873)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.33333 7.49999C8.33333 8.42047 7.58714 9.16666 6.66667 9.16666C5.74619 9.16666 5 8.42047 5 7.49999C5 6.57952 5.74619 5.83333 6.66667 5.83333C7.58714 5.83333 8.33333 6.57952 8.33333 7.49999ZM15 7.49999C15 8.42047 14.2538 9.16666 13.3333 9.16666C12.4129 9.16666 11.6667 8.42047 11.6667 7.49999C11.6667 6.57952 12.4129 5.83333 13.3333 5.83333C14.2538 5.83333 15 6.57952 15 7.49999ZM10 15C11.3807 15 12.5 14.403 12.5 13.6667C12.5 12.9303 11.3807 11.6667 10 11.6667C8.61929 11.6667 7.5 12.9303 7.5 13.6667C7.5 14.403 8.61929 15 10 15Z" fill="black"/>
<defs>
<radialGradient id="paint0_radial_72_1873" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(10 4.58333) rotate(90) scale(15.4167)">
<stop offset="0.359375" stop-color="#CC86E4"/>
<stop offset="1" stop-color="#933CD8"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -22,13 +22,19 @@ export { default as IconConnectionInactive } from './ninja.svg';
export { default as IconCopy } from './copy.svg';
export { default as IconCrown } from './host.svg';
export { default as IconDeviceHeadphone } from './headset.svg';
export { default as IconDock } from './dock.svg';
export { default as IconDotsHorizontal } from './dots-horizontal.svg';
export { default as IconDownload } from './download.svg';
export { default as IconE2EE } from './e2ee.svg';
export { default as IconEnlarge } from './enlarge.svg';
export { default as IconEnterFullscreen } from './enter-fullscreen.svg';
export { default as IconEnvelope } from './envelope.svg';
export { default as IconEmotionsAngry } from './emotions-angry.svg';
export { default as IconEmotionsDisgusted } from './emotions-disgusted.svg';
export { default as IconEmotionsFearful } from './emotions-fearful.svg';
export { default as IconEmotionsHappy } from './emotions-happy.svg';
export { default as IconEmotionsNeutral } from './emotions-neutral.svg';
export { default as IconEmotionsSad } from './emotions-sad.svg';
export { default as IconEmotionsSurprised } from './emotions-surprised.svg';
export { default as IconExclamationSolid } from './exclamation-solid.svg';
export { default as IconExclamationTriangle } from './exclamation-triangle.svg';
export { default as IconExitFullscreen } from './exit-fullscreen.svg';
@@ -81,7 +87,6 @@ export { default as IconStopScreenshare } from './stop-screenshare.svg';
export { default as IconSubtitles } from './subtitles.svg';
export { default as IconTileView } from './tile-view.svg';
export { default as IconTrash } from './trash.svg';
export { default as IconUndock } from './undock.svg';
export { default as IconUserDeleted } from './user-deleted.svg';
export { default as IconUserGroups } from './user-groups.svg';
export { default as IconUsers } from './users.svg';

View File

@@ -1,3 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.6665 1.66663H6.6665C5.74603 1.66663 4.99984 2.41282 4.99984 3.33329V4.99996H3.33317C2.4127 4.99996 1.6665 5.74615 1.6665 6.66663V16.6666C1.6665 17.5871 2.4127 18.3333 3.33317 18.3333H13.3332C14.2536 18.3333 14.9998 17.5871 14.9998 16.6666V15H16.6665C17.587 15 18.3332 14.2538 18.3332 13.3333V3.33329C18.3332 2.41282 17.587 1.66663 16.6665 1.66663ZM13.3332 16.6666V15H6.6665C5.74603 15 4.99984 14.2538 4.99984 13.3333V6.66663H3.33317V16.6666H13.3332ZM6.6665 3.33329V13.3333H16.6665V3.33329H6.6665ZM9.99984 4.99996C9.5396 4.99996 9.1665 5.37306 9.1665 5.83329C9.1665 6.29353 9.5396 6.66663 9.99984 6.66663H12.1023L8.5881 10.1808C8.24819 10.5207 8.24819 11.0718 8.5881 11.4117C8.928 11.7516 9.4791 11.7516 9.819 11.4117L13.3332 7.89753V9.99996C13.3332 10.4602 13.7063 10.8333 14.1665 10.8333C14.6267 10.8333 14.9998 10.4602 14.9998 9.99996V5.83329C14.9998 5.37306 14.6267 4.99996 14.1665 4.99996H14.1295H9.99984Z" />
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -5,7 +5,6 @@ import { SET_FILMSTRIP_ENABLED } from '../../filmstrip/actionTypes';
import { SELECT_LARGE_VIDEO_PARTICIPANT } from '../../large-video/actionTypes';
import { APP_STATE_CHANGED } from '../../mobile/background/actionTypes';
import {
SCREEN_SHARE_REMOTE_PARTICIPANTS_UPDATED,
SET_CAR_MODE,
SET_TILE_VIEW,
VIRTUAL_SCREENSHARE_REMOTE_PARTICIPANTS_UPDATED
@@ -102,7 +101,6 @@ MiddlewareRegistry.register(store => next => action => {
case PARTICIPANT_JOINED:
case PARTICIPANT_KICKED:
case PARTICIPANT_LEFT:
case SCREEN_SHARE_REMOTE_PARTICIPANTS_UPDATED:
case SELECT_LARGE_VIDEO_PARTICIPANT:
case SET_AUDIO_ONLY:
case SET_CAR_MODE:

View File

@@ -17,7 +17,6 @@ import {
} from './actionTypes';
import {
MEDIA_TYPE,
type MediaType,
SCREENSHARE_MUTISM_AUTHORITY,
VIDEO_MUTISM_AUTHORITY
} from './constants';
@@ -95,14 +94,12 @@ export function setCameraFacingMode(cameraFacingMode: string) {
* Action to set the muted state of the local screenshare.
*
* @param {boolean} muted - True if the local screenshare is to be enabled or false otherwise.
* @param {MEDIA_TYPE} mediaType - The type of media.
* @param {number} authority - The {@link SCREENSHARE_MUTISM_AUTHORITY} which is muting/unmuting the local screenshare.
* @param {boolean} ensureTrack - True if we want to ensure that a new track is created if missing.
* @returns {Function}
*/
export function setScreenshareMuted(
muted: boolean,
mediaType: MediaType = MEDIA_TYPE.SCREENSHARE,
authority: number = SCREENSHARE_MUTISM_AUTHORITY.USER,
ensureTrack = false) {
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
@@ -125,7 +122,6 @@ export function setScreenshareMuted(
return dispatch({
type: SET_SCREENSHARE_MUTED,
authority,
mediaType,
ensureTrack,
muted: newValue
});
@@ -154,7 +150,6 @@ export function setVideoAvailable(available: boolean) {
*
* @param {boolean} muted - True if the local video is to be muted or false if
* the local video is to be unmuted.
* @param {MEDIA_TYPE} mediaType - The type of media.
* @param {number} authority - The {@link VIDEO_MUTISM_AUTHORITY} which is
* muting/unmuting the local video.
* @param {boolean} ensureTrack - True if we want to ensure that a new track is
@@ -163,7 +158,6 @@ export function setVideoAvailable(available: boolean) {
*/
export function setVideoMuted(
muted: boolean,
mediaType: string = MEDIA_TYPE.VIDEO,
authority: number = VIDEO_MUTISM_AUTHORITY.USER,
ensureTrack = false) {
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
@@ -186,7 +180,6 @@ export function setVideoMuted(
return dispatch({
type: SET_VIDEO_MUTED,
authority,
mediaType,
ensureTrack,
muted: newValue
});

View File

@@ -1,15 +1,17 @@
// @flow
import React, { Component } from 'react';
import { PanResponder, PixelRatio, View } from 'react-native';
import { SafeAreaView } from 'react-native-safe-area-context';
import { type Dispatch } from 'redux';
import { connect } from '../../../redux';
import { ASPECT_RATIO_WIDE } from '../../../responsive-ui';
import { IReduxState } from '../../../../app/types';
import { connect } from '../../../redux/functions';
import { ASPECT_RATIO_WIDE } from '../../../responsive-ui/constants';
import { storeVideoTransform } from '../../actions';
// @ts-ignore
import styles from './styles';
/**
* The default/initial transform (= no transform).
*/
@@ -55,9 +57,9 @@ const TAP_TIMEOUT_MS = 400;
* Type of a transform object this component is capable of handling.
*/
type Transform = {
scale: number,
translateX: number,
translateY: number
scale: number;
translateX: number;
translateY: number;
};
type Props = {
@@ -65,43 +67,43 @@ type Props = {
/**
* The current aspect ratio of the screen.
*/
_aspectRatio: Symbol,
_aspectRatio: Symbol;
/**
* The children components of this view.
* Action to dispatch when the component is unmounted.
*/
children: Object,
/**
* Transformation is only enabled when this flag is true.
*/
enabled: boolean,
/**
* Function to invoke when a press event is detected.
*/
onPress?: Function,
/**
* The id of the current stream that is displayed.
*/
streamId: string,
/**
* Style of the top level transformable view.
*/
style: Object,
_onUnmount: Function;
/**
* The stored transforms retrieved from Redux to be initially applied
* to different streams.
*/
_transforms: Object,
_transforms: Object;
/**
* Action to dispatch when the component is unmounted.
* The children components of this view.
*/
_onUnmount: Function
children: Object;
/**
* Transformation is only enabled when this flag is true.
*/
enabled: boolean;
/**
* Function to invoke when a press event is detected.
*/
onPress?: Function;
/**
* The id of the current stream that is displayed.
*/
streamId: string;
/**
* Style of the top level transformable view.
*/
style: Object;
};
type State = {
@@ -109,12 +111,12 @@ type State = {
/**
* The current (non-transformed) layout of the View.
*/
layout: ?Object,
layout: any;
/**
* The current transform that is applied.
*/
transform: Transform
transform: Transform;
};
/**
@@ -129,14 +131,14 @@ class VideoTransform extends Component<Props, State> {
/**
* The initial distance of the fingers on pinch start.
*/
initialDistance: ?number;
initialDistance: number;
/**
* The initial position of the finger on touch start.
*/
initialPosition: {
x: number,
y: number
x: number;
y: number;
};
/**
@@ -233,14 +235,17 @@ class VideoTransform extends Component<Props, State> {
videoTransformedViewContainerStyles,
style
] }
// @ts-ignore
{ ...this.gestureHandlers.panHandlers }>
<View
<SafeAreaView
edges = { [ 'bottom', 'left' ] }
style = { [
styles.videoTranformedView,
this._getTransformStyle()
] }>
{ children }
</View>
</SafeAreaView>
</View>
);
}
@@ -281,15 +286,13 @@ class VideoTransform extends Component<Props, State> {
};
}
_didMove: Object => boolean;
/**
* Determines if there was large enough movement to be handled.
*
* @param {Object} gestureState - The gesture state.
* @returns {boolean}
*/
_didMove({ dx, dy }) {
_didMove({ dx, dy }: any) {
return Math.abs(dx) > this.moveThreshold
|| Math.abs(dy) > this.moveThreshold;
}
@@ -302,14 +305,13 @@ class VideoTransform extends Component<Props, State> {
* @private
* @returns {Object | null}
*/
_getSavedTransform(streamId) {
_getSavedTransform(streamId: string) {
const { enabled, _transforms } = this.props;
// @ts-ignore
return (enabled && _transforms[streamId]) || null;
}
_getTouchDistance: Object => number;
/**
* Calculates the touch distance on a pinch event.
*
@@ -317,15 +319,13 @@ class VideoTransform extends Component<Props, State> {
* @private
* @returns {number}
*/
_getTouchDistance({ nativeEvent: { touches } }) {
_getTouchDistance({ nativeEvent: { touches } }: any) {
const dx = Math.abs(touches[0].pageX - touches[1].pageX);
const dy = Math.abs(touches[0].pageY - touches[1].pageY);
return Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));
}
_getTouchPosition: Object => Object;
/**
* Calculates the position of the touch event.
*
@@ -333,15 +333,13 @@ class VideoTransform extends Component<Props, State> {
* @private
* @returns {Object}
*/
_getTouchPosition({ nativeEvent: { touches } }) {
_getTouchPosition({ nativeEvent: { touches } }: any) {
return {
x: touches[0].pageX,
y: touches[0].pageY
};
}
_getTransformStyle: () => Object;
/**
* Generates a transform style object to be used on the component.
*
@@ -473,8 +471,6 @@ class VideoTransform extends Component<Props, State> {
}
}
_onGesture: (string, ?Object | number) => void;
/**
* Handles gestures and converts them to transforms.
*
@@ -494,7 +490,7 @@ class VideoTransform extends Component<Props, State> {
* @param {?Object | number} value - The value of the gesture, if any.
* @returns {void}
*/
_onGesture(type, value) {
_onGesture(type: string, value: any) {
let transform;
switch (type) {
@@ -528,8 +524,6 @@ class VideoTransform extends Component<Props, State> {
this.lastTap = 0;
}
_onLayout: Object => void;
/**
* Callback for the onLayout of the component.
*
@@ -537,7 +531,7 @@ class VideoTransform extends Component<Props, State> {
* @private
* @returns {void}
*/
_onLayout({ nativeEvent: { layout: { x, y, width, height } } }) {
_onLayout({ nativeEvent: { layout: { x, y, width, height } } }: any) {
this.setState({
layout: {
x,
@@ -548,8 +542,6 @@ class VideoTransform extends Component<Props, State> {
});
}
_onMoveShouldSetPanResponder: (Object, Object) => boolean;
/**
* Function to decide whether the responder should respond to a move event.
*
@@ -558,14 +550,12 @@ class VideoTransform extends Component<Props, State> {
* @private
* @returns {boolean}
*/
_onMoveShouldSetPanResponder(evt, gestureState) {
_onMoveShouldSetPanResponder(evt: Object, gestureState: any) {
return this.props.enabled
&& (this._didMove(gestureState)
|| gestureState.numberActiveTouches === 2);
}
_onPanResponderGrant: (Object, Object) => void;
/**
* Calculates the initial touch distance.
*
@@ -574,7 +564,7 @@ class VideoTransform extends Component<Props, State> {
* @private
* @returns {void}
*/
_onPanResponderGrant(evt, { numberActiveTouches }) {
_onPanResponderGrant(evt: Object, { numberActiveTouches }: any) {
if (numberActiveTouches === 1) {
this.initialPosition = this._getTouchPosition(evt);
this.lastTap = Date.now();
@@ -584,8 +574,6 @@ class VideoTransform extends Component<Props, State> {
}
}
_onPanResponderMove: (Object, Object) => void;
/**
* Handles the PanResponder move (touch move) event.
*
@@ -594,7 +582,7 @@ class VideoTransform extends Component<Props, State> {
* @private
* @returns {void}
*/
_onPanResponderMove(evt, gestureState) {
_onPanResponderMove(evt: Object, gestureState: any) {
if (gestureState.numberActiveTouches === 2) {
// this is a zoom event
if (
@@ -628,8 +616,6 @@ class VideoTransform extends Component<Props, State> {
}
}
_onPanResponderRelease: () => void;
/**
* Handles the PanResponder gesture end event.
*
@@ -638,8 +624,11 @@ class VideoTransform extends Component<Props, State> {
*/
_onPanResponderRelease() {
if (this.lastTap && Date.now() - this.lastTap < TAP_TIMEOUT_MS) {
// @ts-ignore
this._onGesture('press');
}
// @ts-ignore
delete this.initialDistance;
this.initialPosition = {
x: 0,
@@ -647,8 +636,6 @@ class VideoTransform extends Component<Props, State> {
};
}
_onStartShouldSetPanResponder: () => boolean;
/**
* Function to decide whether the responder should respond to a start
* (touch) event.
@@ -668,7 +655,7 @@ class VideoTransform extends Component<Props, State> {
* @private
* @returns {void}
*/
_restoreTransform(streamId) {
_restoreTransform(streamId: string) {
const savedTransform = this._getSavedTransform(streamId);
if (savedTransform) {
@@ -687,7 +674,7 @@ class VideoTransform extends Component<Props, State> {
* @private
* @returns {void}
*/
_storeTransform(streamId, transform) {
_storeTransform(streamId: string, transform: Transform) {
const { _onUnmount, enabled } = this.props;
if (enabled) {
@@ -715,7 +702,7 @@ function _mapDispatchToProps(dispatch: Dispatch<any>) {
* @private
* @returns {void}
*/
_onUnmount(streamId, transform) {
_onUnmount(streamId: string, transform: Transform) {
dispatch(storeVideoTransform(streamId, transform));
}
};
@@ -730,7 +717,7 @@ function _mapDispatchToProps(dispatch: Dispatch<any>) {
* _transforms: Object
* }}
*/
function _mapStateToProps(state) {
function _mapStateToProps(state: IReduxState) {
return {
_aspectRatio: state['features/base/responsive-ui'].aspectRatio,

View File

@@ -23,7 +23,7 @@ export default StyleSheet.create({
videoTransformedViewContainerWide: {
overflow: 'hidden',
paddingRight: '14%'
paddingRight: '16%'
},
/**

View File

@@ -43,7 +43,8 @@ export const VIDEO_MUTISM_AUTHORITY = {
AUDIO_ONLY: 1 << 0,
BACKGROUND: 1 << 1,
USER: 1 << 2,
CAR_MODE: 1 << 3
CAR_MODE: 1 << 3,
SCREEN_SHARE: 1 << 4
};
/* eslint-enable no-bitwise */

View File

@@ -166,7 +166,7 @@ function _appStateChanged({ dispatch, getState }, next, action) {
sendAnalytics(createTrackMutedEvent('video', 'background mode', mute));
dispatch(setVideoMuted(mute, MEDIA_TYPE.VIDEO, VIDEO_MUTISM_AUTHORITY.BACKGROUND));
dispatch(setVideoMuted(mute, VIDEO_MUTISM_AUTHORITY.BACKGROUND));
}
return next(action);
@@ -191,9 +191,9 @@ function _setAudioOnly({ dispatch, getState }, next, action) {
sendAnalytics(createTrackMutedEvent('video', 'audio-only mode', audioOnly));
// Make sure we mute both the desktop and video tracks.
dispatch(setVideoMuted(audioOnly, MEDIA_TYPE.VIDEO, VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY));
dispatch(setVideoMuted(audioOnly, VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY));
if (getMultipleVideoSendingSupportFeatureFlag(state)) {
dispatch(setScreenshareMuted(audioOnly, MEDIA_TYPE.SCREENSHARE, SCREENSHARE_MUTISM_AUTHORITY.AUDIO_ONLY));
dispatch(setScreenshareMuted(audioOnly, SCREENSHARE_MUTISM_AUTHORITY.AUDIO_ONLY));
}
return next(action);

Some files were not shown because too many files have changed in this diff Show More