Commit Graph

776 Commits

Author SHA1 Message Date
Lyubo Marinov e1f967869a [RN] Add builtin translations 2018-01-26 12:18:43 -06:00
Saúl Ibarra Corretgé 8673083829 [RN] Add builtin translations
Load all of them as imports, so the packager includes them in the bundle. Then
register them with the i18next library.
2018-01-26 16:27:33 +01:00
Boris Grozev dc92fb5073 feat: Sets the "product" field in the analytics handler constructor. 2018-01-23 16:14:31 -06:00
virtuacoplenny 12ec982067
Merge pull request #2400 from jitsi/browser_caps2
fix(lib-jitsi-meet): RTCBrowserType -> browser.
2018-01-22 13:57:50 -08:00
hristoterezov c9e3e5052d fix(lib-jitsi-meet): RTCBrowserType -> browser. 2018-01-22 15:56:06 -06:00
Emil Ivov 22401614a7
Merge pull request #2401 from virtuacoplenny/lenny/spot-feedback-api
feat(api): expose a way to submit feedback
2018-01-19 16:57:18 -06:00
Leonard Kim 762f529f1d feat(api): expose a way to submit feedback
Spot will need a way to submit call feedback using the iframe
api. For now expose a method on conference.js to submit that
feedback. Exposing on conference.js looks to be the existing
pattern... Also add an event to notify consumers of the iframe
api that feedback was submitted, as postMessage is async
and the notification can at least give some guarantee maybe.

I haven't updated documentation yet as I'm not confident
about this api.
2018-01-19 14:27:44 -08:00
Saúl Ibarra Corretgé 1f6b743bec [RN] Join room when pressing "go" on the keyboard
Improve the experience when joining a room by removing the need to tap the join
button. The keyboard type has also been set to "go", which translated on the
builtin keyboard button label to be "go" (it's builtin, the operating system
translates it). This works on both Android and iOS.
2018-01-19 16:10:51 -06:00
Lyubo Marinov 48f4317adb [RN] Make video track fade-in effect cross-platform 2018-01-19 16:05:59 -06:00
Saúl Ibarra Corretgé 75f6786588 [RN] Make video track fade-in effect cross-platform
Android uses a SurfaceView to render video, which is not quite a View, so the
fade-in animation (which varies the opacity) doesn't work.

Instead, add an opaque black view covering the video, which transitions to
transparent. This creates much smoother transitions on Android, while behaving
the same.

