Commit Graph

5239 Commits

Author SHA1 Message Date
Boris Grozev
045dad3354 doc: Adds a link to the quick install tutorial. 2018-06-22 14:52:17 -05:00
Zoltan Bettenbuk
b5e9c71865 Merge pull request #3160 from saghul/mobile-sounds-loop
Mobile looping sounds
2018-06-22 17:48:13 +02:00
Saúl Ibarra Corretgé
7b0a6a2ee5 [RN] Add ability to loop sounds 2018-06-22 14:34:01 +02:00
Saúl Ibarra Corretgé
333a0f5f90 [RN] Handle presence
Up until now, mobile was oblivious to participants' presence state. Presence
state handling is required (probably, amongst other things) for "call flows".
So, let's add it! This is done by gathering the presence state when a
participant first joins, and handling subsequent changes.
2018-06-22 12:22:12 +02:00
Saúl Ibarra Corretgé
47aa14e9f6 [iOS] Fix syncing muted state with CallKit
Fix the "mute ping pong" for once and for all. This patch takes a new approach
to the problem: it keeps track of the user generated CallKit transaction ations
and avoids calling the delegate method in those cases.

This results in a much cleaner and easier to understand handling of the flow: if
the delegate method is called it means the user tapped on the mute button. When
we sync the muted state in JS with CallKit the delegate method won't be called
at all, thus avoiding the ping-pong altogether.

