Commit Graph

985 Commits

Author SHA1 Message Date
zbettenbuk fc25125667 Fix app crash with special characters in the room name 2018-04-16 18:09:08 -05:00
virtuacoplenny 4bd94fc94c
fix(invite): tweak invite modal copy and avatar sizes (#2818) 2018-04-16 13:58:20 -07:00
virtuacoplenny 41e1c3a2e2 fix(tooltip): description prop deprecated, use content instead (#2806) 2018-04-16 10:21:01 -07:00
zbettenbuk 56d8210e35 Add ability to detect calendar permission description in the plist file (iOS) 2018-04-15 23:16:44 -05:00
Lyubo Marinov f1ab160c62 Coding style: formatting, naming 2018-04-15 23:16:44 -05:00
Lyubo Marinov eac74aa0b7 [RN] Fix _getRouteToRender after Deeplinking (#2760) 2018-04-15 23:16:44 -05:00
zbettenbuk e30d141cec Proper use of getPropertyValue in base/media 2018-04-13 21:57:40 -05:00
zbettenbuk 1513e1f3b3 Make getPropertyValue's config easier to use 2018-04-13 21:57:07 -05:00
virtuacoplenny 0539e8f2df
fix(recording): do not spell check stream key input (#2811) 2018-04-13 19:37:06 -07:00
hristoterezov eb19f94598 Deeplinking (#2760)
* feat(Deeplinking): Implement for web.

* ref(unsupported_browser): Move the mobile version to deeplinking feature

* feat(deeplinking_mobile): Redesign.

* fix(deeplinking): Use interface.NATIVE_APP_NAME.

* feat(dial_in_summary): Add the PIN to the number link.

* fix(deep_linking): Handle use case when there isn't deep linking image.

* fix(deep_linking): css

* fix(deep_linking): deeplink -> "deep linking"

* fix(deeplinking_css): Remove position: fixed

* docs(deeplinking): Add comment for the openWebApp action.
2018-04-13 17:00:40 -07:00
virtuacoplenny 219b93a3c9 fix(recording): fetch events also for available broadcasts (#2810)
* fix(recording): fetch events also for available broadcasts

Only "persistent" broadcasts were being fetched using the
YouTube API. Fetching "all" will get persistent broadcasts
and events. If events use a custom encoder then the stream
key can be obtained. If google hangouts is used for the event
then a stream key will not be obtainable; in those cases
input empty string as the stream key.

* squash: fix typos, reword comments, use object for preventing duplicate broadcasts
2018-04-13 13:49:24 -07:00
paweldomas 8f142d5ec4 doc(testing/actions): fill missing in 'setConnectionState' 2018-04-13 11:35:25 -05:00
Leonard Kim 5cf16a20d3 ref(always-on-top): refactor to stop using old toolbar components 2018-04-13 10:09:04 +02:00
virtuacoplenny be78ab5317 fix(welcome-page): clear update name timeout on unmount (#2800) 2018-04-12 14:23:30 -07:00
paweldomas c03e66954d fix(base/tracks): local track for video already exists
The _setMuted method in a corner case was making an attempt to create
second video track, because it was not taking pending tracks into
account.
2018-04-11 22:40:51 -05:00
virtuacoplenny 157800c494 fix(toolbar): video quality button shows current video quality (#2761) 2018-04-11 13:04:40 -07:00
virtuacoplenny 3285d647e6 feat(feedback): tweak styling (#2791)
- Green stars
- Label for feedback box
- Adjust margins/padding
2018-04-11 11:31:03 -07:00
Zoltan Bettenbuk 78ff0f7864 Separate handling config and profile with precedence (#2784) 2018-04-11 10:02:31 -07:00
Leonard Kim 4f157b71f3 ref(toolbar): remove custom (old) InviteButton dropdown config 2018-04-11 10:35:01 +02:00
Leonard Kim 5270da4c14 ref(toolbar): remove reference to unused config autoEnableDesktopSharing 2018-04-11 10:35:01 +02:00
Leonard Kim abee3331aa ref(toolbar): remove remnant of custom tooltip display on demand
The feature was not ported to the new toolbar. Arguable these
can all be moved into notification but for now simply the
logic will be removed and worked on again as demand arised.
2018-04-11 10:35:01 +02:00
paweldomas 4d942440db feat: add TestConnectionInfo for mobile
Adds TestConnectionInfo component which exposes some internal app state
to the jitsi-meet-torture through the UI accessibility layer. This
component will render only if config.testing.testMode is set to true.
2018-04-10 16:43:12 -05:00
paweldomas 461540d874 ref(stats): start the statsEmitter for both mobile and web
Moves the statsEmitter.start() invocation to the middleware of
the connection-indicator feature, so that it's started for both mobile
and web (now mobile needs RTP stats for the tests).
2018-04-10 16:43:12 -05:00
virtuacoplenny f34686afee fix(recording): return true to close stop recording modal on cancel (#2776) 2018-04-10 15:51:49 -05:00
virtuacoplenny ea1aef0703 fix(toolbar): remove ref to removed MAIN_TOOLBAR_BUTTONS (#2787) 2018-04-10 15:51:37 -05:00
paweldomas 8b2ce21e1a fix(RN): bundle sound files in release build
On Android the files will be copied to the assets/sounds directory of
the SDK bundle on build time. To play the "asset:/" prefix has to be
used to locate the files correctly.

On iOS each sound file must be added to the SDK's Xcode project in order
to be bundled correctly. To playback we need to know the path of the SDK
bundle which is now exposed by the AppInfo iOS module.
2018-04-10 10:59:52 +02:00
Leonard Kim c377219013 feat(info): invite url as an anchor for copying from context menu 2018-04-10 09:41:38 +02:00
Leonard Kim 10c8d380b7 fix(video-quality): different tooltips for different definitions 2018-04-10 09:39:37 +02:00
Leonard Kim 7e9a64d7c1 fix(quality-label): show eye icon when for muted video
Instead of continuing with HD/SD/LD, show the eye icon
for when the participant on large video is muted or has
no video.
2018-04-10 09:39:37 +02:00
Leonard Kim a783939f12 ref(toolbar): remove old InviteButton 2018-04-10 09:34:52 +02:00
Leonard Kim 6883ee0141 ref(toolbar): rename ToolbarButtonV2 to ToolbarButton 2018-04-10 09:34:52 +02:00
Leonard Kim 1eee20dd5a ref(toolbar): remove contact list 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 79b7e1641d Add pinch zoom functionality 2018-04-10 01:20:53 -05:00
Zoltan Bettenbuk decbcefbd4 [RN] Don't press on Conference in preparation for 'pinch to zoom'
TouchableWithoutFeedback and TouchableHighlight interfere with the
implementation of 'pinch to zoom' to come. We prepare for it by driving
the onClick/onPress handler(s) out of Conference, through LargeVideo and
ParticipantView into Video itself where the bulk of 'pinch to zoom' will
be implemented.
2018-04-10 01:20:52 -05: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
virtuacoplenny d8ad39ed3f fix(welcome-page): modify styling for narrow screens (#2724)
* fix(welcome-page): modify styling for narrow screens

* squash: fix autoscrolling on mobile safari
2018-04-09 15:50:57 -05:00
virtuacoplenny 16c2bc2d15 fix(invite): do not show caret in input (#2774) 2018-04-09 12:40:17 -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
paweldomas 968b279b37 feat(android): support NAT64
Adds Nat64InfoModule which resolves IPv6 addresses for IPv4 addresses
in IPv6 only network where jitsi-meet deployment does not provide any
IPv6 addresses as ICE candidates.
2018-04-05 10:21:59 -05:00
Zoltan Bettenbuk 0456df239f Fix case sensitive recent list (#2730) 2018-04-04 12:54:42 -07:00
virtuacoplenny 2f23f8e400 Info dialog: bold labels, no url truncation, only auto show on lonely call (#2619)
* fix(info): bold info labels

* fix(info): do not truncate url

* feat(info): show only during a lonely call
2018-04-04 08:58:54 -07:00
Zoltan Bettenbuk 2412239206 [RN] Assorted hintbox fixes
* Align hint box text to center

* Fix disappearing hint box on android
2018-04-04 14:50:12 +02:00
Zoltan Bettenbuk cc6e04ddf8 [RN] Fix calendar alerts when case sensitive URLs are used 2018-04-04 11:21:02 +02:00
paweldomas 6f11bbc400 feat(mobile): handle kicked out of the conference
Being kicked out of the conference will result with a conference failed
event with 'conference.kicked' reason and take the user back to
the welcome page by navigating to 'undefined'.
2018-04-03 16:02:15 -05: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 b76ab305e3 fix(welcome-page): prevent form submit to prevent page refresh 2018-03-30 15:16:22 -05: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
Zoltan Bettenbuk a3c00021de [RN] Fix showing user avatar in sidebar 2018-03-29 11:47:32 +02:00
virtuacoplenny 1e0a3ceb74 fix(chat): polyfills for lib-jitsi-meet ChatRoom#onPresence (#2678)
The onPresence parsing was refactored to remove use of jQuery.
This exposed three methods not available in react-native:
ParentNode.children, ChildNode.remove, and
document.querySelectorAll. The querySelectorAll change could
be swapped for the already polyfilled querySelector, but
children and remove had to be added. The polyfills are based
on those supplied by MDN web docs, but modified to pass jitsi
linting.
2018-03-28 18:04:42 -07: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
Saúl Ibarra Corretgé 45078fe6b2 [RN] Don't auto-correct any field in settings 2018-03-27 12:58:56 -07:00
Saúl Ibarra Corretgé 4783b22018 [RN] Don't auto-capitalize email field in settings 2018-03-27 12:58:56 -07:00
Leonard Kim d93782af8a feat(new-toolbars): initial implementation 2018-03-27 00:54:30 -05:00
virtuacoplenny 01db70fd3d
Merge pull request #2636 from zbettenbuk/calendar-permission-fix
Reorganize calendar access request flow
2018-03-26 07:57:24 -07:00
virtuacoplenny e5596c3cd5 fix(recording): let the google app for api calls be overridable (#2653) 2018-03-23 10:52:32 -07:00
virtuacoplenny 1b91e0bc2f improve invite error handling (#2649)
* fix(invite): do not send empty queries for people search

The endpoint might return an error if an empty query is sent.

* fix(invite): add error logging for failed people directory requests

The error currently being passed through from $.getJSON ended up
being an empty string plus was not getting logged. So switch to
fetch to move along with jquery killing and log the error.

* fix(dial-in): add error logging for failed requests

* ref(invite): create a fetch helper to remove duplicate logic
2018-03-23 09:37:04 -07:00
zbettenbuk b258e0d397 Reorganize calendar access request flow 2018-03-23 07:53:36 +01:00
virtuacoplenny 83f47c2df1 feat(invite): add basic analytics for AddPeople dialog (#2641)
* feat(invite): add basic analytics for AddPeople dialog

Analytics for opening the dialog, closing the dialog, the
count of invites sent, and the count of invites errored.

* squash: fix typo, change default count init, remove extra analytics param
2018-03-22 17:53:16 -07:00
virtuacoplenny a39da15c94 ref(invite): remove unused nuclear-js dep (#2642) 2018-03-22 16:22:26 -07:00
Daniel Ornelas 7822155e5e Fix iPad rotation related issue when in PiP 2018-03-22 16:40:17 -04:00
Paweł Domas 15e1633d86 fix(config): no legacy over non-legacy override (#2644)
Do not take legacy property into account if there's non-legacy value.
2018-03-22 10:57:08 -05:00
Daniel Ornelas f8163de765 Implement Jitsi meet presentation interface that supports custom PiP solution 2018-03-21 22:00:43 -04:00
virtuacoplenny 823481dc1d feat(recording): use google api to get stream key (#2481)
* feat(recording): use google api to get stream key

* squash: renaming pass

* squash: return full load promise

* sqush: use google api state enum

* squash: workaround for lib not loading

* another new design...

* increase timeout workaround for gapi load issue

* styling pass

* tweak copy

* squash: auto select first broadcast
2018-03-21 11:26:52 -07:00
paweldomas b5b99301ca fix: synchronize global 'config' var with the reducer's state 2018-03-20 21:07:45 -04:00
paweldomas ef52f09910 ref(config): override config from URL on mobile
Moves the things around to be able to override the config with the URL
params specified in the hash part of the location URI to which the app
is navigating to.
2018-03-20 21:07:45 -04:00
Leonard Kim 134ff71c78 feat(modals): use dark theme 2018-03-20 16:06:50 -05:00
hristoterezov fda2548a38 fix(analytics): Init analytics for the web welcome page. 2018-03-19 17:51:22 -05:00
paweldomas 40d7d0c9cb feat(UnsupportedMobileBrowser): do not include protocol in the intent
Do not include the protocol part in the intent URL.
2018-03-14 17:44:32 -05:00
zbettenbuk 357f173e85 Remove obsolate PlatformElements.native.js 2018-03-13 18:04:17 -05:00
zbettenbuk 7da26042b3 Avoid asking for calendar permission on app start 2018-03-13 18:04:17 -05:00
zbettenbuk c86c7beb24 Refactor i18n calendar formatter 2018-03-13 18:04:17 -05:00
zbettenbuk 1020a54a33 Add Android navigation bar 2018-03-13 18:04:17 -05:00
zbettenbuk c84abd543e Add support for app link scheme 2018-03-13 18:04:16 -05:00
zbettenbuk 4b17c6f015 Add pull-to-refresh functionality 2018-03-13 18:04:16 -05:00
zbettenbuk cb973b61aa Implement adaptive known domain list 2018-03-13 18:04:16 -05:00
zbettenbuk b096622995 Unify recent and meeting lists 2018-03-13 18:04:16 -05:00
zbettenbuk ae0bf876a8 Add conference notification 2018-03-13 18:04:16 -05:00
zbettenbuk bba480f329 Add calendar-sync feature 2018-03-13 18:04:14 -05:00
paweldomas 4dbcaf851f flow(AbstractAudio): specific function types 2018-03-13 16:57:29 -05:00
paweldomas 04dff9059b ref(AudioOutputPreview): use Audio from base/media 2018-03-13 16:57:28 -05:00
paweldomas 26cd2f17f6 ref(chat): port incoming chat msg sound to react 2018-03-13 16:57:28 -05:00
paweldomas 60e03e3dec feat: add join/leave sounds on mobile
Adds base/sounds feature which allows other features to register a sound
source under specified id. A new SoundsCollection component will then
render corresponding HTMLAudioElement for each such sound. Once "setRef"
callback is called by the HTMLAudioElement, this element will be added
to the Redux store. When that happens sound can be played through the
new 'playSound' action which will call play() method on the stored
HTMLAudioElement instance.
2018-03-13 16:57:28 -05:00
virtuacoplenny e325199075 fix(invite): prefix a + when faking the validation response (#2597)
Pre-existing logic made it so numbers were assumed as valid
if no validation url was specified. To be consistent with
the validation server, the faked number should include a
+ at the beginning.
2018-03-12 13:25:42 -07:00
virtuacoplenny 4e4713c3e2 feat(invite): be able to call numbers from the invite dialog (#2555)
* feat(invite): be able to call numbers from the invite dialog

The major changes:
- Remove DialOutDialog, its views, redux hooks, css, and images.
  Its main functionality has been moved into AddPeopleDialog.
- Modify the AppPeopleDialog styling a bit so it is wider.
- Add phone numbers to AddPeopleDialog search results. Phone
  numbers are validated in parallel with the request for people
  and then appended to the result. The validation includes
  an ajax to validate the number is recognized as dialable by
  the server. The trigger for the validation is essentially if
  the entered input is numbers only.
- AddPeopleDialog holds onto the full object representation of
  an item selected in MultiSelectAutocomplete. This is so
  selected items can be removed on successful invite, leaving
  only unsuccessful items.
- More granular error handling on invite so individual invitees
  can be removed from the selected items list.

* squash: change load state, new regex for numbers

* squash: change strings, auto prepend 1 if no country code, add reminders
2018-03-12 12:23:40 -07:00
Leonard Kim 8f520086e5 fix(info): do not show dial in numbers without a room specified
For the static page an error message displays stating no room
was specified. On mobile for unsupported browsers, the dial in
info will not show.
2018-03-09 17:18:10 -06:00
paweldomas 9e0fee6c7d fix(android): do not require java 8 target
Updates react-native-webrtc to get rid of Java 8 requirement for
the Android app.
2018-03-08 15:47:05 -06:00
Leonard Kim 80bdf908ca fix(info): always remove last part of path for meeting name 2018-03-06 15:22:27 -06:00
Leonard Kim 824a8a8864 fix(info): respect path when linking to dial in page 2018-03-06 13:47:55 -06:00
Leonard Kim 466561f99f fix(polyfills): implement createHTMLDocument for jquery 2018-03-06 10:46:53 -06:00
zbettenbuk 8dc866fab3 Fix setTimeout polyfill 2018-03-06 09:42:25 +01:00
George Politis 1c8b8e031b feat: Whitelists the gatherStats option. (#2561)
* feat: Whitelists the gatherStats option.

* doc: Replaces obsolete disableStats option with gatherStats.
2018-03-05 11:12:39 -06:00
Lyubo Marinov 796489dc77 Coding style: naming, consistency 2018-03-04 19:28:44 -06:00
Lyubo Marinov a30412ba65 [RN] Automatically dispatch CONFERENCE_LEFT 2018-03-04 19:28:44 -06:00
Saúl Ibarra Corretgé 8b35ea8ad5 deps: update jquery version (#2441)
* deps: update jquery version

* squash: resize thumbnails after appending shared thumb

This forces jquery animate to show the thumbnail somehow...
Remote thumbnails basically work this way (append to filmstrip
and then resize filmstrip thumbnails) so I just copied that
implementation. ... So I admit I lost this fight because
even after looking at jquery I couldn't understand why
it doesn't work on the first resize but does on the second.
Plus I'm being put on a strict timebox to update jquery.

* squash: getJSON no longer supports .success
2018-03-02 21:20:47 -06:00