Commit Graph

232 Commits

Author SHA1 Message Date
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