In addition, I removed the flip animation for local tracks, which is no longer
used, since the camera is switched without changing tracks.
2018-01-19 15:32:17 -06:00
Lyubo Marinov 3ec4d67a99 [RN] Strip spaces when parsing URLs 2018-01-19 15:26:13 -06:00
Saúl Ibarra Corretgé a23eec55e8 [RN] Strip spaces when parsing URLs 2018-01-19 15:14:51 -06:00
Saúl Ibarra Corretgé 98ff20a026 [RN] Simplify initialization of AsyncStorage 2018-01-19 09:41:34 -06:00
Lyubo Marinov b04661b40b [RN] Revert unintentional disabling of the yellow box 2018-01-18 21:11:24 -06:00
Lyubo Marinov 112c856850 Fix settings screen layout on iOS and add soft back button 2018-01-18 15:45:25 -06:00
zbettenbuk 410dc132e1 Fix settings screen layout on iOS and add soft back button 2018-01-18 10:06:26 -06:00
Saúl Ibarra Corretgé b7f950f5f7 feat(analytics): shield sending analytics events
Any failure in analytics should not prevent the natural flow of the code. Shield
the function by catching and logging any exception.
2018-01-17 16:46:54 -06:00
Paweł Domas 7ad875e735 fix(RN logging): sync with logging_config.js (#2382) 2018-01-17 10:59:48 -08:00
Saúl Ibarra Corretgé 6f93424d7c [RN] Use the "email" keyboard for the email field 2018-01-10 14:30:34 +01:00
Saúl Ibarra Corretgé 292f3ab1bd [Android] Fix crash if settings activity cannot be opened
The documentation states this is possible, so make sure we handle such errors.

Ref:
https://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DETAILS_SETTINGS
2018-01-09 13:12:53 -06:00
Boris Grozev a3cb081609 fix: Fixes an exception when the chat button and shortcut are clicked. 2018-01-09 10:36:55 -08:00
bgrozev 259004b8bf fix: Fixes the user ID read from JWT. (#2366) 2018-01-08 11:27:08 -06:00
zbettenbuk 05a492241f Fix local participant details on web 2018-01-05 12:58:58 -06:00
hristoterezov a357b0cf14 feat(notification): Add suboptimal browser exp notification. 2018-01-04 15:57:17 -06:00
Boris Grozev c7714959e6 feat: Passes the environment type and subproduct to the analytics handler constructor. 2018-01-04 13:12:48 -06:00
Boris Grozev e898527294 feat: Passes the "group" from JWT to the analytics handler constructor. 2018-01-04 13:12:48 -06:00
zbettenbuk bfcd34358b [RN] Add app-settings feature
[RN] Fix PR feedbacks, write persistency docs
2018-01-04 12:53:29 -06:00
Saúl Ibarra Corretgé 178c8e02ff [RN] Disable the XHR backend on mobile
All language assets will need to be bundled.
2018-01-03 19:18:12 -06:00
bgrozev 43ac039fd6 fix: Adapts to changes in lib-jitsi-meet. (#2354) 2018-01-03 16:07:39 -08: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
zbettenbuk d08bbae770 [RN] Add proper locale support to MomentJS 2018-01-03 10:13:15 -06:00
Leonard Kim 698ec1e2d7 Revert "feat(avatars): use initials service for getting images (#2312)"
There is more avatar work coming down the line for mobile,
which should also affect web, assuming the same getAvatarURL
helper will be used. As such, instead of continuing to
support the initials service and tweaking UI, revert to
make way for the future avatar work.

This reverts commit 2ea5ad68a5.
2017-12-28 14:17:33 -06: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 2ea5ad68a5 feat(avatars): use initials service for getting images (#2312)
* feat(avatars): use initial service for getting images

* squash: capitalize and minor refactor of string concat
2017-12-21 13:36:00 -06:00
Lyubo Marinov fb6f1bdba0 [RN] Accommodate iPhone X on the WelcomePage 2017-12-21 00:02:22 -06:00
Lyubo Marinov 25b130f8e8 [RN] Don't tint the children, tint the background only 2017-12-21 00:00:34 -06:00
Saúl Ibarra Corretgé ca78309427 Fix typo 2017-12-20 10:58:49 +01:00
Lyubo Marinov 65abd5efd4 [iOS] Synthesize IPv6 addresses closer to Apple's recommendation 2017-12-19 19:15:34 -06:00
Lyubo Marinov 1e0550c746 [RN] Add recent-list feature 2017-12-19 19:15:01 -06:00
Zoltan Bettenbuk 45c405de0e [RN] Add recent-list feature 2017-12-19 18:35:51 -06:00
Leonard Kim f0a180cf0c fix(display-name): listen for display name changes
Make sure participants in the redux store have updated names.
This will be needed for showing avatars with user initials.
2017-12-19 17:13:10 -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
Saúl Ibarra Corretgé 5640524647 [RN] Show an indication when connectivity problems occur
The video will switch to the avatar and be tinted with gray. On the large view,
a text message indicating the user has connectivity issues will be shown.
2017-12-19 09:10:58 -06:00
Saúl Ibarra Corretgé ac09233558 [RN] Add TintedView component
It's designed to cover a container and give it a "tint" by using a color and
opacity.
2017-12-19 09:10:58 -06:00
damencho 2f3ea1b458 [Android] Add module that provides getWiFiStats 2017-12-19 11:07:11 +01:00
hristoterezov d6c3ab64fa fix(aot): Unmount AlwaysOnTop to remove listeners (#2307) 2017-12-18 14:35:56 -08:00
Saúl Ibarra Corretgé 7001208d87 [RN] Adjust filmstrip ordering based on aspect ratio
When in wide aspect ratio,, show it with the local participant on top, and the
remote ones after, sorted by join order.
2017-12-14 12:36:03 -06:00
Saúl Ibarra Corretgé c05c8e0f1e [RN] Handle config loading errors
They will be stored in redux and the PageReloadOverlay will be displayed.

Note that this commit also introduces a subtle (and yet important!) change:
the location URL is now always set, regardless of the configuration loading or
not. This is needed in order for the retry logic to pick it up.
2017-12-12 22:59:04 -06:00
Saúl Ibarra Corretgé 87a87eebb9 [RN] Add reload overlay in case of connection / conference errors 2017-12-12 22:58:46 -06:00
Lyubo Marinov ad497fed7c Reduce duplication 2017-12-12 21:58:33 -06:00