Commit Graph

3570 Commits

Author SHA1 Message Date
Leonard Kim eb7dda85a1 feat: replace device selection in settings with button for modal
Cleanup existing logic for displaying and updating device
selection settings in the settings menu. In its place
is a button to open the device selection modal.
2017-04-10 13:30:00 -07:00
Leonard Kim 2f994b1227 feat: new device selection modal with previews
The Device Selection modal consists of:
- DeviceSelection, an overly smart component responsible for
  triggering stream creation and cleanup.
- DeviceSelector for selector elements.
- VideoInputPreview for displaying a video preview.
- AudioInputPreview for displaying a volume meter.
- AudioOutputPreview for a test sound output link.

Store changes include is primarily storing the list of
available devices in redux. Other app state has been left
alone for future refactoring.
2017-04-10 13:30:00 -07:00
yanas 2ffef3bdda Fixes toolbar tooltip positioning 2017-04-10 09:37:10 -05:00
yanas 77b789e26a Implements a filmstrip-only mode for the toolbox 2017-04-10 09:36:25 -05:00
yanas 031f2dfeb8 Fixes showToolbar in filmstrip-only mode and renames some funcs 2017-04-10 09:31:35 -05:00
yanas cb0eef9edd Fix(SideContainerToggler.js): Check if the component exists on init 2017-04-10 09:31:35 -05:00
yanas 8be85de6ef Changes scss variable name 2017-04-10 09:31:26 -05:00
Lyubo Marinov 9cf7f2b83d Update NPM dependencies/packages 2017-04-09 21:10:39 -05:00
Lyubo Marinov 95667ef98e Revert "[RN] Use rounded avatars in the film strip"
This reverts commit 739298c782.
2017-04-09 12:58:27 -05:00
Lyubo Marinov b211ce02a8 [RN] Increment short app version from 1.3 to 1.4
Now that Apple have approved build 1.3.204 for release in the App Store,
the short app version needs to be incremented; otherwise, no new builds
can be uploaded to TestFlight and, respectively, for release in the App
Store.
2017-04-09 12:00:58 -05:00
Saúl Ibarra Corretgé 739298c782 [RN] Use rounded avatars in the film strip 2017-04-09 11:55:57 -05:00
Saúl Ibarra Corretgé a1da6bff1a [RN] Fix loading config from non-default domains
When a conference is to happen in a domain which is not the defaut, its config
is loaded and set. As part of this process, lib-jitsi-meet is disposed. Because
disposing is asynchronous, events happen in this sequence:

- set new config
- dispose lib (which effectively wipes the config)
- init lib

This results in the library to be initialized without the loaded config, which
was lost. This commit fixes that by delaying setting the config and
re-initializing the library until it was disposed.
2017-04-07 14:54:32 -05:00
Saúl Ibarra Corretgé 18a81d7ca0 [RN] Fix passing config options when creating a conference
JitsiConnection.initJitsiConference doesn't automatically pass the global config
options, so grab the config from the Redux store and pass it.
2017-04-07 14:53:52 -05:00
yanas 6f15903019 Merge pull request #1474 from jitsi/fix-profile-sidebar-translation
Fixes profile panel translation.
2017-04-06 16:06:55 -05:00
damencho a26f7a1292 Fixes profile panel translation.
Strings are not translated when opening the profile side panel on FF. It was that we were creating profile panel html after i18n library had loaded and had translated the rest of the html.
2017-04-06 15:21:04 -05:00
Saúl Ibarra Corretgé ae8c5287e4 [RN] Remove workaround for video mirroring on iOS
It's now natively supported:
https://github.com/oney/react-native-webrtc/pull/244
2017-04-06 14:17:12 -05:00
Lyubo Marinov fd10362bef Comply w/ coding style 2017-04-06 12:09:01 -05:00
Lyubo Marinov 3af6cc53d1 Explain _ and UPPER_CASE naming 2017-04-06 11:45:13 -05:00
Saúl Ibarra Corretgé 54bb5f1879 [RN] Add ability to share the URL for a conference 2017-04-06 00:24:26 -05:00
Saúl Ibarra Corretgé 13e3375e8a [RN] Use proximity sensor when in audio-only mode
When the audio-only mode is enabled, turn on the proximity sensor to dim the
screen and disable touch controls when there is an object nearby.
2017-04-05 22:06:30 -05:00
Saúl Ibarra Corretgé 37157dc9e2 [RN] Use _switchCameras provided by lib-jitsi-meet
The functionality to use the react-native-webrtc custom API for fast switching
cameras was moved to JitsiLocalTrack in lib-jitsi-meet. Use that.

