1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00

Mobile: Upgrading to RN 60

This commit is contained in:
Laurent Cozic 2020-02-09 14:51:12 +00:00
parent 7fd445173d
commit 4235288c55
45 changed files with 3379 additions and 3246 deletions

View File

@ -11,21 +11,54 @@
; Ignore duplicate module providers
; For RN Apps installed via npm, "Libraries" folder is inside
; "node_modules/react-native" but in the source repo it is in the root
.*/Libraries/react-native/React.js
.*/Libraries/react-native/ReactNative.js
node_modules/react-native/Libraries/react-native/React.js
; Ignore polyfills
node_modules/react-native/Libraries/polyfills/.*
; These should not be required directly
; require from fbjs/lib instead: require('fbjs/lib/warning')
node_modules/warning/.*
; Flow doesn't support platforms
.*/Libraries/Utilities/HMRLoadingView.js
[untyped]
.*/node_modules/@react-native-community/cli/.*/.*
[include]
[libs]
node_modules/react-native/Libraries/react-native/react-native-interface.js
node_modules/react-native/flow
node_modules/react-native/flow/
[options]
emoji=true
module.system=haste
esproposal.optional_chaining=enable
esproposal.nullish_coalescing=enable
experimental.strict_type_args=true
module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js
module.system=haste
module.system.haste.use_name_reducers=true
# get basename
module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1'
# strip .js or .js.flow suffix
module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1'
# strip .ios suffix
module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1'
module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
module.system.haste.paths.blacklist=.*/__tests__/.*
module.system.haste.paths.blacklist=.*/__mocks__/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/RNTester/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/IntegrationTests/.*
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation.js
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
munge_underscores=true
@ -33,14 +66,34 @@ module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|we
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(4[0-2]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(4[0-2]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
unsafe.enable_getters_and_setters=true
[lints]
sketchy-null-number=warn
sketchy-null-mixed=warn
sketchy-number=warn
untyped-type-import=warn
nonstrict-import=warn
deprecated-type=warn
unsafe-getters-setters=warn
inexact-spread=warn
unnecessary-invariant=warn
signature-verification-failure=warn
deprecated-utility=error
[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import
[version]
^0.92.0
^0.98.0

View File

@ -41,6 +41,9 @@ buck-out/
\.buckd/
*.keystore
# CocoaPods
ios/Pods/
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the

View File

@ -146,9 +146,7 @@ android {
}
dependencies {
implementation project(':@react-native-community_slider')
implementation "org.webkit:android-jsc:r241213"
implementation project(':react-native-webview')
compile project(':react-native-push-notification')
// implementation (project(':react-native-camera')) {
// // This is required because com.google.firebase requires v16.0.x of com.google.android.gms
@ -174,7 +172,7 @@ dependencies {
implementation project(':rn-fetch-blob')
implementation project(':react-native-document-picker')
implementation project(':react-native-image-resizer')
implementation project(':react-native-share-extension')
// implementation project(':react-native-share-extension')
implementation project(':react-native-version-info')
implementation project(':react-native-camera')
implementation "com.facebook.react:react-native:+"

View File

@ -8,10 +8,3 @@
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

View File

@ -1,28 +1,19 @@
package net.cozic.joplin;
import android.app.Application;
import android.util.Log;
import com.facebook.react.PackageList;
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
import com.facebook.react.bridge.JavaScriptExecutorFactory;
import com.facebook.react.ReactApplication;
import com.reactnativecommunity.slider.ReactSliderPackage;
import com.reactnativecommunity.webview.RNCWebViewPackage;
import com.dieam.reactnativepushnotification.ReactNativePushNotificationPackage;
import com.vinzscam.reactnativefileviewer.RNFileViewerPackage;
import net.rhogan.rnsecurerandom.RNSecureRandomPackage;
import com.imagepicker.ImagePickerPackage;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.oblador.vectoricons.VectorIconsPackage;
import com.reactnativedocumentpicker.ReactNativeDocumentPicker;
import com.RNFetchBlob.RNFetchBlobPackage;
import com.rnfs.RNFSPackage;
import fr.bamlab.rnimageresizer.ImageResizerPackage;
import org.pgsqlite.SQLitePluginPackage;
import org.reactnative.camera.RNCameraPackage;
import java.lang.reflect.Field;
import com.alinz.parkerdan.shareextension.SharePackage;
import cx.evermeet.versioninfo.RNVersionInfoPackage;
// import com.alinz.parkerdan.shareextension.SharePackage;
import java.util.Arrays;
import java.util.List;
import android.database.CursorWindow;
@ -37,6 +28,15 @@ public class MainApplication extends Application implements ReactApplication {
@Override
protected List<ReactPackage> getPackages() {
// Was added in RN 60.x:
//
// @SuppressWarnings("UnnecessaryLocalVariable")
// List<ReactPackage> packages = new PackageList(this).getPackages();
// // Packages that cannot be autolinked yet can be added manually here, for example:
// // packages.add(new MyReactNativePackage());
// return packages;
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new ReactSliderPackage(),
@ -51,7 +51,7 @@ public class MainApplication extends Application implements ReactApplication {
new RNFSPackage(),
new SQLitePluginPackage(),
new VectorIconsPackage(),
new SharePackage(),
// new SharePackage(),
new RNCameraPackage(),
new RNVersionInfoPackage()
);

View File

@ -2,7 +2,7 @@ package net.cozic.joplin.share;
// import build config
import net.cozic.joplin.BuildConfig;
import com.alinz.parkerdan.shareextension.SharePackage;
// import com.alinz.parkerdan.shareextension.SharePackage;
import android.app.Application;
@ -25,8 +25,8 @@ public class ShareApplication extends Application implements ReactApplication {
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new SharePackage()
new MainReactPackage()
// new SharePackage()
);
}
};

View File

@ -3,6 +3,7 @@
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:textColor">#000000</item>
</style>
</resources>

View File

@ -13,7 +13,7 @@ buildscript {
google()
}
dependencies {
classpath("com.android.tools.build:gradle:3.4.0")
classpath("com.android.tools.build:gradle:3.4.1")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@ -23,19 +23,20 @@ buildscript {
allprojects {
repositories {
mavenLocal()
google()
jcenter() // Was added by me - still needed?
maven { url "https://jitpack.io" }
maven {
url "https://maven.google.com"
}
maven {
// 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")
}
maven {
url "$rootDir/../node_modules/jsc-android/dist"
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
google()
jcenter()
}
}

View File

@ -1,8 +0,0 @@
keystore(
name = "debug",
properties = "debug.keystore.properties",
store = "debug.keystore",
visibility = [
"PUBLIC",
],
)

View File

@ -1,4 +0,0 @@
key.store=debug.keystore
key.alias=androiddebugkey
key.store.password=android
key.alias.password=android

View File

@ -1,38 +1,14 @@
rootProject.name = 'Joplin'
include ':@react-native-community_slider'
project(':@react-native-community_slider').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/slider/android')
include ':react-native-webview'
project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android')
include ':react-native-file-viewer'
project(':react-native-file-viewer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-file-viewer/android')
include ':react-native-securerandom'
project(':react-native-securerandom').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-securerandom/android')
include ':react-native-fs'
project(':react-native-fs').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fs/android')
include ':react-native-image-picker'
project(':react-native-image-picker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-picker/android')
include ':react-native-vector-icons'
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
include ':react-native-image-resizer'
project(':react-native-image-resizer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-resizer/android')
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':react-native-fs'
project(':react-native-fs').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fs/android')
include ':app'
include ':react-native-sqlite-storage'
project(':react-native-sqlite-storage').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sqlite-storage/src/android')
include ':rn-fetch-blob'
project(':rn-fetch-blob').projectDir = new File(rootProject.projectDir, '../node_modules/rn-fetch-blob/android')
include ':react-native-document-picker'
project(':react-native-document-picker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-document-picker/android')
include ':app', ':react-native-share-extension'
project(':react-native-share-extension').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share-extension/android')
include ':react-native-version-info'
project(':react-native-version-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-version-info/android')
//include ':app', ':react-native-share-extension'
//project(':react-native-share-extension').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share-extension/android')
include ':react-native-push-notification'
project(':react-native-push-notification').projectDir = file('../node_modules/react-native-push-notification/android')

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Joplin.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -12,7 +12,7 @@
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import <React/RCTPushNotificationManager.h>
// #import <React/RCTPushNotificationManager.h>
@implementation AppDelegate
@ -34,11 +34,11 @@
}
// Required to register for notifications
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings { [RCTPushNotificationManager didRegisterUserNotificationSettings:notificationSettings]; } // Required for the register event.
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [RCTPushNotificationManager didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; } // Required for the notification event. You must call the completion handler after handling the remote notification.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { [RCTPushNotificationManager didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; } // Required for the registrationError event.
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { [RCTPushNotificationManager didFailToRegisterForRemoteNotificationsWithError:error]; } // Required for the localNotification event.
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { [RCTPushNotificationManager didReceiveLocalNotification:notification]; }
// - (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings { [RCTPushNotificationManager didRegisterUserNotificationSettings:notificationSettings]; } // Required for the register event.
// - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [RCTPushNotificationManager didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; } // Required for the notification event. You must call the completion handler after handling the remote notification.
// - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { [RCTPushNotificationManager didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; } // Required for the registrationError event.
// - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { [RCTPushNotificationManager didFailToRegisterForRemoteNotificationsWithError:error]; } // Required for the localNotification event.
// - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { [RCTPushNotificationManager didReceiveLocalNotification:notification]; }
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{

View File

@ -46,19 +46,7 @@
<key>NSPhotoLibraryUsageDescription</key>
<string>To allow attaching images to a note</string>
<key>UIAppFonts</key>
<array>
<string>Entypo.ttf</string>
<string>EvilIcons.ttf</string>
<string>Feather.ttf</string>
<string>FontAwesome.ttf</string>
<string>Foundation.ttf</string>
<string>Ionicons.ttf</string>
<string>MaterialCommunityIcons.ttf</string>
<string>MaterialIcons.ttf</string>
<string>Octicons.ttf</string>
<string>SimpleLineIcons.ttf</string>
<string>Zocial.ttf</string>
</array>
<array/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>

View File

@ -0,0 +1,36 @@
platform :ios, '9.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
target 'Joplin' do
# Pods for Joplin
pod 'React', :path => '../node_modules/react-native/'
pod 'React-Core', :path => '../node_modules/react-native/React'
pod 'React-DevSupport', :path => '../node_modules/react-native/React'
pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'
use_native_modules!
end
# target 'Joplin-tvOS' do
# # Pods for Joplin-tvOS
# target 'Joplin-tvOSTests' do
# inherit! :search_paths
# # Pods for testing
# end
# end

View File

@ -0,0 +1,265 @@
PODS:
- boost-for-react-native (1.63.0)
- DoubleConversion (1.1.6)
- Folly (2018.10.22.00):
- boost-for-react-native
- DoubleConversion
- Folly/Default (= 2018.10.22.00)
- glog
- Folly/Default (2018.10.22.00):
- boost-for-react-native
- DoubleConversion
- glog
- glog (0.3.5)
- React (0.60.6):
- React-Core (= 0.60.6)
- React-DevSupport (= 0.60.6)
- React-RCTActionSheet (= 0.60.6)
- React-RCTAnimation (= 0.60.6)
- React-RCTBlob (= 0.60.6)
- React-RCTImage (= 0.60.6)
- React-RCTLinking (= 0.60.6)
- React-RCTNetwork (= 0.60.6)
- React-RCTSettings (= 0.60.6)
- React-RCTText (= 0.60.6)
- React-RCTVibration (= 0.60.6)
- React-RCTWebSocket (= 0.60.6)
- React-Core (0.60.6):
- Folly (= 2018.10.22.00)
- React-cxxreact (= 0.60.6)
- React-jsiexecutor (= 0.60.6)
- yoga (= 0.60.6.React)
- React-cxxreact (0.60.6):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-jsinspector (= 0.60.6)
- React-DevSupport (0.60.6):
- React-Core (= 0.60.6)
- React-RCTWebSocket (= 0.60.6)
- React-jsi (0.60.6):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-jsi/Default (= 0.60.6)
- React-jsi/Default (0.60.6):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-jsiexecutor (0.60.6):
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-cxxreact (= 0.60.6)
- React-jsi (= 0.60.6)
- React-jsinspector (0.60.6)
- react-native-camera (2.10.2):
- React
- react-native-camera/RCT (= 2.10.2)
- react-native-camera/RN (= 2.10.2)
- react-native-camera/RCT (2.10.2):
- React
- react-native-camera/RN (2.10.2):
- React
- react-native-document-picker (2.3.0):
- React
- react-native-image-picker (0.14.3):
- React
- react-native-image-resizer (1.0.0):
- React
- react-native-slider (2.0.8):
- React
- react-native-sqlite-storage (3.3.11):
- React
- react-native-version-info (0.5.1):
- React
- react-native-webview (5.12.0):
- React
- React-RCTActionSheet (0.60.6):
- React-Core (= 0.60.6)
- React-RCTAnimation (0.60.6):
- React-Core (= 0.60.6)
- React-RCTBlob (0.60.6):
- React-Core (= 0.60.6)
- React-RCTNetwork (= 0.60.6)
- React-RCTWebSocket (= 0.60.6)
- React-RCTImage (0.60.6):
- React-Core (= 0.60.6)
- React-RCTNetwork (= 0.60.6)
- React-RCTLinking (0.60.6):
- React-Core (= 0.60.6)
- React-RCTNetwork (0.60.6):
- React-Core (= 0.60.6)
- React-RCTSettings (0.60.6):
- React-Core (= 0.60.6)
- React-RCTText (0.60.6):
- React-Core (= 0.60.6)
- React-RCTVibration (0.60.6):
- React-Core (= 0.60.6)
- React-RCTWebSocket (0.60.6):
- React-Core (= 0.60.6)
- rn-fetch-blob (0.12.0):
- React-Core
- RNFileViewer (1.0.1):
- React
- RNFS (2.11.17):
- React
- RNSecureRandom (1.0.0-rc.0):
- React
- RNVectorIcons (6.6.0):
- React
- yoga (0.60.6.React)
DEPENDENCIES:
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- React (from `../node_modules/react-native/`)
- React-Core (from `../node_modules/react-native/React`)
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
- React-DevSupport (from `../node_modules/react-native/React`)
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
- react-native-camera (from `../node_modules/react-native-camera`)
- react-native-document-picker (from `../node_modules/react-native-document-picker`)
- react-native-image-picker (from `../node_modules/react-native-image-picker`)
- react-native-image-resizer (from `../node_modules/react-native-image-resizer`)
- "react-native-slider (from `../node_modules/@react-native-community/slider`)"
- react-native-sqlite-storage (from `../node_modules/react-native-sqlite-storage`)
- react-native-version-info (from `../node_modules/react-native-version-info`)
- react-native-webview (from `../node_modules/react-native-webview`)
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
- React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
- React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
- React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
- React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
- React-RCTWebSocket (from `../node_modules/react-native/Libraries/WebSocket`)
- rn-fetch-blob (from `../node_modules/rn-fetch-blob`)
- RNFileViewer (from `../node_modules/react-native-file-viewer/ios`)
- RNFS (from `../node_modules/react-native-fs`)
- RNSecureRandom (from `../node_modules/react-native-securerandom`)
- RNVectorIcons (from `../node_modules/react-native-vector-icons`)
- yoga (from `../node_modules/react-native/ReactCommon/yoga`)
SPEC REPOS:
trunk:
- boost-for-react-native
EXTERNAL SOURCES:
DoubleConversion:
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
glog:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
React:
:path: "../node_modules/react-native/"
React-Core:
:path: "../node_modules/react-native/React"
React-cxxreact:
:path: "../node_modules/react-native/ReactCommon/cxxreact"
React-DevSupport:
:path: "../node_modules/react-native/React"
React-jsi:
:path: "../node_modules/react-native/ReactCommon/jsi"
React-jsiexecutor:
:path: "../node_modules/react-native/ReactCommon/jsiexecutor"
React-jsinspector:
:path: "../node_modules/react-native/ReactCommon/jsinspector"
react-native-camera:
:path: "../node_modules/react-native-camera"
react-native-document-picker:
:path: "../node_modules/react-native-document-picker"
react-native-image-picker:
:path: "../node_modules/react-native-image-picker"
react-native-image-resizer:
:path: "../node_modules/react-native-image-resizer"
react-native-slider:
:path: "../node_modules/@react-native-community/slider"
react-native-sqlite-storage:
:path: "../node_modules/react-native-sqlite-storage"
react-native-version-info:
:path: "../node_modules/react-native-version-info"
react-native-webview:
:path: "../node_modules/react-native-webview"
React-RCTActionSheet:
:path: "../node_modules/react-native/Libraries/ActionSheetIOS"
React-RCTAnimation:
:path: "../node_modules/react-native/Libraries/NativeAnimation"
React-RCTBlob:
:path: "../node_modules/react-native/Libraries/Blob"
React-RCTImage:
:path: "../node_modules/react-native/Libraries/Image"
React-RCTLinking:
:path: "../node_modules/react-native/Libraries/LinkingIOS"
React-RCTNetwork:
:path: "../node_modules/react-native/Libraries/Network"
React-RCTSettings:
:path: "../node_modules/react-native/Libraries/Settings"
React-RCTText:
:path: "../node_modules/react-native/Libraries/Text"
React-RCTVibration:
:path: "../node_modules/react-native/Libraries/Vibration"
React-RCTWebSocket:
:path: "../node_modules/react-native/Libraries/WebSocket"
rn-fetch-blob:
:path: "../node_modules/rn-fetch-blob"
RNFileViewer:
:path: "../node_modules/react-native-file-viewer/ios"
RNFS:
:path: "../node_modules/react-native-fs"
RNSecureRandom:
:path: "../node_modules/react-native-securerandom"
RNVectorIcons:
:path: "../node_modules/react-native-vector-icons"
yoga:
:path: "../node_modules/react-native/ReactCommon/yoga"
SPEC CHECKSUMS:
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
glog: 1f3da668190260b06b429bb211bfbee5cd790c28
React: 68e7f8dfc27729eade18423072a143120f2f32ab
React-Core: fc9dace551f6c8c1007dd2d3cb1bc10c90a01d3e
React-cxxreact: abe59014fce932d41a08bf1aa5dcad9ca8f0a2c5
React-DevSupport: b0da2fd9ad4ffb25561bf2a328ab84f78f871bdd
React-jsi: 1a4248256b96fa453536a8dafe11b784e24e789d
React-jsiexecutor: 2279e559b921d02dfc6253ebef3dcb3a9dc6c07e
React-jsinspector: a58b86545a0185f69768e78ac96ca9fe43fa3694
react-native-camera: ea85f74cf2e501d2a91a3da7092ecdac082f18df
react-native-document-picker: 8508bfda34be6c24a2cbecbe515b15108658c183
react-native-image-picker: 3693786b3d5958c8f71deed66ec068b323565e0d
react-native-image-resizer: aa1600566fd336a044daf9273dcec5033c1d41ca
react-native-slider: b2f361499888302147205f17f6fffa921a7bda70
react-native-sqlite-storage: 3cfa904d9750f7e846c9a14c47951583ee99dbf4
react-native-version-info: 8905d01e64f8444ab6842b3fff89886b3191e732
react-native-webview: 26d8993b090ca5d59eb9a9466dcb8291baa3223e
React-RCTActionSheet: 49f6a67a7efa6688f637296383d453b97ef13645
React-RCTAnimation: e8047438b2927ebbe630bbf600c7309374075df3
React-RCTBlob: 2c4b28daca5b3e6e356706d8e0c7436a0e8ef492
React-RCTImage: 273501f0529775962551613259c20ccdf1a87cd2
React-RCTLinking: 76c88b3cc98657915a2ba2f20d208e44d0530a43
React-RCTNetwork: 77c11e672ccdcc33da5d047705f100b016497b15
React-RCTSettings: f727c25ad26a8a9bd7272a8ba93781bd1f53952a
React-RCTText: d91537e29e38dc69cf09cbca0875cf5dc7402da6
React-RCTVibration: 7655d72dfb919dd6d8e135ca108a5a2bd9fcd7b4
React-RCTWebSocket: 7cd2c8d0f8ddd680dc76404defba7ab1f56b83af
rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba
RNFileViewer: 5047ecf40477339723cc08abd55b5ebcefcef4b5
RNFS: 416676c3a9ae404454bade10e3d78147c7c33a40
RNSecureRandom: 1f19ad1492f7ed416b8fc79e92216a1f73f13a4c
RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4
yoga: 5079887aa3e4c62142d6bcee493022643ee4d730
PODFILE CHECKSUM: f181745e3dfb6ceb34ab39c6406155aa68a75c7c
COCOAPODS: 1.8.4

View File

@ -10,6 +10,8 @@ const { _ } = require('lib/locale.js');
const { shim } = require('lib/shim');
const Setting = require('lib/models/Setting');
Icon.loadFont();
class CameraView extends Component {
constructor() {
super();

View File

@ -8,6 +8,8 @@ const ReactNativeActionButton = require('react-native-action-button').default;
const { connect } = require('react-redux');
const { _ } = require('lib/locale.js');
Icon.loadFont();
const styles = StyleSheet.create({
actionButtonIcon: {
fontSize: 20,

View File

@ -4,6 +4,7 @@ const React = require('react');
const Component = React.Component;
const { View, TouchableHighlight } = require('react-native');
const Icon = require('react-native-vector-icons/Ionicons').default;
Icon.loadFont();
const styles = {
checkboxIcon: {

View File

@ -3,7 +3,7 @@
const React = require('react');
const Component = React.Component;
const { connect } = require('react-redux');
const { ListView, Text, StyleSheet, Button, View } = require('react-native');
const { FlatList, Text, StyleSheet, Button, View } = require('react-native');
const { _ } = require('lib/locale.js');
const { NoteItem } = require('lib/components/note-item.js');
const { time } = require('lib/time-utils.js');
@ -12,13 +12,8 @@ const { themeStyle } = require('lib/components/global-style.js');
class NoteListComponent extends Component {
constructor() {
super();
const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => {
return r1 !== r2;
},
});
this.state = {
dataSource: ds,
items: [],
selectedItemIds: [],
};
@ -82,37 +77,23 @@ class NoteListComponent extends Component {
return output;
}
UNSAFE_componentWillMount() {
const newDataSource = this.state.dataSource.cloneWithRows(this.filterNotes(this.props.items));
this.setState({ dataSource: newDataSource });
}
UNSAFE_componentWillReceiveProps(newProps) {
// https://stackoverflow.com/questions/38186114/react-native-redux-and-listview
this.setState({
dataSource: this.state.dataSource.cloneWithRows(this.filterNotes(newProps.items)),
});
// Make sure scroll position is reset when switching from one folder to another or to a tag list.
if (this.rootRef_ && newProps.notesSource != this.props.notesSource) {
this.rootRef_.scrollTo({ x: 0, y: 0, animated: false });
this.rootRef_.scrollToOffset({ offset: 0, animated: false });
}
}
render() {
// `enableEmptySections` is to fix this warning: https://github.com/FaridSafi/react-native-gifted-listview/issues/39
if (this.state.dataSource.getRowCount()) {
return (
<ListView
ref={ref => (this.rootRef_ = ref)}
dataSource={this.state.dataSource}
renderRow={note => {
return <NoteItem note={note} />;
}}
enableEmptySections={true}
/>
);
if (this.props.items.length) {
return <FlatList
ref={ref => (this.rootRef_ = ref)}
data={this.props.items}
renderItem={({ item }) => <NoteItem note={item} />}
keyExtractor={item => item.id}
/>;
} else {
if (!this.props.folders.length) {
const noItemMessage = _('You currently have no notebooks.');

View File

@ -17,6 +17,8 @@ const { Dropdown } = require('lib/components/Dropdown.js');
const { dialogs } = require('lib/dialogs.js');
const DialogBox = require('react-native-dialogbox').default;
Icon.loadFont();
// Rather than applying a padding to the whole bar, it is applied to each
// individual component (button, picker, etc.) so that the touchable areas
// are widder and to give more room to the picker component which has a larger

View File

@ -11,6 +11,8 @@ const Icon = require('react-native-vector-icons/Ionicons').default;
const ModalDialog = require('lib/components/ModalDialog');
const naturalCompare = require('string-natural-compare');
Icon.loadFont();
class NoteTagsDialogComponent extends React.Component {
constructor() {
super();

View File

@ -2,7 +2,7 @@
const React = require('react');
const { ListView, View, Text, Button, StyleSheet, Platform } = require('react-native');
const { FlatList, View, Text, Button, StyleSheet, Platform } = require('react-native');
const { connect } = require('react-redux');
const { reg } = require('lib/registry.js');
const { ScreenHeader } = require('lib/components/screen-header.js');
@ -19,13 +19,9 @@ class LogScreenComponent extends BaseScreenComponent {
constructor() {
super();
const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => {
return r1 !== r2;
},
});
this.state = {
dataSource: ds,
logEntries: [],
showErrorsOnly: false,
};
this.styles_ = {};
@ -70,29 +66,24 @@ class LogScreenComponent extends BaseScreenComponent {
this.resfreshLogEntries();
}
resfreshLogEntries(showErrorsOnly = null) {
async resfreshLogEntries(showErrorsOnly = null) {
if (showErrorsOnly === null) showErrorsOnly = this.state.showErrorsOnly;
let levels = [Logger.LEVEL_DEBUG, Logger.LEVEL_INFO, Logger.LEVEL_WARN, Logger.LEVEL_ERROR];
if (showErrorsOnly) levels = [Logger.LEVEL_WARN, Logger.LEVEL_ERROR];
reg
.logger()
.lastEntries(1000, { levels: levels })
.then(entries => {
const newDataSource = this.state.dataSource.cloneWithRows(entries);
this.setState({ dataSource: newDataSource });
});
this.setState({
logEntries: await reg.logger().lastEntries(1000, { levels: levels }),
showErrorsOnly: showErrorsOnly,
});
}
toggleErrorsOnly() {
const showErrorsOnly = !this.state.showErrorsOnly;
this.setState({ showErrorsOnly: showErrorsOnly });
this.resfreshLogEntries(showErrorsOnly);
this.resfreshLogEntries(!this.state.showErrorsOnly);
}
render() {
let renderRow = item => {
let renderRow = ({ item }) => {
let textStyle = this.styles().rowText;
if (item.level == Logger.LEVEL_WARN) textStyle = this.styles().rowTextWarn;
if (item.level == Logger.LEVEL_ERROR) textStyle = this.styles().rowTextError;
@ -105,10 +96,15 @@ class LogScreenComponent extends BaseScreenComponent {
};
// `enableEmptySections` is to fix this warning: https://github.com/FaridSafi/react-native-gifted-listview/issues/39
return (
<View style={this.rootStyle(this.props.theme).root}>
<ScreenHeader title={_('Log')} />
<ListView dataSource={this.state.dataSource} renderRow={renderRow} enableEmptySections={true} />
<FlatList
data={this.state.logEntries}
renderItem={renderRow}
keyExtractor={item => { return `${item.id}`; }}
/>
<View style={{ flexDirection: 'row' }}>
<View style={{ flex: 1, marginRight: 5 }}>
<Button

View File

@ -35,7 +35,7 @@ const ImageResizer = require('react-native-image-resizer').default;
const shared = require('lib/components/shared/note-screen-shared.js');
const ImagePicker = require('react-native-image-picker');
const { SelectDateTimeDialog } = require('lib/components/select-date-time-dialog.js');
const ShareExtension = require('react-native-share-extension').default;
// const ShareExtension = require('react-native-share-extension').default;
const CameraView = require('lib/components/CameraView');
const SearchEngine = require('lib/services/SearchEngine');
const urlUtils = require('lib/urlUtils');
@ -305,9 +305,9 @@ class NoteScreenComponent extends BaseScreenComponent {
shared.uninstallResourceHandling(this.refreshResource);
if (Platform.OS !== 'ios' && this.state.fromShare) {
ShareExtension.close();
}
// if (Platform.OS !== 'ios' && this.state.fromShare) {
// ShareExtension.close();
// }
}
title_changeText(text) {

View File

@ -14,6 +14,8 @@ const { themeStyle } = require('lib/components/global-style.js');
const SearchEngineUtils = require('lib/services/SearchEngineUtils');
const DialogBox = require('react-native-dialogbox').default;
Icon.loadFont();
class SearchScreenComponent extends BaseScreenComponent {
static navigationOptions() {
return { header: null };

View File

@ -7,6 +7,8 @@ const { connect } = require('react-redux');
const Icon = require('react-native-vector-icons/Ionicons').default;
const { globalStyle, themeStyle } = require('lib/components/global-style.js');
Icon.loadFont();
class SideMenuContentNoteComponent extends Component {
constructor() {
super();

View File

@ -12,6 +12,8 @@ const { _ } = require('lib/locale.js');
const { globalStyle, themeStyle } = require('lib/components/global-style.js');
const shared = require('lib/components/shared/side-menu-shared.js');
Icon.loadFont();
class SideMenuContentComponent extends Component {
constructor() {
super();

View File

@ -1,21 +1,21 @@
const { PushNotificationIOS } = require('react-native');
// const { PushNotificationIOS } = require('react-native');
class AlarmServiceDriver {
constructor() {
this.hasPermission_ = null;
this.inAppNotificationHandler_ = null;
PushNotificationIOS.addEventListener('localNotification', instance => {
if (!this.inAppNotificationHandler_) return;
// PushNotificationIOS.addEventListener('localNotification', instance => {
// if (!this.inAppNotificationHandler_) return;
if (!instance || !instance._data || !instance._data.id) {
console.warn('PushNotificationIOS.addEventListener: Did not receive a proper notification instance');
return;
}
// if (!instance || !instance._data || !instance._data.id) {
// console.warn('PushNotificationIOS.addEventListener: Did not receive a proper notification instance');
// return;
// }
const id = instance._data.id;
this.inAppNotificationHandler_(id);
});
// const id = instance._data.id;
// this.inAppNotificationHandler_(id);
// });
}
hasPersistentNotifications() {
@ -36,26 +36,28 @@ class AlarmServiceDriver {
if (this.hasPermission_ !== null) return this.hasPermission_;
return new Promise((resolve) => {
PushNotificationIOS.checkPermissions(async perm => {
const ok = await this.hasPermissions(perm);
this.hasPermission_ = ok;
resolve(ok);
});
this.hasPermission_ = true;
resolve(true);
// PushNotificationIOS.checkPermissions(async perm => {
// const ok = await this.hasPermissions(perm);
// this.hasPermission_ = ok;
// resolve(ok);
// });
});
}
async requestPermissions() {
const newPerm = await PushNotificationIOS.requestPermissions({
alert: 1,
badge: 1,
sound: 1,
});
this.hasPermission_ = null;
return this.hasPermissions(newPerm);
// const newPerm = await PushNotificationIOS.requestPermissions({
// alert: 1,
// badge: 1,
// sound: 1,
// });
// this.hasPermission_ = null;
// return this.hasPermissions(newPerm);
}
async clearNotification(id) {
PushNotificationIOS.cancelLocalNotifications({ id: `${id}` });
async clearNotification(/* id */) {
// PushNotificationIOS.cancelLocalNotifications({ id: `${id}` });
}
async scheduleNotification(notification) {
@ -74,7 +76,7 @@ class AlarmServiceDriver {
if ('body' in notification) iosNotification.alertBody = notification.body;
PushNotificationIOS.scheduleLocalNotification(iosNotification);
// PushNotificationIOS.scheduleLocalNotification(iosNotification);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -10,25 +10,41 @@
"encodeAssets": "node encodeAssets.js"
},
"dependencies": {
"@react-native-community/slider": "^1.1.3",
"@react-native-community/slider": "^2.0.8",
"async-mutex": "^0.1.3",
"base-64": "^0.1.0",
"buffer": "^5.0.8",
"diacritics": "^1.3.0",
"diff-match-patch": "^1.0.4",
"events": "^1.1.1",
"font-awesome-filetypes": "^2.1.0",
"form-data": "^2.1.4",
"highlight.js": "^9.17.1",
"html-entities": "^1.2.1",
"jsc-android": "241213.1.0",
"json-stringify-safe": "^5.0.1",
"katex": "^0.11.1",
"markdown-it": "^10.0.0",
"markdown-it-abbr": "^1.0.4",
"markdown-it-anchor": "^5.2.5",
"markdown-it-deflist": "^2.0.3",
"markdown-it-emoji": "^1.4.0",
"markdown-it-expand-tabs": "^1.0.13",
"markdown-it-footnote": "^3.0.2",
"markdown-it-ins": "^3.0.0",
"markdown-it-mark": "^3.0.0",
"markdown-it-multimd-table": "^4.0.1",
"markdown-it-sub": "^1.0.0",
"markdown-it-sup": "^1.0.0",
"markdown-it-toc-done-right": "^4.1.0",
"md5": "^2.2.1",
"moment": "^2.24.0",
"prop-types": "^15.6.0",
"punycode": "^2.1.1",
"query-string": "4.3.4",
"react": "^16.8.3",
"react": "16.8.6",
"react-async": "^10.0.0",
"react-native": "0.59.10",
"react-native": "0.60.6",
"react-native-action-button": "^2.6.9",
"react-native-camera": "^2.10.2",
"react-native-datepicker": "^1.6.0",
@ -43,49 +59,32 @@
"react-native-popup-dialog": "^0.9.35",
"react-native-popup-menu": "^0.10.0",
"react-native-push-notification": "git+https://github.com/laurent22/react-native-push-notification.git",
"react-native-securerandom": "^0.1.1",
"react-native-share-extension": "^1.2.1",
"react-native-securerandom": "^1.0.0-rc.0",
"react-native-side-menu": "^1.1.3",
"react-native-sqlite-storage": "^3.3.11",
"react-native-vector-icons": "^4.4.2",
"react-native-vector-icons": "^6.6.0",
"react-native-version-info": "^0.5.1",
"react-native-webview": "^5.12.0",
"react-navigation": "^1.0.0-beta.21",
"react-redux": "5.0.7",
"redux": "4.0.0",
"reselect": "^4.0.0",
"rn-fetch-blob": "^0.10.13",
"rn-fetch-blob": "^0.12.0",
"stream": "0.0.2",
"string-natural-compare": "^2.0.2",
"string-padding": "^1.0.2",
"timers": "^0.1.1",
"url": "^0.11.0",
"url-parse": "^1.4.7",
"uslug": "^1.0.4",
"uuid": "^3.0.1",
"valid-url": "^1.0.9",
"word-wrap": "^1.2.3",
"xml2js": "^0.4.19",
"font-awesome-filetypes": "^2.1.0",
"highlight.js": "^9.17.1",
"json-stringify-safe": "^5.0.1",
"katex": "^0.11.1",
"markdown-it-abbr": "^1.0.4",
"markdown-it-anchor": "^5.2.5",
"markdown-it-deflist": "^2.0.3",
"markdown-it-emoji": "^1.4.0",
"markdown-it-expand-tabs": "^1.0.13",
"markdown-it-footnote": "^3.0.2",
"markdown-it-ins": "^3.0.0",
"markdown-it-mark": "^3.0.0",
"markdown-it-multimd-table": "^4.0.1",
"markdown-it-sub": "^1.0.0",
"markdown-it-sup": "^1.0.0",
"markdown-it-toc-done-right": "^4.1.0",
"uslug": "^1.0.4"
"xml2js": "^0.4.19"
},
"devDependencies": {
"@babel/core": "^7.4.5",
"@babel/runtime": "^7.4.5",
"@babel/core": "^7.6.2",
"@babel/runtime": "^7.6.2",
"app-module-path": "^2.2.0",
"fs-extra": "^8.1.0",
"jetifier": "^1.6.4",

View File

@ -56,7 +56,7 @@ const { PoorManIntervals } = require('lib/poor-man-intervals.js');
const { reducer, defaultState } = require('lib/reducer.js');
const { FileApiDriverLocal } = require('lib/file-api-driver-local.js');
const DropdownAlert = require('react-native-dropdownalert').default;
const ShareExtension = require('react-native-share-extension').default;
// const ShareExtension = require('react-native-share-extension').default;
const ResourceFetcher = require('lib/services/ResourceFetcher');
const SearchEngine = require('lib/services/SearchEngine');
const WelcomeUtils = require('lib/WelcomeUtils');
@ -614,40 +614,40 @@ class AppComponent extends React.Component {
}
if (Platform.OS !== 'ios') {
try {
const { type, value } = await ShareExtension.data();
// try {
// const { type, value } = await ShareExtension.data();
// reg.logger().info('Got share data:', type, value);
// // reg.logger().info('Got share data:', type, value);
if (type != '' && this.props.selectedFolderId) {
const newNote = await Note.save({
title: Note.defaultTitleFromBody(value),
body: value,
parent_id: this.props.selectedFolderId,
});
// if (type != '' && this.props.selectedFolderId) {
// const newNote = await Note.save({
// title: Note.defaultTitleFromBody(value),
// body: value,
// parent_id: this.props.selectedFolderId,
// });
// This is a bit hacky, but the surest way to go to
// the needed note. We go back one screen in case there's
// already a note open - if we don't do this, the dispatch
// below will do nothing (because routeName wouldn't change)
// Then we wait a bit for the state to be set correctly, and
// finally we go to the new note.
this.props.dispatch({
type: 'NAV_BACK',
});
// // This is a bit hacky, but the surest way to go to
// // the needed note. We go back one screen in case there's
// // already a note open - if we don't do this, the dispatch
// // below will do nothing (because routeName wouldn't change)
// // Then we wait a bit for the state to be set correctly, and
// // finally we go to the new note.
// this.props.dispatch({
// type: 'NAV_BACK',
// });
setTimeout(() => {
this.props.dispatch({
type: 'NAV_GO',
routeName: 'Note',
noteId: newNote.id,
});
}, 5);
}
// setTimeout(() => {
// this.props.dispatch({
// type: 'NAV_GO',
// routeName: 'Note',
// noteId: newNote.id,
// });
// }, 5);
// }
} catch (e) {
reg.logger().error('Error in ShareExtension.data', e);
}
// } catch (e) {
// reg.logger().error('Error in ShareExtension.data', e);
// }
}
BackButtonService.initialize(this.backButtonHandler_);

View File

@ -27,7 +27,7 @@
"*.bundle.js",
"yarn.lock",
"*.icns",
"*.base64",
"*.base64"
],
"folder_exclude_patterns":
[
@ -65,6 +65,7 @@
"Clipper/joplin-webclipper/popup/build",
"Clipper/joplin-webclipper/dist",
"ReactNativeClient/lib/rnInjectedJs",
"ReactNativeClient/ios/Pods"
],
"path": "."
}