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:
parent
7fd445173d
commit
4235288c55
@ -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
|
||||
|
3
ReactNativeClient/.gitignore
vendored
3
ReactNativeClient/.gitignore
vendored
@ -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
|
||||
|
@ -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:+"
|
||||
|
@ -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 *;
|
||||
#}
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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()
|
||||
);
|
||||
|
@ -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()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
@ -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>
|
||||
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,8 +0,0 @@
|
||||
keystore(
|
||||
name = "debug",
|
||||
properties = "debug.keystore.properties",
|
||||
store = "debug.keystore",
|
||||
visibility = [
|
||||
"PUBLIC",
|
||||
],
|
||||
)
|
@ -1,4 +0,0 @@
|
||||
key.store=debug.keystore
|
||||
key.alias=androiddebugkey
|
||||
key.store.password=android
|
||||
key.alias.password=android
|
@ -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
10
ReactNativeClient/ios/Joplin.xcworkspace/contents.xcworkspacedata
generated
Normal file
10
ReactNativeClient/ios/Joplin.xcworkspace/contents.xcworkspacedata
generated
Normal 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>
|
@ -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>
|
@ -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
|
||||
{
|
||||
|
@ -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>
|
||||
|
36
ReactNativeClient/ios/Podfile
Normal file
36
ReactNativeClient/ios/Podfile
Normal 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
|
265
ReactNativeClient/ios/Podfile.lock
Normal file
265
ReactNativeClient/ios/Podfile.lock
Normal 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
|
@ -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();
|
||||
|
@ -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,
|
||||
|
@ -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: {
|
||||
|
@ -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.');
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -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 };
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
4483
ReactNativeClient/package-lock.json
generated
4483
ReactNativeClient/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -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",
|
||||
|
@ -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_);
|
||||
|
@ -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": "."
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user