Commit Graph

5097 Commits

Author SHA1 Message Date
hristoterezov
d89227829f feat(invite-sounds): Add expired and rejected sounds. 2018-05-23 15:22:01 -05:00
hristoterezov
2b1c875b91 feat(presence-status): Add more statuses. 2018-05-23 15:22:01 -05:00
Дамян Минков
5b4a16cf6b Updates lib-jitsi-meet that uses strophe.js 1.2.15. (#3020) jitsi-meet_3073 2817 2018-05-23 11:08:47 -07:00
Zoltan Bettenbuk
480fe53001 Merge pull request #3009 from jitsi/state-listener
[RN] Prevent multiplying remote thumbnails
jitsi-meet_3072 2816
2018-05-23 18:48:16 +02:00
Lyubo Marinov
2ecacf6c3e [RN] Fix a "TypeError: Cannot read property handlers of undefined" in ImageCache
With some of the preceding commits in the "multiplying remote
thumbnails" story line, I started hitting this error with 100%
reproducibility:

1. Have a remote participant prepared in conferenceA. Web will do as
well.
2. On iOS prepare to join conferenceB in Safari and use the same device
for step 3.
3. Join conferenceA on the iOS device from step 2 with audio-only. The
audio-only is so that avatars are always visible. Wait for the remote
participant prepared in step 1 to appear.
4. Switch to Safari and hit "Continue in the app" to have the app leave
conferenceA and join conferenceB.

What happens:
After the iOS device joins conferenceB in the Jitsi Meet app, the local
participant is on the large video (as expected) but the avatar of the
local participant is the default audo-generated auto-colored
placeholder. That's because this error was hit and the avatar couldn't
be "fetched".
2018-05-23 10:26:59 -05:00
Lyubo Marinov
ee9fcbb735 Remove remote participants who are no longer of interest
The Jitsi Meet app always has at most 1 conference of primary interest.
It may have to juggle with 2 JitsiConference instances at the same time
if 1 is in the process of being left and one is joining/joined. But the
one which is joining or joined (which we call conference in the
features/base/conference redux state) is the one "of interest", the
other one is "clean up". Consequently, the remote participants of the
conference "of interest" are the remote participants "of interest" and
the others are "clean up". In order to reduce the time during which
there may be multiplying remote thumbnails, clean the remote
participants who are no longer "of interest" up.
2018-05-23 09:46:15 -05:00
Lyubo Marinov
db21e97c19 StateListenerRegistry
"Middleware" redux state changes, not actions.
2018-05-23 09:46:15 -05:00
Lyubo Marinov
8cd2bd272b Reduce direct read access to the features/base/participants redux state
As part of the work on fixing the problem with the multiplying
thumbnails, we've associated remote participant w/ JitsiConference.
However, there are periods of time when multiple JitsiConferences are in
the redux state (and that period is going to be shorted by
StateListenerRegistry). In order to give more control to the feature
base/participants, reduce the occurrences of direct access to the
features/base/participants redux state and utilize the feature's
existing read access functions. Which will allow us in the future to
enhance these functions to access participants which are relevant to the
current conference of interest to the user only.
2018-05-23 09:46:15 -05:00
Lyubo Marinov
771d60f954 Associate remote participant w/ JitsiConference (_UPDATED)
The commit message of "Associate remote participant w/ JitsiConference
(_JOINED)" explains the motivation for this commit.

Practically, _JOINED and _LEFT combined with "Remove remote participants
who are no longer of interest" should alleviate the problem with
multiplying remote participants to an acceptable level of annoyance.

Technically though, a remote participant cannot be identified by an ID
only. The ID is (somewhat) "unique" in the context of a single
JitsiConference instance. So in order to not have to scratch our heads
over an obscure corner, racing case, it's better to always identify
remote participants by the pair id-conference. Unfortunately, that's a
bit of a high order given the existing source code. So I've implemented
the cases which are the easiest so that new source code written with
participantUpdated is more likely to identify a remote participant with
the pair id-conference.

Additionally, the commit "Reduce direct read access to the
features/base/participants redux state" brings more control back to the
functions of the feature base/participants so that one day we can (if we
choose to) do something like, for example:

If getParticipants is called with a conference, it returns the
participants from features/base/participants who are associated with the
specified conference. If no conference is specified in the function
call, then default to the conference which is the primary focus of the
app at the time of the function call. Added to the above, this should
allow us to further reduce the cases in which we're identifying remote
participants by id only and get us even closer to a more "predictable"
behavior in corner, racing cases.
2018-05-23 09:46:15 -05:00
Lyubo Marinov
37cd5bb5b9 Associate remote participant w/ JitsiConference (_LEFT)
The commit message of "Associate remote participant w/ JitsiConference
(_JOINED)" explains the motivation for this commit.
2018-05-23 09:46:15 -05:00
Lyubo Marinov
983e62ffe9 Associate remote participant w/ JitsiConference (_JOINED)
The plan set in motion here is to associate remote participants with the
JitsiConference instances that created them in order to be able to
remove remote participants when a JitsiConference is no longer the
primary focus of the jitsi-meet app. And that's supposed to alleviate a
problem with multiplying remote thumbnails.

Doing all of the above in a single commit is a bit of a high order. So
I'm splitting the whole into multiple successive commits for the
purposes of observability, comprehension. Each commit is supposed to be
safe even if subsequent commits are not accepted, are reverted,
whatever. Obviously, without the successive commits, a commit may be
"unused".

One of the important pieces of the multiplying remote thumbnails "fix"
offered is removing remote participants who are no longer of interest
i.e. PARTICIPANT_LEFT. But in order for _LEFT to be implemented, _JOINED
must be implemented first.
2018-05-23 09:44:26 -05:00
Lyubo Marinov
fcca15c827 Coding style 2018-05-23 08:48:13 -05:00
Lyubo Marinov
6b3da4a4a4 redux 4.0.0, react-redux 5.0.7 2018-05-23 08:48:13 -05:00
Zoltan Bettenbuk
8ecd6e6ced Merge pull request #3028 from saghul/rn-improve-styles
[RN] Simplify absolute fill styles
jitsi-meet_3071 2815
2018-05-23 15:28:07 +02:00
Saúl Ibarra Corretgé
f7c4133fb7 [RN] Use a SafeAreaView for OverlayFrame 2018-05-23 14:30:42 +02:00
Saúl Ibarra Corretgé
bbb1dce42a [RN] Simplify styles which fill the parent view
Turns out React Native offers an object with the following definition:

{
    bottom: 0,
    left: 0,
    position: 'absolute',
    right: 0,
    top: 0
}
2018-05-23 14:30:22 +02:00
Zoltan Bettenbuk
31864b95ab Merge pull request #3005 from saghul/fix-ios-dev-debug
[iOS] Fix running in Debug mode on a device
jitsi-meet_3070 2814
2018-05-23 12:36:22 +02:00
Zoltan Bettenbuk
33a748b569 Merge pull request #3013 from saghul/toolbox-disabled-button
[RN] Toolbox disabled button styles
jitsi-meet_3069 2813
2018-05-23 12:02:49 +02:00
Saúl Ibarra Corretgé
83ede66037 feat(toolbox): add disabledStyles to AbstractButton
It allows for specifying an override style collection which is applied when the
button is disabled.
2018-05-23 11:14:42 +02:00
Saúl Ibarra Corretgé
2128c84212 [RN] Add utility function to combine 2 sets of styles 2018-05-23 10:03:58 +02:00
Zoltan Bettenbuk
a72463a302 Merge pull request #3014 from saghul/toolbox-toggled-labels
[RN] Toolbox toggled item labels
jitsi-meet_3068 2812
2018-05-22 21:00:32 +02:00
Zoltan Bettenbuk
62cc44f791 Merge pull request #3012 from saghul/overflow-menu-dismiss
[RN] Dismiss OverflowMenu after selecting an option
jitsi-meet_3067 2811
2018-05-22 17:57:23 +02:00
Saúl Ibarra Corretgé
b4c95bec39 [RN] Adjust button labels to reflext the actual state 2018-05-22 12:02:05 +02:00
Saúl Ibarra Corretgé
7012c77fe9 feat(toolbox): add ability to specify a toggled label on AbstractButton 2018-05-22 12:01:00 +02:00
Saúl Ibarra Corretgé
a8b1ca38dc [RN] Dismiss OverflowMenu after selecting an option 2018-05-22 11:33:03 +02:00
Saúl Ibarra Corretgé
99b5a41269 feat(toolbox): add ability to run a handler after click to AbstractButton 2018-05-22 11:32:09 +02:00
virtuacoplenny
f608ad4e5e feat(toolbar): add beta tag to live streaming button (#3007)
* feat(toolbar): add beta tag to live streaming button

* tweak colors and border radius
jitsi-meet_3066 2810
2018-05-21 15:16:38 -07:00
Saúl Ibarra Corretgé
0d81e677bf [iOS] Fix running in Debug mode on a device
Thsi fixed a regression in 8f75c2e279

The bundler script doesn't do anything (it literally exits right at the top)
when skipping the bundle. This is arguably wrong, because it doesn't generate
"ip.txt", the file with the bundler IP address either!

So, generate that ourselves. While ding this, also drop the need for xip.io,
which has also been removed from RN, since it gives more trouble than it solves.
2018-05-21 14:05:58 +02:00
Lyubo Marinov
22ce001f14 Coding style: commends, formatting, sorting order jitsi-meet_3065 jitsi-meet_3064 2809 2018-05-20 22:58:34 -05:00
paweldomas
9650404099 fix(base/conference): leave a failed conference
Because a conference can fail before or after it's joined it must be
"left" in order to release any allocated resources like peerconnections,
tracks and all the other things.
2018-05-20 21:23:25 -05:00
paweldomas
7704809c4c feat(base/connection): log leave failure reason
Because there are multiple reasons on why a conference.leave() may fail
it's helpful to know if and why it happened.
jitsi-meet_3063 2808
2018-05-20 21:17:36 -05:00
Lyubo Marinov
75c7cfd9e1 Coding style: comments, formatting, sorting order jitsi-meet_3062 2807 2018-05-20 19:01:59 -05:00
Saúl Ibarra Corretgé
ef7fb1a7b0 [RN] Make all delegate / listener methods run in the main / UI thread 2018-05-20 16:46:44 -05:00
Lyubo Marinov
ccbf3efa38 Coding style: comments, sorting order jitsi-meet_3061 2806 2018-05-18 15:36:43 -05:00
Saúl Ibarra Corretgé
39e46bacf6 [RN] Avoid Toolbox changing size on first render
Wait until the right button size has been calculated before rendering it.
2018-05-18 15:36:43 -05:00
Leonard Kim
12d7ab9026 ref(layout): use css to make video layout containers fit window
Instead of using JS, just use CSS 100% width and height. This
also resolves a jitter that occurs on edge when a modal's
container appends to the body.
jitsi-meet_3060 2805
2018-05-18 15:34:40 -05:00
hristoterezov
9131d2448d ref(i18next): Remove the base/config dependancy. jitsi-meet_3059 2804 2018-05-18 13:34:08 -05:00
Saúl Ibarra Corretgé
44c498a566 [RN] Adjust toolbar button sizes / margins
- add 10px of padding on the sizes of the toolbar
- make the button margin smaller (from 10 to 7)
- increate the secondary button factor to 85%, thus rising the maximum secondary
  button size to 50 (from the previous 48)
2018-05-18 13:19:17 -05:00
Zoltan Bettenbuk
192f1d44f5 [RN] Add unlock room function to mobile jitsi-meet_3058 2803 2018-05-18 13:18:24 -05:00
Zoltan Bettenbuk
b57dad576a feat(participants): add isLocalParticipantModerator utility method 2018-05-18 13:18:24 -05:00
Saúl Ibarra Corretgé
494e8eb8d9 [RN] Set the local user ID on CONFERENCE_WILL_JOIN
Doing so in CONFERENCE_JOINED is too late because if we are moderators that
event will come first and we won't know what ID to match it with.

This is safe because our local ID is created early.
2018-05-18 13:18:24 -05:00
Lyubo Marinov
21c1e4abc4 Coding style: formatting, comments jitsi-meet_3057 2802 2018-05-18 08:58:08 -05:00
Saúl Ibarra Corretgé
5bd975e3f3 [RN] Show / hide the toolbox based on the participant count
Show it if we are the only participant, and hide it the moment someone else
joins the conference.
2018-05-18 08:07:34 -05:00
Saúl Ibarra Corretgé
8f75c2e279 [iOS] Don't bundle the React resources in Debug mode
It significantly speeds up debug builds, putting them on par with Android, where
we also don't bundle the React resources.
jitsi-meet_3056 2801
2018-05-18 14:36:03 +02:00
hristoterezov
add89e2488 fix(dial-in-info): Qiuck fix of JitsiMeetJS undefined error. jitsi-meet_3055 2800 2018-05-17 15:07:03 -05:00
Saúl Ibarra Corretgé
284d09eae7 [RN] Add ringtone sound assets to build jitsi-meet_3054 2799 2018-05-17 08:31:46 -05:00
Bettenbuk Zoltan
180141cefb [RN] Fix ios audio issue with locked rooms 2018-05-17 10:43:48 +02:00
Lyubo Marinov
df8eb36d0e Coding style: comments jitsi-meet_3053 2797 2018-05-16 16:49:03 -05:00
Saúl Ibarra Corretgé
f54f5df428 [RN] Implement a new UI for the Toolbox
- 5 buttons in the (now single) toolbar
- Overflow menu in the form of a BottomSheet
- Filmstrip on the right when in wide mode
2018-05-16 12:18:38 -05:00
hristoterezov
c344a83376 Outgoing call ringtones (#2949)
* fix(PresenceLabel): Use translated strings for the presence label.

* feat(sounds): Implements loop and stop functionality.

* feat(invite): Add ringtones.

* fix(invite): Code style issues.
jitsi-meet_3052 2796
2018-05-16 11:03:10 -04:00