Commit Graph

144 Commits

Author SHA1 Message Date
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é 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
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
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é 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é 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é 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é 21c0745504 android,ios: now working on version 19.2 2019-04-10 14:14:04 +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é 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é 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é 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é 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é 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
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é 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
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é 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
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é 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é 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é 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é 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é b71adbdf70 deps: update React Native to version 0.57 2018-10-10 18:07:36 +02: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
Bettenbuk Zoltan d10d61fb7a [RN] Add Google Sign In to live streaming 2018-09-05 23:09:56 +02:00
Lyubo Marinov 0d3fac7c0f [RN] Change default WelcomeScreen tab and persist user choice (coding style) 2018-06-18 15:42:09 -05: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
Lyubo Marinov 7ffdaf59c7 [RN] Add an example how to consume the public SDK invite API 2018-05-07 00:38:49 -05:00
Lyubo Marinov 85612b9ae1 [iOS] Namespace the public API of the feature invite 2018-05-06 22:42:32 -05:00
Saúl Ibarra Corretgé 0bad2dffb4 [iOS] Dybamically enable addPeopleEnabled / dialOutEnabled
If the beginAddPeople delegate method is implemented, and they haven't been
explicitly set to NO, they willbe YES.
2018-05-02 10:56:41 -05:00
Lyubo Marinov effd3728b6 [RN] add support for inviting participants during a call on mobile (2) 2018-05-02 12:54:02 +02:00
zbettenbuk 6586be9a8e Fix plist file formatting 2018-04-15 23:16:44 -05:00
Shuai Li 962df14382 [iOS] Fix launching the app after the introduction of Swift in sdk 2018-03-26 23:14:45 -05:00
Daniel Ornelas 5858859838 Addressing feedback from PR 2018-03-22 00:04:25 -04:00
zbettenbuk bba480f329 Add calendar-sync feature 2018-03-13 18:04:14 -05:00
Lyubo Marinov 9591cb54a2 [iOS] 1024x1024 AppIcon required by Apple 2017-12-20 12:38:11 -06:00
Lyubo Marinov 05de599739 [iOS] Update projects to Xcode recommended settings 2017-12-19 19:15:34 -06:00
Saúl Ibarra Corretgé 63d661ad5e ios: remove needless method
We just call the parent class' method, so just get rid of it.
2017-12-12 11:57:18 +01:00
Lyubo Marinov 713700456e [iOS] Configuration-specific AppIcons
While having configuration-specific AppIcons may be of questionable use,
I'm more interested in using the Debug version for enterprise
distribution and the Release version for AppStore distribution.
2017-11-15 16:07:36 -06:00
Lyubo Marinov 72c9933e73 [RN] SDK building, installing, and publishing
Based on work authored by Shuai Li <sli@atlassian.com>, Daniel Ornelas
<dornelas@atlassian.com>, and Lyubo Marinov <lmarinov@atlassian.com>.
2017-09-11 20:12:56 -05:00
Lyubo Marinov 4dc78ce458 [RN] Increase the coverage of JitsiMeetViewListener
JitsiMeetViewListener is an integral part of the public API of Jitsi
Meet SDK for Android. Utilize it in the Debug configuration of the Jitsi
Meet app for Android in order to increase (1) awareness of API breakages
and (2) API coverage.

The same goes for JitsiMeetViewDelegate in Jitsi Meet SDK and app for
iOS.
2017-09-06 16:31:15 -05:00
Lyubo Marinov 3546cf4915 Fixes jsdocs, formatting 2017-07-26 15:54:57 -05:00
Saúl Ibarra Corretgé 99b856233d [iOS] Fix joining initial URL if app was closed
On iOS, if the app is closed the startup options are only passed as the
`launchOptions` dictionary of `applicationDidFinishLaunching`. Thus add a helper
method to be called from there by embedding applications so we can copy that
dictionary.
2017-07-07 08:57:49 -05:00
Saúl Ibarra Corretgé d7818be067 [iOS] Link with WebRTC.framework at the top level
Before, Jitsi Meet (the app) would only link with JitsiMeet.framework, which in
turn embedded WebRTC.framework. While possible, Apple doesn't allow apps with
nested frameworks to be submitted to the store. Now the app will link with
WebRTC.framework directly so there is no framework nesting.

