Commit Graph

392 Commits

Author SHA1 Message Date
Chris Bianca 42e7fb2e5d [ios] Firebase iOS v5 support 2018-05-16 17:22:47 +01:00
Chris Bianca 34c0878098 [auth] Support email link in checkActionCode 2018-05-16 12:41:48 +01:00
Dariusz Luksza 17f7f39dac Implement handling of Android actions in background
There are some cases when local notification action should be handled in
background eg. snoozing the reminder. In case of it launching app UI is
not necessary and would be confusing for the end user.

Therefore there should be a way to handle local notification action in
background.

For this reason new property 'runInBackground' was added to the
AndroidAction class and TypeScript type.

Also new broadcast receiver and service were implemented to handle
properly background actions.

In order to run particular action in background API consumer need to set its
'runInBackground' property to 'true', eg:

  ...
  .android.addAction(new firebase.notifications.Android.Action("snooze",
  "ic_snooze", "Snooze").setRunInBackground(true))
  ...

Then, there are two cases that API consumer needs to handle.

First when app is in the foreground, standard notification and
notification action code path will be executed. This mean, that:
 * onNotification() listener will be called (which should call
 displayNotification(), in order to show it to the user),
 * onNotificationOpen() listener will be called after the action is
 tapped by the user

Secondly, when application is in background or it is not running new
'RNFirebaseBackgroundNotificationAction' handler will be called. To
properly handle this case API consumer should create a background
asynchronous handler:

  const handleAsyncTask = async (notificationOpen: NotifficationOpen) => {
    if (notificationOpen && notificationOpen.notification) {
      const action = notificationOpen.action;
      const notificationId = notificationOpen.notification.notificationId;
      if (action === "snooze") {
        console.log("Reschedule notification for later time", notificationId);
      } else {
        console.log("unsupported action", action);
      }
      // hide the notification
      firebase.notifications().removeDeliveredNotification(notificationId);
    }
  }

Next hander should be registered to headless handler:

  AppRegistry.registerHeadlessTask('RNFirebaseBackgroundNotificationAction', () => handleAsyncTask);

Finally AndroidManifest.xml file must be modified, to include receiver
and service definition:

  <receiver
      android:name="io.invertase.firebase.notifications.RNFirebaseBackgroundNotificationActionReceiver"
      android:exported="true">
    <intent-filter>
      <action android:name="io.invertase.firebase.notifications.BackgroundAction"/>
    </intent-filter>
  </receiver>
  <service android:name="io.invertase.firebase.notifications.RNFirebaseBackgroundNotificationActionsService"/>

