Commit Graph

106 Commits

Author SHA1 Message Date
virtuacoplenny d62ac72cfa Various pixel pushing, tooltip copy changes (#2918)
* fix(toolbar): make button hover bigger

* fix(toolbar): make hangup button bigger

* fix(always-on-top): make toolbar and buttons same sizes as main toolbar

* fix(toolbar): change some tooltips

* fix(toolbar): adjust side panel and filmstrip for new toolbar sizes
2018-05-04 13:10:48 -07:00
Lyubo Marinov effd3728b6 [RN] add support for inviting participants during a call on mobile (2) 2018-05-02 12:54:02 +02:00
virtuacoplenny f4060975d1
feat(device-selection): design tweaks (#2802)
- Change copy
- Add labels to dropdowns
- Adjust color and positioning
2018-04-27 18:43:11 -07:00
virtuacoplenny e098ad87f4 feat(icons): add new recording button icon (#2834)
* feat(icons): add new recording button icon

* feat(toolbar): show different rec/streaming icon
2018-04-26 10:26:41 -07:00
Saúl Ibarra Corretgé 1d7e0845aa [RN] use the share button if the invite button is not enabled 2018-04-25 18:58:06 +02:00
Ryan Peck f64c13d4b7 [RN] add support for inviting participants during a call on mobile
* Button conditionally shown based on if the feature is enabled and available
* Hooks for launching the invite UI (delegates to the native layer)
* Hooks for using the search and dial out checks from the native layer (calls back into JS)
* Hooks for handling sending invites and passing any failures back to the native layer
* Android and iOS handling for those hooks

Author: Ryan Peck <rpeck@atlassian.com>
Author: Eric Brynsvold <ebrynsvold@atlassian.com>
2018-04-25 18:58:06 +02:00
Leonard Kim 1e69dc93d6 ref(toolbar): kill Stateless Toolbar and Invite, Feedback, Profile buttons 2018-04-17 20:22:00 +02:00
virtuacoplenny 41e1c3a2e2 fix(tooltip): description prop deprecated, use content instead (#2806) 2018-04-16 10:21:01 -07:00
Leonard Kim 5cf16a20d3 ref(always-on-top): refactor to stop using old toolbar components 2018-04-13 10:09:04 +02:00
virtuacoplenny 157800c494 fix(toolbar): video quality button shows current video quality (#2761) 2018-04-11 13:04:40 -07:00
Leonard Kim 6883ee0141 ref(toolbar): rename ToolbarButtonV2 to ToolbarButton 2018-04-10 09:34:52 +02:00
Leonard Kim 7d86e3f8e7 ref(toolbar): remove Video Quality Button 2018-04-10 09:34:52 +02:00
Zoltan Bettenbuk cb70c084b3 [RN] "The View is never the target of touch events"
In preparation for "pinch to zoom" support in desktop streams on mobile, make
certain Views not intervene in touch event handling. While the modification is
necessary for "pinch to zoom" which is coming later, it really makes sense for
the modified Views to not be involved in touching because they're used to aid
layout and/or animations and are to behave to the user as if they're not there.
2018-04-10 01:20:52 -05:00
virtuacoplenny 0afe72d42b fix(toolbar): tweak overflow menu order (#2781) 2018-04-09 23:06:01 -07:00
Saúl Ibarra Corretgé b73b51f1f4 feat(toolbox): axe the old toolbox (#2731)
This PR takes The Bulldozer Approach (R): removes the old toolbox and lots of
associated code, though not all of it. Subsequent cleanups will follow.
2018-04-08 22:03:26 -07:00
virtuacoplenny 7c08116dc2 ref(toolbar): add accessibility labels for torture tests (#2685)
* ref(toolbar): add accessibility labels for torture tests

* squash: update propTypes
2018-04-03 12:32:00 -07:00
Leonard Kim 358ce0799e fix(toolbar): the conference obj is needed to submit feedback 2018-03-30 14:45:27 -05:00
Leonard Kim 02a31746fb fix(toolbar): do not use toggle class for recording 2018-03-30 13:07:38 -05:00
Leonard Kim 4c49e3bec0 fix(toolbar): use old toolbar logic for showing screenshare
I don't understand the old showDesktopSharingButton action
but I've tried my best to copy it over. There is an existing
issue where the keyboard shortcut gets registered when it
probably shouldn't because screensharing is disabled. It will
be fixed soon with refactoring of the entire logic determining
whether or not to show the screensharing button.
2018-03-29 13:38:42 -05:00
Leonard Kim 0a086fa3f7 fix(toolbar): do not show invite button if features not available
This is instead of showing the button with a tooltip about it
being disabled.
2018-03-29 13:38:42 -05:00
Leonard Kim 7ad9fa8392 fix(toolbar): exercise old video muting flow
The redux flows for video muting may not cover all cases
that the conference.js flows cover. Just exercise the old
flows to be safe.
2018-03-28 13:52:04 -05:00
Leonard Kim 6916252ce1 fix(toolbar): exercise conference audio toggling
The redux flows do not account for as many scenarios, such
as config.startWithAudioMuted being true.
2018-03-28 13:52:04 -05:00
Leonard Kim d93782af8a feat(new-toolbars): initial implementation 2018-03-27 00:54:30 -05:00
Lyubo Marinov b8de5bbfc3 [RN] Add Picture-in-Picture support (Coding style: naming, consistency) 2018-02-23 11:21:26 -06:00
Saúl Ibarra Corretgé b3683068d4 [RN] Add Picture-in-Picture support
This only works automatically on Android >= 8. On other platforms / versions, it
relies on the SDK user on implementing a "reduced UI" mode and reacting to the
"request PIP" delegate method.
2018-02-23 11:21:25 -06:00
Lyubo Marinov a370a88d19 [RN] Add ability to enable /disable the toolbox (Coding style: comments, consistency) 2018-02-12 11:53:42 -06:00
Saúl Ibarra Corretgé 7153d94dad [RN] Add ability to enable /disable the toolbox 2018-02-12 11:52:54 -06:00
Lyubo Marinov c9d8b5c827 Finally! Let there be... responsive-ui!
We started on the way to responsive UI and its design with aspect ratio
and keeping the filmstrip on the short side of the app's visible
rectangle.

Shortly, we're going to introduce reduced UI for Picture-in-Picture. And
that's where we'll need another dimensions-based detector akin to the
aspect ratio detector.

While the AspectRatioDetector, the up-and-coming ReducedUIDetector, and
their base DimensionsDetector are definitely separate abstractions and
implementations not mixed for the purposes of easy extensibility and
maintenance, the three of them are our building blocks on top of which
we'll build our responsive UI.
2018-02-06 15:53:27 -06:00
bgrozev 090f2f9ccb Restructures the analytics events (#2333)
* ref: Restructures the pinned/unpinned events.

* ref: Refactors the "audio only disabled" event.

* ref: Refactors the "stream switch delay" event.

* ref: Refactors the "select participant failed" event.

* ref: Refactors the "initially muted" events.

* ref: Refactors the screen sharing started/stopped events.

* ref: Restructures the "device list changed" events.

* ref: Restructures the "shared video" events.

* ref: Restructures the "start muted" events.

* ref: Restructures the "start audio only" event.

* ref: Restructures the "sync track state" event.

* ref: Restructures the "callkit" events.

* ref: Restructures the "replace track".

* ref: Restructures keyboard shortcuts events.

* ref: Restructures most of the toolbar events.

* ref: Refactors the API events.

* ref: Restructures the video quality, profile button and invite dialog events.

* ref: Refactors the "device changed" events.

* ref: Refactors the page reload event.

* ref: Removes an unused function.

* ref: Removes a method which is needlessly exposed under a different name.

* ref: Refactors the events from the remote video menu.

* ref: Refactors the events from the profile pane.

* ref: Restructures the recording-related events.

Removes events fired when recording with something other than jibri
(which isn't currently supported anyway).

* ref: Cleans up AnalyticsEvents.js.

* ref: Removes an unused function and adds documentation.

* feat: Adds events for all API calls.

* fix: Addresses feedback.

* fix: Brings back mistakenly removed code.

* fix: Simplifies code and fixes a bug in toggleFilmstrip

when the 'visible' parameter is defined.

* feat: Removes the resolution change application log.

* ref: Uses consistent naming for events' attributes.

Uses "_" as a separator instead of camel case or ".".

* ref: Don't add the user agent and conference name

as permanent properties. The library does this on its own now.

* ref: Adapts the GA handler to changes in lib-jitsi-meet.

* ref: Removes unused fields from the analytics handler initializaiton.

* ref: Renames the google analytics file and add docs.

* fix: Fixes the push-to-talk events and logs.

* npm: Updates lib-jitsi-meet to 515374c8d383cb17df8ed76427e6f0fb5ea6ff1e.

* fix: Fixes a recently introduced bug in the google analytics handler.

* ref: Uses "value" instead of "delay" since this is friendlier to GA.
2018-01-03 13:24:07 -08:00
Leonard Kim e217c172f8 ref(toolbar): re-wrap buttons for torture tests
The inline classes for the toolbars were re-arranged
to fix non-rounded corners in the always-on-top window's
toolbar. However, those classes were also used by the
torture tests as a way to find stable elements that will
not get blown away by a react re-render. So re-wrap the
buttons with a div that will not get blown away,
add back the inline classes to those divs, and change
the CSS to round the corners in the always-on-top
window's toolbar.
2017-12-26 16:08:40 -06:00
virtuacoplenny 28013f6ffa ref(avatars): remove Avatar.js (#2289)
* ref(avatars): remove Avatar.js

- Rely on redux getting updated with new participant state
and any calls to getAvatarURL passing in the redux
participant state. This way the state within Avatar.js can
be removed.
- Clean up methods on UI.js. Because all state is in the
store, separate methods for updating the avatar aren't as
necessary. Instead centralize accessing of the avatar for
components outside of redux and centralize the call to
update avatars for non-react components.
- Controversial: cache a participant's avatarURL on the
participant state. Currently the participant's avatarURL
that is generated without jwt (which sets the avatarURL directly)
is not cached. Without cache, there can be many redundant
calls to APP.API.notifyAvatarChanged.

* Leverage middleware timing to diff avatars

One alternative implementation is to leverage middleware's
ability to intercept updates before and after redux has
upated and then compare avatarURLs.

* kill UI.getAvatarUrl

* profile button sets its own avatar url (solves update timing)

* remove calls to updating avatar outside of middleware

* update UI.js doc

* remove left over logic from initial implementation

* try to move local user fallback into selector func

* default to id 'local' in selector
2017-12-19 17:11:54 -06:00
virtuacoplenny 9b67e796bd ref(analytics): centralize all event names (#2272)
* ref(analytics): centralize all event names

* squash: fix typo and alpha ordering

* squash: rename file to AnalyticsEvents to parallel lib-jitsi-meet
2017-12-11 12:48:32 -06:00
hristoterezov d79995e14c fix(aot): Toolbar styles (#2252)
Rounded corners on the first and last buttons. Size of the hangup button
on hover.
2017-12-04 20:23:51 -08:00
Lyubo Marinov d8bc26a8ea Upgrade NPM dependencies/packages: ESLint 2017-12-04 00:21:01 -06:00
paweldomas cd48ee3dbf feat: add more accessibility labels
Adds more accessibility labels required for mobile automated testing.
2017-11-28 12:28:37 -06:00
Lyubo Marinov e7aff1d8e1 [RN] Group the secondary toobar buttons
Rearrange the ToolbarButtons in the secondary Toolbar in order to mostly
group the media-related ones such as the AudioRouteButton, the
switchCamera button, and the audio-only mode button.
2017-11-15 09:31:40 -06:00
Saúl Ibarra Corretgé f973a695d8 [RN] Add audio route picker
Due to the difference in nature, the iOS and Android implementations are
completely different:

iOS: MPVolumeView is used, which allows us to place a button which will launch a
native route picker provided by iOS itself. This view is different depending on
the iOS version, with the iOS 11 version being more complete.

Android: A completely custom component is used, which displays a bottom sheet
with the device categories, not devices individually. This is akin to the sheet
in the builtin dialer.
2017-11-15 09:31:40 -06:00
Lyubo Marinov 70d064cfa2 [RN] Fix React warnings 2017-11-07 17:28:28 -06:00
Lyubo Marinov 2b8a770163 [RN] Consistent margins for Filmstrip and Toolbox
With the introduction of wide and narrow layouts the margins of the
Filmstrip and the Toolbox became inconsistent. For example, the
Filmstrip's top in the wide layout was nearer to the top than the
secondary Toolbar.
2017-11-07 17:27:58 -06:00
Lyubo Marinov d0c079dba5 Coding style 2017-11-07 17:27:58 -06:00
Lyubo Marinov bce2a9fba9 [RN] Fix eslint & flow errors 2017-11-07 17:27:58 -06:00
paweldomas 3e9d26b525 ref(Toolbox.native): extract _renderToolbars 2017-11-07 08:28:18 -06:00
paweldomas 320cfe4745 ref(base/react/Container): return null for not visible
Now that we no longer hide the filmstrip it is fine to return null
instead of trying to hide with some tricks.
2017-11-07 08:28:18 -06:00
paweldomas c0a7d6144a feat: display filmstrip on the short side
Adds the ability to detect app area's aspect ratio on react-native
through the features/base/aspect-ratio.

Makes conference, filmstrip and toolbox react to the aspect ratio
changes and display filmstrip on the shorter side of the screen.
2017-11-07 08:28:18 -06:00
paweldomas b74bede0e7 feat(web/RN): update React to v16 and React Native to 0.49 2017-11-02 14:32:35 +01:00
Leonard Kim 92dbdade39 fix(filmstrip-only): set width for toolbar popovers
The popovers in filmstrip only are displaying thinly.
As a quick workaround, set a width on them. There
should only be one anyway, which shows up when
talking while muted.
2017-10-31 14:42:16 -05:00
yanas e09949be9f feat(dark-theme): Applies dark theme on inline-dialogs, tooltips, flags and more 2017-10-20 15:29:16 -05:00
hristoterezov 0b50578de9 style(analytics): sendEvent -> sendAnalyticsEvent 2017-10-17 19:33:32 -05:00
hristoterezov 0eddef4d62 feat(mute): Add analytics and console logs for audio/video mutes 2017-10-13 09:50:48 -05:00
hristoterezov df1437f018 ref(analytics): Use analytics from features/analytics 2017-10-13 09:50:48 -05:00