A potential improvement here is to build WebRTC as a static library so it can
then be embedded in JitsiMeet.framework and completely hidden from the app.
2017-06-19 11:03:13 -05:00
Saúl Ibarra Corretgé 2db574810b [RN] Fix target reference in iOS scheme 2017-06-15 09:51:04 -05:00
Lyubo Marinov 5f64ccb97d [RN] Naming 2017-06-09 14:51:31 -05:00
Lyubo Marinov 2251a17f96 [RN] Consistency in Jitsi Meet SDK for iOS
1. Aligns the project structure of Jitsi Meet SDK for iOS with that for
   Android for better comprehension.

2. The command `react-native run-ios` uses the last Xcode project or
   workspace in the list of these sorted in alphabetical order. Which
   limits our freedom in naming. Thus having only an Xcode project in
   the root directory of the iOS project structure gives us back the
   freedom in naming.

3. Allows the Podspec to work for the app project in addition to the sdk
   project because we need Crashlytics in the app which is integrated
   via Cocoapods as well.

4. Further removes references to JitsiKit in the source code for the
   sake of consistent naming.
2017-06-08 01:13:12 -05:00
Saúl Ibarra Corretgé b1100a9c7a [RN] Add initial Jitsi Meet SDK for iOS
Ladies and gentlemen, allow me to introduce you to Jitsi Meet SDK for iOS, the
mobile SDK which powers Jitsi Meet.

The goal is to encapsulate the entire React Native app into a framework / SDK
and offer an API for native (ObjC or Swift) applications to embed the Jitsi
conferencing experience.

While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of a framework, hidden away from the application
using it. This surfaced as a number of issues which had to be addressed
specifically due to our use-case:

- Universal / deep linking needed to be wrapped to avoid the embedding app from
  linking with RN.
- The bundle URL had to be manually constructed, since RN considers that all
  resources are in the main bundle, but in case of a framework that is not the
  case.
- Custom fonts had to be manually loaded, since UIAppFonts doesn't work on the
  framework's Info.plist file.
- The RN packager has to be manually triggered since the React project will no
  longer do it for us.
- Custom App Transport Security rules were added since the builtin way to do it
  modifies the framework's Info.plist, which is useless in this case.

At this stage, the Jitsi Meet application is just a small single view
application which uses the Jitsi Meet SDK to create a single view which
represents the entire application. Events and external conference handling are
forthcoming.
2017-06-08 00:50:00 -05:00
Saúl Ibarra Corretgé d9538845bc [RN] Set iOS status bar style to light
It will render as white in dark backgrounds. This is what FaceTime does and what
we already do on Android. The problem with the default look (black text) is
noticeable in audio only mode, since the background is dark.
2017-04-19 14:07:20 +02:00
Lyubo Marinov b211ce02a8 [RN] Increment short app version from 1.3 to 1.4
Now that Apple have approved build 1.3.204 for release in the App Store,
the short app version needs to be incremented; otherwise, no new builds
can be uploaded to TestFlight and, respectively, for release in the App
Store.
2017-04-09 12:00:58 -05:00
Saúl Ibarra Corretgé 13e3375e8a [RN] Use proximity sensor when in audio-only mode
When the audio-only mode is enabled, turn on the proximity sensor to dim the
screen and disable touch controls when there is an object nearby.
2017-04-05 22:06:30 -05:00
yanas 9d32f48ab8 [IOS Assets] Fixes launch screen 480x3 image 2017-03-07 13:12:26 -06:00
Lyubomir Marinov f3269070b2 [iOS] iPad support 2017-02-18 11:36:14 -06:00
Lyubomir Marinov dba1bcb0e3 [RN] Increment short app version from 1.2 to 1.3
Now that Apple have approved build 1.2.199 for release in the App Store,
the short app version needs to be incremented; otherwise, no new builds
can be uploaded to TestFlight and, respectively, for release in the App
Store.
2017-02-17 09:32:24 -06:00
Lyubomir Marinov 0de01e93dd react-native 0.41.2 2017-02-06 12:24:38 -06:00
Lyubomir Marinov fdc96044ad [RN] App-specific URL scheme 2017-01-31 22:47:47 -06:00
Lyubomir Marinov 42f124b0f6 Fix typo 2017-01-23 13:01:12 -06:00
Lyubomir Marinov 7249ababb7 Provide microphone and camera usage descriptions
iTunes Connect/TestFlight requires these now and is not satisfied with
empty values anymore.
2017-01-23 12:11:48 -06:00
Lyubomir Marinov cac68dbaba [RN] Increment short app version from 1.1 to 1.2
Now that Apple have approved build 1.1.185 for release in the App Store,
the short app version needs to be incremented; otherwise, no new builds
can be uploaded to TestFlight and, respectively, for release in the App
Store.
2017-01-20 15:01:01 -06:00
Lyubomir Marinov 3c04634609 Simplify
Simplify the source code (with the idea that source code which does not
exist does not have to be maintained).