Now when ever 'Snooze' action is pressed it will launch
'handleAsyncTask' function in the background or onNotificationOpen()
when app is in foreground. And reschedule the notification
for the later time.
2018-05-16 08:20:24 +02:00
Pranjal Jain 4efb0c4dcf fix(notifications): Resolve promise on after notification is cancelled 2018-05-15 01:57:03 +05:30
Dariusz Luksza 57901cd29a Add Android API to delete channel and channel group 2018-05-14 09:24:44 +02:00
Salakar 4a6f12ec59 [android][auth] add signInWithEmailLink native method 2018-05-13 00:36:22 +01:00
Salakar 15992f3ba9 [android][auth] add sendSignInLinkToEmail native method 2018-05-12 23:13:54 +01:00
Salakar f81e50ccb8 [android][auth] add `emailLink` support for internal getCredentialForProvider util 2018-05-12 22:58:35 +01:00
Salakar cf25ba23e5 [both][auth] Deprecated firebase.auth().fetchProvidersForEmail in favor of firebase.auth().fetchSignInMethodsForEmail() 2018-05-12 22:51:42 +01:00
Salakar efc73163a5 [auth][android] import cleanup 2018-05-12 22:16:20 +01:00
Salakar a064d7dd2a [auth][android] update getJSError to handle 'INVALID_IDENTIFIER' - return from fetchSignInMethodsForEmail for example if email is invalid (not a standard auth exception, it's a grpc one it seems) 2018-05-12 22:15:23 +01:00
Salakar c185b3b060 [auth][android] update getJSError util regex to allow extracting codes from http errors - fixes #934 2018-05-12 22:11:50 +01:00
Salakar f13a2b5f9c [auth][android] replace deprecated task fetchProvidersForEmail with fetchSignInMethodsForEmail task + misc linting and legacy utils cleanup 2018-05-12 22:08:11 +01:00
Chris Bianca 6848044f13
Merge pull request #1073 from dluksza/notification-schedule-classcastexception
Fix ClassCastException while parsing fireDate
2018-05-11 14:26:46 +01:00
Dariusz Luksza dbc5a2d54e Fix ClassCastException while parsing fireDate
ClassCastException was thrown on Android 8.1 while trying to schedule
local notification. Use try-catch approach instead of relaying on the
default parse value.
2018-05-11 14:26:58 +02:00
arnabkund 175c579da3 [Android] Fix a bug with Android Invites invitationMap email keys 2018-05-11 15:03:01 +05:30
Chris Bianca 25506479d3 [firestore][android] Add support for firestore v16 2018-05-08 15:36:49 +01:00
David Gruseck 89806d97f7 [Android] Add the ability to remove notifications based on the tag 2018-05-07 17:35:10 +02:00
Salakar 73d915f192 [android][utils] add java.lang.Integer support for mapPutValue 2018-05-06 13:49:49 +01:00
Salakar a767558f76 [functions][android] add null check to logging 2018-05-06 13:08:33 +01:00
Salakar e5233c9af3 Merge branch 'master' of https://github.com/invertase/react-native-firebase into functions 2018-05-06 00:55:37 +01:00
Salakar 3306d92f2d [android][utils] refactor legacy utils to use react natives own conversion utilities for performance 2018-05-06 00:51:54 +01:00
Salakar d5abd6a304 [android][functions] finalise + cleanup 2018-05-06 00:50:54 +01:00
Salakar 368b3ad068 [functions][android][js] implementation - wip 2018-05-04 16:33:59 +01:00
Chris Bianca 3625e63024 [notifications][android] Run display notifications on a separate thread #996 2018-05-04 13:42:20 +01:00
Salakar 912335062a [firestore][android] implement Blob support 2018-05-03 20:56:55 +01:00
Liam Heneghan d193c6b688 + Fix Android rescheduled notifications firing immediately 2018-04-30 14:48:13 +12:00
Chris Bianca 7614f5b7e4 [android][notifications] Fix NPE when rescheduling notifications #1013 2018-04-24 17:37:16 +01:00
Salakar 8b90b5a7b3 [android][notifications] misc linting 2018-04-22 15:12:49 +01:00
Gilad Novik 89c6636434
Allow passing null as a sound
As per this answer: https://stackoverflow.com/a/46634508/306764
2018-04-22 14:44:32 +03:00
Salakar e2be5d678f [android][database] Fix for #1004 2018-04-21 23:27:35 +01:00
mike castleman eb75f78980 allow root project to specify dependency versions 2018-04-21 13:10:37 -04:00
Gilad Novik 15299429fe
allow using ringtones from RingtoneManager
when allowing users to pick a sound from RingtoneManager, RNFirebaseNotification should detect we are passing a Uri instead of trying to load this file from our bundle.
2018-04-16 19:38:32 +03:00
Chris Bianca 673855c510 [android] Update to use google() path 2018-04-13 12:12:25 +01:00
Chris Bianca b0abf23c6d [firestore] Add support for settings 2018-04-13 09:58:53 +01:00
Chris Bianca 1922a25198 [firestore] Add setLogLevel support 2018-04-13 08:41:57 +01:00
Chris Bianca 62706f9629 [notifications][android] Fix file:// for android notification images 2018-04-11 18:27:02 +01:00
Chris Bianca 5dbb6bc9fd [notifications][android] Support file:// urls for bitmaps 2018-04-10 16:14:06 +01:00
Chris Bianca eb91523478 [notifications][android] Fix incorrect array to arraylist cast #949 2018-04-10 16:02:42 +01:00
mjs daa8f9cbc0
fix cancelAlarm on android
I noticed that firebase.notifications().cancelAllNotifications() has no effect on android phones. All scheduled notifications still appear. The propsed change fixes this. It was "inspired" by https://stackoverflow.com/questions/35341682/cancel-the-scheduled-android-notification/35342066#35342066
2018-04-10 15:41:55 +02:00
Jimmy Mayoukou 2853d77935 Fix contentUrl in AdRequest on Android 2018-04-10 11:03:51 +02:00
Chris Bianca f5fa7436a9 [notifications] Add enableLights and enableVibration to AndroidChannel 2018-03-31 15:42:14 +01:00
Salakar 9511b567b9 sync with master 2018-03-28 16:28:19 +01:00
Chris Bianca 7f7169bd08 [build] Update to android tools 3.1.0 2018-03-28 15:51:08 +01:00
Chris Bianca d101813b5f [messaging][notifications] Make all methods return a promise where they didn’t previously 2018-03-28 11:02:39 +01:00
Chris Bianca 33cd0b0b13 [messaging] Handle Android exceptions when message priority not set correctly 2018-03-28 09:40:38 +01:00
Chris Bianca dd940b953b [firestore] Add support for enable / disable network 2018-03-27 17:31:25 +01:00
Chris Bianca 51721a950f [notifications] Ensure error is always logged 2018-03-27 17:08:21 +01:00
Chris Bianca 9f9a3da5af [auth] Fix issue with null photo URL when updating profile #911 2018-03-27 16:21:14 +01:00
Chris Bianca 6ff34f4daa [notifications] Add support for Android BigPictureStyle and BigTextStyle 2018-03-27 16:15:31 +01:00
Chris Bianca f5f08b716d [android] Upgrade to build tools 3.0.1 2018-03-27 15:32:10 +01:00
Michael Diarmid 8c55e84b26
Update build.gradle 2018-03-27 14:14:26 +01:00
Michael Diarmid ff7b64d458
Update build.gradle
to support new gradle versions
2018-03-27 14:10:47 +01:00
Chris Bianca 685fcf2137 [build] Enabled multiDex by default 2018-03-27 12:44:35 +01:00
Chris Bianca 56a1f1e84d [notifications] Better bundle/json conversion of list types 2018-03-27 10:57:53 +01:00
Tal Davidi 6084360676
[FIX] Syntax error in prior pull request
There was an extra parentheses added in the web view which caused the class to fail compilation.
2018-03-27 03:12:51 -04:00
Tal Davidi 4c11161f14
Add Integer serialization to JSON converter
Required to make vibration work for scheduled notifications. May need to add other types also. (Double off the top of my head)
2018-03-26 16:44:05 -04:00
Tal Davidi b02258b444
Update RNFirebaseNotificationManager.java
Retrieve vibration array as IntegerArray and check for null in case of improper usage.
2018-03-26 12:06:22 -04:00
Salakar e0d62f3945 Merge branch 'master' of https://github.com/invertase/react-native-firebase into bridge-detox 2018-03-23 22:24:49 +00:00
Salakar b386b2e521 [android] gradle version updates 2018-03-23 22:17:51 +00:00
Salakar 9811a7cbef [android] update gradle tool versions 2018-03-23 19:38:17 +00:00
Chris Bianca 8a9033457d [tests] Fix various test errors 2018-03-23 17:03:53 +00:00
Chris Bianca 7f90e485c8 [links] Refactor links to use builder classes 2018-03-23 13:24:31 +00:00
Chris Bianca 526ea04853 Merge branch 'ios-invites' 2018-03-23 11:47:28 +00:00
Chris Bianca e430a4f132 [invites] Tweaks 2018-03-23 11:38:59 +00:00
Chris Bianca 1a5253997d [database] Multi database check url format, and make logging static 2018-03-23 08:42:10 +00:00
Chris Bianca a605a703fb
Merge pull request #881 from pocketgems/multiple_databases_3.3.0_upstream
Implement multiple database shard support
2018-03-23 08:35:01 +00:00
Chris Bianca 2891027f25 [tests] Fix some configuration issues 2018-03-22 14:55:02 +00:00
Chris Bianca 53babb4cd9 [invites] Initial JS and Android invites functionality 2018-03-22 12:46:37 +00:00
Chris Bianca 26c3ed9a60 [notifications] Ensure android specific notification properties are populated 2018-03-22 08:48:00 +00:00
Akshet Pandey a9470e78c5 CR Changes 2018-03-21 13:08:46 -07:00
JinHao Chen cc8799b465 Implement multiple database shard support 2018-03-21 12:51:02 -07:00
Chris Bianca e537955212 [notifications] Add support for android actions 2018-03-09 11:09:28 +00:00
Chris Bianca 54567620f7 [messaging] Bump background message timeout to 60s 2018-03-08 14:05:34 +00:00
Chris Bianca 7619548a2c Merge branch 'master' into fcm-rewrite
# Conflicts:
#	lib/modules/core/firebase.js
#	tests/ios/Podfile.lock
2018-03-08 09:32:57 +00:00
Chris Bianca 7ce7f5ae58 [messaging] Support FCM data-only messages in the background 2018-03-08 09:28:27 +00:00
Chris Bianca 57ffa9bd3e [notifications] Fix some android issues with local notifications 2018-03-07 18:29:53 +00:00
Chris Bianca 7b9269fec5 [notifications] Rename `onNotificationOpened` to `onNotificationOpen` 2018-03-06 18:20:49 +00:00
Chris Bianca b9df258402 [notifications] Android channel and channel group support 2018-03-05 08:28:13 +00:00
Salakar fdf3e0fb56 [android][fabric.crashlytics] update to SDK v2.9.1 (related to / fixes #847) 2018-03-05 00:34:06 +00:00
Michael Diarmid f1a7a13587
Merge branch 'master' into firestore-transactions 2018-03-05 00:05:37 +00:00
Chris Bianca bf2c31ca2d [tests] More auth tests 2018-03-02 09:47:13 +00:00
Salakar 80e9e99789 [firestore][android] update transaction handler to reset command buffer at the start of each cycle 2018-02-23 09:51:05 +00:00
Salakar dd1bbc87f5 [firestore][android] transactions working 2018-02-23 03:00:36 +00:00
Chris Bianca cd0ef4e3b7 [notifications] Continue android implementation 2018-02-15 14:59:21 +00:00
Chris Bianca 99b4b6550b [notifications] WIP Android implementation 2018-02-15 08:11:17 +00:00
Chris Bianca fb57dc5482 [notifications] First pass at notifications JS API 2018-02-09 17:00:03 +00:00
Chris Bianca 1ddc76616d [fcm] Fix getInitialMessage; Handle a few more android fields 2018-02-09 10:17:16 +00:00
Chris Bianca e329851c44 [ios] Android hasPermission method 2018-02-05 18:18:54 +00:00
Chris Bianca a460d8f809 [fcm] Work in progress iOS message support 2018-02-02 12:05:51 +00:00
Chris Bianca 850f04914f [fcm] Android instanceid and core fcm support; iOS instance and basic fcm support 2018-02-02 08:40:48 +00:00
Chris Bianca 5f3a9755d7 [auth] Add OAuthProvider 2018-01-24 15:21:52 +00:00
Chris Bianca 248885f03e [auth] Add verifyPasswordResetCode 2018-01-24 12:20:06 +00:00
Chris Bianca d370d002fb [auth] Add withData methods 2018-01-24 09:46:39 +00:00
Chris Bianca 9396b4fb31 [auth] Add metadata support 2018-01-19 16:19:15 +00:00
Chris Bianca cb28c458a8 Merge commit '637cd81424b9a18cdec9735492a21f06be4e7ccf' 2018-01-18 09:49:27 +00:00
Chris Bianca a0de480fc7 [auth] Some flow types and tidy up 2018-01-18 09:49:11 +00:00
Michael Diarmid c14d9292b0
Merge pull request #655 from invertase/auth-language
Set auth language #654
2018-01-17 15:23:41 +00:00
Chris Bianca 285e31df65 [auth] Remove superfluous getCurrentUser method which doesn’t exist in API 2018-01-16 17:39:27 +00:00
Chris Bianca 5e062868fc [firestore] Add FieldPath support to DocumentSnapshot and Query 2018-01-11 18:28:14 +00:00