You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-08-24 20:19:10 +02:00
Compare commits
6 Commits
android-v2
...
android-v1
Author | SHA1 | Date | |
---|---|---|---|
|
8e22ee22da | ||
|
b8feeefd60 | ||
|
5001111c14 | ||
|
5b1f9d37fa | ||
|
f9bf7550c6 | ||
|
108ba55939 |
@@ -200,6 +200,7 @@ ReactNativeClient/lib/commands/historyBackward.js
|
|||||||
ReactNativeClient/lib/commands/historyForward.js
|
ReactNativeClient/lib/commands/historyForward.js
|
||||||
ReactNativeClient/lib/commands/synchronize.js
|
ReactNativeClient/lib/commands/synchronize.js
|
||||||
ReactNativeClient/lib/components/screens/UpgradeSyncTargetScreen.js
|
ReactNativeClient/lib/components/screens/UpgradeSyncTargetScreen.js
|
||||||
|
ReactNativeClient/lib/components/SelectDateTimeDialog.js
|
||||||
ReactNativeClient/lib/errorUtils.js
|
ReactNativeClient/lib/errorUtils.js
|
||||||
ReactNativeClient/lib/eventManager.js
|
ReactNativeClient/lib/eventManager.js
|
||||||
ReactNativeClient/lib/hooks/useEffectDebugger.js
|
ReactNativeClient/lib/hooks/useEffectDebugger.js
|
||||||
@@ -217,6 +218,7 @@ ReactNativeClient/lib/markdownUtils.js
|
|||||||
ReactNativeClient/lib/models/Alarm.js
|
ReactNativeClient/lib/models/Alarm.js
|
||||||
ReactNativeClient/lib/models/Setting.js
|
ReactNativeClient/lib/models/Setting.js
|
||||||
ReactNativeClient/lib/ntpDate.js
|
ReactNativeClient/lib/ntpDate.js
|
||||||
|
ReactNativeClient/lib/PoorManIntervals.js
|
||||||
ReactNativeClient/lib/reducer.js
|
ReactNativeClient/lib/reducer.js
|
||||||
ReactNativeClient/lib/services/AlarmService.js
|
ReactNativeClient/lib/services/AlarmService.js
|
||||||
ReactNativeClient/lib/services/AlarmServiceDriver.android.js
|
ReactNativeClient/lib/services/AlarmServiceDriver.android.js
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -194,6 +194,7 @@ ReactNativeClient/lib/commands/historyBackward.js
|
|||||||
ReactNativeClient/lib/commands/historyForward.js
|
ReactNativeClient/lib/commands/historyForward.js
|
||||||
ReactNativeClient/lib/commands/synchronize.js
|
ReactNativeClient/lib/commands/synchronize.js
|
||||||
ReactNativeClient/lib/components/screens/UpgradeSyncTargetScreen.js
|
ReactNativeClient/lib/components/screens/UpgradeSyncTargetScreen.js
|
||||||
|
ReactNativeClient/lib/components/SelectDateTimeDialog.js
|
||||||
ReactNativeClient/lib/errorUtils.js
|
ReactNativeClient/lib/errorUtils.js
|
||||||
ReactNativeClient/lib/eventManager.js
|
ReactNativeClient/lib/eventManager.js
|
||||||
ReactNativeClient/lib/hooks/useEffectDebugger.js
|
ReactNativeClient/lib/hooks/useEffectDebugger.js
|
||||||
@@ -211,6 +212,7 @@ ReactNativeClient/lib/markdownUtils.js
|
|||||||
ReactNativeClient/lib/models/Alarm.js
|
ReactNativeClient/lib/models/Alarm.js
|
||||||
ReactNativeClient/lib/models/Setting.js
|
ReactNativeClient/lib/models/Setting.js
|
||||||
ReactNativeClient/lib/ntpDate.js
|
ReactNativeClient/lib/ntpDate.js
|
||||||
|
ReactNativeClient/lib/PoorManIntervals.js
|
||||||
ReactNativeClient/lib/reducer.js
|
ReactNativeClient/lib/reducer.js
|
||||||
ReactNativeClient/lib/services/AlarmService.js
|
ReactNativeClient/lib/services/AlarmService.js
|
||||||
ReactNativeClient/lib/services/AlarmServiceDriver.android.js
|
ReactNativeClient/lib/services/AlarmServiceDriver.android.js
|
||||||
|
3
ReactNativeClient/.gitattributes
vendored
3
ReactNativeClient/.gitattributes
vendored
@@ -1 +1,4 @@
|
|||||||
*.pbxproj -text
|
*.pbxproj -text
|
||||||
|
|
||||||
|
# specific for windows script files
|
||||||
|
*.bat text eol=crlf
|
||||||
|
@@ -15,7 +15,9 @@ import com.android.build.OutputFile
|
|||||||
* // the name of the generated asset file containing your JS bundle
|
* // the name of the generated asset file containing your JS bundle
|
||||||
* bundleAssetName: "index.android.bundle",
|
* bundleAssetName: "index.android.bundle",
|
||||||
*
|
*
|
||||||
* // the entry file for bundle generation
|
* // the entry file for bundle generation. If none specified and
|
||||||
|
* // "index.android.js" exists, it will be used. Otherwise "index.js" is
|
||||||
|
* // default. Can be overridden with ENTRY_FILE environment variable.
|
||||||
* entryFile: "index.android.js",
|
* entryFile: "index.android.js",
|
||||||
*
|
*
|
||||||
* // whether to bundle JS and assets in debug mode
|
* // whether to bundle JS and assets in debug mode
|
||||||
@@ -66,7 +68,6 @@ import com.android.build.OutputFile
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
project.ext.react = [
|
project.ext.react = [
|
||||||
entryFile: "index.android.js",
|
|
||||||
enableHermes: false, // clean and rebuild if changing
|
enableHermes: false, // clean and rebuild if changing
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -125,12 +126,13 @@ android {
|
|||||||
applicationId "net.cozic.joplin"
|
applicationId "net.cozic.joplin"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 2097583
|
versionCode 2097585
|
||||||
versionName "1.3.0"
|
versionName "1.3.2"
|
||||||
ndk {
|
ndk {
|
||||||
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
|
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
|
||||||
}
|
}
|
||||||
missingDimensionStrategy 'react-native-camera', 'general'
|
missingDimensionStrategy 'react-native-camera', 'general'
|
||||||
|
multiDexEnabled true
|
||||||
}
|
}
|
||||||
splits {
|
splits {
|
||||||
abi {
|
abi {
|
||||||
@@ -168,6 +170,14 @@ android {
|
|||||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
packagingOptions {
|
||||||
|
pickFirst "lib/armeabi-v7a/libc++_shared.so"
|
||||||
|
pickFirst "lib/arm64-v8a/libc++_shared.so"
|
||||||
|
pickFirst "lib/x86/libc++_shared.so"
|
||||||
|
pickFirst "lib/x86_64/libc++_shared.so"
|
||||||
|
}
|
||||||
|
|
||||||
// applicationVariants are e.g. debug, release
|
// applicationVariants are e.g. debug, release
|
||||||
applicationVariants.all { variant ->
|
applicationVariants.all { variant ->
|
||||||
variant.outputs.each { output ->
|
variant.outputs.each { output ->
|
||||||
@@ -206,8 +216,20 @@ dependencies {
|
|||||||
implementation project(':react-native-fs')
|
implementation project(':react-native-fs')
|
||||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||||
implementation "com.android.support:appcompat-v7:28.0.0"
|
implementation "com.android.support:appcompat-v7:28.0.0"
|
||||||
|
//noinspection GradleDynamicVersion
|
||||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||||
|
|
||||||
|
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
|
||||||
|
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
|
||||||
|
exclude group:'com.facebook.fbjni'
|
||||||
|
}
|
||||||
|
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
|
||||||
|
exclude group:'com.facebook.flipper'
|
||||||
|
}
|
||||||
|
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
|
||||||
|
exclude group:'com.facebook.flipper'
|
||||||
|
}
|
||||||
|
|
||||||
if (enableHermes) {
|
if (enableHermes) {
|
||||||
def hermesPath = "../../node_modules/hermes-engine/android/";
|
def hermesPath = "../../node_modules/hermes-engine/android/";
|
||||||
debugImplementation files(hermesPath + "hermes-debug.aar")
|
debugImplementation files(hermesPath + "hermes-debug.aar")
|
||||||
|
@@ -0,0 +1,67 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
|
||||||
|
* directory of this source tree.
|
||||||
|
*/
|
||||||
|
package net.cozic.joplin;
|
||||||
|
import android.content.Context;
|
||||||
|
import com.facebook.flipper.android.AndroidFlipperClient;
|
||||||
|
import com.facebook.flipper.android.utils.FlipperUtils;
|
||||||
|
import com.facebook.flipper.core.FlipperClient;
|
||||||
|
import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
|
||||||
|
import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
|
||||||
|
import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
|
||||||
|
import com.facebook.flipper.plugins.inspector.DescriptorMapping;
|
||||||
|
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
|
||||||
|
import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
|
||||||
|
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
|
||||||
|
import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
|
||||||
|
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
|
||||||
|
import com.facebook.react.ReactInstanceManager;
|
||||||
|
import com.facebook.react.bridge.ReactContext;
|
||||||
|
import com.facebook.react.modules.network.NetworkingModule;
|
||||||
|
import okhttp3.OkHttpClient;
|
||||||
|
public class ReactNativeFlipper {
|
||||||
|
public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
|
||||||
|
if (FlipperUtils.shouldEnableFlipper(context)) {
|
||||||
|
final FlipperClient client = AndroidFlipperClient.getInstance(context);
|
||||||
|
client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
|
||||||
|
client.addPlugin(new ReactFlipperPlugin());
|
||||||
|
client.addPlugin(new DatabasesFlipperPlugin(context));
|
||||||
|
client.addPlugin(new SharedPreferencesFlipperPlugin(context));
|
||||||
|
client.addPlugin(CrashReporterPlugin.getInstance());
|
||||||
|
NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
|
||||||
|
NetworkingModule.setCustomClientBuilder(
|
||||||
|
new NetworkingModule.CustomClientBuilder() {
|
||||||
|
@Override
|
||||||
|
public void apply(OkHttpClient.Builder builder) {
|
||||||
|
builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
client.addPlugin(networkFlipperPlugin);
|
||||||
|
client.start();
|
||||||
|
// Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
|
||||||
|
// Hence we run if after all native modules have been initialized
|
||||||
|
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
|
||||||
|
if (reactContext == null) {
|
||||||
|
reactInstanceManager.addReactInstanceEventListener(
|
||||||
|
new ReactInstanceManager.ReactInstanceEventListener() {
|
||||||
|
@Override
|
||||||
|
public void onReactContextInitialized(ReactContext reactContext) {
|
||||||
|
reactInstanceManager.removeReactInstanceEventListener(this);
|
||||||
|
reactContext.runOnNativeModulesQueueThread(
|
||||||
|
new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
client.addPlugin(new FrescoFlipperPlugin());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
client.addPlugin(new FrescoFlipperPlugin());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -96,7 +96,7 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
android:windowSoftInputMode="adjustResize"
|
android:windowSoftInputMode="adjustResize"
|
||||||
android:launchMode="singleTop">
|
android:launchMode="singleTop">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
@@ -8,6 +8,7 @@ import android.webkit.WebView;
|
|||||||
|
|
||||||
import com.facebook.react.PackageList;
|
import com.facebook.react.PackageList;
|
||||||
import com.facebook.react.ReactApplication;
|
import com.facebook.react.ReactApplication;
|
||||||
|
import com.facebook.react.ReactInstanceManager;
|
||||||
import com.facebook.react.ReactNativeHost;
|
import com.facebook.react.ReactNativeHost;
|
||||||
import com.facebook.react.ReactPackage;
|
import com.facebook.react.ReactPackage;
|
||||||
import com.facebook.soloader.SoLoader;
|
import com.facebook.soloader.SoLoader;
|
||||||
@@ -69,22 +70,27 @@ public class MainApplication extends Application implements ReactApplication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SoLoader.init(this, /* native exopackage */ false);
|
SoLoader.init(this, /* native exopackage */ false);
|
||||||
initializeFlipper(this); // Remove this line if you don't want Flipper enabled
|
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Loads Flipper in React Native templates.
|
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
|
||||||
|
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||||
*
|
*
|
||||||
* @param context
|
* @param context
|
||||||
|
* @param reactInstanceManager
|
||||||
*/
|
*/
|
||||||
private static void initializeFlipper(Context context) {
|
private static void initializeFlipper(
|
||||||
|
Context context, ReactInstanceManager reactInstanceManager) {
|
||||||
if (BuildConfig.DEBUG) {
|
if (BuildConfig.DEBUG) {
|
||||||
try {
|
try {
|
||||||
/*
|
/*
|
||||||
We use reflection here to pick up the class that initializes Flipper,
|
We use reflection here to pick up the class that initializes Flipper,
|
||||||
since Flipper library is not available in release mode
|
since Flipper library is not available in release mode
|
||||||
*/
|
*/
|
||||||
Class<?> aClass = Class.forName("com.facebook.flipper.ReactNativeFlipper");
|
Class<?> aClass = Class.forName("com.rndiffapp.ReactNativeFlipper");
|
||||||
aClass.getMethod("initializeFlipper", Context.class).invoke(null, context);
|
aClass
|
||||||
|
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
|
||||||
|
.invoke(null, context, reactInstanceManager);
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (NoSuchMethodException e) {
|
} catch (NoSuchMethodException e) {
|
||||||
|
@@ -2,17 +2,18 @@
|
|||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
ext {
|
ext {
|
||||||
buildToolsVersion = "28.0.3"
|
buildToolsVersion = "29.0.2"
|
||||||
minSdkVersion = 16
|
minSdkVersion = 16
|
||||||
compileSdkVersion = 28
|
compileSdkVersion = 29
|
||||||
targetSdkVersion = 28
|
targetSdkVersion = 29
|
||||||
|
kotlinVersion = "1.3.72"
|
||||||
}
|
}
|
||||||
repositories {
|
repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath("com.android.tools.build:gradle:3.4.2")
|
classpath("com.android.tools.build:gradle:3.5.2")
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
@@ -36,7 +37,7 @@ allprojects {
|
|||||||
}
|
}
|
||||||
google()
|
google()
|
||||||
jcenter()
|
jcenter()
|
||||||
maven { url 'https://jitpack.io' }
|
maven { url 'https://www.jitpack.io' }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,8 +47,8 @@ subprojects {
|
|||||||
afterEvaluate {project ->
|
afterEvaluate {project ->
|
||||||
if (project.hasProperty("android")) {
|
if (project.hasProperty("android")) {
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 28
|
compileSdkVersion 29
|
||||||
buildToolsVersion "28.0.3"
|
buildToolsVersion "29.0.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -17,10 +17,14 @@
|
|||||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||||
# org.gradle.parallel=true
|
# org.gradle.parallel=true
|
||||||
|
|
||||||
# Required for react-native-webview
|
# AndroidX package structure to make it clearer which packages are bundled with the
|
||||||
# https://github.com/react-native-community/react-native-webview/blob/master/docs/Getting-Started.md
|
# Android operating system, and which are packaged with your app's APK
|
||||||
|
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
|
# Automatically convert third-party libraries to use AndroidX
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
|
# Version of flipper SDK to use with React Native
|
||||||
|
FLIPPER_VERSION=0.33.1
|
||||||
|
|
||||||
# To fix this error:
|
# To fix this error:
|
||||||
# > java.io.UncheckedIOException: java.io.IOException: Execution of compression failed. java.lang.OutOfMemoryError
|
# > java.io.UncheckedIOException: java.io.IOException: Execution of compression failed. java.lang.OutOfMemoryError
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
6
ReactNativeClient/android/gradlew
vendored
6
ReactNativeClient/android/gradlew
vendored
@@ -7,7 +7,7 @@
|
|||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
# You may obtain a copy of the License at
|
# You may obtain a copy of the License at
|
||||||
#
|
#
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||||||
#
|
#
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@@ -125,8 +125,8 @@ if $darwin; then
|
|||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# For Cygwin, switch paths to Windows format before running java
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
if $cygwin ; then
|
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||||
|
@@ -1,12 +1,3 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the BSD-style license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
* of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <React/RCTBridgeDelegate.h>
|
#import <React/RCTBridgeDelegate.h>
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
@@ -1,12 +1,3 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the BSD-style license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
* of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AppDelegate.h"
|
#import "AppDelegate.h"
|
||||||
#import "RNQuickActionManager.h"
|
#import "RNQuickActionManager.h"
|
||||||
|
|
||||||
@@ -15,6 +6,25 @@
|
|||||||
#import <React/RCTRootView.h>
|
#import <React/RCTRootView.h>
|
||||||
#import <RNCPushNotificationIOS.h>
|
#import <RNCPushNotificationIOS.h>
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
#import <FlipperKit/FlipperClient.h>
|
||||||
|
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
|
||||||
|
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
|
||||||
|
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
|
||||||
|
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
|
||||||
|
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
|
||||||
|
|
||||||
|
static void InitializeFlipper(UIApplication *application) {
|
||||||
|
FlipperClient *client = [FlipperClient sharedClient];
|
||||||
|
SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
|
||||||
|
[client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
|
||||||
|
[client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
|
||||||
|
[client addPlugin:[FlipperKitReactPlugin new]];
|
||||||
|
[client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
|
||||||
|
[client start];
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
@implementation AppDelegate
|
@implementation AppDelegate
|
||||||
|
|
||||||
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL succeeded)) completionHandler {
|
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL succeeded)) completionHandler {
|
||||||
@@ -23,6 +33,10 @@
|
|||||||
|
|
||||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
|
InitializeFlipper(application);
|
||||||
|
#endif
|
||||||
|
|
||||||
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
|
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
|
||||||
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
|
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
|
||||||
moduleName:@"Joplin"
|
moduleName:@"Joplin"
|
||||||
|
@@ -1,5 +1,47 @@
|
|||||||
platform :ios, '9.0'
|
platform :ios, '9.0'
|
||||||
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
|
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
|
||||||
|
|
||||||
|
def add_flipper_pods!(versions = {})
|
||||||
|
versions['Flipper'] ||= '~> 0.33.1'
|
||||||
|
versions['DoubleConversion'] ||= '1.1.7'
|
||||||
|
versions['Flipper-Folly'] ||= '~> 2.1'
|
||||||
|
versions['Flipper-Glog'] ||= '0.3.6'
|
||||||
|
versions['Flipper-PeerTalk'] ||= '~> 0.0.4'
|
||||||
|
versions['Flipper-RSocket'] ||= '~> 1.0'
|
||||||
|
pod 'FlipperKit', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/FlipperKitLayoutPlugin', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/SKIOSNetworkPlugin', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/FlipperKitUserDefaultsPlugin', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/FlipperKitReactPlugin', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
# List all transitive dependencies for FlipperKit pods
|
||||||
|
# to avoid them being linked in Release builds
|
||||||
|
pod 'Flipper', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'Flipper-DoubleConversion', versions['DoubleConversion'], :configuration => 'Debug'
|
||||||
|
pod 'Flipper-Folly', versions['Flipper-Folly'], :configuration => 'Debug'
|
||||||
|
pod 'Flipper-Glog', versions['Flipper-Glog'], :configuration => 'Debug'
|
||||||
|
pod 'Flipper-PeerTalk', versions['Flipper-PeerTalk'], :configuration => 'Debug'
|
||||||
|
pod 'Flipper-RSocket', versions['Flipper-RSocket'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/Core', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/CppBridge', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/FBCxxFollyDynamicConvert', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/FBDefines', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/FKPortForwarding', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/FlipperKitHighlightOverlay', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/FlipperKitLayoutTextSearchable', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
pod 'FlipperKit/FlipperKitNetworkPlugin', versions['Flipper'], :configuration => 'Debug'
|
||||||
|
end
|
||||||
|
|
||||||
|
# Post Install processing for Flipper
|
||||||
|
def flipper_post_install(installer)
|
||||||
|
installer.pods_project.targets.each do |target|
|
||||||
|
if target.name == 'YogaKit'
|
||||||
|
target.build_configurations.each do |config|
|
||||||
|
config.build_settings['SWIFT_VERSION'] = '4.1'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
target 'Joplin' do
|
target 'Joplin' do
|
||||||
# Pods for Joplin
|
# Pods for Joplin
|
||||||
pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
|
pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
|
||||||
@@ -24,20 +66,21 @@ target 'Joplin' do
|
|||||||
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
|
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
|
||||||
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
|
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
|
||||||
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
|
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
|
||||||
pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
|
pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon"
|
||||||
pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
|
pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
|
||||||
pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
|
pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true
|
||||||
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
|
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 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
|
||||||
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
|
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
|
||||||
pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'
|
pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'
|
||||||
use_native_modules!
|
use_native_modules!
|
||||||
end
|
|
||||||
|
|
||||||
# target 'Joplin-tvOS' do
|
# Enables Flipper.
|
||||||
# # Pods for Joplin-tvOS
|
#
|
||||||
# target 'Joplin-tvOSTests' do
|
# Note that if you have use_frameworks! enabled, Flipper will not work and
|
||||||
# inherit! :search_paths
|
# you should disable these next few lines.
|
||||||
# # Pods for testing
|
add_flipper_pods!
|
||||||
# end
|
post_install do |installer|
|
||||||
# end
|
flipper_post_install(installer)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@@ -1,14 +1,62 @@
|
|||||||
PODS:
|
PODS:
|
||||||
- boost-for-react-native (1.63.0)
|
- boost-for-react-native (1.63.0)
|
||||||
|
- CocoaAsyncSocket (7.6.4)
|
||||||
|
- CocoaLibEvent (1.0.0)
|
||||||
- DoubleConversion (1.1.6)
|
- DoubleConversion (1.1.6)
|
||||||
- FBLazyVector (0.61.5)
|
- FBLazyVector (0.62.2)
|
||||||
- FBReactNativeSpec (0.61.5):
|
- FBReactNativeSpec (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- RCTRequired (= 0.61.5)
|
- RCTRequired (= 0.62.2)
|
||||||
- RCTTypeSafety (= 0.61.5)
|
- RCTTypeSafety (= 0.62.2)
|
||||||
- React-Core (= 0.61.5)
|
- React-Core (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- ReactCommon/turbomodule/core (= 0.61.5)
|
- ReactCommon/turbomodule/core (= 0.62.2)
|
||||||
|
- Flipper (0.33.1):
|
||||||
|
- Flipper-Folly (~> 2.1)
|
||||||
|
- Flipper-RSocket (~> 1.0)
|
||||||
|
- Flipper-DoubleConversion (1.1.7)
|
||||||
|
- Flipper-Folly (2.2.0):
|
||||||
|
- boost-for-react-native
|
||||||
|
- CocoaLibEvent (~> 1.0)
|
||||||
|
- Flipper-DoubleConversion
|
||||||
|
- Flipper-Glog
|
||||||
|
- OpenSSL-Universal (= 1.0.2.19)
|
||||||
|
- Flipper-Glog (0.3.6)
|
||||||
|
- Flipper-PeerTalk (0.0.4)
|
||||||
|
- Flipper-RSocket (1.1.0):
|
||||||
|
- Flipper-Folly (~> 2.2)
|
||||||
|
- FlipperKit (0.33.1):
|
||||||
|
- FlipperKit/Core (= 0.33.1)
|
||||||
|
- FlipperKit/Core (0.33.1):
|
||||||
|
- Flipper (~> 0.33.1)
|
||||||
|
- FlipperKit/CppBridge
|
||||||
|
- FlipperKit/FBCxxFollyDynamicConvert
|
||||||
|
- FlipperKit/FBDefines
|
||||||
|
- FlipperKit/FKPortForwarding
|
||||||
|
- FlipperKit/CppBridge (0.33.1):
|
||||||
|
- Flipper (~> 0.33.1)
|
||||||
|
- FlipperKit/FBCxxFollyDynamicConvert (0.33.1):
|
||||||
|
- Flipper-Folly (~> 2.1)
|
||||||
|
- FlipperKit/FBDefines (0.33.1)
|
||||||
|
- FlipperKit/FKPortForwarding (0.33.1):
|
||||||
|
- CocoaAsyncSocket (~> 7.6)
|
||||||
|
- Flipper-PeerTalk (~> 0.0.4)
|
||||||
|
- FlipperKit/FlipperKitHighlightOverlay (0.33.1)
|
||||||
|
- FlipperKit/FlipperKitLayoutPlugin (0.33.1):
|
||||||
|
- FlipperKit/Core
|
||||||
|
- FlipperKit/FlipperKitHighlightOverlay
|
||||||
|
- FlipperKit/FlipperKitLayoutTextSearchable
|
||||||
|
- YogaKit (~> 1.18)
|
||||||
|
- FlipperKit/FlipperKitLayoutTextSearchable (0.33.1)
|
||||||
|
- FlipperKit/FlipperKitNetworkPlugin (0.33.1):
|
||||||
|
- FlipperKit/Core
|
||||||
|
- FlipperKit/FlipperKitReactPlugin (0.33.1):
|
||||||
|
- FlipperKit/Core
|
||||||
|
- FlipperKit/FlipperKitUserDefaultsPlugin (0.33.1):
|
||||||
|
- FlipperKit/Core
|
||||||
|
- FlipperKit/SKIOSNetworkPlugin (0.33.1):
|
||||||
|
- FlipperKit/Core
|
||||||
|
- FlipperKit/FlipperKitNetworkPlugin
|
||||||
- Folly (2018.10.22.00):
|
- Folly (2018.10.22.00):
|
||||||
- boost-for-react-native
|
- boost-for-react-native
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
@@ -19,169 +67,172 @@ PODS:
|
|||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- glog
|
- glog
|
||||||
- glog (0.3.5)
|
- glog (0.3.5)
|
||||||
- RCTRequired (0.61.5)
|
- OpenSSL-Universal (1.0.2.19):
|
||||||
- RCTTypeSafety (0.61.5):
|
- OpenSSL-Universal/Static (= 1.0.2.19)
|
||||||
- FBLazyVector (= 0.61.5)
|
- OpenSSL-Universal/Static (1.0.2.19)
|
||||||
|
- RCTRequired (0.62.2)
|
||||||
|
- RCTTypeSafety (0.62.2):
|
||||||
|
- FBLazyVector (= 0.62.2)
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- RCTRequired (= 0.61.5)
|
- RCTRequired (= 0.62.2)
|
||||||
- React-Core (= 0.61.5)
|
- React-Core (= 0.62.2)
|
||||||
- React (0.61.5):
|
- React (0.62.2):
|
||||||
- React-Core (= 0.61.5)
|
- React-Core (= 0.62.2)
|
||||||
- React-Core/DevSupport (= 0.61.5)
|
- React-Core/DevSupport (= 0.62.2)
|
||||||
- React-Core/RCTWebSocket (= 0.61.5)
|
- React-Core/RCTWebSocket (= 0.62.2)
|
||||||
- React-RCTActionSheet (= 0.61.5)
|
- React-RCTActionSheet (= 0.62.2)
|
||||||
- React-RCTAnimation (= 0.61.5)
|
- React-RCTAnimation (= 0.62.2)
|
||||||
- React-RCTBlob (= 0.61.5)
|
- React-RCTBlob (= 0.62.2)
|
||||||
- React-RCTImage (= 0.61.5)
|
- React-RCTImage (= 0.62.2)
|
||||||
- React-RCTLinking (= 0.61.5)
|
- React-RCTLinking (= 0.62.2)
|
||||||
- React-RCTNetwork (= 0.61.5)
|
- React-RCTNetwork (= 0.62.2)
|
||||||
- React-RCTSettings (= 0.61.5)
|
- React-RCTSettings (= 0.62.2)
|
||||||
- React-RCTText (= 0.61.5)
|
- React-RCTText (= 0.62.2)
|
||||||
- React-RCTVibration (= 0.61.5)
|
- React-RCTVibration (= 0.62.2)
|
||||||
- React-Core (0.61.5):
|
- React-Core (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default (= 0.61.5)
|
- React-Core/Default (= 0.62.2)
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/CoreModulesHeaders (0.61.5):
|
- React-Core/CoreModulesHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/Default (0.61.5):
|
- React-Core/Default (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/DevSupport (0.61.5):
|
- React-Core/DevSupport (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default (= 0.61.5)
|
- React-Core/Default (= 0.62.2)
|
||||||
- React-Core/RCTWebSocket (= 0.61.5)
|
- React-Core/RCTWebSocket (= 0.62.2)
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- React-jsinspector (= 0.61.5)
|
- React-jsinspector (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTActionSheetHeaders (0.61.5):
|
- React-Core/RCTActionSheetHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTAnimationHeaders (0.61.5):
|
- React-Core/RCTAnimationHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTBlobHeaders (0.61.5):
|
- React-Core/RCTBlobHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTImageHeaders (0.61.5):
|
- React-Core/RCTImageHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTLinkingHeaders (0.61.5):
|
- React-Core/RCTLinkingHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTNetworkHeaders (0.61.5):
|
- React-Core/RCTNetworkHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTSettingsHeaders (0.61.5):
|
- React-Core/RCTSettingsHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTTextHeaders (0.61.5):
|
- React-Core/RCTTextHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTVibrationHeaders (0.61.5):
|
- React-Core/RCTVibrationHeaders (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTWebSocket (0.61.5):
|
- React-Core/RCTWebSocket (0.62.2):
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core/Default (= 0.61.5)
|
- React-Core/Default (= 0.62.2)
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsiexecutor (= 0.61.5)
|
- React-jsiexecutor (= 0.62.2)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-CoreModules (0.61.5):
|
- React-CoreModules (0.62.2):
|
||||||
- FBReactNativeSpec (= 0.61.5)
|
- FBReactNativeSpec (= 0.62.2)
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- RCTTypeSafety (= 0.61.5)
|
- RCTTypeSafety (= 0.62.2)
|
||||||
- React-Core/CoreModulesHeaders (= 0.61.5)
|
- React-Core/CoreModulesHeaders (= 0.62.2)
|
||||||
- React-RCTImage (= 0.61.5)
|
- React-RCTImage (= 0.62.2)
|
||||||
- ReactCommon/turbomodule/core (= 0.61.5)
|
- ReactCommon/turbomodule/core (= 0.62.2)
|
||||||
- React-cxxreact (0.61.5):
|
- React-cxxreact (0.62.2):
|
||||||
- boost-for-react-native (= 1.63.0)
|
- boost-for-react-native (= 1.63.0)
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-jsinspector (= 0.61.5)
|
- React-jsinspector (= 0.62.2)
|
||||||
- React-jsi (0.61.5):
|
- React-jsi (0.62.2):
|
||||||
- boost-for-react-native (= 1.63.0)
|
- boost-for-react-native (= 1.63.0)
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-jsi/Default (= 0.61.5)
|
- React-jsi/Default (= 0.62.2)
|
||||||
- React-jsi/Default (0.61.5):
|
- React-jsi/Default (0.62.2):
|
||||||
- boost-for-react-native (= 1.63.0)
|
- boost-for-react-native (= 1.63.0)
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-jsiexecutor (0.61.5):
|
- React-jsiexecutor (0.62.2):
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-jsinspector (0.61.5)
|
- React-jsinspector (0.62.2)
|
||||||
- react-native-camera (2.10.2):
|
- react-native-camera (2.10.2):
|
||||||
- React
|
- React
|
||||||
- react-native-camera/RCT (= 2.10.2)
|
- react-native-camera/RCT (= 2.10.2)
|
||||||
@@ -206,45 +257,73 @@ PODS:
|
|||||||
- React
|
- React
|
||||||
- react-native-webview (5.12.0):
|
- react-native-webview (5.12.0):
|
||||||
- React
|
- React
|
||||||
- React-RCTActionSheet (0.61.5):
|
- React-RCTActionSheet (0.62.2):
|
||||||
- React-Core/RCTActionSheetHeaders (= 0.61.5)
|
- React-Core/RCTActionSheetHeaders (= 0.62.2)
|
||||||
- React-RCTAnimation (0.61.5):
|
- React-RCTAnimation (0.62.2):
|
||||||
- React-Core/RCTAnimationHeaders (= 0.61.5)
|
- FBReactNativeSpec (= 0.62.2)
|
||||||
- React-RCTBlob (0.61.5):
|
- Folly (= 2018.10.22.00)
|
||||||
- React-Core/RCTBlobHeaders (= 0.61.5)
|
- RCTTypeSafety (= 0.62.2)
|
||||||
- React-Core/RCTWebSocket (= 0.61.5)
|
- React-Core/RCTAnimationHeaders (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- ReactCommon/turbomodule/core (= 0.62.2)
|
||||||
- React-RCTNetwork (= 0.61.5)
|
- React-RCTBlob (0.62.2):
|
||||||
- React-RCTImage (0.61.5):
|
- FBReactNativeSpec (= 0.62.2)
|
||||||
- React-Core/RCTImageHeaders (= 0.61.5)
|
- Folly (= 2018.10.22.00)
|
||||||
- React-RCTNetwork (= 0.61.5)
|
- React-Core/RCTBlobHeaders (= 0.62.2)
|
||||||
- React-RCTLinking (0.61.5):
|
- React-Core/RCTWebSocket (= 0.62.2)
|
||||||
- React-Core/RCTLinkingHeaders (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- React-RCTNetwork (0.61.5):
|
- React-RCTNetwork (= 0.62.2)
|
||||||
- React-Core/RCTNetworkHeaders (= 0.61.5)
|
- ReactCommon/turbomodule/core (= 0.62.2)
|
||||||
- React-RCTSettings (0.61.5):
|
- React-RCTImage (0.62.2):
|
||||||
- React-Core/RCTSettingsHeaders (= 0.61.5)
|
- FBReactNativeSpec (= 0.62.2)
|
||||||
- React-RCTText (0.61.5):
|
- Folly (= 2018.10.22.00)
|
||||||
- React-Core/RCTTextHeaders (= 0.61.5)
|
- RCTTypeSafety (= 0.62.2)
|
||||||
- React-RCTVibration (0.61.5):
|
- React-Core/RCTImageHeaders (= 0.62.2)
|
||||||
- React-Core/RCTVibrationHeaders (= 0.61.5)
|
- React-RCTNetwork (= 0.62.2)
|
||||||
- ReactCommon/jscallinvoker (0.61.5):
|
- ReactCommon/turbomodule/core (= 0.62.2)
|
||||||
|
- React-RCTLinking (0.62.2):
|
||||||
|
- FBReactNativeSpec (= 0.62.2)
|
||||||
|
- React-Core/RCTLinkingHeaders (= 0.62.2)
|
||||||
|
- ReactCommon/turbomodule/core (= 0.62.2)
|
||||||
|
- React-RCTNetwork (0.62.2):
|
||||||
|
- FBReactNativeSpec (= 0.62.2)
|
||||||
|
- Folly (= 2018.10.22.00)
|
||||||
|
- RCTTypeSafety (= 0.62.2)
|
||||||
|
- React-Core/RCTNetworkHeaders (= 0.62.2)
|
||||||
|
- ReactCommon/turbomodule/core (= 0.62.2)
|
||||||
|
- React-RCTSettings (0.62.2):
|
||||||
|
- FBReactNativeSpec (= 0.62.2)
|
||||||
|
- Folly (= 2018.10.22.00)
|
||||||
|
- RCTTypeSafety (= 0.62.2)
|
||||||
|
- React-Core/RCTSettingsHeaders (= 0.62.2)
|
||||||
|
- ReactCommon/turbomodule/core (= 0.62.2)
|
||||||
|
- React-RCTText (0.62.2):
|
||||||
|
- React-Core/RCTTextHeaders (= 0.62.2)
|
||||||
|
- React-RCTVibration (0.62.2):
|
||||||
|
- FBReactNativeSpec (= 0.62.2)
|
||||||
|
- Folly (= 2018.10.22.00)
|
||||||
|
- React-Core/RCTVibrationHeaders (= 0.62.2)
|
||||||
|
- ReactCommon/turbomodule/core (= 0.62.2)
|
||||||
|
- ReactCommon/callinvoker (0.62.2):
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- ReactCommon/turbomodule/core (0.61.5):
|
- ReactCommon/turbomodule/core (0.62.2):
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- Folly (= 2018.10.22.00)
|
- Folly (= 2018.10.22.00)
|
||||||
- glog
|
- glog
|
||||||
- React-Core (= 0.61.5)
|
- React-Core (= 0.62.2)
|
||||||
- React-cxxreact (= 0.61.5)
|
- React-cxxreact (= 0.62.2)
|
||||||
- React-jsi (= 0.61.5)
|
- React-jsi (= 0.62.2)
|
||||||
- ReactCommon/jscallinvoker (= 0.61.5)
|
- ReactCommon/callinvoker (= 0.62.2)
|
||||||
- rn-fetch-blob (0.12.0):
|
- rn-fetch-blob (0.12.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
|
- RNCClipboard (1.5.0):
|
||||||
|
- React-Core
|
||||||
- RNCPushNotificationIOS (1.0.5):
|
- RNCPushNotificationIOS (1.0.5):
|
||||||
- React
|
- React
|
||||||
|
- RNDateTimePicker (3.0.3):
|
||||||
|
- React-Core
|
||||||
- RNDeviceInfo (5.5.1):
|
- RNDeviceInfo (5.5.1):
|
||||||
- React
|
- React
|
||||||
- RNFileViewer (1.0.1):
|
- RNFileViewer (1.0.1):
|
||||||
@@ -258,11 +337,32 @@ PODS:
|
|||||||
- RNVectorIcons (6.6.0):
|
- RNVectorIcons (6.6.0):
|
||||||
- React
|
- React
|
||||||
- Yoga (1.14.0)
|
- Yoga (1.14.0)
|
||||||
|
- YogaKit (1.18.1):
|
||||||
|
- Yoga (~> 1.14)
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||||
- FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
|
- FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
|
||||||
|
- Flipper (~> 0.33.1)
|
||||||
|
- Flipper-DoubleConversion (= 1.1.7)
|
||||||
|
- Flipper-Folly (~> 2.1)
|
||||||
|
- Flipper-Glog (= 0.3.6)
|
||||||
|
- Flipper-PeerTalk (~> 0.0.4)
|
||||||
|
- Flipper-RSocket (~> 1.0)
|
||||||
|
- FlipperKit (~> 0.33.1)
|
||||||
|
- FlipperKit/Core (~> 0.33.1)
|
||||||
|
- FlipperKit/CppBridge (~> 0.33.1)
|
||||||
|
- FlipperKit/FBCxxFollyDynamicConvert (~> 0.33.1)
|
||||||
|
- FlipperKit/FBDefines (~> 0.33.1)
|
||||||
|
- FlipperKit/FKPortForwarding (~> 0.33.1)
|
||||||
|
- FlipperKit/FlipperKitHighlightOverlay (~> 0.33.1)
|
||||||
|
- FlipperKit/FlipperKitLayoutPlugin (~> 0.33.1)
|
||||||
|
- FlipperKit/FlipperKitLayoutTextSearchable (~> 0.33.1)
|
||||||
|
- FlipperKit/FlipperKitNetworkPlugin (~> 0.33.1)
|
||||||
|
- FlipperKit/FlipperKitReactPlugin (~> 0.33.1)
|
||||||
|
- FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.33.1)
|
||||||
|
- FlipperKit/SKIOSNetworkPlugin (~> 0.33.1)
|
||||||
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
|
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
|
||||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||||
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
|
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
|
||||||
@@ -294,10 +394,12 @@ DEPENDENCIES:
|
|||||||
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
|
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
|
||||||
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
|
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
|
||||||
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
|
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
|
||||||
- ReactCommon/jscallinvoker (from `../node_modules/react-native/ReactCommon`)
|
- ReactCommon/callinvoker (from `../node_modules/react-native/ReactCommon`)
|
||||||
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
|
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
|
||||||
- rn-fetch-blob (from `../node_modules/rn-fetch-blob`)
|
- rn-fetch-blob (from `../node_modules/rn-fetch-blob`)
|
||||||
|
- "RNCClipboard (from `../node_modules/@react-native-community/clipboard`)"
|
||||||
- "RNCPushNotificationIOS (from `../node_modules/@react-native-community/push-notification-ios`)"
|
- "RNCPushNotificationIOS (from `../node_modules/@react-native-community/push-notification-ios`)"
|
||||||
|
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
||||||
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
||||||
- RNFileViewer (from `../node_modules/react-native-file-viewer/ios`)
|
- RNFileViewer (from `../node_modules/react-native-file-viewer/ios`)
|
||||||
- RNFS (from `../node_modules/react-native-fs`)
|
- RNFS (from `../node_modules/react-native-fs`)
|
||||||
@@ -309,6 +411,17 @@ DEPENDENCIES:
|
|||||||
SPEC REPOS:
|
SPEC REPOS:
|
||||||
trunk:
|
trunk:
|
||||||
- boost-for-react-native
|
- boost-for-react-native
|
||||||
|
- CocoaAsyncSocket
|
||||||
|
- CocoaLibEvent
|
||||||
|
- Flipper
|
||||||
|
- Flipper-DoubleConversion
|
||||||
|
- Flipper-Folly
|
||||||
|
- Flipper-Glog
|
||||||
|
- Flipper-PeerTalk
|
||||||
|
- Flipper-RSocket
|
||||||
|
- FlipperKit
|
||||||
|
- OpenSSL-Universal
|
||||||
|
- YogaKit
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
DoubleConversion:
|
DoubleConversion:
|
||||||
@@ -379,8 +492,12 @@ EXTERNAL SOURCES:
|
|||||||
:path: "../node_modules/react-native/ReactCommon"
|
:path: "../node_modules/react-native/ReactCommon"
|
||||||
rn-fetch-blob:
|
rn-fetch-blob:
|
||||||
:path: "../node_modules/rn-fetch-blob"
|
:path: "../node_modules/rn-fetch-blob"
|
||||||
|
RNCClipboard:
|
||||||
|
:path: "../node_modules/@react-native-community/clipboard"
|
||||||
RNCPushNotificationIOS:
|
RNCPushNotificationIOS:
|
||||||
:path: "../node_modules/@react-native-community/push-notification-ios"
|
:path: "../node_modules/@react-native-community/push-notification-ios"
|
||||||
|
RNDateTimePicker:
|
||||||
|
:path: "../node_modules/@react-native-community/datetimepicker"
|
||||||
RNDeviceInfo:
|
RNDeviceInfo:
|
||||||
:path: "../node_modules/react-native-device-info"
|
:path: "../node_modules/react-native-device-info"
|
||||||
RNFileViewer:
|
RNFileViewer:
|
||||||
@@ -398,20 +515,30 @@ EXTERNAL SOURCES:
|
|||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
||||||
DoubleConversion: cde416483dac037923206447da6e1454df403714
|
CocoaAsyncSocket: 694058e7c0ed05a9e217d1b3c7ded962f4180845
|
||||||
FBLazyVector: aaeaf388755e4f29cd74acbc9e3b8da6d807c37f
|
CocoaLibEvent: 2fab71b8bd46dd33ddb959f7928ec5909f838e3f
|
||||||
FBReactNativeSpec: 118d0d177724c2d67f08a59136eb29ef5943ec75
|
DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
|
||||||
|
FBLazyVector: 4aab18c93cd9546e4bfed752b4084585eca8b245
|
||||||
|
FBReactNativeSpec: 5465d51ccfeecb7faa12f9ae0024f2044ce4044e
|
||||||
|
Flipper: 6c1f484f9a88d30ab3e272800d53688439e50f69
|
||||||
|
Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
|
||||||
|
Flipper-Folly: c12092ea368353b58e992843a990a3225d4533c3
|
||||||
|
Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6
|
||||||
|
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
|
||||||
|
Flipper-RSocket: 64e7431a55835eb953b0bf984ef3b90ae9fdddd7
|
||||||
|
FlipperKit: 6dc9b8f4ef60d9e5ded7f0264db299c91f18832e
|
||||||
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
|
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
|
||||||
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
|
glog: 1f3da668190260b06b429bb211bfbee5cd790c28
|
||||||
RCTRequired: b153add4da6e7dbc44aebf93f3cf4fcae392ddf1
|
OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355
|
||||||
RCTTypeSafety: 9aa1b91d7f9310fc6eadc3cf95126ffe818af320
|
RCTRequired: cec6a34b3ac8a9915c37e7e4ad3aa74726ce4035
|
||||||
React: b6a59ef847b2b40bb6e0180a97d0ca716969ac78
|
RCTTypeSafety: 93006131180074cffa227a1075802c89a49dd4ce
|
||||||
React-Core: 688b451f7d616cc1134ac95295b593d1b5158a04
|
React: 29a8b1a02bd764fb7644ef04019270849b9a7ac3
|
||||||
React-CoreModules: d04f8494c1a328b69ec11db9d1137d667f916dcb
|
React-Core: b12bffb3f567fdf99510acb716ef1abd426e0e05
|
||||||
React-cxxreact: d0f7bcafa196ae410e5300736b424455e7fb7ba7
|
React-CoreModules: 4a9b87bbe669d6c3173c0132c3328e3b000783d0
|
||||||
React-jsi: cb2cd74d7ccf4cffb071a46833613edc79cdf8f7
|
React-cxxreact: e65f9c2ba0ac5be946f53548c1aaaee5873a8103
|
||||||
React-jsiexecutor: d5525f9ed5f782fdbacb64b9b01a43a9323d2386
|
React-jsi: b6dc94a6a12ff98e8877287a0b7620d365201161
|
||||||
React-jsinspector: fa0ecc501688c3c4c34f28834a76302233e29dc0
|
React-jsiexecutor: 1540d1c01bb493ae3124ed83351b1b6a155db7da
|
||||||
|
React-jsinspector: 512e560d0e985d0e8c479a54a4e5c147a9c83493
|
||||||
react-native-camera: ea85f74cf2e501d2a91a3da7092ecdac082f18df
|
react-native-camera: ea85f74cf2e501d2a91a3da7092ecdac082f18df
|
||||||
react-native-document-picker: 8508bfda34be6c24a2cbecbe515b15108658c183
|
react-native-document-picker: 8508bfda34be6c24a2cbecbe515b15108658c183
|
||||||
react-native-geolocation: cbd9d6bd06bac411eed2671810f454d4908484a8
|
react-native-geolocation: cbd9d6bd06bac411eed2671810f454d4908484a8
|
||||||
@@ -421,26 +548,29 @@ SPEC CHECKSUMS:
|
|||||||
react-native-sqlite-storage: bb10beb2407e5fc21f3f1bcd86bacbfd6edcc818
|
react-native-sqlite-storage: bb10beb2407e5fc21f3f1bcd86bacbfd6edcc818
|
||||||
react-native-version-info: daadd78b8fc93cf2764cb5aa52ec995961b62201
|
react-native-version-info: daadd78b8fc93cf2764cb5aa52ec995961b62201
|
||||||
react-native-webview: 26d8993b090ca5d59eb9a9466dcb8291baa3223e
|
react-native-webview: 26d8993b090ca5d59eb9a9466dcb8291baa3223e
|
||||||
React-RCTActionSheet: 600b4d10e3aea0913b5a92256d2719c0cdd26d76
|
React-RCTActionSheet: f41ea8a811aac770e0cc6e0ad6b270c644ea8b7c
|
||||||
React-RCTAnimation: 791a87558389c80908ed06cc5dfc5e7920dfa360
|
React-RCTAnimation: 49ab98b1c1ff4445148b72a3d61554138565bad0
|
||||||
React-RCTBlob: d89293cc0236d9cb0933d85e430b0bbe81ad1d72
|
React-RCTBlob: a332773f0ebc413a0ce85942a55b064471587a71
|
||||||
React-RCTImage: 6b8e8df449eb7c814c99a92d6b52de6fe39dea4e
|
React-RCTImage: e70be9b9c74fe4e42d0005f42cace7981c994ac3
|
||||||
React-RCTLinking: 121bb231c7503cf9094f4d8461b96a130fabf4a5
|
React-RCTLinking: c1b9739a88d56ecbec23b7f63650e44672ab2ad2
|
||||||
React-RCTNetwork: fb353640aafcee84ca8b78957297bd395f065c9a
|
React-RCTNetwork: 73138b6f45e5a2768ad93f3d57873c2a18d14b44
|
||||||
React-RCTSettings: 8db258ea2a5efee381fcf7a6d5044e2f8b68b640
|
React-RCTSettings: 6e3738a87e21b39a8cb08d627e68c44acf1e325a
|
||||||
React-RCTText: 9ccc88273e9a3aacff5094d2175a605efa854dbe
|
React-RCTText: fae545b10cfdb3d247c36c56f61a94cfd6dba41d
|
||||||
React-RCTVibration: a49a1f42bf8f5acf1c3e297097517c6b3af377ad
|
React-RCTVibration: 4356114dbcba4ce66991096e51a66e61eda51256
|
||||||
ReactCommon: 198c7c8d3591f975e5431bec1b0b3b581aa1c5dd
|
ReactCommon: ed4e11d27609d571e7eee8b65548efc191116eb3
|
||||||
rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba
|
rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba
|
||||||
|
RNCClipboard: 8f9f12fabf3c06e976f19f87a62c89e28dfedfca
|
||||||
RNCPushNotificationIOS: 30ed75aa2981a4ee00b8a2c46599ff18a9c7fcf6
|
RNCPushNotificationIOS: 30ed75aa2981a4ee00b8a2c46599ff18a9c7fcf6
|
||||||
|
RNDateTimePicker: e9fcd5ecdc0c5b018871e0d178d6040dca11973c
|
||||||
RNDeviceInfo: 6812ed7e578d4344bf4e77102f014b5adf0b5c28
|
RNDeviceInfo: 6812ed7e578d4344bf4e77102f014b5adf0b5c28
|
||||||
RNFileViewer: 5047ecf40477339723cc08abd55b5ebcefcef4b5
|
RNFileViewer: 5047ecf40477339723cc08abd55b5ebcefcef4b5
|
||||||
RNFS: 416676c3a9ae404454bade10e3d78147c7c33a40
|
RNFS: 416676c3a9ae404454bade10e3d78147c7c33a40
|
||||||
RNQuickAction: 6d404a869dc872cde841ad3147416a670d13fa93
|
RNQuickAction: 6d404a869dc872cde841ad3147416a670d13fa93
|
||||||
RNSecureRandom: 1f19ad1492f7ed416b8fc79e92216a1f73f13a4c
|
RNSecureRandom: 1f19ad1492f7ed416b8fc79e92216a1f73f13a4c
|
||||||
RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4
|
RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4
|
||||||
Yoga: f2a7cd4280bfe2cca5a7aed98ba0eb3d1310f18b
|
Yoga: 3ebccbdd559724312790e7742142d062476b698e
|
||||||
|
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
|
||||||
|
|
||||||
PODFILE CHECKSUM: c8797581a23c0ae9c6a4f471c2b19dda3644a8b2
|
PODFILE CHECKSUM: 2fe21139b05fad33e772c30f4bcba0de59502f8f
|
||||||
|
|
||||||
COCOAPODS: 1.9.3
|
COCOAPODS: 1.9.3
|
||||||
|
94
ReactNativeClient/lib/PoorManIntervals.ts
Normal file
94
ReactNativeClient/lib/PoorManIntervals.ts
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
const { time } = require('lib/time-utils.js');
|
||||||
|
|
||||||
|
type IntervalId = number;
|
||||||
|
|
||||||
|
interface Interval {
|
||||||
|
id: IntervalId,
|
||||||
|
callback: Function,
|
||||||
|
interval: number,
|
||||||
|
lastIntervalTime: number,
|
||||||
|
isTimeout: boolean,
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Intervals {
|
||||||
|
[key: number]: Interval;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class PoorManIntervals {
|
||||||
|
|
||||||
|
private static maxNativeTimerDuration_ = 10 * 1000;
|
||||||
|
private static lastUpdateTime_:number = 0;
|
||||||
|
private static intervalId_:IntervalId = 0;
|
||||||
|
private static intervals_:Intervals = {};
|
||||||
|
|
||||||
|
public static setInterval(callback:Function, interval:number):IntervalId {
|
||||||
|
if (interval <= this.maxNativeTimerDuration_) return setInterval(callback, interval);
|
||||||
|
|
||||||
|
this.intervalId_++;
|
||||||
|
const id = this.intervalId_;
|
||||||
|
|
||||||
|
this.intervals_[id] = {
|
||||||
|
id: id,
|
||||||
|
callback: callback,
|
||||||
|
interval: interval,
|
||||||
|
lastIntervalTime: time.unixMs(),
|
||||||
|
isTimeout: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static setTimeout(callback:Function, interval:number):IntervalId {
|
||||||
|
if (interval <= this.maxNativeTimerDuration_) return setTimeout(callback, interval);
|
||||||
|
|
||||||
|
this.intervalId_++;
|
||||||
|
const id = this.intervalId_;
|
||||||
|
|
||||||
|
this.intervals_[id] = {
|
||||||
|
id: id,
|
||||||
|
callback: callback,
|
||||||
|
interval: interval,
|
||||||
|
lastIntervalTime: time.unixMs(),
|
||||||
|
isTimeout: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static clearInterval(id:IntervalId) {
|
||||||
|
const r = this.intervals_[id];
|
||||||
|
if (!r) {
|
||||||
|
clearInterval(id);
|
||||||
|
} else {
|
||||||
|
delete this.intervals_[id];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static clearTimeout(id:IntervalId) {
|
||||||
|
const r = this.intervals_[id];
|
||||||
|
if (!r) {
|
||||||
|
clearTimeout(id);
|
||||||
|
} else {
|
||||||
|
delete this.intervals_[id];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static update() {
|
||||||
|
// Don't update more than once a second
|
||||||
|
if (this.lastUpdateTime_ + 1000 > time.unixMs()) return;
|
||||||
|
|
||||||
|
for (const id in this.intervals_) {
|
||||||
|
const interval = this.intervals_[id];
|
||||||
|
const now = time.unixMs();
|
||||||
|
if (now - interval.lastIntervalTime >= interval.interval) {
|
||||||
|
interval.lastIntervalTime = now;
|
||||||
|
interval.callback();
|
||||||
|
if (interval.isTimeout) {
|
||||||
|
this.clearTimeout(interval.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.lastUpdateTime_ = time.unixMs();
|
||||||
|
}
|
||||||
|
}
|
125
ReactNativeClient/lib/components/SelectDateTimeDialog.tsx
Normal file
125
ReactNativeClient/lib/components/SelectDateTimeDialog.tsx
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
import * as React from 'react';
|
||||||
|
import { View, Button, Text } from 'react-native';
|
||||||
|
import { themeStyle } from 'lib/theme';
|
||||||
|
import { _ } from 'lib/locale';
|
||||||
|
|
||||||
|
const PopupDialog = require('react-native-popup-dialog').default;
|
||||||
|
const { DialogTitle, DialogButton } = require('react-native-popup-dialog');
|
||||||
|
const { time } = require('lib/time-utils.js');
|
||||||
|
const DateTimePickerModal = require('react-native-modal-datetime-picker').default;
|
||||||
|
|
||||||
|
export default class SelectDateTimeDialog extends React.PureComponent<any, any> {
|
||||||
|
|
||||||
|
private dialog_:any = null;
|
||||||
|
private shown_:boolean = false;
|
||||||
|
|
||||||
|
constructor(props:any) {
|
||||||
|
super(props);
|
||||||
|
|
||||||
|
this.state = {
|
||||||
|
date: null,
|
||||||
|
mode: 'date',
|
||||||
|
showPicker: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
this.onReject = this.onReject.bind(this);
|
||||||
|
this.onPickerConfirm = this.onPickerConfirm.bind(this);
|
||||||
|
this.onPickerCancel = this.onPickerCancel.bind(this);
|
||||||
|
this.onSetDate = this.onSetDate.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps(newProps:any) {
|
||||||
|
if (newProps.date != this.state.date) {
|
||||||
|
this.setState({ date: newProps.date });
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('shown' in newProps && newProps.shown != this.shown_) {
|
||||||
|
this.show(newProps.shown);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
show(doShow:boolean = true) {
|
||||||
|
if (doShow) {
|
||||||
|
this.dialog_.show();
|
||||||
|
} else {
|
||||||
|
this.dialog_.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.shown_ = doShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
dismiss() {
|
||||||
|
this.show(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
onAccept() {
|
||||||
|
if (this.props.onAccept) this.props.onAccept(this.state.date);
|
||||||
|
}
|
||||||
|
|
||||||
|
onReject() {
|
||||||
|
if (this.props.onReject) this.props.onReject();
|
||||||
|
}
|
||||||
|
|
||||||
|
onClear() {
|
||||||
|
if (this.props.onAccept) this.props.onAccept(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
onPickerConfirm(selectedDate:Date) {
|
||||||
|
this.setState({ date: selectedDate, showPicker: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
onPickerCancel() {
|
||||||
|
this.setState({ showPicker: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
onSetDate() {
|
||||||
|
this.setState({ showPicker: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
renderContent() {
|
||||||
|
if (!this.shown_) return <View/>;
|
||||||
|
|
||||||
|
const theme = themeStyle(this.props.themeId);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View style={{ flex: 1, margin: 20, alignItems: 'center' }}>
|
||||||
|
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
||||||
|
{ this.state.date && <Text style={{ ...theme.normalText, marginRight: 10 }}>{time.formatDateToLocal(this.state.date)}</Text> }
|
||||||
|
<Button title="Set date" onPress={this.onSetDate} />
|
||||||
|
</View>
|
||||||
|
<DateTimePickerModal
|
||||||
|
date={this.state.date ? this.state.date : new Date()}
|
||||||
|
is24Hour={time.use24HourFormat()}
|
||||||
|
isVisible={this.state.showPicker}
|
||||||
|
mode="datetime"
|
||||||
|
onConfirm={this.onPickerConfirm}
|
||||||
|
onCancel={this.onPickerCancel}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const clearAlarmText = _('Clear alarm'); // For unknown reasons, this particular string doesn't get translated if it's directly in the text property below
|
||||||
|
|
||||||
|
const popupActions = [
|
||||||
|
<DialogButton text={_('Save alarm')} align="center" onPress={() => this.onAccept()} key="saveButton" />,
|
||||||
|
<DialogButton text={clearAlarmText} align="center" onPress={() => this.onClear()} key="clearButton" />,
|
||||||
|
<DialogButton text={_('Cancel')} align="center" onPress={() => this.onReject()} key="cancelButton" />,
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<PopupDialog
|
||||||
|
ref={(dialog:any) => { this.dialog_ = dialog; }}
|
||||||
|
dialogTitle={<DialogTitle title={_('Set alarm')} />}
|
||||||
|
actions={popupActions}
|
||||||
|
dismissOnTouchOutside={false}
|
||||||
|
width={0.9}
|
||||||
|
height={350}
|
||||||
|
>
|
||||||
|
{this.renderContent()}
|
||||||
|
</PopupDialog>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -2,7 +2,8 @@ import FileViewer from 'react-native-file-viewer';
|
|||||||
import AsyncActionQueue from '../../AsyncActionQueue';
|
import AsyncActionQueue from '../../AsyncActionQueue';
|
||||||
|
|
||||||
const React = require('react');
|
const React = require('react');
|
||||||
const { Platform, Clipboard, Keyboard, View, TextInput, StyleSheet, Linking, Image, Share } = require('react-native');
|
const { Platform, Keyboard, View, TextInput, StyleSheet, Linking, Image, Share } = require('react-native');
|
||||||
|
const Clipboard = require('@react-native-community/clipboard').default;
|
||||||
const { connect } = require('react-redux');
|
const { connect } = require('react-redux');
|
||||||
const uuid = require('lib/uuid').default;
|
const uuid = require('lib/uuid').default;
|
||||||
const { MarkdownEditor } = require('../../../MarkdownEditor/index.js');
|
const { MarkdownEditor } = require('../../../MarkdownEditor/index.js');
|
||||||
@@ -36,8 +37,8 @@ const { NoteBodyViewer } = require('lib/components/note-body-viewer.js');
|
|||||||
const { DocumentPicker, DocumentPickerUtil } = require('react-native-document-picker');
|
const { DocumentPicker, DocumentPickerUtil } = require('react-native-document-picker');
|
||||||
const ImageResizer = require('react-native-image-resizer').default;
|
const ImageResizer = require('react-native-image-resizer').default;
|
||||||
const shared = require('lib/components/shared/note-screen-shared.js');
|
const shared = require('lib/components/shared/note-screen-shared.js');
|
||||||
const ImagePicker = require('react-native-image-picker');
|
// const ImagePicker = require('react-native-image-picker');
|
||||||
const { SelectDateTimeDialog } = require('lib/components/select-date-time-dialog.js');
|
const SelectDateTimeDialog = require('lib/components/SelectDateTimeDialog').default;
|
||||||
const ShareExtension = require('lib/ShareExtension.js').default;
|
const ShareExtension = require('lib/ShareExtension.js').default;
|
||||||
const CameraView = require('lib/components/CameraView');
|
const CameraView = require('lib/components/CameraView');
|
||||||
const urlUtils = require('lib/urlUtils');
|
const urlUtils = require('lib/urlUtils');
|
||||||
@@ -507,13 +508,13 @@ class NoteScreenComponent extends BaseScreenComponent {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
showImagePicker(options) {
|
// showImagePicker(options) {
|
||||||
return new Promise((resolve) => {
|
// return new Promise((resolve) => {
|
||||||
ImagePicker.launchImageLibrary(options, response => {
|
// ImagePicker.launchImageLibrary(options, response => {
|
||||||
resolve(response);
|
// resolve(response);
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
|
|
||||||
async resizeImage(localFilePath, targetPath, mimeType) {
|
async resizeImage(localFilePath, targetPath, mimeType) {
|
||||||
const maxSize = Resource.IMAGE_MAX_DIMENSION;
|
const maxSize = Resource.IMAGE_MAX_DIMENSION;
|
||||||
@@ -665,10 +666,10 @@ class NoteScreenComponent extends BaseScreenComponent {
|
|||||||
this.scheduleSave();
|
this.scheduleSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
async attachPhoto_onPress() {
|
// async attachPhoto_onPress() {
|
||||||
const response = await this.showImagePicker({ mediaType: 'photo', noData: true });
|
// const response = await this.showImagePicker({ mediaType: 'photo', noData: true });
|
||||||
await this.attachFile(response, 'image');
|
// await this.attachFile(response, 'image');
|
||||||
}
|
// }
|
||||||
|
|
||||||
takePhoto_onPress() {
|
takePhoto_onPress() {
|
||||||
this.setState({ showCamera: true });
|
this.setState({ showCamera: true });
|
||||||
@@ -817,10 +818,14 @@ class NoteScreenComponent extends BaseScreenComponent {
|
|||||||
output.push({
|
output.push({
|
||||||
title: _('Attach...'),
|
title: _('Attach...'),
|
||||||
onPress: async () => {
|
onPress: async () => {
|
||||||
const buttonId = await dialogs.pop(this, _('Choose an option'), [{ text: _('Take photo'), id: 'takePhoto' }, { text: _('Attach photo'), id: 'attachPhoto' }, { text: _('Attach any file'), id: 'attachFile' }]);
|
const buttonId = await dialogs.pop(this, _('Choose an option'), [
|
||||||
|
{ text: _('Attach file'), id: 'attachFile' },
|
||||||
|
{ text: _('Take photo'), id: 'takePhoto' },
|
||||||
|
// { text: _('Attach photo'), id: 'attachPhoto' },
|
||||||
|
]);
|
||||||
|
|
||||||
if (buttonId === 'takePhoto') this.takePhoto_onPress();
|
if (buttonId === 'takePhoto') this.takePhoto_onPress();
|
||||||
if (buttonId === 'attachPhoto') this.attachPhoto_onPress();
|
// if (buttonId === 'attachPhoto') this.attachPhoto_onPress();
|
||||||
if (buttonId === 'attachFile') this.attachFile_onPress();
|
if (buttonId === 'attachFile') this.attachFile_onPress();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1178,7 +1183,7 @@ class NoteScreenComponent extends BaseScreenComponent {
|
|||||||
{bodyComponent}
|
{bodyComponent}
|
||||||
{!this.useBetaEditor() && actionButtonComp}
|
{!this.useBetaEditor() && actionButtonComp}
|
||||||
|
|
||||||
<SelectDateTimeDialog shown={this.state.alarmDialogShown} date={dueDate} onAccept={this.onAlarmDialogAccept} onReject={this.onAlarmDialogReject} />
|
<SelectDateTimeDialog themeId={this.props.themeId} shown={this.state.alarmDialogShown} date={dueDate} onAccept={this.onAlarmDialogAccept} onReject={this.onAlarmDialogReject} />
|
||||||
|
|
||||||
<DialogBox
|
<DialogBox
|
||||||
ref={dialogbox => {
|
ref={dialogbox => {
|
||||||
|
@@ -1,109 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import { View } from 'react-native';
|
|
||||||
import PopupDialog, { DialogTitle, DialogButton } from 'react-native-popup-dialog';
|
|
||||||
import DatePicker from 'react-native-datepicker';
|
|
||||||
import moment from 'moment';
|
|
||||||
import { _ } from 'lib/locale.js';
|
|
||||||
const { time } = require('lib/time-utils.js');
|
|
||||||
|
|
||||||
class SelectDateTimeDialog extends React.PureComponent {
|
|
||||||
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
this.dialog_ = null;
|
|
||||||
this.shown_ = false;
|
|
||||||
this.state = { date: null };
|
|
||||||
|
|
||||||
this.onReject = this.onReject.bind(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
UNSAFE_componentWillReceiveProps(newProps) {
|
|
||||||
if (newProps.date != this.state.date) {
|
|
||||||
this.setState({ date: newProps.date });
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('shown' in newProps && newProps.shown != this.shown_) {
|
|
||||||
this.show(newProps.shown);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
show(doShow = true) {
|
|
||||||
if (doShow) {
|
|
||||||
this.dialog_.show();
|
|
||||||
} else {
|
|
||||||
this.dialog_.dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.shown_ = doShow;
|
|
||||||
}
|
|
||||||
|
|
||||||
dismiss() {
|
|
||||||
this.show(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
dateTimeFormat() {
|
|
||||||
return time.dateTimeFormat();
|
|
||||||
}
|
|
||||||
|
|
||||||
stringToDate(s) {
|
|
||||||
return moment(s, this.dateTimeFormat()).toDate();
|
|
||||||
}
|
|
||||||
|
|
||||||
onAccept() {
|
|
||||||
if (this.props.onAccept) this.props.onAccept(this.state.date);
|
|
||||||
}
|
|
||||||
|
|
||||||
onReject() {
|
|
||||||
if (this.props.onReject) this.props.onReject();
|
|
||||||
}
|
|
||||||
|
|
||||||
onClear() {
|
|
||||||
if (this.props.onAccept) this.props.onAccept(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
|
||||||
const clearAlarmText = _('Clear alarm'); // For unknown reasons, this particular string doesn't get translated if it's directly in the text property below
|
|
||||||
|
|
||||||
const popupActions = [
|
|
||||||
<DialogButton text={_('Save alarm')} align="center" onPress={() => this.onAccept()} key="saveButton" />,
|
|
||||||
<DialogButton text={clearAlarmText} align="center" onPress={() => this.onClear()} key="clearButton" />,
|
|
||||||
<DialogButton text={_('Cancel')} align="center" onPress={() => this.onReject()} key="cancelButton" />,
|
|
||||||
];
|
|
||||||
|
|
||||||
return (
|
|
||||||
<PopupDialog
|
|
||||||
ref={(dialog) => { this.dialog_ = dialog; }}
|
|
||||||
dialogTitle={<DialogTitle title={_('Set alarm')} />}
|
|
||||||
actions={popupActions}
|
|
||||||
dismissOnTouchOutside={false}
|
|
||||||
width={0.9}
|
|
||||||
height={350}
|
|
||||||
>
|
|
||||||
<View style={{ flex: 1, margin: 20, alignItems: 'center' }}>
|
|
||||||
<DatePicker
|
|
||||||
date={this.state.date}
|
|
||||||
mode="datetime"
|
|
||||||
placeholder={_('Select date')}
|
|
||||||
format={this.dateTimeFormat()}
|
|
||||||
confirmBtnText={_('Confirm')}
|
|
||||||
cancelBtnText={_('Cancel')}
|
|
||||||
onDateChange={(date) => { this.setState({ date: this.stringToDate(date) }); }}
|
|
||||||
style={{ width: 300 }}
|
|
||||||
customStyles={{
|
|
||||||
btnConfirm: {
|
|
||||||
paddingVertical: 0,
|
|
||||||
},
|
|
||||||
btnCancel: {
|
|
||||||
paddingVertical: 0,
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</View>
|
|
||||||
</PopupDialog>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// eslint-disable-next-line import/prefer-default-export
|
|
||||||
export { SelectDateTimeDialog };
|
|
@@ -1,71 +0,0 @@
|
|||||||
const { time } = require('lib/time-utils.js');
|
|
||||||
|
|
||||||
class PoorManIntervals {
|
|
||||||
static setInterval(callback, interval) {
|
|
||||||
PoorManIntervals.intervalId_++;
|
|
||||||
|
|
||||||
PoorManIntervals.intervals_.push({
|
|
||||||
id: PoorManIntervals.intervalId_,
|
|
||||||
callback: callback,
|
|
||||||
interval: interval,
|
|
||||||
lastIntervalTime: time.unixMs(),
|
|
||||||
});
|
|
||||||
|
|
||||||
return PoorManIntervals.intervalId_;
|
|
||||||
}
|
|
||||||
|
|
||||||
static setTimeout(callback, interval) {
|
|
||||||
PoorManIntervals.intervalId_++;
|
|
||||||
|
|
||||||
PoorManIntervals.intervals_.push({
|
|
||||||
id: PoorManIntervals.intervalId_,
|
|
||||||
callback: callback,
|
|
||||||
interval: interval,
|
|
||||||
lastIntervalTime: time.unixMs(),
|
|
||||||
oneOff: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
return PoorManIntervals.intervalId_;
|
|
||||||
}
|
|
||||||
|
|
||||||
static intervalById(id) {
|
|
||||||
for (let i = 0; i < PoorManIntervals.intervals_.length; i++) {
|
|
||||||
if (PoorManIntervals.intervals_[i].id == id) return PoorManIntervals.intervals_[id];
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
static clearInterval(id) {
|
|
||||||
for (let i = 0; i < PoorManIntervals.intervals_.length; i++) {
|
|
||||||
if (PoorManIntervals.intervals_[i].id == id) {
|
|
||||||
PoorManIntervals.intervals_.splice(i, 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static update() {
|
|
||||||
// Don't update more than once a second
|
|
||||||
if (PoorManIntervals.lastUpdateTime_ + 1000 > time.unixMs()) return;
|
|
||||||
|
|
||||||
for (let i = 0; i < PoorManIntervals.intervals_.length; i++) {
|
|
||||||
const interval = PoorManIntervals.intervals_[i];
|
|
||||||
const now = time.unixMs();
|
|
||||||
if (now - interval.lastIntervalTime >= interval.interval) {
|
|
||||||
interval.lastIntervalTime = now;
|
|
||||||
interval.callback();
|
|
||||||
if (interval.oneOff) {
|
|
||||||
this.clearInterval(interval.id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PoorManIntervals.lastUpdateTime_ = time.unixMs();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PoorManIntervals.lastUpdateTime_ = 0;
|
|
||||||
PoorManIntervals.intervalId_ = 0;
|
|
||||||
PoorManIntervals.intervals_ = [];
|
|
||||||
|
|
||||||
module.exports = { PoorManIntervals };
|
|
@@ -1,6 +1,6 @@
|
|||||||
const shim = require('lib/shim').default;
|
const shim = require('lib/shim').default;
|
||||||
const { GeolocationReact } = require('lib/geolocation-react.js');
|
const { GeolocationReact } = require('lib/geolocation-react.js');
|
||||||
const { PoorManIntervals } = require('lib/poor-man-intervals.js');
|
const PoorManIntervals = require('lib/PoorManIntervals').default;
|
||||||
const RNFetchBlob = require('rn-fetch-blob').default;
|
const RNFetchBlob = require('rn-fetch-blob').default;
|
||||||
const { generateSecureRandom } = require('react-native-securerandom');
|
const { generateSecureRandom } = require('react-native-securerandom');
|
||||||
const FsDriverRN = require('lib/fs-driver-rn.js').FsDriverRN;
|
const FsDriverRN = require('lib/fs-driver-rn.js').FsDriverRN;
|
||||||
@@ -18,8 +18,6 @@ const injectedJs = {
|
|||||||
|
|
||||||
function shimInit() {
|
function shimInit() {
|
||||||
shim.Geolocation = GeolocationReact;
|
shim.Geolocation = GeolocationReact;
|
||||||
shim.setInterval = PoorManIntervals.setInterval;
|
|
||||||
shim.clearInterval = PoorManIntervals.clearInterval;
|
|
||||||
shim.sjclModule = require('lib/vendor/sjcl-rn.js');
|
shim.sjclModule = require('lib/vendor/sjcl-rn.js');
|
||||||
|
|
||||||
shim.fsDriver = () => {
|
shim.fsDriver = () => {
|
||||||
@@ -199,19 +197,19 @@ function shimInit() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
shim.setTimeout = (fn, interval) => {
|
shim.setTimeout = (fn, interval) => {
|
||||||
return setTimeout(fn, interval);
|
return PoorManIntervals.setTimeout(fn, interval);
|
||||||
};
|
};
|
||||||
|
|
||||||
shim.setInterval = (fn, interval) => {
|
shim.setInterval = (fn, interval) => {
|
||||||
return setInterval(fn, interval);
|
return PoorManIntervals.setInterval(fn, interval);
|
||||||
};
|
};
|
||||||
|
|
||||||
shim.clearTimeout = (id) => {
|
shim.clearTimeout = (id) => {
|
||||||
return clearTimeout(id);
|
return PoorManIntervals.clearTimeout(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
shim.clearInterval = (id) => {
|
shim.clearInterval = (id) => {
|
||||||
return clearInterval(id);
|
return PoorManIntervals.clearInterval(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -33,6 +33,10 @@ class Time {
|
|||||||
this.timeFormat_ = v;
|
this.timeFormat_ = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
use24HourFormat() {
|
||||||
|
return this.timeFormat() ? this.timeFormat().includes('HH') : true;
|
||||||
|
}
|
||||||
|
|
||||||
dateTimeFormat() {
|
dateTimeFormat() {
|
||||||
return `${this.dateFormat()} ${this.timeFormat()}`;
|
return `${this.dateFormat()} ${this.timeFormat()}`;
|
||||||
}
|
}
|
||||||
@@ -79,6 +83,10 @@ class Time {
|
|||||||
return moment.unix(ms / 1000).format('HH:mm:ss');
|
return moment.unix(ms / 1000).format('HH:mm:ss');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
formatDateToLocal(date, format = null) {
|
||||||
|
return this.formatMsToLocal(date.getTime(), format);
|
||||||
|
}
|
||||||
|
|
||||||
formatMsToLocal(ms, format = null) {
|
formatMsToLocal(ms, format = null) {
|
||||||
if (format === null) format = this.dateTimeFormat();
|
if (format === null) format = this.dateTimeFormat();
|
||||||
return moment(ms).format(format);
|
return moment(ms).format(format);
|
||||||
|
3513
ReactNativeClient/package-lock.json
generated
3513
ReactNativeClient/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,8 @@
|
|||||||
"log-android": "adb logcat *:S ReactNative:V ReactNativeJS:V"
|
"log-android": "adb logcat *:S ReactNative:V ReactNativeJS:V"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@react-native-community/clipboard": "^1.5.0",
|
||||||
|
"@react-native-community/datetimepicker": "^3.0.3",
|
||||||
"@react-native-community/geolocation": "^2.0.2",
|
"@react-native-community/geolocation": "^2.0.2",
|
||||||
"@react-native-community/push-notification-ios": "^1.0.5",
|
"@react-native-community/push-notification-ios": "^1.0.5",
|
||||||
"@react-native-community/slider": "^2.0.8",
|
"@react-native-community/slider": "^2.0.8",
|
||||||
@@ -56,9 +58,9 @@
|
|||||||
"punycode": "^2.1.1",
|
"punycode": "^2.1.1",
|
||||||
"query-string": "4.3.4",
|
"query-string": "4.3.4",
|
||||||
"re-reselect": "^4.0.0",
|
"re-reselect": "^4.0.0",
|
||||||
"react": "16.9.0",
|
"react": "16.11.0",
|
||||||
"react-async": "^10.0.0",
|
"react-async": "^10.0.0",
|
||||||
"react-native": "0.61.5",
|
"react-native": "0.62.2",
|
||||||
"react-native-action-button": "^2.6.9",
|
"react-native-action-button": "^2.6.9",
|
||||||
"react-native-camera": "^2.10.2",
|
"react-native-camera": "^2.10.2",
|
||||||
"react-native-datepicker": "^1.6.0",
|
"react-native-datepicker": "^1.6.0",
|
||||||
@@ -72,6 +74,7 @@
|
|||||||
"react-native-image-resizer": "^1.0.0",
|
"react-native-image-resizer": "^1.0.0",
|
||||||
"react-native-log-ios": "^1.5.0",
|
"react-native-log-ios": "^1.5.0",
|
||||||
"react-native-material-dropdown": "^0.5.2",
|
"react-native-material-dropdown": "^0.5.2",
|
||||||
|
"react-native-modal-datetime-picker": "^9.0.0",
|
||||||
"react-native-popup-dialog": "^0.9.35",
|
"react-native-popup-dialog": "^0.9.35",
|
||||||
"react-native-popup-menu": "^0.10.0",
|
"react-native-popup-menu": "^0.10.0",
|
||||||
"react-native-push-notification": "git+https://github.com/laurent22/react-native-push-notification.git",
|
"react-native-push-notification": "git+https://github.com/laurent22/react-native-push-notification.git",
|
||||||
@@ -106,8 +109,8 @@
|
|||||||
"fs-extra": "^8.1.0",
|
"fs-extra": "^8.1.0",
|
||||||
"gulp": "^4.0.2",
|
"gulp": "^4.0.2",
|
||||||
"jetifier": "^1.6.5",
|
"jetifier": "^1.6.5",
|
||||||
"metro-react-native-babel-preset": "^0.54.1",
|
"metro-react-native-babel-preset": "^0.58.0",
|
||||||
"patch-package": "^6.2.2",
|
"patch-package": "^6.2.2",
|
||||||
"react-test-renderer": "^16.8.3"
|
"react-test-renderer": "^16.11.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -54,7 +54,7 @@ const { DatabaseDriverReactNative } = require('lib/database-driver-react-native'
|
|||||||
const { reg } = require('lib/registry.js');
|
const { reg } = require('lib/registry.js');
|
||||||
const { setLocale, closestSupportedLocale, defaultLocale } = require('lib/locale');
|
const { setLocale, closestSupportedLocale, defaultLocale } = require('lib/locale');
|
||||||
const RNFetchBlob = require('rn-fetch-blob').default;
|
const RNFetchBlob = require('rn-fetch-blob').default;
|
||||||
const { PoorManIntervals } = require('lib/poor-man-intervals.js');
|
const PoorManIntervals = require('lib/PoorManIntervals').default;
|
||||||
const reducer = require('lib/reducer').default;
|
const reducer = require('lib/reducer').default;
|
||||||
const { defaultState } = require('lib/reducer');
|
const { defaultState } = require('lib/reducer');
|
||||||
const { FileApiDriverLocal } = require('lib/file-api-driver-local.js');
|
const { FileApiDriverLocal } = require('lib/file-api-driver-local.js');
|
||||||
|
@@ -181,6 +181,7 @@ async function main() {
|
|||||||
console.info(await execCommand('git add -A'));
|
console.info(await execCommand('git add -A'));
|
||||||
console.info(await execCommand(`git commit -m "Android release v${version}"`));
|
console.info(await execCommand(`git commit -m "Android release v${version}"`));
|
||||||
console.info(await execCommand(`git tag ${tagName}`));
|
console.info(await execCommand(`git tag ${tagName}`));
|
||||||
|
console.info(await execCommand('git pull')); // Again, to make sure git push doesn't fail
|
||||||
console.info(await execCommand('git push'));
|
console.info(await execCommand('git push'));
|
||||||
console.info(await execCommand('git push --tags'));
|
console.info(await execCommand('git push --tags'));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user