Commit Graph

149 Commits

Author SHA1 Message Date
Pratik Shah b7b43e8d9c feat(chat): convert to use React
- Change "features/chat" to support listening for new chat messages
  and storing them, removing that logic from conference.js.
- Combine chat.scss and side_toolbar_container.css, and remove unused
  scss files. Chat is the only side panel so the two concepts have
  been merged.
- Remove direct access to the chat feature from non-react and non-redux
  flows.
- Modify the i18n translate function to take in an options object.
  By default the option "wait" is set to true, but that causes
  components to mount after the parent has been notified of
  an update, which means autoscrolling down to the latest rendered
  messages does not work. With "wait" set to false, the children
  will mount and then the parent will trigger componentDidUpdate.
- Create react components for chat. Chat is the side panel
  plus the entiren chat feature. ChatInput is a child of Chat and
  is used for composing messages. ChatMessage displays one message
  and extends PureComponent to limit re-renders.
- Fix a bug where the toolbar was not showing automatically when
  chat is closed and a new message is received.
- Import react-transition-group to time the animation of the
  side panel showing/hiding and unmounting the Chat component.
  This gets around the issue of having to control autofocus if the
  component were always mounted and visibility toggled, but
  introduces not being able to store previous scroll state
  (without additional work or re-work).
2018-09-26 14:48:10 -05:00
Saúl Ibarra Corretgé a712e26ee2 deps: update lib-jitsi-meet dependency 2018-09-21 15:18:46 +02:00
bgrozev f317f993fd
chore: Updates lib-jitsi-meet to 51a982a7c8b9c3e89be75b0fdf7fedf4748a7345. (#3463) 2018-09-18 12:45:05 -05:00
Zoltan Bettenbuk b2baab573e Package lock changes for atlaskit (#3462) 2018-09-18 10:20:23 -05:00
Boris Grozev dfbd8d71ad chore: Updates lib-jitsi-meet to 615934a78afb3b501976263f5f916efed7af0080. 2018-09-17 22:10:48 -05:00
bgrozev d051d3450d
Displays the region participants are connected to (#3451)
* feat: Displays the server region in the stats panels.

* feat: Displays the server count in the local stats panel.

* ref: Renames a variable.

* fix: Makes bridgeCount a number, clarifies docs.

* chore: Updates lib-jitsi-meet to 1ac6df97e3aa5ff880129a95754d491d89ea8c25.
2018-09-17 13:21:03 -05:00
Leonard Kim 7c88de20fe feat(deps): update atlaskit/tabs to 8.0.8
There are (at least) two changes that are breaking:
- defaultTab is gone
- The re-rendering logic looks to have been re-written so that
  passing in a new array of tabs causes a re-render, which can
  reset the currently selected tab.

The fixes involved removing defaultTab from each tab configuration,
as it is no longer respected anyway. Also, instead of letting Tabs
be uncontrolled and allowing it to set its own selected, which
would result in the first tab automatically being selected on
Tabs re-render, use Tabs a controlled prop to dicate which
tab is selected; this is accomplished by specifying a selected
prop.
2018-09-14 14:50:08 -05:00
Leonard Kim 7b71482b03 feat(deps): update atlaskit/dropdown-menu to 6.1.12
This is a pre-requisite to updating atlaskit/tabs to 8.0.8.
Without updating, clicking a dropdown menu within a tab
component within a modal, such as the language selector in
the settings dialog, will lock the browser.
2018-09-14 14:50:08 -05:00
Leonard Kim 514175b1af chore(deps): update most atlaskit dependencies
Update the following to the latest:
avatar
button
checkbox
field-text
field-text-area
icon
inline-message
layer-manager
lozenge
modal-dialog (one version before breaking changes)
multi-select
spinner
theme
tooltip

The following were not updated:
- droplist was removed because usage could not be found
- flag was not updated due to regressions with stacking animations
- inline-dialog was not updated because it requires (likely simple)
  fixing of position props
2018-09-11 10:27:00 -05:00
paweldomas 22803f36e9 chore(package.json): bump react-native-callstats to 3.53.4 2018-09-07 20:16:06 -05:00
Bettenbuk Zoltan d10d61fb7a [RN] Add Google Sign In to live streaming 2018-09-05 23:09:56 +02:00
Saúl Ibarra Corretgé a327a5d804 [RN] Drop the react-native-permissions dependency
It causes false positives when submitting the app to the Store. Use the new
permissions API in react-native-webrtc instead.
2018-09-05 14:56:00 -05:00
Saúl Ibarra Corretgé 288bb59f71 deps: update react-native-webrtc dependency
It includes a W3C-ish permissions API which we will leverage.
2018-09-05 14:56:00 -05:00
Lyubo Marinov 79bd5cce00 react-native-webrtc: "android: prevent crash when checking camera facing mode (#37)" 2018-08-31 16:27:51 -05:00
virtuacoplenny 72776e3a23
chore(deps): update lib for duplicate device list event fix (#3413) 2018-08-30 19:35:11 -07:00
Saúl Ibarra Corretgé 8addf0f436 deps: update react-native-fast-image (#3411)
Fixes a memory leak in Android: https://github.com/DylanVann/react-native-fast-image/pull/214

We are using our fork which is 4.0.14 + the leak fix because the last version
(5.0.3 at the time of this writing) contains a bug that prevents us for using
it: https://github.com/DylanVann/react-native-fast-image/issues/208
2018-08-30 18:19:04 -05:00
Saúl Ibarra Corretgé 8d6e1b1872 deps: update lib-jitsi-meet
Required due to API changes for promises support.
2018-08-29 09:22:28 -05:00
Saúl Ibarra Corretgé 80dadd0218 [RN] Update react-native-webrtc for promises support 2018-08-29 09:22:28 -05:00
Saúl Ibarra Corretgé 3ca704d81d [RN] Update react-native-webrtc and remove no longer needed polyfills 2018-08-29 09:22:28 -05:00
Lyubo Marinov 3ad27961e5 [iOS] Fix Jitsi Meet v1.18.x "Missing Purpose String in Info.plist File" issues reported by App Store Connect
App Store Connect reported the following issues in (and rejected the binary
of) Jitsi Meet 1.18.x:

NSBluetoothPeripheralUsageDescription
NSAppleMusicUsageDescription
NSMotionUsageDescription
NSSpeechRecognitionUsageDescription

Starting spring 2019, all apps submitted to the App Store that access user
data will be required to include a purpose string for the following:

NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
2018-08-28 10:00:55 +02:00
Lyubo Marinov d62974b433 [RN] Update react-native-calendar-events (continued)
PR https://github.com/wmcmahan/react-native-calendar-events/pull/186 has
been merged upstream.
2018-08-26 21:53:42 -05:00
Saúl Ibarra Corretgé 8ff33684f7 [RN] Update react-native-calendar-events
Fixes a crash on Android. Upstream PR: https://github.com/wmcmahan/react-native-calendar-events/pull/186
2018-08-26 20:30:30 -05:00
Hristo Terezov 99d285519d chore(lib-jitsi-meet): Update version. (#3381) 2018-08-16 16:58:54 -07:00
hristoterezov df0e107ea6 feat(recording): Implement dropbox integration 2018-08-16 13:53:43 -05:00
Дамян Минков 7eda31315f Google & Microsoft calendar API integration (#3340)
* Refactor calendar-sync feature to be loaded on web.

For the web part it just adds new property to enable/disable calendar web integration, disabled by default.

* Initial implementation of retrieving google calendar events.

* Initial implementation of retrieving microsoft calendar events.

* Fixes comments.

* Rework to use the promise part of microsoft-graph-client api.

* Moves dispatching some actions, fixing comments.

* Makes sure we do not initializeClient google-api client multiple times.

* Do not try to login when fetching calendar entries.

The case where there is a calendar type google selected, but not logged in, trying to login on loading welcome page will show a warning that it tried to open a popup, which was denied by browser.

* Updates profile display data on sign in.

* Propagate google-api state to calendar-sync only if we use google cal.

* Adds sign out action.

* Clears the event listener when the popup closes.

* Clears calendarIntegrationInstance on signOut.

* WIP: UI for calendar settings, refactor auth flows

* Clean up some unused constants, functions and exports.

* break circular dependency of function and constant

* Exports only isCalendarEnabled from functions.

* Checks isSignedIn when doing fetchCalendarEntries on web.

* address comments

List microsoftApiApplicationClientID in undocument config.

remove unused SET_CALENDAR_TYPE action

use helper for calendar enabled in bootstrap

reorder actions

reorder imports

change order of signin -> set type -> update profile

add logging for signout error

reword setting dialog desc to avoid redundancy

add jsdoc to microsoft button props

reorder calendar constants

move default state to reducer (not reused anywhere)

update comment about calendar-sync due to removal of getCalendarState

update comment for getCalendarIntegration

remove vague comment

alpha order reducer, return default state on reset

alpha order persistence registry

remove unnecessary getType from apis

update comments in microsoftCalendar

alpha order google-api exports, use api.get in loadGoogleAPI

set jsdoc for google signin props

alpha order googleapi methods

fix calendartab docs

* Moves fetching calendar from APP_WILL_MOUNT to SET_CONFIG.

The web part needs configuration in order to refresh tokens (Microsoft).

* Fixes storing token expire time and refreshing tokens in Microsoft impl.

* Address comments

updateProfile changed to getCurrentEmail

rename result to results

stop storing integration in redux, store if ready for use

use existing helpers to parse redirect url

* update jsdocs, get google app id from redux

* clear integration instead of actual sign out
2018-08-15 13:11:54 -07:00
Ritwik Heda 1d99abc4a4 removes need for `eslint-disable-next-line react/jsx-wrap-multilines` and `eslint-diable-line no extra-parens` 2018-08-12 17:06:35 -05:00
Lyubo Marinov 9aed4df6d2 react-native-webrtc: android: pass correct constraints map to VideoCaptureController 2018-08-11 18:03:05 -05:00
Saúl Ibarra Corretgé d92b720704 [RN] Update calendar-events dependency
Includes a fix for not running expensive operations on the main thread.
2018-08-10 15:11:37 +02:00
Boris Grozev 195462a1a8 Merge branch 'master' into pr/3223 2018-08-08 15:35:40 -05:00
bgrozev 9c03e95bf1
npm: Updates lib-jitsi-meet to 4a28a196160411d657518022de8bded7c02ad679. (#3357) 2018-08-08 14:42:32 -05:00
Radium Zheng 4f1aaf89bf update package-lock.json 2018-08-08 09:26:49 +10:00
Radium Zheng 0827e02de9 use official repo for libflac.js 2018-08-08 09:19:53 +10:00
Radium Zheng 5daa91ec1b update libflac.js to 4 and use proper fork 2018-08-08 09:19:28 +10:00
Radium Zheng 07bc70c2f5 Implement local recording
index.js of local recording

local-recording(ui): recording button

local-recording(encoding): flac support with libflac.js

Fixes in RecordingController; integration with UI

local-recording(controller): coordinate recording on different clients

local-recording(controller): allow recording on remote participants

local-recording(controller): global singleton

local-recording(controller): use middleware to init LocalRecording

cleanup and documentation in RecordingController

local-recording(refactor): "Delegate" -> "Adapter"

code style

stop eslint and flow from complaining

temp save: client status

fix linter issues

fix some docs; remove global LocalRecording instance

use node.js packaging for libflac.js; remove vendor/ folder

code style: flacEncodeWorker.js

use moment.js to do time diff

remove the use of console.log

code style: flac related files

remove excessive empty lines; and more docs

remove the use of clockTick for UI updates

initalize flacEncodeWorker properly, to avoid premature audio data transmission

move the realization of recordingController events
from LocalRecordingButton to middleware

i18n strings

minor markup changes in LocalRecordingInfoDialog

fix documentation
2018-08-08 09:18:16 +10:00
bgrozev 2ee1bf9351 feat: Displays the E2E RTT in the connection stats table. (#3344)
* feat: Displays the E2E RTT in the connection stats table.

* fix: Whitelists the ping config properties.

* ref: Addresses feedback.

* npm: Updates lib-jitsi-meet to e097a1189ed99838605d90b959e129155bc0e50a.

* ref: Moves the e2ertt and region to the existing stats object.
2018-08-07 11:31:51 -07:00
Saúl Ibarra Corretgé a1cc9bce91 [RN] Drop no longer needed polyfills
They were required only on Android because of its old JSC version. With the JSC
version bump they are no longer required.
2018-08-05 17:04:19 -05:00
Saúl Ibarra Corretgé 8d3cecad86 [Android] Update JSC version
The JSC version used by React Native is about 3 years old, and doesn't implement
things like Symbol or Typed Arrays, which require polyfills. These polyfills are
sometimes a los less performant, as is the case for Typed Arrays.

Bumping an updated JSC version makes both platforms consistent when it comes to
the JavaScript platform.
2018-08-05 17:04:16 -05:00
hristoterezov fb75180632 ref(RecentList): Improvements after review. 2018-08-03 11:25:03 -05:00
Saúl Ibarra Corretgé 27021ea271 [RN] Replace cached image implementation
Use react-native-fastimage, which uses 2 full-native image impleentations using
well known and mature (native) libraries.

This gets us rid of 2 libraries which were observerd as a source of bugs and
created trouble with dependencies: react-native-fetch-blob and
react-native-img-cache. They are also no longer well maintained.
2018-07-31 14:07:17 -05:00
Saúl Ibarra Corretgé 3d6e18394e deps: update url-polyfill dependency
The previous location no longer exists. This is a fork of the original package,
which is actively maintained.

Fixes: #3304
2018-07-25 11:27:54 -05:00
virtuacoplenny b54a9e2bf7
chore(deps): update lib for selecting participants and maxFrameHeight caching (#3291) 2018-07-23 14:20:30 -07:00
Boris Grozev acda279111 npm: Updates lib-jitsi-meet. 2018-07-19 17:10:28 -05:00
Daniel Ornelas ccf9e2a362 deps: update react-native-webrtc
This version uses a worker queue for all WebRTC operations in iOS.
2018-07-19 18:35:56 +02:00
Saúl Ibarra Corretgé 3154c6f936 [RN] Don't request camera permission on first launch
It will only be requested if a user joins a meeting or flips the switch from
video to audio and back, but never as the first thing when the welcome page is
mounted.
2018-07-19 09:03:22 -05:00
Saúl Ibarra Corretgé ea22d12581 [Android] Introduce IncomingCallView
It's a separate view (on the native side) and app (on the JavaScript side) so
applications can use it independently.

Co-authored-by: Shuai Li <sli@atlassian.com>
Co-authored-by: Pawel Domas <pawel.domas@jitsi.org>
2018-07-18 22:47:18 -05:00
Lyubo Marinov 9c4da125c8 lib-jitsi-meet "core: refactor initialization not to return a Promise (continued)" 2018-07-12 00:05:40 -05:00
Saúl Ibarra Corretgé 453c4b99dc cleanup: drop polyfills which were required for IE11 2018-07-11 17:53:32 +02:00
damencho baa2c217de Syncs with latest lib-jitsi-meet (98acf13).
Detects msid changes and signals them, part of fixing start A/V muted using Firefox.
2018-07-02 22:41:00 -05:00
bgrozev cc319ad5e9
chore: Updates the callstats lib. (#3207) 2018-06-28 17:40:33 +01:00
Saúl Ibarra Corretgé 75b2eb0f99 deps: update lib-jitsi-meet dependency 2018-06-28 13:55:12 +02:00