In addition, make sure all CallKit methods run in the UI thread. CallKit will
call our delegate methods in the UI thread too, thsu there is no need to
synchronize access to the listener / pending action sets.
2018-06-22 11:25:09 +02:00
Saúl Ibarra Corretgé
ec8ad6190d [iOS] Only update the matching local track data in CallKit 2018-06-22 11:25:09 +02:00
Saúl Ibarra Corretgé
42b85f73bd [iOS] Fix checking if a track is local in ithe CallKit middleware
Not all TRACK_ actions include the `local` attribute, so use the underlying
`jitsiTrack` to check it.
2018-06-22 11:25:09 +02:00
virtuacoplenny
2bd0f77671 Move a couple calls to update VideoLayout into the redux update flow (#3173)
* ref(video-layout): move middleware for TRACK_ADDED

* ref(video-layout): call mucJoined when redux knowns of conference join
2018-06-21 21:33:33 -07:00
bbaldino
11c9d5f0ef change the levels for each gsm bar color (#3174)
old values: 0-39% -> red, 40-69% -> yellow, 70%+ -> green
new values: 0-9% -> red, 10-29% -> yellow, 30%+ -> green
2018-06-21 17:30:19 -07:00
virtuacoplenny
942d7d7e56 chore(deps): update lib for recording refactoring and no display name escaping (#3169) 2018-06-21 15:47:25 -07:00
Leonard Kim
e431acda18 ref(css): add height/width reset for html tag
This is needed for newer versions of electron that might
use the iframe integration of jitsi-meet. Newer versions
seem to have some kind of regression with setting height
and width to 100%.
2018-06-21 12:39:55 -05:00
virtuacoplenny
7ee63a44c5 ref(info): use conference existence as trigger for autoshowing dialog (#3083)
* ref(info): use conference existence as trigger for autoshowing dialog

* squash: combine maybeShow checks, inheritdoc

* squash: flow type tweaks
2018-06-21 12:38:53 -05:00
Saúl Ibarra Corretgé
e3bc333115 Merge pull request #3163 from manquer/patch-1
grammar and spelling fixes
2018-06-21 09:16:08 +02:00
Manquer
750d6cf534 grammer and spelling fixes 2018-06-21 11:36:16 +05:30
Leonard Kim
fecd138a3c fix(recording): red error text for google api errors 2018-06-20 23:09:43 -05:00
Hristo Terezov
1f8fa3b6d4 Refactor settings modal (#3121)
* feat(settings): setting dialog

- Move device selection, profile edit, language select, moderator
  options, and server auth into one modal with tabs.
- Remove side panel profile and settings and logic used to update
  them.
- Pipe server auth status into redux to display in the settings
  dialog.
- Change filmstrip only device selection popup to use the new
  stateless settings dialog component.

* squash: do not show profile tab if not guest

* squash: profile button not clickable if no profile to show

* squash: nits

* ref: Settings dialog.
2018-06-20 13:19:53 -07:00
Jacob MacElroy
0acc9187ed Preventing expired notification for poltergeist that have left.
The original presence stanza generation code for a poltergeist
has been re-factored and simplified a bit. Every time a
poltergeist presence is updated we first check that the poltergeist
still exists.
2018-06-20 14:37:58 -05:00
paweldomas
675eea7b99 fix(base/conference): do not execute leave conference on web
On web CONFERENCE_FAILED handlers are not setting the 'recoverable'
flag thus any middleware which rely on those should not execute on web.
2018-06-20 10:58:57 -05:00
Saúl Ibarra Corretgé
146ffb0918 Merge pull request #3153 from jitsi/connection_corner_cases
Connection corner cases
2018-06-20 16:53:48 +02:00
paweldomas
57b302da3e feat(base/conference): CONFERENCE_FAILED on CONNECTION_FAILED
Emits CONFERENCE_FAILED in response to CONNECTION_FAILED event
which then triggers JitsiConference.leave() through the middleware
processing. Also base/conference state will be adjusted. It is to have
a consistent redux state in which both connection and conference are
failed. It could happen that in a buggy environment the XMPP connection
is dropped, but the media is still flowing which would result in weird
user experience.
2018-06-20 15:52:46 +02:00
paweldomas
b2f76f3ed6 ref(mobile/external-api): skip event if conference exists
The change to mobile/external-api is required to not emit
CONFERENCE_FAILED for CONNECTION_FAILED if the conference has been
started, because base/conference state will still hold conference
instances which are to be ended by other means and result in the
appropriate event (which will adjust the base/conference state).
2018-06-20 15:52:46 +02:00
paweldomas
85fbaac9b2 chore(deps): update LJM to 1bd6ee4b1207e6fd57f5b7c15cc17e0a6087f26d
Updates lib-jitsi-meet to have the getConnection getter in
JitsiConference.
2018-06-20 15:52:45 +02:00
paweldomas
022954b40b fix(base/connection/reducer): clear 'connection' field
Currently the listeners for disconnected and failed connection events
are unsubscribed as soon as the connection is established, so
the CONNECTION_DISCONNECTED is never triggered which would clear the
'connection' field. This commit will clear the 'connection' state on
CONNECTION_WILL_CONNECT. It's needed anyway given that there's no
guarantee on when and if the async disconnect operation will finish.

One issue caused by the 'connection' not cleared was that
CONNECTION_FAILED was not reduced correctly and the reload screen was
not displayed for the following scenario:
1. Join and leave any working conference.
2. Turn off network connectivity on the device.
3. Wait for CONNECTION_FAILED. The reload screen will not be displayed,
   because CONNECTION_FAILED is not reduced correctly, because the old
   'connection' value is still there.
2018-06-20 15:52:45 +02:00
Saúl Ibarra Corretgé
7fa941cb8c [iOS] Fix setting call type in CallKit
Your truly introduced this regression in
8c7a3f16b1, alas.

The audio only mode is used to set the CallKit call type. This affects the
behavior on the recent calls entries (calls are marked either as audio or video
calls).

Sync both at the start and for transitions. The previous code was working by
chance (in a way): when the CallKit UI is presented the local video is muted,
which triggers a SET_VIDEO_MUTED action, at which point the audio-only mode was
checked for. Now we are more explicit and act on SET_AUDIO_MUTED.
2018-06-20 08:42:30 -05:00
Daniel Ornelas
ad259988b9 [RN] Fix for creating video track when conference is ending. 2018-06-20 11:24:07 +02:00
Saúl Ibarra Corretgé
8c7a3f16b1 [iOS] Refactor muted state handling in CallKit
Rely solely on actual track state, rather than the desired state, (what
base/media represents).
2018-06-19 15:53:43 +02:00
Saúl Ibarra Corretgé
84c1c3dfd3 [iOS] Fix starting a call muted when permission was not granted
Read the muted state from the track itself instead of from base/media. This
avoid expressing the incorrect desire when the call starts muted because
permission was never granted.
2018-06-19 15:53:43 +02:00
hristoterezov
fccd0d6b29 ref(deep-linking): Improve the window loaded detection logic. 2018-06-18 18:01:22 -05:00
hristoterezov
12dda7acb9 fix(deep-linking): GUM when the deep linking page have been displayed. 2018-06-18 18:01:22 -05:00
Saúl Ibarra Corretgé
28861c0054 [iOS] Fix incorrect call to setAudioMuted in CallKit
Audio muting does not have an authority.
2018-06-18 15:45:37 -05:00
Lyubo Marinov
0d3fac7c0f [RN] Change default WelcomeScreen tab and persist user choice (coding style) 2018-06-18 15:42:09 -05:00
Bettenbuk Zoltan
dcfebf746f [RN] Change default WelcomeScreen tab and persist user choice 2018-06-18 12:21:55 -05:00
virtuacoplenny
4ab8d98cd1 ref(large-video): permanently enable canvas based background (#3084)
* ref(large-video): permanently enable canvas based background

* squash: leave flag for disabling background
2018-06-15 16:41:37 -05:00
Дамян Минков
fc643f06e4 Creates issue templates 2018-06-15 15:37:01 -05:00
Leonard Kim
c89791069b fix(large-video): do not reselect video on self dominant speaker
In the current middleware logic, when the local participant becomes
dominant speaker, a new participant can be selected to receive
high quality video from. This means large-video could potentially
do a switch to another participant when the local participant
becomes dominant speaker. Prevent such behavior.
2018-06-15 15:31:23 -05:00
virtuacoplenny
e06ad6cea9 chore(deps): update lib to get bridge migration fix (#3141) 2018-06-15 11:22:01 -07:00
Дамян Минков
ac834326e7 Token based features (#3075)
* Adds an option to disable features based on token data.

Reverts changes from b84e910086, removes disableDesktopSharing option and an interface_config option.

* Disable recording button based on token features data.

Hide recording if local participant isGuest and roles based on token.
When enableUserRolesBasedOnToken is enabled we were not hiding the record button for guests.

* Adds filtering of jibri iqs and rayo based on features.

Moves feature checking in separate utility function.
Renames utility method.

* Adds a footer text when outbound-call is not feature enabled.

* Fixes comments.
2018-06-15 13:10:22 -05:00
Leonard Kim
0cf585860b fix(invite): allow arbitrary strings if no dialOutAuthUrl 2018-06-15 11:24:01 -05:00
virtuacoplenny
259066e2c6 chore(deps): update lib to e7b81910 for layer suspension (#3130) 2018-06-13 10:48:43 -07:00
virtuacoplenny
fa0dacf7c8 fix(keyboard-shortcuts): change copies for some descriptions (#2965) 2018-06-13 06:49:13 -07:00
Zoltan Bettenbuk
ad4e73cc0a Merge pull request #3136 from saghul/update-eslint
feat(eslint): use new eslint-config-jitsi
2018-06-13 12:48:03 +02:00
Saúl Ibarra Corretgé
89eacd6982 feat(eslint): use new eslint-config-jitsi
It contains all the rules we use, minus the react-native specific ones, which we
are keeping here.
2018-06-13 11:27:39 +02:00
Bettenbuk Zoltan
4a9fdb8a10 Update npm version and package-lock 2018-06-13 11:23:59 +02:00
Saúl Ibarra Corretgé
602c8610bf misc: ignore jshint files
They are automatically created by precommit-hook:
362a202498/bin/install (L5-L6)
2018-06-13 11:09:55 +02:00
Lyubo Marinov
07613aa856 [RN] Make the calendar list distinct (coding style) 2018-06-12 23:24:20 -05:00
Bettenbuk Zoltan
db6f2c8868 [RN] Make the calendar list distinct 2018-06-12 23:24:20 -05:00
Saúl Ibarra Corretgé
c7fc26d864 [iOS] Fix crash on startup when fetching calendar entries
Turns out sometimes a calendar is missing the tile and it crashes because nil is
inserted into a NSDictionary. Fix it by applying this pending PR:
https://github.com/wmcmahan/react-native-calendar-events/pull/164
2018-06-12 20:38:50 -05:00
hristoterezov
a5f2cb8bd9 fix(google-auth): popup. 2018-06-12 19:14:05 -05:00
Leonard Kim
78866b0dd7 fix(toolbar): ensure centered toolbar
Maybe there is a case that can be triggered somehow where
the toolbar becomes off center.
2018-06-12 13:07:24 -05:00
Дамян Минков
31011b24c2 Syncs with latest lib-jitsi-meet (d0cb2b2). (#3125) 2018-06-12 09:27:03 -07:00