Ref: https://github.com/jitsi/lib-jitsi-meet/pull/444
2017-04-05 21:01:00 -05:00
Saúl Ibarra Corretgé 8fe3dce649 [RN] Add audio only mode for conferences
The behavior can be triggered with the toggleAudioOnly action, which is
currently fired with a button.

The following aspects of the conference will change when in audio only mode:

- local video is muted
- last N is set to 0 (effectively muting remote video)
- full-screen mode is exited
- audio mode is set to "audio chat" (default output is the earpiece)
- the wake lock is disengaged

One aspect not handled in this patch is disabling the video mute button while in
audio only mode. The user should not be able to turn back video on in that case.
2017-04-05 15:07:34 -05:00
damencho 4ec4c45a90 Adds a second parameter named domain to muc_size module.
Adds and the default conference. part where the muc module live in default deployments.
2017-04-05 13:41:21 -05:00
Saúl Ibarra Corretgé 19f46ed4f0 Merge pull request #1460 from jitsi/iframe_api_commands
IFrame API improvements
2017-04-05 17:37:02 +02:00
Lyubo Marinov 0e9509ae9b Comply w/ coding style 2017-04-05 04:01:57 -05:00
Saúl Ibarra Corretgé 618dedc58e [RN] Use participant connection status events instead of last N
They better represent if a participant has video available or not. There are
cases when even a participant in the last N set would not have video because it
disconnected momentarily, for example.
2017-04-05 01:41:46 -05:00
Saúl Ibarra Corretgé 623b7a8d6f [RN] Show avatar if a participant is not in last N 2017-04-05 01:21:23 -05:00
Saúl Ibarra Corretgé 7c76f124bf [RN] Use native API for toggling cameras
Use the curstom _switchCamera API provided by react-native-webrtc to toggle the
camera instead of destroying the current track and creating a new one.

_switchCamera is implemented at a low level, so the track perceives no changes,
thus being a lot faster and less involved since the capturer doesn't need to be
destroyed and re-created.

In addition, don't mirror the video for the back camera.

Ref: https://github.com/oney/react-native-webrtc/pull/235
2017-04-05 00:21:35 -05:00
Saúl Ibarra Corretgé f5973e0eee [RN] Fix toggling camera
When a new local video track is created an associated video capturer is created
for it. The cause for the freezes seems to be creating mutliple tracks (which
come with a video capturer each). Fix this by first disposing of the previous
video track before creating the new one.

