mirror of https://github.com/laurent22/joplin.git
Android: Fixes #321: Changed notification library to Firebase to get more reliable notifications
parent
f05929cd17
commit
35d3fe03ab
|
@ -137,24 +137,39 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(':react-native-camera')
|
implementation project(':react-native-firebase')
|
||||||
compile project(':react-native-file-viewer')
|
implementation (project(':react-native-camera')) {
|
||||||
compile project(':react-native-securerandom')
|
// This is required because com.google.firebase requires v16.0.x of com.google.android.gms
|
||||||
compile project(':react-native-push-notification')
|
// while react-native-camera requires v15.x, which results in broken dependencies with
|
||||||
compile project(':react-native-fs')
|
// this error message:
|
||||||
compile project(':react-native-image-picker')
|
//
|
||||||
compile project(':react-native-vector-icons')
|
// The library com.google.android.gms:play-services-base is being requested by various other libraries at [[15.0.1,15.0.1]], but resolves to 16.0.1
|
||||||
compile project(':react-native-fs')
|
//
|
||||||
|
// For the record: found solution by removing all Firebase stuff here and running "gradlew.bat :app:dependencies"
|
||||||
|
// That shows that react-native-camera was the one requiring v15.0.1.
|
||||||
|
exclude group: "com.google.android.gms"
|
||||||
|
}
|
||||||
|
implementation project(':react-native-file-viewer')
|
||||||
|
implementation project(':react-native-securerandom')
|
||||||
|
implementation project(':react-native-fs')
|
||||||
|
implementation project(':react-native-image-picker')
|
||||||
|
implementation project(':react-native-vector-icons')
|
||||||
|
implementation project(':react-native-fs')
|
||||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||||
compile project(':react-native-sqlite-storage')
|
implementation project(':react-native-sqlite-storage')
|
||||||
compile project(':rn-fetch-blob')
|
implementation project(':rn-fetch-blob')
|
||||||
compile project(':react-native-document-picker')
|
implementation project(':react-native-document-picker')
|
||||||
compile project(':react-native-image-resizer')
|
implementation project(':react-native-image-resizer')
|
||||||
compile project(':react-native-share-extension')
|
implementation project(':react-native-share-extension')
|
||||||
compile project(':react-native-version-info')
|
implementation project(':react-native-version-info')
|
||||||
compile "com.facebook.react:react-native:+"
|
implementation "com.facebook.react:react-native:+"
|
||||||
|
|
||||||
|
implementation "com.google.android.gms:play-services-base:16.0.1" // For Firebase
|
||||||
|
implementation "com.google.firebase:firebase-core:16.0.4" // For Firebase
|
||||||
|
implementation "com.google.firebase:firebase-messaging:17.3.4" // For Firebase
|
||||||
|
implementation 'me.leolin:ShortcutBadger:1.1.21@aar' // For Firebase - this line if you wish to use badge on Android
|
||||||
|
|
||||||
// To fix the error below, which happened after adding react-native-camera.
|
// To fix the error below, which happened after adding react-native-camera.
|
||||||
// Doesn't make any sense since rn-camera neither defines v26 nor 27 but
|
// Doesn't make any sense since rn-camera neither defines v26 nor 27 but
|
||||||
|
@ -183,3 +198,4 @@ task copyDownloadableDepsToLibs(type: Copy) {
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
|
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
|
||||||
|
apply plugin: 'com.google.gms.google-services' // For Firebase
|
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
"project_info": {
|
||||||
|
"project_number": "790045682275",
|
||||||
|
"firebase_url": "https://joplin-b5b20.firebaseio.com",
|
||||||
|
"project_id": "joplin-b5b20",
|
||||||
|
"storage_bucket": "joplin-b5b20.appspot.com"
|
||||||
|
},
|
||||||
|
"client": [
|
||||||
|
{
|
||||||
|
"client_info": {
|
||||||
|
"mobilesdk_app_id": "1:790045682275:android:8b68903cf881e9f7",
|
||||||
|
"android_client_info": {
|
||||||
|
"package_name": "net.cozic.joplin"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "790045682275-fkusmvsm7gv3nve7h0sg0uuor9njf4sm.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"api_key": [
|
||||||
|
{
|
||||||
|
"current_key": "AIzaSyCbHjUWAKcbldLTuoN7JybJ8dfznwBG_gM"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"services": {
|
||||||
|
"analytics_service": {
|
||||||
|
"status": 1
|
||||||
|
},
|
||||||
|
"appinvite_service": {
|
||||||
|
"status": 1,
|
||||||
|
"other_platform_oauth_client": []
|
||||||
|
},
|
||||||
|
"ads_service": {
|
||||||
|
"status": 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"configuration_version": "1"
|
||||||
|
}
|
|
@ -11,25 +11,23 @@
|
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ============================= -->
|
||||||
|
<!-- START RNFirebaseNotifications -->
|
||||||
|
<!-- ============================= -->
|
||||||
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
|
<!-- ============================= -->
|
||||||
|
<!-- END RNFirebaseNotifications -->
|
||||||
|
<!-- ============================= -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Make these features optional to enable Chromebooks -->
|
<!-- Make these features optional to enable Chromebooks -->
|
||||||
<!-- https://github.com/laurent22/joplin/issues/37 -->
|
<!-- https://github.com/laurent22/joplin/issues/37 -->
|
||||||
<uses-feature android:name="android.hardware.camera" android:required="false" />
|
<uses-feature android:name="android.hardware.camera" android:required="false" />
|
||||||
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
|
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
|
||||||
|
|
||||||
<!-- ==================================== -->
|
|
||||||
<!-- START react-native-push-notification -->
|
|
||||||
<!-- ==================================== -->
|
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
||||||
<permission
|
|
||||||
android:name="${applicationId}.permission.C2D_MESSAGE"
|
|
||||||
android:protectionLevel="signature" />
|
|
||||||
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
|
|
||||||
<uses-permission android:name="android.permission.VIBRATE" />
|
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
|
||||||
<!-- ================================== -->
|
|
||||||
<!-- END react-native-push-notification -->
|
|
||||||
<!-- ================================== -->
|
|
||||||
|
|
||||||
<uses-sdk
|
<uses-sdk
|
||||||
android:minSdkVersion="16"
|
android:minSdkVersion="16"
|
||||||
android:targetSdkVersion="26" />
|
android:targetSdkVersion="26" />
|
||||||
|
@ -41,27 +39,62 @@
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme">
|
||||||
|
|
||||||
<!-- ==================================== -->
|
|
||||||
<!-- START react-native-push-notification -->
|
|
||||||
<!-- ==================================== -->
|
|
||||||
|
|
||||||
<receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
|
|
||||||
<receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver">
|
<!-- ============================= -->
|
||||||
|
<!-- START RNFirebaseNotifications -->
|
||||||
|
<!-- ============================= -->
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.messaging.default_notification_icon"
|
||||||
|
android:resource="@drawable/ic_stat_access_alarm" />
|
||||||
|
<receiver android:name="io.invertase.firebase.notifications.RNFirebaseNotificationReceiver"/>
|
||||||
|
<receiver android:enabled="true" android:exported="true" android:name="io.invertase.firebase.notifications.RNFirebaseNotificationsRebootReceiver">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
||||||
|
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
|
||||||
|
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
<service android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationRegistrationService"/>
|
<!-- ============================= -->
|
||||||
<!-- ================================== -->
|
<!-- END RNFirebaseNotifications -->
|
||||||
<!-- END react-native-push-notification -->
|
<!-- ============================= -->
|
||||||
<!-- ================================== -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ============================= -->
|
||||||
|
<!-- START RNFirebaseNotifications -->
|
||||||
|
<!-- ============================= -->
|
||||||
|
<service android:name="io.invertase.firebase.messaging.RNFirebaseMessagingService">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
<service android:name="io.invertase.firebase.messaging.RNFirebaseInstanceIdService">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<!-- "If you want to be able to react to data-only messages when your app is in the background, e.g. to display a heads up notification" -->
|
||||||
|
<service android:name="io.invertase.firebase.messaging.RNFirebaseBackgroundMessagingService" />
|
||||||
|
<!-- ============================= -->
|
||||||
|
<!-- END RNFirebaseNotifications -->
|
||||||
|
<!-- ============================= -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 2018-12-16: Changed android:launchMode from "singleInstance" to "singleTop" for Firebase notification -->
|
||||||
|
<!-- Previously singleInstance was necessary to prevent multiple instance of the RN app from running at the same time, but maybe no longer needed. -->
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||||
android:windowSoftInputMode="adjustResize"
|
android:windowSoftInputMode="adjustResize"
|
||||||
android:launchMode="singleInstance">
|
android:launchMode="singleTop">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
|
|
@ -3,10 +3,12 @@ package net.cozic.joplin;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
|
|
||||||
import com.facebook.react.ReactApplication;
|
import com.facebook.react.ReactApplication;
|
||||||
|
import io.invertase.firebase.RNFirebasePackage;
|
||||||
|
import io.invertase.firebase.notifications.RNFirebaseNotificationsPackage;
|
||||||
|
import io.invertase.firebase.messaging.RNFirebaseMessagingPackage;
|
||||||
import org.reactnative.camera.RNCameraPackage;
|
import org.reactnative.camera.RNCameraPackage;
|
||||||
import com.vinzscam.reactnativefileviewer.RNFileViewerPackage;
|
import com.vinzscam.reactnativefileviewer.RNFileViewerPackage;
|
||||||
import net.rhogan.rnsecurerandom.RNSecureRandomPackage;
|
import net.rhogan.rnsecurerandom.RNSecureRandomPackage;
|
||||||
import com.dieam.reactnativepushnotification.ReactNativePushNotificationPackage;
|
|
||||||
import com.imagepicker.ImagePickerPackage;
|
import com.imagepicker.ImagePickerPackage;
|
||||||
import com.facebook.react.ReactInstanceManager;
|
import com.facebook.react.ReactInstanceManager;
|
||||||
import com.facebook.react.ReactNativeHost;
|
import com.facebook.react.ReactNativeHost;
|
||||||
|
@ -38,12 +40,14 @@ public class MainApplication extends Application implements ReactApplication {
|
||||||
@Override
|
@Override
|
||||||
protected List<ReactPackage> getPackages() {
|
protected List<ReactPackage> getPackages() {
|
||||||
return Arrays.<ReactPackage>asList(
|
return Arrays.<ReactPackage>asList(
|
||||||
new ImageResizerPackage(),
|
|
||||||
new MainReactPackage(),
|
new MainReactPackage(),
|
||||||
new RNCameraPackage(),
|
new ImageResizerPackage(),
|
||||||
new RNFileViewerPackage(),
|
new RNFirebasePackage(),
|
||||||
new RNSecureRandomPackage(),
|
new RNFirebaseMessagingPackage(),
|
||||||
new ReactNativePushNotificationPackage(),
|
new RNFirebaseNotificationsPackage(),
|
||||||
|
new RNCameraPackage(),
|
||||||
|
new RNFileViewerPackage(),
|
||||||
|
new RNSecureRandomPackage(),
|
||||||
new ImagePickerPackage(),
|
new ImagePickerPackage(),
|
||||||
new ReactNativeDocumentPicker(),
|
new ReactNativeDocumentPicker(),
|
||||||
new RNFetchBlobPackage(),
|
new RNFetchBlobPackage(),
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 548 B |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
|
@ -13,7 +13,8 @@ buildscript {
|
||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.1.4'
|
classpath 'com.android.tools.build:gradle:3.2.0' // Upgraded from 3.1.4 to 3.2.0 for Firebase
|
||||||
|
classpath 'com.google.gms:google-services:4.0.1' // For Firebase
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
|
@ -23,6 +24,8 @@ buildscript {
|
||||||
allprojects {
|
allprojects {
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
|
google()
|
||||||
|
jcenter() // Was added by me - still needed?
|
||||||
maven {
|
maven {
|
||||||
url "https://maven.google.com"
|
url "https://maven.google.com"
|
||||||
}
|
}
|
||||||
|
@ -30,8 +33,6 @@ allprojects {
|
||||||
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
||||||
url "$rootDir/../node_modules/react-native/android"
|
url "$rootDir/../node_modules/react-native/android"
|
||||||
}
|
}
|
||||||
jcenter() // Was added by me - still needed?
|
|
||||||
google()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
rootProject.name = 'Joplin'
|
rootProject.name = 'Joplin'
|
||||||
|
include ':react-native-firebase'
|
||||||
|
project(':react-native-firebase').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase/android')
|
||||||
include ':react-native-camera'
|
include ':react-native-camera'
|
||||||
project(':react-native-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-camera/android')
|
project(':react-native-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-camera/android')
|
||||||
include ':react-native-file-viewer'
|
include ':react-native-file-viewer'
|
||||||
project(':react-native-file-viewer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-file-viewer/android')
|
project(':react-native-file-viewer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-file-viewer/android')
|
||||||
include ':react-native-securerandom'
|
include ':react-native-securerandom'
|
||||||
project(':react-native-securerandom').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-securerandom/android')
|
project(':react-native-securerandom').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-securerandom/android')
|
||||||
include ':react-native-push-notification'
|
|
||||||
project(':react-native-push-notification').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-push-notification/android')
|
|
||||||
include ':react-native-fs'
|
include ':react-native-fs'
|
||||||
project(':react-native-fs').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fs/android')
|
project(':react-native-fs').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fs/android')
|
||||||
include ':react-native-image-picker'
|
include ':react-native-image-picker'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const PushNotification = require('react-native-push-notification');
|
import firebase from 'react-native-firebase';
|
||||||
|
|
||||||
class AlarmServiceDriver {
|
class AlarmServiceDriver {
|
||||||
|
|
||||||
|
@ -10,25 +10,25 @@ class AlarmServiceDriver {
|
||||||
throw new Error('Available only for non-persistent alarms');
|
throw new Error('Available only for non-persistent alarms');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
firebaseNotificationId_(joplinNotificationId) {
|
||||||
|
return 'net.cozic.joplin-' + joplinNotificationId;
|
||||||
|
}
|
||||||
|
|
||||||
async clearNotification(id) {
|
async clearNotification(id) {
|
||||||
PushNotification.cancelLocalNotifications({ id: id + '' });
|
return firebase.notifications().cancelNotification(this.firebaseNotificationId_(id))
|
||||||
}
|
}
|
||||||
|
|
||||||
async scheduleNotification(notification) {
|
async scheduleNotification(notification) {
|
||||||
// Arguments must be set in a certain way and certain format otherwise it cannot be
|
const firebaseNotification = new firebase.notifications.Notification()
|
||||||
// cancelled later on. See:
|
firebaseNotification.setNotificationId(this.firebaseNotificationId_(notification.id));
|
||||||
// https://github.com/zo0r/react-native-push-notification/issues/570#issuecomment-337642922
|
firebaseNotification.setTitle(notification.title)
|
||||||
const androidNotification = {
|
if ('body' in notification) firebaseNotification.body = notification.body;
|
||||||
id: notification.id + '',
|
firebaseNotification.android.setChannelId('com.google.firebase.messaging.default_notification_channel_id');
|
||||||
message: notification.title,
|
firebaseNotification.android.setSmallIcon('ic_stat_access_alarm');
|
||||||
date: notification.date,
|
|
||||||
userInfo: { id: notification.id + '' },
|
|
||||||
number: 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
if ('body' in notification) androidNotification.body = notification.body;
|
firebase.notifications().scheduleNotification(firebaseNotification, {
|
||||||
|
fireDate: notification.date.getTime(),
|
||||||
PushNotification.localNotificationSchedule(androidNotification);
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5822,6 +5822,11 @@
|
||||||
"mimic-fn": "^1.0.0"
|
"mimic-fn": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"opencollective-postinstall": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-saQQ9hjLwu/oS0492eyYotoh+bra1819cfAT5rjY/e4REWwuc8IgZ844Oo44SiftWcJuBiqp0SA0BFVbmLX0IQ=="
|
||||||
|
},
|
||||||
"opn": {
|
"opn": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
"resolved": "http://registry.npmjs.org/opn/-/opn-3.0.3.tgz",
|
"resolved": "http://registry.npmjs.org/opn/-/opn-3.0.3.tgz",
|
||||||
|
@ -6630,6 +6635,26 @@
|
||||||
"resolved": "https://registry.npmjs.org/react-native-file-viewer/-/react-native-file-viewer-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-file-viewer/-/react-native-file-viewer-1.0.5.tgz",
|
||||||
"integrity": "sha512-/5lwmVPliEOIJMoRby9tb1s9VPxUH1ru7BfdCKxZAwZI5LoOY1qHZuUMtCHAlIKLH1DHu8fhjleJuXbRHaCuLQ=="
|
"integrity": "sha512-/5lwmVPliEOIJMoRby9tb1s9VPxUH1ru7BfdCKxZAwZI5LoOY1qHZuUMtCHAlIKLH1DHu8fhjleJuXbRHaCuLQ=="
|
||||||
},
|
},
|
||||||
|
"react-native-firebase": {
|
||||||
|
"version": "5.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-native-firebase/-/react-native-firebase-5.1.1.tgz",
|
||||||
|
"integrity": "sha512-Iv+GKsk7pSX88BcDZUEyR02T4XjVqhQaGMmpzyDZ0cBc/Dpo7XxPfUc8M3z8hKFGPLJwvyFa6rMYTtz6RcJYEw==",
|
||||||
|
"requires": {
|
||||||
|
"opencollective-postinstall": "^2.0.0",
|
||||||
|
"prop-types": "^15.6.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"prop-types": {
|
||||||
|
"version": "15.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
|
||||||
|
"integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
|
||||||
|
"requires": {
|
||||||
|
"loose-envify": "^1.3.1",
|
||||||
|
"object-assign": "^4.1.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"react-native-fs": {
|
"react-native-fs": {
|
||||||
"version": "2.11.17",
|
"version": "2.11.17",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-fs/-/react-native-fs-2.11.17.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-fs/-/react-native-fs-2.11.17.tgz",
|
||||||
|
@ -6699,11 +6724,6 @@
|
||||||
"resolved": "https://registry.npmjs.org/react-native-popup-menu/-/react-native-popup-menu-0.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-popup-menu/-/react-native-popup-menu-0.10.0.tgz",
|
||||||
"integrity": "sha1-zhU2eo1WKIfVypB+IyMB1BLd5+c="
|
"integrity": "sha1-zhU2eo1WKIfVypB+IyMB1BLd5+c="
|
||||||
},
|
},
|
||||||
"react-native-push-notification": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-native-push-notification/-/react-native-push-notification-3.0.1.tgz",
|
|
||||||
"integrity": "sha1-DiPbMC0Du0o/KNwHLcryqaEXjtg="
|
|
||||||
},
|
|
||||||
"react-native-securerandom": {
|
"react-native-securerandom": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-securerandom/-/react-native-securerandom-0.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-securerandom/-/react-native-securerandom-0.1.1.tgz",
|
||||||
|
|
|
@ -32,13 +32,13 @@
|
||||||
"react-native-document-picker": "^2.1.0",
|
"react-native-document-picker": "^2.1.0",
|
||||||
"react-native-dropdownalert": "^3.1.2",
|
"react-native-dropdownalert": "^3.1.2",
|
||||||
"react-native-file-viewer": "^1.0.5",
|
"react-native-file-viewer": "^1.0.5",
|
||||||
|
"react-native-firebase": "^5.1.1",
|
||||||
"react-native-fs": "^2.11.17",
|
"react-native-fs": "^2.11.17",
|
||||||
"react-native-image-picker": "^0.26.7",
|
"react-native-image-picker": "^0.26.7",
|
||||||
"react-native-image-resizer": "^1.0.0",
|
"react-native-image-resizer": "^1.0.0",
|
||||||
"react-native-material-dropdown": "^0.5.2",
|
"react-native-material-dropdown": "^0.5.2",
|
||||||
"react-native-popup-dialog": "^0.9.35",
|
"react-native-popup-dialog": "^0.9.35",
|
||||||
"react-native-popup-menu": "^0.10.0",
|
"react-native-popup-menu": "^0.10.0",
|
||||||
"react-native-push-notification": "^3.0.1",
|
|
||||||
"react-native-securerandom": "^0.1.1",
|
"react-native-securerandom": "^0.1.1",
|
||||||
"react-native-share-extension": "^1.2.1",
|
"react-native-share-extension": "^1.2.1",
|
||||||
"react-native-side-menu": "^1.1.3",
|
"react-native-side-menu": "^1.1.3",
|
||||||
|
|
|
@ -65,8 +65,6 @@ SyncTargetRegistry.addClass(SyncTargetOneDriveDev);
|
||||||
SyncTargetRegistry.addClass(SyncTargetNextcloud);
|
SyncTargetRegistry.addClass(SyncTargetNextcloud);
|
||||||
SyncTargetRegistry.addClass(SyncTargetWebDAV);
|
SyncTargetRegistry.addClass(SyncTargetWebDAV);
|
||||||
SyncTargetRegistry.addClass(SyncTargetDropbox);
|
SyncTargetRegistry.addClass(SyncTargetDropbox);
|
||||||
|
|
||||||
// Disabled because not fully working
|
|
||||||
SyncTargetRegistry.addClass(SyncTargetFilesystem);
|
SyncTargetRegistry.addClass(SyncTargetFilesystem);
|
||||||
|
|
||||||
const FsDriverRN = require('lib/fs-driver-rn.js').FsDriverRN;
|
const FsDriverRN = require('lib/fs-driver-rn.js').FsDriverRN;
|
||||||
|
|
Loading…
Reference in New Issue