Additionally, apply modifications to have the source code comply with the coding
style.

Overall, prepare saghul:audio-mode for merge into jitsi:master.
2017-01-20 14:06:15 -06:00
Saúl Ibarra Corretgé 6c12681b9c [RN][iOS] Default to speaker for video conferences 2017-01-20 14:06:15 -06:00
Lyubomir Marinov d1f6679f2d [RN] Remove Crashlytics 2017-01-17 21:54:17 -06:00
Lyubomir Marinov a887beed3a [RN] Increment short app version from 1.0 to 1.1
Now that Apple have approved build 1.0.178 for release in the App Store,
the short app version needs to be incremented; otherwise, no new builds
can be uploaded to TestFlight and, respectively, for release in the App
Store.
2017-01-06 10:34:46 -06:00
Lyubomir Marinov 4fef8a3b79 [RN] Prevent unhandled JS errors from killing the process in Release 2017-01-05 15:06:41 -06:00
Lyubomir Marinov 9f332ffcec [iOS] Synthesize IPv6 addresses 2016-12-17 04:03:10 -06:00
Lyubomir Marinov e4f9c17f8a [iOS] Prepare for App Store release 2016-11-13 18:27:23 -06:00
Yana Stamcheva fe7e9f333f [iOS] Fix launch screen text 2016-11-10 10:48:30 -06:00
Yana Stamcheva d7fc20b607 [iOS] Center launch screen text 2016-11-09 19:58:48 -06:00
Lyubomir Marinov 66b7404961 [iOS] Try to fix the launch screen 2016-11-09 15:06:07 -06:00
Lyubomir Marinov 34ea330aa3 [iOS] Try to fix the launch screen
The launch screen appears not centered and/or clipped on certain
devices. Unfortunately, I cannot reproduce it when I deploy the app to
devices and Simulator from Xcode 8.1. It may (or may very well not) be
that the Xcode version matters and the enterprise build server does
appear to use an older Xcode version.
2016-11-09 12:41:20 -06:00
Lyubomir Marinov 056fc64f7a Try to fix the enterprise build of the iOS app
LaunchScreen.xib compiles locally with Xcode 8.1 but the enterprise
build fails. A possibility is that the enterprise build machine is
running an older Xcode version.
2016-11-08 18:14:43 -06:00
Yana Stamcheva cb0ec3f702 [iOS] App icon(s) 2016-11-08 17:47:23 -06:00
Yana Stamcheva 10f3f01da8 [iOS] Launch screen 2016-11-08 16:12:20 -06:00
Lyubomir Marinov fab93a170e [iOS] Mark the app as VoIP 2016-11-01 13:59:53 -05:00
Lyubomir Marinov 20e7c6d873 [iOS] Crashlytics 2016-10-31 14:08:25 -05:00
Lyubomir Marinov 7f3ff13c18 Merge jitsi-meet-react's mobile support
As a step toward merging jitsi-meet-react with jitsi-meet to share as
much source code as possible between mobile and Web, merge the part of
jitsi-meet-react's source tree which supports mobile inside the
jitsi-meet source tree and leave jitsi-meet-react's Web support in the
source code revision history but don't have it in master anymore because
it's different from jitsi-meet's Web support. In other words, the two
projects are mechanically merged at the file level and don't really
share source code between mobile and Web.
2016-10-12 10:31:52 -05:00