Commit Graph

43 Commits

Author SHA1 Message Date
Gabriel Borlea 0c021868b5
feat(face-landmarks): integrate human library
It replaces face-api.

* feat(face-landmarks): integrate human library

* feat(face-landmarks): rewrite worker in typescript

* fix(face-landmarks): allow worker bundle size up to 2 mib

* fix: remove unwanted comment

* code review
2022-05-06 14:41:08 +02:00
Saúl Ibarra Corretgé 625206db20 fix(rn,speakerstats) fix not rendering stats 2022-05-02 16:01:13 +02:00
Calinteodor 7c523f3250
language(typescript) actionTypes.js -> actionTypes.ts (#10940)
* language(typescript) first ts component, added ts configurations, actionTypes.js are now ts files
2022-04-08 15:24:58 +03:00
Gabriel Borlea 1fbbe7bc46
fix(speaker-stats): get realtime local face expressions (#11334)
* fix(speaker-stats): get realtime local face expressions

* code review
2022-04-07 13:02:43 +03:00
Avram Tudor 42703fed47
ref(face-landmarks) refactor namings (#11307)
* ref(face-landmarks) refactor namings

* code review
2022-04-06 12:10:31 +03:00
Shahab 320aeaa4df
refactor(speaker-stats) use jss instead of sass in SpeakerStats (#11121) 2022-03-15 13:02:50 +02:00
Gabriel Borlea 85581266e4 fix(speaker-stats): labels spearator line fixed and remove footer space 2022-02-21 15:23:00 +01:00
Calinteodor b1be511d67
Mobile UI polish (#10982)
Updated screens with new ui on mobile
2022-02-17 16:51:00 +02:00
Gabriel Borlea eb70c611c2 feat(speaker-stats) new design for web and mobile 2022-02-01 15:57:30 +01:00
Calinteodor b9433368ee
feat(rn,app) unified navigators 2022-01-25 13:55:57 +01:00
Horatiu Muresan 197dbfbbcb
feat(toolbar-button-clicked) Enhance toolbar buttons with notify click
- add possibility to allow execution of the button's routine besides triggering
`toolbarButtonClicked` API event
- keep backwards compatibility
- get rid of `ToolbarButton`
2022-01-04 13:21:00 +02:00
Gabriel Borlea f8340bfd41
fix(speaker-stats): responsiveness of facial expressions (#10664) 2021-12-20 10:45:54 +02:00
Дамян Минков 648b22bb6d fix: Use default remote display name in speaker stats when one is missing. 2021-12-14 09:29:41 -06:00
Gabriel Borlea 40844afb60
fix(speaker-stats): prevent search from closing when enter pressed and from keeping previous state (#10597)
* fix(speaker-stats): prevent search from closing when enter pressed and from keeping previous state

* fix(speaker-stats): remove unnecessary blank lines

* fix(speaker-stats): add empty dependencies to prevent dismiss callback

* add(speaker-stats): reset search criteria action
2021-12-13 16:11:07 +02:00
Calinteodor bf3cc65f4c
feat(security) created SecurityOptions React Navigation screen (#10509)
* feat(security) Security Options screen
2021-12-10 18:23:27 +02:00
Andrei Oltean 8ef48a8a1d feat: (speaker-stats) fix refresh and minor refactoring 2021-12-02 14:11:08 +02:00
Saúl Ibarra Corretgé c5920bb8a5 fix(lint) fix all eslint warnings 2021-11-26 10:18:31 +01:00
Andrei Oltean 70b8ccc097 feat: (speaker-stats) add speaker stats feature to native 2021-11-25 20:17:49 +02:00
Gabriel Borlea 61684b1071
feat(facial-expressions): add the facial expression feature and display them in speakerstats (#10006)
* Initial implementation; Happy flow

* Maybe revert this

* Functional prototype

* feat(facial-expressions): get stream when changing background effect and use presenter effect with camera

* add(facial-expressions): array that stores the expressions durin the meeting

* refactor(facial-expressions): capture imagebitmap from stream with imagecapture api

* add(speaker-stats): expression label

* fix(facial-expression): expression store

* revert: expression leabel on speaker stats

* add(facial-expressions): broadcast of expression when it changes

* feat: facial expression handling on prosody

* fix(facial-expressions): get the right track when opening and closing camera

* add(speaker-stats): facial expression column

* fix(facial-expressions): allow to start facial recognition only after joining conference

* fix(mod_speakerstats_component): storing last emotion in speaker stats component and sending it

* chore(facial-expressions): change detection from 2000ms to 1000ms

* add(facial-expressions): send expression to server when there is only one participant

* feat(facial-expressions): store expresions as a timeline

* feat(mod_speakerstats_component): store facial expresions as a timeline

* fix(facial-expressions): stop facial recognition only when muting video track

* fix(facial-expressions): presenter mode get right track to detect face

* add: polyfils for image capture for firefox and safari

* refactor(facial-expressions): store expressions by counting them in a map

* chore(facial-expressions): remove manually assigning the backend for tenserflowjs

* feat(facial-expressions): move face-api from main thread to web worker

* fix(facial-expressions): make feature work on firefox and safari

* feat(facial-expressions): camera time tracker

* feat(facial-expressions): camera time tracker in prosody

* add(facial-expressions): expressions time as TimeElapsed object in speaker stats

* fix(facial-expresions): lower the frequency of detection when tf uses cpu backend

* add(facial-expressions): duration to the expression and send it with durantion when it is done

* fix(facial-expressions): prosody speaker stats covert fro string to number and bool values set by xmpp

* refactor(facial-expressions): change expressions labels from text to emoji

* refactor(facial-expressions): remove camera time tracker

* add(facial-expressions): detection time interval

* chore(facial-expressions): add docs and minor refactor of the code

* refactor(facial-expressions): put timeout in worker and remove set interval in main thread

* feat(facial-expressions): disable feature in the config

* add(facial-expressions): tooltips of labels in speaker stats

* refactor(facial-expressions): send facial expressions function and remove some unused functions and console logs

* refactor(facial-expressions): rename action type when a change is done to the track by the virtual backgrounds to be used in facial expressions middleware

* chore(facial-expressions): order imports and format some code

* fix(facial-expressions): rebase issues with newer master

* fix(facial-expressions): package-lock.json

* fix(facial-expression): add commented default value of disableFacialRecognition flag and short description

* fix(facial-expressions): change disableFacialRecognition to enableFacialRecognition flag in config

* fix: resources load-test package-lock.json

* fix(facial-expressions): set and get facial expressions only if facial recognition enabled

* add: facial recognition resources folder in .eslintignore

* chore: package-lock update

* fix: package-lock.json

* fix(facial-expressions): gpu memory leak in the web worker

* fix(facial-expressions): set cpu time interval for detection to 6000ms

* chore(speaker-stats): fix indentation

* chore(facial-expressions): remove empty lines between comments and type declarations

* fix(facial-expressions): remove camera timetracker

* fix(facial-expressions): remove facialRecognitionAllowed flag

* fix(facial-expressions): remove sending interval time to worker

* refactor(facial-expression): middleware

* fix(facial-expression): end tensor scope after setting backend

* fix(facial-expressions): sending info back to worker only on facial expression message

* fix: lint errors

* refactor(facial-expressions): bundle web worker using webpack

* fix: deploy-facial-expressions command in makefile

* chore: fix load test package-lock.json and package.json

* chore: sync package-lock.json

Co-authored-by: Mihai-Andrei Uscat <mihai.uscat@8x8.com>
2021-11-17 16:33:03 +02:00
Vlad Piersec 1106e71f03 fix(speaker-stats): Fix stats search position on narrow screens 2021-11-17 10:44:17 +02:00
Saúl Ibarra Corretgé 162a67fe8b chore(lint) tame the (uppdated) linter 2021-11-09 09:43:55 +01:00
Vlad Piersec 1ad8f77179 feat(dialogs): Redesign Video Quality dialog & change dialog background color 2021-10-19 10:05:59 +03:00
dimitardelchev93 7936117fcb
fix: Fix speaker stats search dependency and remove duplicate logic #9751 (#10045)
* Fix speaker stats search dependency and remove duplicate logic #9751

* Fix speaker stats component render on update #9751
2021-09-28 22:17:49 -05:00
dimitardelchev93 c3348bf38e
fix: Speaker stats search fix #9751 (#10019)
* Optimization of speaker stats display names #9751

* Fix speaker stats search for empty string #9751
2021-09-24 11:39:24 -05:00
Horatiu Muresan 1add438a1f
feat(toolbar-buttons): Add event for notify overwritten toolbar buttons 2021-09-14 10:07:20 +03:00
dimitardelchev93 5e152b4a42
feat: Additional setting to order participants in speaker stats (#9751)
* Additional setting to order participants in speaker stats #9742

* Setting to order speaker stats optimisations #9742

* Lint fixes #9742

* Replace APP references #9742

* Lint fixes #9742

* Setting to order speaker stats optimisations 2 #9742

* Lint fixes #9742

* Remove unnecessary param #9742

* Add more speaker-stats reducer _updateStats docs  #9742
2021-09-09 17:46:41 -05:00
dimitardelchev93 c123ff9e15
feat: Add search to speaker stats (#9510)
* Additional setting to add search to speaker stats

* Add translation for speaker stats search placeholder

* Unset speaker stats search input autocomplete

* Fix lint errors for speaker stats search

* Change setting to disableSpeakerStatsSearch

* Better Object.prototype.hasOwnProperty.call alternative

* Make SpeakerStatsSearch a functional component

* Align header with input and use material-ui styles instead of scss and remove SpeakerStats header and fix dialog close

* Resolve code style remark in SpeakerStats constructor

* Resolve component empty return value remark in SpeakerStatsSearch

* Resolve get config property in outside function remark in SpeakerStatsSearch

* Resolve unnecessary anonymous function remark in SpeakerStatsSearch
2021-08-13 11:10:05 -05:00
Avram Tudor 62c78950cd
feat(toolbox) allow any toolbox button to be displayed in main toolbar (#9488)
* feat(toolbox) allow any toolbox button to be displayed as main

fixes the previous behaviour where only a certain set of buttons were whitelisted for being displayed in the main toolbar

* code review

* code review - fix avatar icon position
2021-07-08 16:42:07 +03:00
Steffen Kolmer e9675453e1
feat: Make Jitsi WCAG 2.1 compliant (#8921)
* Make Jitsi WCAG 2.1 compliant

* Fixed password form keypress handling

* Added keypress handler to name form

* Removed unneccessary dom query

* Fixed mouse hove style

* Removed obsolete css rules

* accessibilty background feature

* Merge remote-tracking branch 'upstream/master' into nic/fix/merge-conflicts

* fix error

* add german translation

* Fixed merge issue

* Add id prop back to device selection

* Fixed lockfile

Co-authored-by: AHMAD KADRI <52747422+ahmadkadri@users.noreply.github.com>
2021-06-10 07:48:44 -05:00
Bettenbuk Zoltan 2a5adfc601 Remove some Flow annotations 2019-03-25 13:53:08 +01:00
Bettenbuk Zoltan ebdcbe122a Change dialog button property keys 2019-03-07 01:09:03 +01:00
Leonard Kim 1e3e71c2ff ref(speaker-stats): begin polling for stats after mount 2018-11-21 08:08:45 -08:00
Leonard Kim 486e8e35d9 ref: move all prop type declaration to flow
For the most part the changes are taking the "static propTypes" declaration off
of components and declaring them as Flow types. Sometimes to support flow some
method signatures had to be added. There are some exceptions in which more had
to be done to tame the beast:
- AbstractVideoTrack: put in additional truthy checks for videoTrack.
- Video: add truthy checks for the _videoElement ref.
- shouldRenderVideoTrack function: Some component could pass null for the
  videoTrack argument and Flow wanted that called out explicitly.
- DisplayName: Add a truthy check for the input ref before acting on it.
- NumbersList: Move array checks inline for Flow to comprehend array methods
  could be called. Add type checks in the Object.entries loop as the value is
  assumed to be a mixed type by Flow.
- AbstractToolbarButton: add additional truthy check for passed in type.
2018-11-07 17:38:10 +01:00
paweldomas 2b20c55bfe ref(types): use IntervalID and TimeoutID types defined by flow 2018-06-04 16:05:48 -05:00
Saúl Ibarra Corretgé 0817482b9c flow: tame the beast 2018-06-04 16:05:48 -05:00
paweldomas b74bede0e7 feat(web/RN): update React to v16 and React Native to 0.49 2017-11-02 14:32:35 +01:00
Lyubo Marinov 003eb68e28 Flow, coding style 2017-10-13 14:34:09 -05:00
paweldomas 8a4e6a7ec0 feat: override email, display name and avatar on mobile
Will override email, display name and avatar URL with the values
provided in 'context.user' structure of the JWT token.

Settings will no longer be used to retrieve local display name,
email and avatar URL. Now those values will be obtained from
the /features/base/participants Redux state.

fix(jwt/middleware): use const for default name

fix: wrong default display name on web

ref(base/participants): remove getDisplayName functions

ref(jwt): do not accept unknown user fields
2017-10-13 14:31:44 -05:00
Lyubo Marinov 2e2129fa44 Import PropTypes from prop-types
Prepare for React 16.
2017-09-27 16:24:53 -05:00
Lyubo Marinov 25ec8ac6a7 Prepare for eslint 4 2017-06-14 22:17:35 -05:00
Lyubo Marinov 4dc658c270 Fix 'Missing JSDoc comment  require-jsdoc' 2017-06-01 21:01:50 -05:00
Lyubo Marinov a8b3177e20 Move timeUtil.js out of features/base/util
Because timeUtil.js computes hours, minutes, and seconds out of a single
time/duration using three separate functions, I wouldn't recommend using
it, especially reusing it. That's why I'm even making the functions
private to their current use location.
2017-04-14 13:14:02 -05:00
Leonard Kim 989161159d Modal dialog for displaying dominant speaker times 2017-03-20 12:47:20 -05:00