Ref:
https://github.com/oney/react-native-webrtc/issues/209#issuecomment-281482869
2017-04-05 00:20:17 -05:00
Lyubo Marinov 32634356a6 Simplify naming 2017-04-05 00:20:17 -05:00
Lyubo Marinov 6d0a07a4cd Remove unnecessary source code
Lib-jitsi-meet does not really implement isScreenSharing. Besides,
getCameraFacingMode will already make sure that the video track does not
represent a desktop stream.
2017-04-05 00:20:17 -05:00
damencho e0b829f92f Revert "Adds a second parameter named domain to muc_size module."
This reverts commit e2e04e3f16.
2017-04-04 18:45:58 -05:00
Lyubo Marinov 684572bd05 Comply w/ coding style 2017-04-04 17:52:06 -05:00
hristoterezov 334eb5d423 feat(iframe_api): Add more ESLint rules 2017-04-04 17:20:08 -05:00
Ilya Daynatovich bcbdaaa6ea Fix interface_config.js/interfaceConfig overriding
It got broken while rewriting the Web toolbar in React Toolbox. There is
a problem with the toolbars and how we construct the intialState of the
buttons. The _getInitialState() in the toolbox reducer gets the list of
buttons from interfaceConfig, but in fact interfaceConfig is meant to be
overriden in several very important cases. One of the cases being the
external API, which we use in several projects in production.
2017-04-04 17:00:39 -05:00
Leonard Kim 986939e501 deps: re-add babel-polyfill as a dependency
babel does not modify existing builtins by default. That means
some newer methods, such as Array.prototype.includes, may not
be available unless babel-polyfill is used.
2017-04-04 16:54:59 -05:00
hristoterezov d416fd8c0f ref(iframe_api): Use EventEmitter 2017-04-04 16:45:47 -05:00
hristoterezov 78119df2db ref(iframe_api): Use ES6 2017-04-04 16:45:47 -05:00
damencho e2e04e3f16 Adds a second parameter named domain to muc_size module. 2017-04-04 15:15:18 -05:00
Lyubo Marinov d37468975c Fix ESLint warnings
JSDoc comments didn't follow the ESLint rule for properly formatted
sentences.

BTW, I'm not blind to the fact that PasswordRequiredPrompt and
RoomLockPrompt participated in a birthing of source code through
copy+paste. (If we do not copy+paste, we will not have to fix one and
the same source code such as comments  multiple times.)
2017-04-04 13:47:35 -05:00
damencho 589f77ef0e Adds prosody plugin that query existing rooms for information.
Queries room for their size or room particiapnt's information. Depends on luarocks net-url module.
2017-04-04 13:27:31 -05:00
Lyubo Marinov 1e2d88cd5d React Toolbox 2017-04-03 13:29:33 -05:00
Ilya Daynatovich da4425b5c0 React Toolbar 2017-04-03 13:05:21 -05:00
Дамян Минков 0d7cb63978 Merge pull request #1459 from jitsi/move_p2p
fix: P2P address indication
2017-04-03 11:55:21 -05:00
Дамян Минков 2248560699 Uses new peer connection statuses to check and show different user msgs. (#1441)
* Uses new peer connection statuses to check and show different user msgs.

Checks for interrupted state of peer connection and shows appropriate messages. In case of inactive or restoring state a message is show to user that video was stopped on purpose. Removes some unused parameters from the event handlers about peer connection status change.

* Removes isParticipantConnectionActive.
2017-04-03 11:53:04 -05:00
yanas 3daae94bca Merge pull request #1379 from jitsi/base-react-dialogs-2
Password required dialog (web&native) and native room lock using basic react dialogs.
2017-04-03 10:52:33 -05:00
paweldomas 7299b76faf fix: P2P address indication
Moves the P2P indication next to the remote IP address
and rewords it to "(p2p)".
2017-04-03 10:04:53 -05:00
Saúl Ibarra Corretgé 673dc6e873 build: drop dependency on babel-pollyfill
It's no longer needed for building since Node >= 6 already has the minimum
required ES6 syntax. In addition, drop it from app.js since we use Webpack with
the Babel loader to transpile ES5 to ES6.
2017-04-03 09:48:44 +02:00
Saúl Ibarra Corretgé 9c544c0a4b eslint: remove no longer needed comment
jsdocs were added, remove old comment which no longer applies.
2017-04-03 09:26:57 +02:00
Ilya Daynatovich 8502ecc6d2 Allow wider Flow use
We (i.e. the jitsi-meet project) are using the haste module system on
Web as well, not only on React Native. Unfortunately, Flow does not
support .web.js by default. Override Flow's defaults to include .web.js
as well. Technically, we have .native.js as well so the choice of
.web.js may lead to errors. Practically though, it is a potential future
problem that we do not have at the time of this writing.

https://github.com/jitsi/jitsi-meet/pull/1397 will take advantage of the
wider Flow use. The PR in question is huge at the time of this writing.
In order to reduce it, I'm extracting changes not directly related to
React-ifying the Toolbar.
2017-03-31 15:02:32 -05:00