Commit Graph

501 Commits

Author SHA1 Message Date
Saúl Ibarra Corretgé 5d40a8992a ios: disable bitcode when building the SDK for a release
This makes it possible to compile the SDK with Xcode 10 and 11. The problem is
that the Google SDK (used for sign-in) is compiled with Xcode 11. This avoids
the issue.
2019-11-13 13:17:51 +01:00
Saúl Ibarra Corretgé 63344ac62d deps: react-native-webrtc@1.75.2
Fixes an Android crash on craptacular devices.
2019-11-13 08:31:05 +01:00
Saúl Ibarra Corretgé 2e60aafebf fastlane,ios: add ability to set the changelog 2019-11-12 18:14:02 +01:00
Saúl Ibarra Corretgé 131e8f4aea fastlane: prepare for open beta access 2019-11-12 16:06:15 +01:00
Saúl Ibarra Corretgé 44970648ea rn: now working on versions 19.5 / 2.5 2019-11-08 15:21:55 +01:00
Saúl Ibarra Corretgé ad0064993d ios: enable Swift mobule stability for the SDK target
Supersedes: https://github.com/jitsi/jitsi-meet/pull/4818
Fixes: https://github.com/jitsi/jitsi-meet/issues/4812
2019-11-06 18:30:26 +01:00
Saúl Ibarra Corretgé 458d4acd22 ios: use the "new" Xcode build system
It was introduced in Xcode 9 and made the default in Xcode 10. We were forcing
the use of the legacy version, which doesn't support some new features that we
wish to enable, such as building the SDK for distribution.
2019-11-06 18:30:26 +01:00
Saúl Ibarra Corretgé 8ebc99175c ios: set deployment target on Pods to 10.0
Matches the app / SDK deployment target and avoids compilation warnings.
2019-11-06 18:30:26 +01:00
Saúl Ibarra Corretgé 391e5ca483 deps: react-native@0.61.3 2019-10-31 16:44:31 +01:00
Paweł Domas 4b9e156c5d
Generic iOS .ipa build script (#4775) 2019-10-22 12:45:28 -05:00
Saúl Ibarra Corretgé 63a221212b ios: add ability to manually toggle WebRTC logging 2019-10-18 14:05:18 +02:00
Saúl Ibarra Corretgé 0fa6ffc439 deps: react-native-google-signin@3.0.1 2019-10-14 19:12:45 +02:00
Saúl Ibarra Corretgé 4a8f787519 rn: evaluate config.js in a sandboxed environment
We are downloading code off the Internet and executing it on the user's device,
so run it sandboxed to avoid potential bad actors.

Since it's impossible to eval() safely in JS and React Native doesn't offer
something akin to Node's vm module, here we are rolling our own.

On Android it uses the Duktape JavaScript engine and on iOS the builtin
JavaScriptCore engine. The extra JS engine is *only* used for evaluating the
downloaded code and returning a JSON string which is then passed back to RN.
2019-10-14 12:20:58 +02:00
Saúl Ibarra Corretgé 612586ed1f deps: react-native-webview@7.4.1 2019-10-10 11:19:38 +02:00
Saúl Ibarra Corretgé 2609e43f29 ios: misc Xcode changes due to an update 2019-10-10 11:19:38 +02:00
Saúl Ibarra Corretgé ab4b6be9d7 rn: throw exception if default conference options set the room
See: https://github.com/jitsi/jitsi-meet/issues/4720
2019-10-08 14:31:13 +02:00
Djorkaeff Alexandre 11d3a343e5 ios: use iPhone 8 simulator when archiving JitsiMeet framework
It's available on both Xcode 10 and 11.
2019-10-04 11:00:31 +02:00
Saúl Ibarra Corretgé 9666bf836e ios: update CocoaPods to version 1.8 2019-10-04 11:00:31 +02:00
Saúl Ibarra Corretgé a6d3b09796 ios: support building with Xcode 11 2019-10-04 11:00:31 +02:00
Saúl Ibarra Corretgé ac06892bb4 android,ios: now working on versions 19.4 / 2.4 2019-09-26 17:33:52 +02:00
Bettenbuk Zoltan c472537ecf update RN to 61 2019-09-25 17:31:52 +02:00
Saúl Ibarra Corretgé 7d972a50f2 ios: set logger subsystem and category
The subsystem is set to the bundle ID and the category to "JitsiMeetSDK".
2019-09-24 09:49:33 +02:00
Saúl Ibarra Corretgé 00c8409e31 ios,android: update SDK version to 2.3.0 2019-09-17 13:42:08 +02:00
Bettenbuk Zoltan 8a3ddd8596 feat: SVG icons 2019-09-13 14:07:53 +02:00
Saúl Ibarra Corretgé b4b33c94dd ios: update Podfile.lock 2019-09-05 12:53:26 +02:00
Saúl Ibarra Corretgé 27205e3119 ios: divert RN logs to our logger 2019-09-04 17:45:18 +02:00
Saúl Ibarra Corretgé f2fdef8361 ios: log fatal errors, don't swallow exceptions 2019-09-04 17:45:18 +02:00
Saúl Ibarra Corretgé 902da8cc4f rn: add native loggers
These provide the ability to integrate the SDK with some other application
loggers.

At the time this was written we use Timber on Android and CocoaLumberjack on iOS.

In addition to the integration capabilities, a LogBridge React Native module
provides log transports for JavaScript code, thus centralizing all logs on the
native loggers.
2019-09-04 10:50:30 +02:00
paweldomas 6ae9bbe0c5 feat: report analytics for the network connection
Will emit new 'network.info' action with the online/offline status and
extra details for native like the network type and
'isConnectionExpensive' flag.
2019-08-23 13:36:33 -05:00
paweldomas 14b747e0a4 fix(ios/xcode): increase node heap space for the bundle JS step 2019-08-21 11:12:56 +02:00
Saúl Ibarra Corretgé c113b2e765 ios: update Podfile.lock 2019-08-21 11:12:56 +02:00
Saúl Ibarra Corretgé dd23ed09ad deps: react-native@0.60 2019-08-21 11:12:56 +02:00
Saúl Ibarra Corretgé 53f98df8f3 deps: react-native@0.59.10 2019-08-16 07:26:54 +02:00
Saúl Ibarra Corretgé 1c1e8a942b audio-mode: refactor device handling
This commit refactors device selection (more heavily on iOS) to make it
consistent across platforms.

Due to its complexity I couldn't break out each step into separate commits,
apologies to the reviewer.

Changes made to device handling:

- speaker is always the default, regardless of the mode
- "Phone" shows as a selectable option, even in video call mode
- "Phone" is not displayed when wired headphones are present
- Shared device picker between iOS and Android
- Runtime device updates while the picker is open
2019-08-14 18:57:03 +02:00
Дамян Минков 8800cb4580
Adds live streaming sound notification. (#4532)
* Adds live streaming sound notification.

* Adds ios resources for the new files.
2019-08-12 18:34:38 +03:00
Saúl Ibarra Corretgé 598b6f0598 deps: update react-native-webrtc
WebRTC is now at M75
2019-07-09 17:22:32 +02:00
Saúl Ibarra Corretgé 820abfd059 ios: sync Podfile.lock 2019-07-09 12:58:07 +02:00
Bettenbuk Zoltan fe1187d7b7 ref: remove unused libs 2019-07-08 16:53:30 +02:00
Saúl Ibarra Corretgé 6383d000a9 rn: raise version to 19.3 2019-07-03 21:09:15 +02:00
Chris Hansen 52362c4675 Fix spelling mistake on pragma mark
It causes a compiler error in Xcode 11 because it doesn't know how to parse it.
2019-07-02 14:11:01 -07:00
Saúl Ibarra Corretgé 9e95e7cd97 rn: bump SDK version to 2.2.0 2019-06-26 12:04:17 +02:00
Saúl Ibarra Corretgé 70b864f00b deps: react-native-google-signin@2.0.0 2019-06-18 14:51:44 +02:00
Saúl Ibarra Corretgé fa88db6897 ios: update CocoaPods to 1.7.1 2019-06-14 13:24:14 +02:00
Saúl Ibarra Corretgé e33b334307 rn: add SDK API to set user information
At the moment it includes:

- display name
- email
- avatar URL

This information is used *only* if no token was specified.
2019-06-11 17:27:16 +00:00
Saúl Ibarra Corretgé f7b92f65ca ios: add feature flag to enable recording on iOS 2019-06-11 13:37:50 +00:00
Saúl Ibarra Corretgé cf7b10d53d feature-flags: initial implementation
The welcomePageEnabled and pictureInPictureEnabled props on mobile have been
converted to feature flags.
2019-06-11 13:37:50 +00:00
Saúl Ibarra Corretgé 431a221c63 ios: be resilient to invalid UUIDs 2019-06-11 10:04:15 +00:00
Mihai Damian 477826089c ios: Added property for setting PiP initial position 2019-06-11 09:25:23 +00:00
Saúl Ibarra Corretgé fa3888991f rn: avoid logging initial props in release builds
They may contain sensitive information.
2019-05-31 11:49:36 +02:00
Hristo Terezov 9712804040 fix(Amplitude): user id 2019-05-29 09:53:31 -07:00
Saúl Ibarra Corretgé d65b71b584 rn: add ability to set the conference subject 2019-05-29 14:48:02 +02:00
Saúl Ibarra Corretgé 371ca4eef1 ios: don't require bitcode for Debug builds 2019-05-24 14:11:08 +02:00
paweldomas 1bc28e4904 watchos: display a message if the recent list is empty 2019-05-24 09:41:31 +02:00
Saúl Ibarra Corretgé 9352517705 ios: always log delegate method calls 2019-05-23 15:16:31 +02:00
Saúl Ibarra Corretgé 47d5163c52 rn: don't tag builds by default
People run these in their own checkout and will run into problems because
tagging will fail.
2019-05-23 12:07:04 +02:00
Saúl Ibarra Corretgé 9445cf99fd Revert "ios: remove no longer needed code"
This reverts commit 603d161788.
2019-05-22 18:10:35 +02:00
paweldomas 96b226de24 watchos: change the icons
Inverts the icons to follow more what's in the phone app instead of
CallKit.
2019-05-22 17:25:35 +02:00
François Benaiteau 61b66e0edf doc: fix incorrect code examples for universal / deep linking 2019-05-22 14:08:37 +02:00
Saúl Ibarra Corretgé 1c809eb428 ios: strip bitcode when releasing the SDK 2019-05-15 14:07:25 +02:00
Saúl Ibarra Corretgé e94edcd4ae ios: automagically download a bitcode WebRTC build if needed 2019-05-15 09:54:17 +02:00
paweldomas b48651396f fix(travis): upload through ssh proxy 2019-05-14 19:37:37 -05:00
Saúl Ibarra Corretgé f060ac9db1 ios: notify RTCAudioSession about CallKit AVAudioSession activation 2019-05-14 21:09:39 +02:00
Saúl Ibarra Corretgé e66b596a0d ios: add ability to override SDK version when releasing 2019-05-14 17:00:02 +02:00
Saúl Ibarra Corretgé 6f320f463d rn: don't use annotated tags when building the SDKs 2019-05-14 17:00:02 +02:00
Saúl Ibarra Corretgé 02955ab57c deps: react-native@0.59.8
https://github.com/react-native-community/releases/blob/master/CHANGELOG.md#v0598
2019-05-14 10:22:50 +02:00
Saúl Ibarra Corretgé 103ae363f6 ios: fix CallKit crash in development mode
It's possible a CallKit event arrives when the React Bridge has been torn down
and there is an assert that checks this. In order to avoid a crash, just skip
the event.
2019-05-09 13:22:58 +02:00
paweldomas ff6b27eafa fix(travis): add watch dev prov profile 2019-05-08 19:01:28 -05:00
paweldomas 8cb19ccbf6 fix(travis): download WebRTC bitcode 2019-05-08 19:01:28 -05:00
Saúl Ibarra Corretgé b45a5da6e2 rn: use new AsyncStorage package
It was extracted from the RN core to a community maintained package.
2019-05-08 16:03:09 +02:00
Saúl Ibarra Corretgé 2fad9f9ba8 ios: update Podfile.lock 2019-05-08 12:12:54 +01:00
Bettenbuk Zoltan 86d0d4fc22 rn: add DialInSummary 2019-05-07 18:02:14 +02:00
Saúl Ibarra Corretgé 7d2ac0244d deps: react-native-webrtc@4064c6f2db4f8b961daaaa8dafc6a896d7cfbc43
New M69 build with Metal crash fixes.
2019-05-03 19:29:30 +02:00
Saúl Ibarra Corretgé c0efea5168 ios: enable bitcode
Time has come. We need to enable bitcode. It's optional for iOS targets, but
mandatory for the entire project if there is a watchOS target. Since we have a
watchOS target, it's time to enable it.
2019-05-03 19:29:30 +02:00
Saúl Ibarra Corretgé 5ed53dcef5 ios: update Fastlane for watchOS app 2019-05-03 19:29:30 +02:00
Saúl Ibarra Corretgé 746159a1ac ios: set compilation mode to "wholemodule" for release builds 2019-05-03 19:29:30 +02:00
Saúl Ibarra Corretgé 43a8fd2a53 ios: set iOS deployment target correctly everywhere 2019-05-03 19:29:30 +02:00
Saúl Ibarra Corretgé a26bb2c1a6 watchos: add watchOS app
Co-authored-by: Pawel Domas <pawel.domas@jitsi.org>
2019-05-03 19:29:30 +02:00
Saúl Ibarra Corretgé 5cc01b074e ios: update Podfile.lock for RN update 2019-05-03 10:27:17 +02:00
Saúl Ibarra Corretgé bf7b1c5cfc rn: add support for alpha.jitsi.net 2019-05-01 23:23:24 +02:00
Saúl Ibarra Corretgé 85388b8d23 ios: handle some corner cases with Firebase Dynamic Links
- handle some weird bug
(https://github.com/firebase/firebase-ios-sdk/issues/233)
- use a common function to extract the URL off a dynamic link
2019-04-25 18:18:09 +02:00
Saúl Ibarra Corretgé 33f133ac25 ios: simplify code for handling CallKit listeners
Replace the Swift array with an Objective-C one, since it's going to store
Objective-C objects and not Swift objects (or Swift objects which inherit from
NSObject, which is equivalent).

This avoids the need for JMCallKitEventListenerWrapper entirely, since an
NSArray can store NSObjectProtocol objects, unlike a Swift array, which prompted
the creation of the wrapper in the first place.
2019-04-25 18:17:55 +02:00
Saúl Ibarra Corretgé 6bf962817b ios: add a CallKit icon
The SDK will now search for an asset called "CallKitIcon" on the main bundle,
and fallback to a built-in asset it it's not there, allowing SDK users to
customize it by just adding asset with that name.
2019-04-24 10:03:46 +02:00
Saúl Ibarra Corretgé 9a92dc578c ios: fix resetting CallKit's CXProvider
When CallKit is enabled / disabled, a new CXProvider must be created in order to
not confuse CallKit (it misbehaves otherwise).
2019-04-23 09:55:01 +02:00
Saúl Ibarra Corretgé 603d161788 ios: remove no longer needed code
Ever since we switched to handling track events instead of mute actions this has
been dead code. It was also added in the wrong place, since it's responsibility
of the JS code to solve the ping-pong problem.
2019-04-17 13:24:42 +02:00
Saúl Ibarra Corretgé c1f8a35156 doc: add links to the sample SDK applications repo 2019-04-17 09:37:28 +02:00
Saúl Ibarra Corretgé 3217ef2bb4 ios: make sure symbols are uploaded to TestFlight
While that option should default to true, let's be explicit about it.
2019-04-16 15:43:15 +02:00
Saúl Ibarra Corretgé ee3b8af4cf ios: remove PiP sample application
It now lives here: https://github.com/jitsi/jitsi-meet-sdk-samples
2019-04-10 15:10:47 +02:00
Saúl Ibarra Corretgé 21c0745504 android,ios: now working on version 19.2 2019-04-10 14:14:04 +02:00
Saúl Ibarra Corretgé 9b7af64e11 ios: raise SDK version 2019-04-09 16:08:45 +02:00
Saúl Ibarra Corretgé f26c5570df ios: update sample PiP app
- Xcode 10.2 + Swift 5
- Latest SDK API
- Fix warnings
2019-04-09 16:08:45 +02:00
Saúl Ibarra Corretgé d37a0eee3a ios: fix compilation warnings 2019-04-09 16:08:45 +02:00
Saúl Ibarra Corretgé 024fc73e63 ios: update to Xcode 5 and Swift 5 2019-04-09 16:08:45 +02:00
Saúl Ibarra Corretgé bdaabf6d3d odeps: react-native@0.59.4
Fixes a crash on some old Android devices.
2019-04-09 16:08:45 +02:00
Saúl Ibarra Corretgé f73d3a4063 ios: add SDK release script 2019-04-03 16:15:11 +02:00
Saúl Ibarra Corretgé 384f7d7890 ios: update Podfile.lock 2019-04-02 16:18:09 +02:00
Saúl Ibarra Corretgé 36eb27e233 rn: add build information to SettingsView 2019-04-02 12:40:35 +02:00
Saúl Ibarra Corretgé 659e420005 ios: make sure Fastlane can update the provisioning profile
https://docs.fastlane.tools/codesigning/xcode-project/#xcode-9-and-up
2019-03-29 14:50:59 +01:00
Saúl Ibarra Corretgé 24339b2461 ios: update Podfile.lock 2019-03-26 13:47:57 +01:00
Saúl Ibarra Corretgé 50268a08a0 ios: ensure the git tree is clean when / after building 2019-03-25 19:08:12 +01:00
Saúl Ibarra Corretgé 985385f364 ios: update fastlane Fastfile 2019-03-25 19:08:12 +01:00
Saúl Ibarra Corretgé f662edd135 ios: don't bundle a dummy GoogleService-Info.plist file
It complicates automated builds.
2019-03-25 19:08:12 +01:00
Saúl Ibarra Corretgé 6a919916d3 ios: pin all pod dependencies 2019-03-21 16:57:58 +01:00
Saúl Ibarra Corretgé 1de4897a6b ios: xcode project change shenanigans
Signing wouldn't work, disabling it and enabling it again created these changes.
Oh well!
2019-03-21 16:29:18 +01:00
Saúl Ibarra Corretgé 49a0c03ff0 ios: fix deprecation warning
NSURLConnection sendSynchronousRequest is deprecated since iOS 9. Replace the
method by whjat's currently on RN master, which implements a modern alternative.
2019-03-21 14:47:55 +01:00
Saúl Ibarra Corretgé 2c592f61c3 android: enable 64bit builds 2019-03-21 14:47:55 +01:00
Saúl Ibarra Corretgé b53a034aaf deps: update React Native to version 0.59
This new version comes with an updated JSC runtime, so we no longer need to
depend on the updated version ourselves.
2019-03-21 14:47:55 +01:00
Saúl Ibarra Corretgé 2715e81f1d rn: add more SDK documentation 2019-03-12 16:55:28 +01:00
Saúl Ibarra Corretgé f941f15def ios: remove Jitsi Meet specific defaults
The app should always provide them.
2019-03-12 16:55:28 +01:00
Saúl Ibarra Corretgé d39290f9fa rn: refactor conference events
Consolidate all failure cases into a single one: CONFERENCE_TERMINATED. If the
conference ended gracefully no error indicator will be present, otherwise there
will be.
2019-03-12 16:55:28 +01:00
Saúl Ibarra Corretgé f696a6dbe2 ios: update SDK documentation 2019-03-12 16:55:28 +01:00
Saúl Ibarra Corretgé aedcfba263 ios: introduce JitsiMeetConferenceOptions 2019-03-12 16:55:28 +01:00
Saúl Ibarra Corretgé 549b495d16 ios: add initial implementation of join / leave 2019-03-12 16:55:28 +01:00
Saúl Ibarra Corretgé f3abca6462 ios: add ability to control deep / universal linking
Since the SDK may be embedded with other apps, we need to recognize our custom
URL scheme and universal links in order to tell the user if we will process the
request or not.

Make them configurable with sane defaults.
2019-03-12 16:55:28 +01:00
Saúl Ibarra Corretgé 405905be82 rn: raise SDK version 2019-03-12 16:55:28 +01:00
Saúl Ibarra Corretgé 468b02b812 ios: adjust to latest Swift syntax 2019-03-12 16:55:28 +01:00
Saúl Ibarra Corretgé dbc88b972e ios: SDK v2 pass one
- cleanup
- API simplification (single loadURL method)
- JitsiMeet singleton for linking helpers and globals
- Linking moved to app
2019-03-12 16:55:28 +01:00
Hristo Terezov 59fc3642a6 feat(amplitude): add mobile implementation 2019-03-12 16:48:08 +01:00
Saúl Ibarra Corretgé 3f2a559d64 rn: now working on version 19.1 2019-03-08 14:04:03 +01:00
Saúl Ibarra Corretgé b7b2745dae ios: update podfile for CocoaPods 1.6.0 2019-02-19 19:13:07 +01:00
Saúl Ibarra Corretgé 877cea59e7 ios: don't configure CXProvider if CallKit is disabled 2019-02-14 13:16:31 -08:00
Saúl Ibarra Corretgé 7e320a5d38 ios: refactor AudioMode to use RTCAudioSession
RTCAudioSession is a thin wrapper around AVAudioSession provided by the WebRTC
framework. It makes some use-cases easier, and leads us closer to manual audio
unit management, which we will likely need in the near future.
2019-02-14 10:20:45 +01:00
Saúl Ibarra Corretgé e1b989e99b ios: make sure our CXProvider is invalidated when CallKit is disabled 2019-02-14 10:20:45 +01:00
Saúl Ibarra Corretgé 070a34e30d ios: enable proximity sensor on the main thread
Fixes this issue:

Main Thread Checker: UI API called on a background thread: -[UIApplication setExpectsFaceContact:inLandscape:]
PID: 25442, TID: 10886619, Thread name: (none), Queue name: com.facebook.react.ProximityQueue, QoS: 0
Backtrace:
4   JitsiMeet                           0x000000010a0eaadc -[Proximity setEnabled:] + 64
5   CoreFoundation                      0x00000001fea34630 <redacted> + 144
6   CoreFoundation                      0x00000001fe912450 <redacted> + 292
7   CoreFoundation                      0x00000001fe913034 <redacted> + 60
8   JitsiMeet                           0x000000010a4e08e8 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 492
9   JitsiMeet                           0x000000010a4e7a10 _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 248
10  JitsiMeet                           0x000000010a4e776c ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 88
11  libdispatch.dylib                   0x000000010b943824 _dispatch_call_block_and_release + 24
12  libdispatch.dylib                   0x000000010b944dc8 _dispatch_client_callout + 16
13  libdispatch.dylib                   0x000000010b94ce6c _dispatch_lane_serial_drain + 720
14  libdispatch.dylib                   0x000000010b94db60 _dispatch_lane_invoke + 460
15  libdispatch.dylib                   0x000000010b957bfc _dispatch_workloop_worker_thread + 1220
16  libsystem_pthread.dylib             0x00000001fe6490dc _pthread_wqthread + 312
17  libsystem_pthread.dylib             0x00000001fe64bcec start_wqthread + 4
2019-02-14 10:20:45 +01:00
Bettenbuk Zoltan eec7a1b628 [RN] Add color scheme support - native 2019-02-08 11:43:21 +01:00
Saúl Ibarra Corretgé 5f7a515610 rn: drop {AddPeople,Invite}Controller
We are going to implement the invite dialog *inside* the SDK, so there is no
need to have all this machinery anymore.
2019-02-08 09:02:15 +01:00
Bettenbuk Zoltan 9f3ef43daa [RN] Add conference navigation bar 2019-02-06 14:27:25 +01:00
Saúl Ibarra Corretgé 33db155eb9 ios: don't override AVAudioSession category and mode in default state
When we are in the default state (ie, not in a meeting) we shouldn't override
the AVAudioSession category and mode. It's a singleton and we might be bothering
other components of the host app which use it.
2019-02-06 10:17:39 +01:00
Paweł Domas f8294fb312 android: add ConnectionService
* feat(Android): implement ConnectionService

Adds basic integration with Android's ConnectionService by implementing
the outgoing call scenario.

* ref(callkit): rename _SET_CALLKIT_SUBSCRIPTIONS

* ref(callkit): move feature to call-integration directory

* feat(ConnectionService): synchronize video state

* ref(AudioMode): use ConnectionService on API >= 26

Not ready yet - few details left mentioned in the FIXMEs

* feat(ConnectionService): add debug logs

Adds logs to trace the calls.

* fix(ConnectionService): leaking ConnectionImpl instances

Turns out there is no callback fired back from the JavaScript side after
the disconnect or abort event is sent from the native. The connection
must be marked as disconnected and removed immediately.

* feat(ConnectionService): handle onCreateOutgoingConnectionFailed

* ref(ConnectionService): merge classes and move to the sdk package

* feat(CallIntegration): show Alert if outgoing call fails

* fix(ConnectionService): alternatively get call UUID from the account

Some Android flavours (or versions ?) do copy over extras to
the onCreateOutgoingConnectionFailed callback. But the call UUID is also
set as the PhoneAccount's label, so eventually it should be available
there.

* ref(ConnectionService): use call UUID as PhoneAccount ID.

The extra is not reliable on some custom Android flavours. It also makes
sense to use unique id for the account instead of the URL given that
it's created on the per call basis.

* fix(ConnectionService): abort the call when hold is requested

Turns out Android P can sometimes request HOLD even though there's no
HOLD capability added to the connection (what!?), so just abort the call
in that case.

* fix(ConnectionService): unregister account on call failure

Unregister the PhoneAccount onCreateOutgoingConnectionFailed. That's
before the ConnectionImpl instance is created which is normally
responsible for doing that.

* fix(AudioModeModule): make package private and run on the audio thread

* address other review comments
2019-01-31 17:20:53 +01:00
Saúl Ibarra Corretgé 14990a427a rn: set version to 19.0.0
This marks our switch to CalVer: http://calver.org/

Major: year
Minor: release number
Patch: build (in case we need to retry)
2019-01-29 17:25:00 +01:00
Saúl Ibarra Corretgé 77f220753f ios: dynamically load Dropbox API key
Load it at build time from a "dropbox.key" file. The file should contain the API
key in a single line.
2019-01-29 15:39:20 +01:00
Saúl Ibarra Corretgé 37d3625210 ios: fix Goggle Sign-In deep-lining 2019-01-25 11:06:35 +01:00
Saúl Ibarra Corretgé 111397d944 ios: style 2019-01-25 11:06:35 +01:00
Saúl Ibarra Corretgé 211b3b55b1 ios: simplify code 2019-01-25 11:06:35 +01:00
Saúl Ibarra Corretgé 8c0317cac0 ios: fix compilation warnings 2019-01-25 11:06:35 +01:00
paweldomas 92a412f814 chore(ios): update Podfile.lock 2019-01-23 17:04:41 +01:00
Saúl Ibarra Corretgé c203a452f7 ios: add initial Fastlane integration
Used for building and deploying builds to TestFlight and the App Store.
2019-01-16 11:01:42 +01:00
Saúl Ibarra Corretgé 515d2f11ce ios: set Google reverse client ID at build time
Read it from the GoogleService-Info.plist file and apply it into Info.plist.
2019-01-16 11:01:42 +01:00
Saúl Ibarra Corretgé f7134722d0 ios: let the system reorder the file 2019-01-16 11:01:42 +01:00
Saúl Ibarra Corretgé d8fa52fcaf ios: use a proper URL scheme placeholder
No caps are allowed, so this would trigger a rejection when uploading to
TestFlight.
2019-01-16 11:01:42 +01:00
Bettenbuk Zoltan 8a241ba2b7 [RN] Add chat functionality
Co-authored-by: DimaG <dgeorgiev06@gmail.com>
2019-01-15 11:33:12 +01:00
Saúl Ibarra Corretgé 889644f7bd [iOS] Add support for Siri shortcuts
This is mostly implemented in the app, with the needed support in the SDK. Since
the app needs to donate intents and deal with creating NSUserActivity objects it
doesn't feel right to do this in a library. Instead, we donate the intents from
the app, but the SDK is ready to extract conference URLs from any intent which
was registered as a conference activity.

This also opens the door for eventually adding Handoff support.
2019-01-09 12:05:58 +01:00
Saúl Ibarra Corretgé 4898f81596 [iOS] Simplify code
Share the code for extracting the URL for conference from a NSUserActivity.
2019-01-09 12:05:58 +01:00
Saúl Ibarra Corretgé 148d4ebb90 rn: add Firebase integration
This is done at the app level, not the SDK.

Currently 2 Firebase services are used:

  - Crashlytics
  - Dynamic Links

They are enabled in tandem, if the appropriate Google services file
(GoogleService-Info.plist on iOS or google-services.json on Android) is found.

Each service needs to be individually enabled in the Firebase console.
2019-01-08 17:42:59 +01:00
Saúl Ibarra Corretgé 7e231c2826 ios: fix compilation warning 2019-01-08 17:42:59 +01:00
Saúl Ibarra Corretgé 5cbddb4874 ios: update SDK installation instructions
Mention the availability of CocoaPods.
2019-01-08 09:41:27 +01:00
Saúl Ibarra Corretgé 274b7148b0 ios: update development team
Also update the bundle ID since we don't release with that anyway.
2019-01-03 13:11:41 +01:00
Saúl Ibarra Corretgé fef47684d9 deps: update react-native-background-timer 2018-12-20 13:59:17 +01:00
Saúl Ibarra Corretgé 58887577b4 ios: fix compilation warning 2018-12-20 13:56:46 +01:00
Saúl Ibarra Corretgé 0469e5af5e deps: update react-native-calendar-events 2018-12-20 13:52:14 +01:00
Saúl Ibarra Corretgé f97869ffde deps: update react-native-keep-awake 2018-12-19 15:20:10 +01:00
Saúl Ibarra Corretgé e4b1e40cc6 deps: update react-native-google-signin 2018-12-19 15:15:21 +01:00
Saúl Ibarra Corretgé 1ff8d52b6b deps: update react-native to 0.57.8
Bumping React to 16.6.3 is a requirement for this update.
2018-12-19 10:28:28 +01:00
Saúl Ibarra Corretgé 65519ec926 rn: drop support for beta.meet.jit.si over HTTP
It doesn't add any value, by default HTTP is not supported unless an exception
is added, plus it doesn't work in browsers at all.
2018-12-18 16:18:08 +01:00
Saúl Ibarra Corretgé 342718f673 rn: drop support for no longer supported deployments 2018-12-18 16:18:08 +01:00
Saúl Ibarra Corretgé 0031fd2678 android, ios: update react-native-fast-image dependency 2018-12-18 09:05:50 +01:00
Saúl Ibarra Corretgé e5c9c69ec9 ios: drop iOS 9 support
WebRTC no longer actively fixes iOS 9 issues.
2018-12-06 10:47:44 +01:00
Saúl Ibarra Corretgé d48bef6c11 ios: set version to 1.21 2018-12-06 10:47:44 +01:00
Saúl Ibarra Corretgé 47830dfc3d ios: switch back to the "legacy" build system in Xcode
Xcode 10 introduced a new build system. Alas, it breaks a number of important
flows, such as creating an archive for the framework (ie SDK) target.

In order to "fix" this, switch back to the former (Xcode 9) build system for the
time being.
2018-12-04 12:12:01 +01:00
Saúl Ibarra Corretgé 26ba974757 [RN] Drop react-native-locale-detector dependency
The upstream package has been unmaintained for 2 years now, and making the litle
changes needed as React Native needs them is getting old. The actual
funcionality is a couple of one-liners plus tons of boliterplate, which gets
reduced by quite a bit if we just embed it. So here it goes.
2018-12-03 11:48:44 +01:00
Guus der Kinderen 99542e29e6 [RN] Upgrade React Native to 0.57.6 2018-11-29 10:35:31 +00:00
Saúl Ibarra Corretgé 1ba66e4b65 ios: update CocoaPods dependencies 2018-11-28 16:59:37 +01:00
Leonard Kim d5fb2c2717 ref(sdk): update comments to exclude mention of componentWillReceiveProps 2018-11-21 08:08:45 -08:00
Saúl Ibarra Corretgé ae890dc093 deps: update react-native-webrtc (M69) 2018-10-16 16:32:26 +02:00
Saúl Ibarra Corretgé 9407f562f6 [iOS] Simplify dynamically loading fonts 2018-10-16 14:33:48 +02:00
Saúl Ibarra Corretgé 011a46ce2d [RN] Don't bundle fonts we don't use 2018-10-16 14:33:48 +02:00
Saúl Ibarra Corretgé 8e0bd36ece deps: update react-native-vector-icons 2018-10-16 14:33:48 +02:00
Saúl Ibarra Corretgé 8c97ce2ee9 deps: update react-native-google-signin 2018-10-12 13:08:20 +02:00
Saúl Ibarra Corretgé b2245729cc [iOS] Update Podfile.lock 2018-10-12 13:08:20 +02:00
Saúl Ibarra Corretgé b71adbdf70 deps: update React Native to version 0.57 2018-10-10 18:07:36 +02:00
Saúl Ibarra Corretgé 6f17988d17 [iOS] Fix warning (#3491)
When a native iOS module implements `constantsToExport` it must define
`requiresMainQueueSetup`. In this case we don't do any UI stuff so it doesn't
need to be initialized in the main thread.
2018-10-01 21:47:48 -05:00
Saúl Ibarra Corretgé c54db8337d [iOS] Unify openURL methods and mark the old one deprecated (#3489)
Make sure both methods offer the same behavior and mark the old one as
deprecated so SDK users get a warning.
2018-09-28 14:54:09 -05:00
hristoterezov 467452d110 fix(deeplinking): After braking it with the dropbox implementation. 2018-09-27 01:42:59 -05:00
hristoterezov 38517127c3 feat(dropbox): Implement react-native module. 2018-09-27 01:42:59 -05:00
paweldomas 9613755055 fix(Travis/iOS): use '-quiet' with 'xcodebuild' commands
This reduces 'xcodebuild' verbosity and fixed problem with exceeding 4MB
of logs size imposed by Travis CI.
2018-09-24 14:34:11 -05:00
Bettenbuk Zoltan d10d61fb7a [RN] Add Google Sign In to live streaming 2018-09-05 23:09:56 +02:00
Saúl Ibarra Corretgé a327a5d804 [RN] Drop the react-native-permissions dependency
It causes false positives when submitting the app to the Store. Use the new
permissions API in react-native-webrtc instead.
2018-09-05 14:56:00 -05:00
Saúl Ibarra Corretgé 3ca704d81d [RN] Update react-native-webrtc and remove no longer needed polyfills 2018-08-29 09:22:28 -05:00
Lyubo Marinov 3ad27961e5 [iOS] Fix Jitsi Meet v1.18.x "Missing Purpose String in Info.plist File" issues reported by App Store Connect
App Store Connect reported the following issues in (and rejected the binary
of) Jitsi Meet 1.18.x:

NSBluetoothPeripheralUsageDescription
NSAppleMusicUsageDescription
NSMotionUsageDescription
NSSpeechRecognitionUsageDescription

Starting spring 2019, all apps submitted to the App Store that access user
data will be required to include a purpose string for the following:

NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
2018-08-28 10:00:55 +02:00
Lyubo Marinov d62974b433 [RN] Update react-native-calendar-events (continued)
PR https://github.com/wmcmahan/react-native-calendar-events/pull/186 has
been merged upstream.
2018-08-26 21:53:42 -05:00
Saúl Ibarra Corretgé d92b720704 [RN] Update calendar-events dependency
Includes a fix for not running expensive operations on the main thread.
2018-08-10 15:11:37 +02:00
paweldomas 54a1853e60 fix(ios/Podfile.lock): bump SDWebImage/Core version 2018-07-31 14:07:17 -05:00
Saúl Ibarra Corretgé 27021ea271 [RN] Replace cached image implementation
Use react-native-fastimage, which uses 2 full-native image impleentations using
well known and mature (native) libraries.

This gets us rid of 2 libraries which were observerd as a source of bugs and
created trouble with dependencies: react-native-fetch-blob and
react-native-img-cache. They are also no longer well maintained.
2018-07-31 14:07:17 -05:00
paweldomas d3dd833f21 fix(ios/travis-ci) try pod update
With the fastimage lib Travis complains about:

CocoaPods could not find compatible versions for pod "SDWebImage/Core"
2018-07-31 12:54:01 -05:00
Saúl Ibarra Corretgé 467a5aaae3 ios: run audio mode operations on a dedicated thread
There is no reason for them to run on the main thread, it's safe to call
AVFoundation functions on threads other than the main thread.

The previous code made an incorrect claim about the thread in which the audio
route change notification selector is called: it's called on a secondary thread:
https://developer.apple.com/documentation/avfoundation/avaudiosessionroutechangenotification
2018-07-27 15:39:39 -05:00
Saúl Ibarra Corretgé 3154c6f936 [RN] Don't request camera permission on first launch
It will only be requested if a user joins a meeting or flips the switch from
video to audio and back, but never as the first thing when the welcome page is
mounted.
2018-07-19 09:03:22 -05:00
Saúl Ibarra Corretgé 535e5b4f64 [iOS] Update Podfile.lock
Syntax changed slightly with an update to CocoaPods.
2018-06-26 17:59:02 +02:00
Saúl Ibarra Corretgé 47aa14e9f6 [iOS] Fix syncing muted state with CallKit
Fix the "mute ping pong" for once and for all. This patch takes a new approach
to the problem: it keeps track of the user generated CallKit transaction ations
and avoids calling the delegate method in those cases.

This results in a much cleaner and easier to understand handling of the flow: if
the delegate method is called it means the user tapped on the mute button. When
we sync the muted state in JS with CallKit the delegate method won't be called
at all, thus avoiding the ping-pong altogether.

In addition, make sure all CallKit methods run in the UI thread. CallKit will
call our delegate methods in the UI thread too, thsu there is no need to
synchronize access to the listener / pending action sets.
2018-06-22 11:25:09 +02:00
Lyubo Marinov 0d3fac7c0f [RN] Change default WelcomeScreen tab and persist user choice (coding style) 2018-06-18 15:42:09 -05:00
Saúl Ibarra Corretgé c7fc26d864 [iOS] Fix crash on startup when fetching calendar entries
Turns out sometimes a calendar is missing the tile and it crashes because nil is
inserted into a NSDictionary. Fix it by applying this pending PR:
https://github.com/wmcmahan/react-native-calendar-events/pull/164
2018-06-12 20:38:50 -05:00
Saúl Ibarra Corretgé 90d2340609 [iOS] Fix React Native warnings
Fixes the following warning:

~~~
Module XXX requires main queue setup since it overrides `constantsToExport` but doesn't implement `requiresMainQueueSetup`. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.
~~~

For AppInfo and AuioMode, there is no need to initialize anything in the UI
thread, so just return NO.
2018-06-09 12:03:45 +02:00
virtuacoplenny 3e79926ad4 feat(recording): add sounds for when recording starts and stops (#3078)
* feat(recording): add sounds for when recording starts and stops

* squash: use constants, play sounds for file only

* squash: rename recordingStopped.mp3 -> recordingOff.mp3

* squash: flip var declaration for alpha order
2018-06-05 20:20:43 +02:00
Daniel Ornelas c62809d910 [iOS] Fix SDK deployment target to be able to compile with iOS 9.3
Fixes: https://github.com/jitsi/jitsi-meet/issues/3086
2018-06-05 11:35:25 +02:00
Daniel Ornelas de725404ef [iOS] Fix issue with Invite RNModule being nil
This happend after initialization and joining a conference for the first time
in JitsiMeetView.
2018-06-05 11:21:22 +02:00
Saúl Ibarra Corretgé 2b7976380e [RN] Update react-native to 0.55.4
Also bump React to 16.3.2, since it's required.
2018-06-04 16:05:33 -05:00
Saúl Ibarra Corretgé e93c9dde5d [iOS] Fix warning about RCTBatchedBridge deprecation
It's removed in RN >= 0.55. This aligns the project with the official
documentation: https://facebook.github.io/react-native/docs/integration-with-existing-apps.html#configuring-cocoapods-dependencies
2018-06-04 12:23:55 -05:00
Daniel Ornelas 4bb6e5aefd Implement a delegate of PiPViewCoordinator to notify when user exits Picture in Picture mode 2018-05-23 17:56:16 -05:00
hristoterezov d4d2c25499 [RN] Add rejected ringtone sound assets to build 2018-05-23 15:22:01 -05: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 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