Commit Graph

5123 Commits

Author SHA1 Message Date
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
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 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.
2018-05-20 21:17:36 -05:00
Lyubo Marinov 75c7cfd9e1 Coding style: comments, formatting, sorting order 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 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.
2018-05-18 15:34:40 -05:00
hristoterezov 9131d2448d ref(i18next): Remove the base/config dependancy. 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 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 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.
2018-05-18 14:36:03 +02:00
hristoterezov add89e2488 fix(dial-in-info): Qiuck fix of JitsiMeetJS undefined error. 2018-05-17 15:07:03 -05:00
Saúl Ibarra Corretgé 284d09eae7 [RN] Add ringtone sound assets to build 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 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.
2018-05-16 11:03:10 -04:00
virtuacoplenny ee74f11c3d
feat(recording): frontend logic can support live streaming and recording (#2952)
* feat(recording): frontend logic can support live streaming and recording

Instead of either live streaming or recording, now both can live together. The
changes to facilitate such include the following:
- Killing the state storing in Recording.js. Instead state is stored in the lib
  and updated in redux for labels to display the necessary state updates.
- Creating a new container, Labels, for recording labels. Previously labels were
  manually created and positioned. The container can create a reasonable number
  of labels and only the container itself needs to be positioned with CSS. The
  VideoQualityLabel has been shoved into the container as well because it moves
  along with the recording labels.
- The action for updating recording state has been modified to enable updating
  an array of recording sessions to support having multiple sessions.
- Confirmation dialogs for stopping and starting a file recording session have
  been created, as they previously were jquery modals opened by Recording.js.
- Toolbox.web displays live streaming and recording buttons based on
  configuration instead of recording availability.
- VideoQualityLabel and RecordingLabel have been simplified to remove any
  positioning logic, as the Labels container handles such.
- Previous recording state update logic has been moved into the RecordingLabel
  component. Each RecordingLabel is in charge of displaying state for a
  recording session. The display UX has been left alone.
- Sipgw availability is no longer broadcast so remove logic depending on its
  state. Some moving around of code was necessary to get around linting errors
  about the existing code being too deeply nested (even though I didn't touch
  it).

* work around lib-jitsi-meet circular dependency issues

* refactor labels to use html base

* pass in translation keys to video quality label

* add video quality classnames for torture tests

* break up, rearrange recorder session update listener

* add comment about disabling startup resize animation

* rename session to sessionData

* chore(deps): update to latest lib for recording changes
2018-05-16 07:00:16 -07:00
Zoltan Bettenbuk 5fd0f95a89
Merge pull request #2976 from saghul/bottom-sheet-orientation
[RN] Support landscape and portrait orientations in BottomSheet
2018-05-16 10:28:41 +02:00
Zoltan Bettenbuk 0d1d0d06a4
Merge pull request #2977 from saghul/dialog-modal-orientation
[RN] Support landscape and portrait orientations in Dialog
2018-05-16 10:28:28 +02:00
Mark Madlangbayan b037e1d736 Updated nodejs requirement 2018-05-16 09:48:47 +02:00
Saúl Ibarra Corretgé bce2438471 feat(toolbox): rename label / tooltip getters in ToolboxItem 2018-05-15 14:12:39 -05:00
Saúl Ibarra Corretgé 8a160fd9ab feat(toolbox): fix ToggleCameraButton tooltip / label 2018-05-15 14:12:39 -05:00
Saúl Ibarra Corretgé cd57477b68 feat(toolbox): restore emitting UI events for legacy code 2018-05-15 14:12:39 -05:00
Lyubo Marinov f1123a8cdd Restore the audio and video mute/unmute keyboard shortcuts
I don't think it's realistic that we'd merge a PR that breaks the most
important shortcuts of the app (in my opinion): audio and video
mute/unmute.
2018-05-15 14:12:39 -05:00
Lyubo Marinov 447035c8b2 Coding style 2018-05-15 14:12:39 -05:00
Lyubo Marinov 7fe421aeba Removes unnecessary source code 2018-05-15 14:12:38 -05:00
Lyubo Marinov 3aff4967f1 Keep buttons in their associated features
Contributing all buttons in one place goes against the designs that we
set out at the beginning of the project's rewrite and that multiple of
us have been following since then.
2018-05-15 14:12:38 -05:00
Lyubo Marinov a42496ba53 Coding style 2018-05-15 14:12:38 -05:00
Saúl Ibarra Corretgé 9ca7ca9515 feat(toolbox): move visibleButtons to redux
Technically we still depend on interfaceConfig, but this paves the way for when
that is no longer the case.
2018-05-15 14:12:38 -05:00
Saúl Ibarra Corretgé 9a3effe97a feat(toolbox): move OverflowMenu show logic to redux 2018-05-15 14:12:38 -05:00
Saúl Ibarra Corretgé a2834a2495 [RN] Refactor Toolbox
Create standalone components for each feature and move all state to them.
Toolbars are now dummy containers.
2018-05-15 14:12:38 -05:00
Saúl Ibarra Corretgé 450400b768 feat(filmstrip): refactor filmstrip only toolbar
- Move the toolbar to the filmstrip feature
- Use all the buttons from the toolbox feature
2018-05-15 14:12:38 -05:00
Saúl Ibarra Corretgé c7d72ee3f6 feat(toolbox): create SettingsButton
Only on web, since there is currently no equivalent on mobile. It encapsulates
all funcionality related to opening the settings dialog / panel.
2018-05-15 14:12:38 -05:00
Saúl Ibarra Corretgé 01cb4ac7c8 feat(alwaysontop): refactor toolbox
Use the new abstractions, which already take care of the rendering part.
2018-05-15 14:12:38 -05:00
Saúl Ibarra Corretgé b634f6b200 feat(toolbox): implement buttons using ToolboxItem
Currently the following are implemented:

- AudioMuteButton
- HangupButton
- VideoMuteButton

In order to implement these new buttons a new abstract class was introduced,
which abstracts the ToolboxItem into a button with enough hooks so a stateful
and a stateless version of it can be created.

This patch only adds the stateful implementation of the aforementioned buttons.
2018-05-15 14:12:38 -05:00
Saúl Ibarra Corretgé 8d94cc5cb2 feat(toolbox): introduce ToolboxItem
This abstraction represents an action which can go anywhere in a toolbox (be
that the main toolbar or the overflow menu) and it's platform independent.

It does not depend on Redux, thus making it stateless, which facilitates its use
in stateful button implementations as well as stateless ones.
2018-05-15 14:12:38 -05:00
Saúl Ibarra Corretgé 52da5010cc [Android] Make sure we use the react-native version in node_modules
Releases are also published to jcenter, and due to how the dependency is
declared, we are picking the latest release from there, which is arguably not
what we want.
2018-05-15 13:48:34 -05:00
Saúl Ibarra Corretgé 362486cbea deps: update react-native-locale-detector
Includes a fix for compatibility with RN >= 0.47.
2018-05-15 13:48:34 -05:00
Saúl Ibarra Corretgé eea6af51db [RN] Support landscape and portrait orientations in Dialog 2018-05-15 17:55:33 +02:00
Bettenbuk Zoltan df7b8e51fc [RN] Improve video switch style and remove react warning 2018-05-15 17:42:54 +02:00