mirror of
https://github.com/BlueWallet/BlueWallet.git
synced 2025-02-21 14:34:55 +01:00
REF: lapp-browser; OPS: build refactor
This commit is contained in:
parent
0e0d859f4a
commit
27dda65596
28 changed files with 1290 additions and 1207 deletions
2
.babelrc
2
.babelrc
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
"presets": ["module:metro-react-native-babel-preset"]
|
||||
}
|
||||
}
|
||||
|
|
6
.buckconfig
Normal file
6
.buckconfig
Normal file
|
@ -0,0 +1,6 @@
|
|||
|
||||
[android]
|
||||
target = Google Inc.:Google APIs:23
|
||||
|
||||
[maven_repositories]
|
||||
central = https://repo1.maven.org/maven2
|
75
.flowconfig
75
.flowconfig
|
@ -2,74 +2,69 @@
|
|||
; We fork some components by platform
|
||||
.*/*[.]android.js
|
||||
|
||||
; Ignore templates for 'react-native init'
|
||||
<PROJECT_ROOT>/node_modules/react-native/local-cli/templates/.*
|
||||
|
||||
; Ignore RN jest
|
||||
<PROJECT_ROOT>/node_modules/react-native/jest/.*
|
||||
|
||||
; Ignore RNTester
|
||||
<PROJECT_ROOT>/node_modules/react-native/RNTester/.*
|
||||
|
||||
; Ignore the website subdir
|
||||
<PROJECT_ROOT>/node_modules/react-native/website/.*
|
||||
|
||||
; Ignore the Dangerfile
|
||||
<PROJECT_ROOT>/node_modules/react-native/danger/dangerfile.js
|
||||
|
||||
; Ignore Fbemitter
|
||||
<PROJECT_ROOT>/node_modules/fbemitter/.*
|
||||
|
||||
; Ignore "BUCK" generated dirs
|
||||
<PROJECT_ROOT>/node_modules/react-native/\.buckd/
|
||||
<PROJECT_ROOT>/\.buckd/
|
||||
|
||||
; Ignore unexpected extra "@providesModule"
|
||||
.*/node_modules/.*/node_modules/fbjs/.*
|
||||
|
||||
; Ignore polyfills
|
||||
<PROJECT_ROOT>/node_modules/react-native/Libraries/polyfills/.*
|
||||
; 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
|
||||
|
||||
; Ignore various node_modules
|
||||
<PROJECT_ROOT>/node_modules/react-native-gesture-handler/.*
|
||||
<PROJECT_ROOT>/node_modules/expo/.*
|
||||
<PROJECT_ROOT>/node_modules/react-navigation/.*
|
||||
<PROJECT_ROOT>/node_modules/xdl/.*
|
||||
<PROJECT_ROOT>/node_modules/reqwest/.*
|
||||
<PROJECT_ROOT>/node_modules/metro-bundler/.*
|
||||
; Ignore polyfills
|
||||
.*/Libraries/polyfills/.*
|
||||
|
||||
; Ignore metro
|
||||
.*/node_modules/metro/.*
|
||||
|
||||
[include]
|
||||
|
||||
[libs]
|
||||
node_modules/react-native/Libraries/react-native/react-native-interface.js
|
||||
node_modules/react-native/flow/
|
||||
node_modules/expo/flow/
|
||||
node_modules/react-native/flow-github/
|
||||
|
||||
[options]
|
||||
emoji=true
|
||||
|
||||
module.system=haste
|
||||
esproposal.optional_chaining=enable
|
||||
esproposal.nullish_coalescing=enable
|
||||
|
||||
module.file_ext=.js
|
||||
module.file_ext=.jsx
|
||||
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.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
|
||||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
|
||||
|
||||
munge_underscores=true
|
||||
|
||||
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
|
||||
|
||||
module.file_ext=.js
|
||||
module.file_ext=.jsx
|
||||
module.file_ext=.json
|
||||
module.file_ext=.native.js
|
||||
|
||||
suppress_type=$FlowIssue
|
||||
suppress_type=$FlowFixMe
|
||||
suppress_type=$FlowFixMeProps
|
||||
suppress_type=$FlowFixMeState
|
||||
suppress_type=$FixMe
|
||||
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)?:? #[0-9]+
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
|
||||
|
||||
unsafe.enable_getters_and_setters=true
|
||||
|
||||
[version]
|
||||
^0.56.0
|
||||
^0.78.0
|
||||
|
|
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.pbxproj -text
|
55
.gitignore
vendored
55
.gitignore
vendored
|
@ -1,29 +1,10 @@
|
|||
# See https://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
node_modules/
|
||||
# misc
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.idea/
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
class/constants.js
|
||||
|
||||
# OSX# OSX
|
||||
# OSX
|
||||
#
|
||||
.DS_Store
|
||||
|
||||
# Xcode
|
||||
#
|
||||
build/
|
||||
ios/build/*
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
*.mode1v3
|
||||
|
@ -39,13 +20,37 @@ DerivedData
|
|||
*.hmap
|
||||
*.ipa
|
||||
*.xcuserstate
|
||||
#
|
||||
project.xcworkspace
|
||||
|
||||
# Android
|
||||
# Android/IntelliJ
|
||||
#
|
||||
android/local.properties
|
||||
android/app/bluewallet-release-key.keystore
|
||||
build/
|
||||
.idea
|
||||
.gradle
|
||||
local.properties
|
||||
*.iml
|
||||
build/
|
||||
|
||||
# node.js
|
||||
#
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
|
||||
# BUCK
|
||||
buck-out/
|
||||
\.buckd/
|
||||
*.keystore
|
||||
|
||||
# fastlane
|
||||
#
|
||||
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
|
||||
# screenshots whenever they are needed.
|
||||
# For more information about the recommended setup visit:
|
||||
# https://docs.fastlane.tools/best-practices/source-control/
|
||||
|
||||
*/fastlane/report.xml
|
||||
*/fastlane/Preview.html
|
||||
*/fastlane/screenshots
|
||||
|
||||
# Bundle artifact
|
||||
*.jsbundle
|
||||
|
|
|
@ -1 +1 @@
|
|||
{}
|
||||
{}
|
|
@ -23,12 +23,11 @@
|
|||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
|
||||
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
|
||||
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
|
||||
<output url="file://$MODULE_DIR$/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" />
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
|
||||
|
@ -36,7 +35,6 @@
|
|||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
|
||||
|
@ -85,18 +83,35 @@
|
|||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/generated/not_namespaced_r_class_sources" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/generated/source/r" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotation_processor_list" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/apk_list" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-libraries" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/checkDebugClasspath" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/checkReleaseClasspath" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/compatible_screen_manifest" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_merged_manifests" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/linked_res_for_bundle" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/module_bundle" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/processed_res" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shader_assets" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/split_list" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/splits-support" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
|
||||
|
@ -105,59 +120,62 @@
|
|||
</content>
|
||||
<orderEntry type="jdk" jdkName="Android API 27 Platform" jdkType="Android SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:fbcore-1.10.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:fresco-1.10.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:drawee-1.10.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.webkit:android-jsc:r174650@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-ads-identifier:16.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:27.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:fresco:1.10.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.react:react-native:0.57.8@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-core-utils:27.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:fbcore:1.10.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-okhttp3-1.10.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-analytics-impl-16.0.5" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-annotations:27.1.1@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-tasks-16.0.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-27.1.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:drawee:1.10.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.11.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-ads-identifier-16.0.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-compat-27.1.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.parse.bolts:bolts-tasks:1.4.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel-1.1.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-base-16.0.4" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-analytics-16.0.5" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-stats-16.0.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:exifinterface:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-analytics-impl:16.0.6@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-v4:27.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp-urlconnection:3.11.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable-27.1.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-core-ui-27.1.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-basement-16.0.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-media-compat-26.1.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-core-utils-27.1.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.webkit:android-jsc-r174650" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-v4-26.1.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-tagmanager-v4-impl-16.0.5" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:27.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-okhttp3:1.10.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-tagmanager-v4-impl:16.0.6@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-base:1.10.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: io.sentry:sentry:1.7.5@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-base-16.0.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-stats:16.0.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.14.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-fragment-27.1.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.core:runtime-1.1.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.soloader:soloader-0.5.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.react:react-native-0.57.5" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-base:16.0.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-core-ui:27.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-compat:27.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.infer.annotation:infer-annotation:0.11.2@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline:1.10.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.slf4j:slf4j-api:1.7.24@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:appcompat-v7-27.1.1" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-media-compat:27.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-basement:16.0.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.code.findbugs:jsr305:3.0.2@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core-1.1.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-fragment:27.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: io.sentry:sentry-android:1.7.5@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-1.10.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:27.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.core:common:1.1.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.fasterxml.jackson.core:jackson-core:2.8.7@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-base-1.10.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime-1.1.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-base:16.0.5@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.facebook.soloader:soloader:0.5.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-tasks:16.0.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-analytics:16.0.6@aar" level="project" />
|
||||
<orderEntry type="module" module-name="react-native-webview" />
|
||||
<orderEntry type="module" module-name="react-native-linear-gradient" />
|
||||
<orderEntry type="module" module-name="react-native-svg" />
|
||||
<orderEntry type="module" module-name="react-native-sentry" />
|
||||
<orderEntry type="module" module-name="react-native-google-analytics-bridge" />
|
||||
<orderEntry type="module" module-name="react-native-haptic-feedback" />
|
||||
<orderEntry type="module" module-name="react-native-gesture-handler" />
|
||||
<orderEntry type="module" module-name="react-native-fs" />
|
||||
<orderEntry type="module" module-name="react-native-prompt-android" />
|
||||
<orderEntry type="module" module-name="react-native-linear-gradient" />
|
||||
<orderEntry type="module" module-name="react-native-vector-icons" />
|
||||
<orderEntry type="module" module-name="react-native-svg" />
|
||||
<orderEntry type="module" module-name="react-native-device-info" />
|
||||
<orderEntry type="module" module-name="react-native-randombytes" />
|
||||
<orderEntry type="module" module-name="react-native-camera" />
|
||||
|
|
|
@ -77,7 +77,6 @@ project.ext.react = [
|
|||
]
|
||||
|
||||
apply from: "../../node_modules/react-native/react.gradle"
|
||||
apply from: "../../node_modules/react-native-sentry/sentry.gradle"
|
||||
|
||||
/**
|
||||
* Set this to true to create two separate APKs instead of one:
|
||||
|
@ -102,22 +101,12 @@ android {
|
|||
applicationId "io.bluewallet.bluewallet"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 18
|
||||
versionName "3.6.0"
|
||||
versionCode 1
|
||||
versionName "3.6.2"
|
||||
ndk {
|
||||
abiFilters "armeabi-v7a", "x86"
|
||||
}
|
||||
}
|
||||
signingConfigs {
|
||||
release {
|
||||
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
|
||||
storeFile file(MYAPP_RELEASE_STORE_FILE)
|
||||
storePassword MYAPP_RELEASE_STORE_PASSWORD
|
||||
keyAlias MYAPP_RELEASE_KEY_ALIAS
|
||||
keyPassword MYAPP_RELEASE_KEY_PASSWORD
|
||||
}
|
||||
}
|
||||
}
|
||||
splits {
|
||||
abi {
|
||||
reset()
|
||||
|
@ -130,7 +119,6 @@ android {
|
|||
release {
|
||||
minifyEnabled enableProguardInReleaseBuilds
|
||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
}
|
||||
// applicationVariants are e.g. debug, release
|
||||
|
@ -150,21 +138,21 @@ android {
|
|||
|
||||
dependencies {
|
||||
compile project(':react-native-webview')
|
||||
compile project(':react-native-camera')
|
||||
compile project(':react-native-fs')
|
||||
compile project(':react-native-gesture-handler')
|
||||
compile project(':react-native-vector-icons')
|
||||
compile project(':react-native-svg')
|
||||
compile project(':react-native-camera')
|
||||
compile project(':react-native-sentry')
|
||||
compile project(':react-native-randombytes')
|
||||
compile project(':react-native-prompt-android')
|
||||
compile project(':react-native-linear-gradient')
|
||||
compile project(':react-native-haptic-feedback')
|
||||
compile project(':react-native-google-analytics-bridge')
|
||||
compile project(':react-native-gesture-handler')
|
||||
compile project(':react-native-fs')
|
||||
compile project(':react-native-device-info')
|
||||
implementation (project(':react-native-camera')) {
|
||||
exclude group: "com.android.support"
|
||||
}
|
||||
implementation "com.android.support:exifinterface:+"
|
||||
implementation "com.android.support:support-annotations:+"
|
||||
implementation "com.android.support:support-v4:27.1.1"
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
|
||||
<application
|
||||
android:name=".MainApplication"
|
||||
|
@ -20,13 +19,6 @@
|
|||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="bitcoin" />
|
||||
<data android:scheme="lightning" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
|
||||
</application>
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
package io.bluewallet.bluewallet;
|
||||
|
||||
import android.app.Application;
|
||||
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.reactnativecommunity.webview.RNCWebViewPackage;
|
||||
import com.oblador.vectoricons.VectorIconsPackage;
|
||||
import com.horcrux.svg.SvgPackage;
|
||||
import io.sentry.RNSentryPackage;
|
||||
import com.bitgo.randombytes.RandomBytesPackage;
|
||||
import im.shimo.react.prompt.RNPromptPackage;
|
||||
import com.BV.LinearGradient.LinearGradientPackage;
|
||||
import com.mkuczera.RNReactNativeHapticFeedbackPackage;
|
||||
import com.idehub.GoogleAnalyticsBridge.GoogleAnalyticsBridgePackage;
|
||||
import com.learnium.RNDeviceInfo.RNDeviceInfo;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.shell.MainReactPackage;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
import org.reactnative.camera.RNCameraPackage;
|
||||
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
|
||||
import com.rnfs.RNFSPackage;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class MainApplication extends Application implements ReactApplication {
|
||||
|
||||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
||||
@Override
|
||||
public boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
return Arrays.<ReactPackage>asList(
|
||||
new MainReactPackage(),
|
||||
new RNCWebViewPackage(),
|
||||
new RNFSPackage() ,
|
||||
new VectorIconsPackage(),
|
||||
new SvgPackage(),
|
||||
new RNSentryPackage(),
|
||||
new RandomBytesPackage(),
|
||||
new RNPromptPackage(),
|
||||
new LinearGradientPackage(),
|
||||
new RNReactNativeHapticFeedbackPackage(),
|
||||
new GoogleAnalyticsBridgePackage(),
|
||||
new RNDeviceInfo(),
|
||||
new RNCameraPackage(),
|
||||
new RNGestureHandlerPackage()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getJSMainModuleName() {
|
||||
return "index";
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public ReactNativeHost getReactNativeHost() {
|
||||
return mReactNativeHost;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
SoLoader.init(this, /* native exopackage */ false);
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
../../../../../../../.././android/app/src/main/java/com/bluewallet/MainApplication.java
|
|
@ -0,0 +1,81 @@
|
|||
package io.bluewallet.bluewallet;
|
||||
|
||||
import android.app.Application;
|
||||
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.reactnativecommunity.webview.RNCWebViewPackage;
|
||||
import com.oblador.vectoricons.VectorIconsPackage;
|
||||
import org.reactnative.camera.RNCameraPackage;
|
||||
import io.sentry.RNSentryPackage;
|
||||
import com.bitgo.randombytes.RandomBytesPackage;
|
||||
import im.shimo.react.prompt.RNPromptPackage;
|
||||
import com.BV.LinearGradient.LinearGradientPackage;
|
||||
import com.mkuczera.RNReactNativeHapticFeedbackPackage;
|
||||
import com.idehub.GoogleAnalyticsBridge.GoogleAnalyticsBridgePackage;
|
||||
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
|
||||
import com.rnfs.RNFSPackage;
|
||||
import com.learnium.RNDeviceInfo.RNDeviceInfo;
|
||||
import org.reactnative.camera.RNCameraPackage;
|
||||
import com.horcrux.svg.SvgPackage;
|
||||
import io.sentry.RNSentryPackage;
|
||||
import com.bitgo.randombytes.RandomBytesPackage;
|
||||
import im.shimo.react.prompt.RNPromptPackage;
|
||||
import com.BV.LinearGradient.LinearGradientPackage;
|
||||
import com.mkuczera.RNReactNativeHapticFeedbackPackage;
|
||||
import com.idehub.GoogleAnalyticsBridge.GoogleAnalyticsBridgePackage;
|
||||
import com.learnium.RNDeviceInfo.RNDeviceInfo;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.shell.MainReactPackage;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
|
||||
import com.rnfs.RNFSPackage;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class MainApplication extends Application implements ReactApplication {
|
||||
|
||||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
||||
@Override
|
||||
public boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
return Arrays.<ReactPackage>asList(
|
||||
new MainReactPackage(),
|
||||
new RNCWebViewPackage(),
|
||||
new SvgPackage(),
|
||||
new RNCameraPackage(),
|
||||
new RNSentryPackage(),
|
||||
new RandomBytesPackage(),
|
||||
new GoogleAnalyticsBridgePackage(),
|
||||
new RNFSPackage(),
|
||||
new RNDeviceInfo(),
|
||||
new VectorIconsPackage(),
|
||||
new RNPromptPackage(),
|
||||
new LinearGradientPackage(),
|
||||
new RNReactNativeHapticFeedbackPackage(),
|
||||
new RNGestureHandlerPackage()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getJSMainModuleName() {
|
||||
return "index";
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public ReactNativeHost getReactNativeHost() {
|
||||
return mReactNativeHost;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
SoLoader.init(this, /* native exopackage */ false);
|
||||
}
|
||||
}
|
|
@ -1,3 +1,3 @@
|
|||
<resources>
|
||||
<string name="app_name">Blue Wallet</string>
|
||||
<string name="app_name">BlueWallet</string>
|
||||
</resources>
|
||||
|
|
|
@ -13,7 +13,7 @@ buildscript {
|
|||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.1.4'
|
||||
classpath 'com.android.tools.build:gradle:3.2.1'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
@ -37,14 +37,3 @@ task wrapper(type: Wrapper) {
|
|||
gradleVersion = '4.4'
|
||||
distributionUrl = distributionUrl.replace("bin", "all")
|
||||
}
|
||||
|
||||
subprojects {
|
||||
project.configurations.all {
|
||||
resolutionStrategy.eachDependency { details ->
|
||||
if (details.requested.group == 'com.android.support'
|
||||
&& !details.requested.name.contains('multidex') ) {
|
||||
details.useVersion "26.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<com.android.support>
|
||||
<support-compat versions="24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<leanback-v17 versions="21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<recommendation versions="23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-tv-provider versions="26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-vector-drawable versions="23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<recyclerview-v7 versions="21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<preference-leanback-v17 versions="23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<preference-v14 versions="23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<percent versions="22.2.0,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-media-compat versions="24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<cardview-v7 versions="21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<wearable versions="26.0.0-alpha1"/>
|
||||
<exifinterface versions="25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-annotations versions="19.1.0,20.0.0,21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<appcompat-v7 versions="18.0.0,19.0.0,19.0.1,19.1.0,20.0.0,21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<palette-v7 versions="21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<multidex-instrumentation versions="1.0.0,1.0.1,1.0.2,1.0.3"/>
|
||||
<multidex versions="1.0.0,1.0.1,1.0.2,1.0.3"/>
|
||||
<mediarouter-v7 versions="18.0.0,19.0.0,19.0.1,19.1.0,20.0.0,21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-alpha4,28.0.0-alpha5,28.0.0-beta01,28.0.0"/>
|
||||
<preference-v7 versions="23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-dynamic-animation versions="25.3.0,25.3.1,25.4.0,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-fragment versions="24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<design versions="22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<transition versions="24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<customtabs versions="23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-core-ui versions="24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<gridlayout-v7 versions="13.0.0,18.0.0,19.0.0,19.0.1,19.1.0,20.0.0,21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<animated-vector-drawable versions="23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-core-utils versions="24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-v13 versions="13.0.0,18.0.0,19.0.0,19.0.1,19.1.0,20.0.0,21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<instantvideo versions="26.0.0-alpha1"/>
|
||||
<support-v4 versions="13.0.0,18.0.0,19.0.0,19.0.1,19.1.0,20.0.0,21.0.0,21.0.2,21.0.3,22.0.0,22.1.0,22.1.1,22.2.0,22.2.1,23.0.0,23.0.1,23.1.0,23.1.1,23.2.0,23.2.1,23.3.0,23.4.0,24.0.0-alpha1,24.0.0-alpha2,24.0.0-beta1,24.0.0,24.1.0,24.1.1,24.2.0,24.2.1,25.0.0,25.0.1,25.1.0,25.1.1,25.2.0,25.3.0,25.3.1,25.4.0,26.0.0-alpha1,26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-emoji versions="26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<wear versions="26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-emoji-appcompat versions="26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-emoji-bundled versions="26.0.0-beta1,26.0.0-beta2,26.0.0,26.0.1,26.0.2,26.1.0,27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<support-content versions="27.0.0,27.0.1,27.0.2,27.1.0,27.1.1,28.0.0-alpha1"/>
|
||||
<design-bottomnavigation versions="28.0.0-alpha1"/>
|
||||
<design-button versions="28.0.0-alpha1"/>
|
||||
<design-circularreveal-cardview versions="28.0.0-alpha1"/>
|
||||
<design-bottomappbar versions="28.0.0-alpha1"/>
|
||||
<design-card versions="28.0.0-alpha1"/>
|
||||
<design-shape versions="28.0.0-alpha1"/>
|
||||
<design-drawable versions="28.0.0-alpha1"/>
|
||||
<design-bottomsheet versions="28.0.0-alpha1"/>
|
||||
<design-floatingactionbutton versions="28.0.0-alpha1"/>
|
||||
<design-circularreveal-coordinatorlayout versions="28.0.0-alpha1"/>
|
||||
<design-textfield versions="28.0.0-alpha1"/>
|
||||
<design-stateful versions="28.0.0-alpha1"/>
|
||||
<design-circularreveal versions="28.0.0-alpha1"/>
|
||||
<design-expandable versions="28.0.0-alpha1"/>
|
||||
<design-navigation versions="28.0.0-alpha1"/>
|
||||
<design-dialog versions="28.0.0-alpha1"/>
|
||||
<design-canvas versions="28.0.0-alpha1"/>
|
||||
<design-tabs versions="28.0.0-alpha1"/>
|
||||
<design-chip versions="28.0.0-alpha1"/>
|
||||
<design-snackbar versions="28.0.0-alpha1"/>
|
||||
<design-theme versions="28.0.0-alpha1"/>
|
||||
<design-math versions="28.0.0-alpha1"/>
|
||||
<design-transformation versions="28.0.0-alpha1"/>
|
||||
<design-widget versions="28.0.0-alpha1"/>
|
||||
<design-animation versions="28.0.0-alpha1"/>
|
||||
<design-typography versions="28.0.0-alpha1"/>
|
||||
<design-color versions="28.0.0-alpha1"/>
|
||||
<design-internal versions="28.0.0-alpha1"/>
|
||||
<design-resources versions="28.0.0-alpha1"/>
|
||||
<design-ripple versions="28.0.0-alpha1"/>
|
||||
<coordinatorlayout versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<collections versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<slidingpanelayout versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<asynclayoutinflater versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<slices-view versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<recyclerview-selection versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<viewpager versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<cursoradapter versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<localbroadcastmanager versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<heifwriter versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<customview versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<print versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<slices-builders versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<interpolator versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<slices-core versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<loader versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<swiperefreshlayout versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<drawerlayout versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<documentfile versions="28.0.0-alpha1,28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<webkit versions="28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<car versions="28.0.0-alpha3,28.0.0-alpha4,28.0.0-alpha5"/>
|
||||
<versionedparcelable versions="28.0.0-alpha3,28.0.0-beta01,28.0.0-rc01,28.0.0-rc02,28.0.0"/>
|
||||
<media2 versions="28.0.0-alpha01,28.0.0-alpha02,28.0.0-alpha03"/>
|
||||
</com.android.support>
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<metadata>
|
||||
<com.android.support.constraint/>
|
||||
<com.android.databinding/>
|
||||
<com.android.support/>
|
||||
<com.android.support.test/>
|
||||
<com.android.support.test.janktesthelper/>
|
||||
<com.android.support.test.uiautomator/>
|
||||
<com.android.support.test.espresso/>
|
||||
<android.arch.persistence.room/>
|
||||
<android.arch.lifecycle/>
|
||||
<android.arch.core/>
|
||||
<com.google.android.instantapps/>
|
||||
<com.google.android.instantapps.thirdpartycompat/>
|
||||
<com.android.java.tools.build/>
|
||||
<com.android.tools/>
|
||||
<com.android.tools.layoutlib/>
|
||||
<com.android.tools.ddms/>
|
||||
<com.android.tools.external.com-intellij/>
|
||||
<com.android.tools.build/>
|
||||
<com.android.tools.analytics-library/>
|
||||
<com.android.tools.internal.build.test/>
|
||||
<com.android.tools.lint/>
|
||||
<com.android.tools.external.org-jetbrains/>
|
||||
<com.android.support.test.espresso.idling/>
|
||||
<com.android.support.test.services/>
|
||||
<com.google.firebase/>
|
||||
<com.google.android.gms/>
|
||||
<com.google.gms/>
|
||||
<android.arch.paging/>
|
||||
<com.crashlytics.sdk.android/>
|
||||
<io.fabric.sdk.android/>
|
||||
<android.arch.persistence/>
|
||||
<com.google.android.wearable/>
|
||||
<com.google.android.support/>
|
||||
<com.android.installreferrer/>
|
||||
<com.google.ar/>
|
||||
<androidx.core/>
|
||||
<com.google.android.things/>
|
||||
<com.android.tools.build.jetifier/>
|
||||
<tools.base.build-system.debug/>
|
||||
<androidx.databinding/>
|
||||
<androidx.constraintlayout/>
|
||||
<org.chromium.net/>
|
||||
<com.google.android.play/>
|
||||
<androidx.multidex/>
|
||||
<com.google.android.material/>
|
||||
<androidx.test.services/>
|
||||
<androidx.test.janktesthelper/>
|
||||
<androidx.test/>
|
||||
<androidx.test.espresso/>
|
||||
<androidx.test.espresso.idling/>
|
||||
<androidx.test.uiautomator/>
|
||||
<androidx.room/>
|
||||
<androidx.paging/>
|
||||
<androidx.lifecycle/>
|
||||
<androidx.sqlite/>
|
||||
<androidx.arch.core/>
|
||||
<android.arch.work/>
|
||||
<android.arch.navigation/>
|
||||
<androidx.mediarouter/>
|
||||
<androidx.percentlayout/>
|
||||
<androidx.emoji/>
|
||||
<androidx.cardview/>
|
||||
<androidx.preference/>
|
||||
<androidx.wear/>
|
||||
<androidx.legacy/>
|
||||
<androidx.documentfile/>
|
||||
<androidx.car/>
|
||||
<androidx.swiperefreshlayout/>
|
||||
<androidx.leanback/>
|
||||
<androidx.appcompat/>
|
||||
<androidx.customview/>
|
||||
<androidx.gridlayout/>
|
||||
<androidx.vectordrawable/>
|
||||
<androidx.heifwriter/>
|
||||
<androidx.transition/>
|
||||
<androidx.print/>
|
||||
<androidx.viewpager/>
|
||||
<androidx.annotation/>
|
||||
<androidx.exifinterface/>
|
||||
<androidx.dynamicanimation/>
|
||||
<androidx.browser/>
|
||||
<androidx.localbroadcastmanager/>
|
||||
<androidx.asynclayoutinflater/>
|
||||
<androidx.contentpager/>
|
||||
<androidx.slidingpanelayout/>
|
||||
<androidx.cursoradapter/>
|
||||
<androidx.media/>
|
||||
<androidx.loader/>
|
||||
<androidx.interpolator/>
|
||||
<androidx.coordinatorlayout/>
|
||||
<androidx.fragment/>
|
||||
<androidx.tvprovider/>
|
||||
<androidx.slice/>
|
||||
<androidx.collection/>
|
||||
<androidx.recommendation/>
|
||||
<androidx.drawerlayout/>
|
||||
<androidx.recyclerview/>
|
||||
<androidx.webkit/>
|
||||
<androidx.palette/>
|
||||
<com.google.ar.sceneform/>
|
||||
<com.google.ar.sceneform.ux/>
|
||||
<androidx.test.ext/>
|
||||
<com.google.android.ads.consent/>
|
||||
<androidx.versionedparcelable/>
|
||||
<androidx.media2/>
|
||||
<com.google.ads.afsn/>
|
||||
<com.google.android.ads/>
|
||||
<androidx.biometric/>
|
||||
<androidx.concurrent/>
|
||||
<androidx.activity/>
|
||||
<com.android.tools.apkparser/>
|
||||
<com.android.tools.pixelprobe/>
|
||||
<androidx.textclassifier/>
|
||||
<androidx.remotecallback/>
|
||||
<com.android.tools.chunkio/>
|
||||
<com.android.tools.fakeadbserver/>
|
||||
<androidx.savedstate/>
|
||||
</metadata>
|
|
@ -1,5 +1,6 @@
|
|||
#Sat Jan 19 02:29:20 GMT 2019
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
rootProject.name = 'BlueWallet'
|
||||
include ':react-native-webview'
|
||||
project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android')
|
||||
include ':react-native-camera'
|
||||
project(':react-native-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-camera/android')
|
||||
include ':react-native-svg'
|
||||
project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android')
|
||||
include ':react-native-fs'
|
||||
project(':react-native-fs').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fs/android')
|
||||
include ':react-native-gesture-handler'
|
||||
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/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-svg'
|
||||
project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android')
|
||||
include ':react-native-sentry'
|
||||
project(':react-native-sentry').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sentry/android')
|
||||
include ':react-native-randombytes'
|
||||
|
|
5
app.json
5
app.json
|
@ -1,7 +1,4 @@
|
|||
{
|
||||
"displayName": "Blue Wallet",
|
||||
"name": "BlueWallet",
|
||||
"ios": {
|
||||
"buildNumber": "118"
|
||||
}
|
||||
"displayName": "BlueWallet"
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1010"
|
||||
LastUpgradeVersion = "0940"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "NO"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1010"
|
||||
LastUpgradeVersion = "0940"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "NO"
|
||||
|
|
|
@ -22,16 +22,18 @@
|
|||
{
|
||||
NSURL *jsCodeLocation;
|
||||
|
||||
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
|
||||
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
|
||||
#ifdef DEBUG
|
||||
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
|
||||
#else
|
||||
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
|
||||
#endif
|
||||
|
||||
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
|
||||
moduleName:@"BlueWallet"
|
||||
initialProperties:nil
|
||||
launchOptions:launchOptions];
|
||||
|
||||
[RNSentry installWithRootView:rootView];
|
||||
|
||||
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
|
||||
|
||||
[RNSentry installWithRootView:rootView];
|
||||
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
||||
UIViewController *rootViewController = [UIViewController new];
|
||||
rootViewController.view = rootView;
|
||||
|
@ -40,11 +42,8 @@ RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
|
|||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
|
||||
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
|
||||
{
|
||||
return [RCTLinkingManager application:application openURL:url
|
||||
sourceApplication:sourceApplication annotation:annotation];
|
||||
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
|
||||
return [RCTLinkingManager application:app openURL:url options:options];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Blue Wallet</string>
|
||||
<string>BlueWallet</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
@ -17,7 +17,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.6.0</string>
|
||||
<string>3.6.2</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
37
package-lock.json
generated
37
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "BlueWallet",
|
||||
"version": "3.6.0",
|
||||
"version": "3.6.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -9124,9 +9124,9 @@
|
|||
}
|
||||
},
|
||||
"react-native-device-info": {
|
||||
"version": "0.24.3",
|
||||
"resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-0.24.3.tgz",
|
||||
"integrity": "sha512-usW00Wk6DoXH1eRSMt07j0uYvuka3SIEnJ9girlddAacyqwfa1QMVTN4eYmtaBzuMd/avhis8iHZQ3cLaR9CMA=="
|
||||
"version": "0.25.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-0.25.0.tgz",
|
||||
"integrity": "sha512-5egYoRhO6OE4VHC2RZtjNYxuXtwR2oexoI1GwvAiYzyGEc2pkMaC59xN2W0NX0mDxhkfaDsMzc+WArLqSg62xA=="
|
||||
},
|
||||
"react-native-elements": {
|
||||
"version": "0.19.1",
|
||||
|
@ -9361,6 +9361,35 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"react-native-wkwebview-reborn": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-wkwebview-reborn/-/react-native-wkwebview-reborn-2.0.0.tgz",
|
||||
"integrity": "sha512-upHQ471Wv4uV1/t6ZivYQVm05NyLRKZW8es/EdBl7UCdDoDVWD+1RBhu70ACPyW8EjX1DpMgK0SZvA4o0dt+8w==",
|
||||
"requires": {
|
||||
"fbjs": "^0.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": {
|
||||
"version": "1.2.7",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
|
||||
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
|
||||
},
|
||||
"fbjs": {
|
||||
"version": "0.8.17",
|
||||
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
|
||||
"integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
|
||||
"requires": {
|
||||
"core-js": "^1.0.0",
|
||||
"isomorphic-fetch": "^2.1.1",
|
||||
"loose-envify": "^1.0.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"promise": "^7.1.1",
|
||||
"setimmediate": "^1.0.5",
|
||||
"ua-parser-js": "^0.7.18"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"react-navigation": {
|
||||
"version": "3.0.9",
|
||||
"resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-3.0.9.tgz",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "BlueWallet",
|
||||
"version": "3.6.0",
|
||||
"version": "3.6.2",
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^8.2.6",
|
||||
"babel-jest": "23.6.0",
|
||||
|
@ -62,7 +62,7 @@
|
|||
"react-native": "^0.57.8",
|
||||
"react-native-camera": "^1.8.0",
|
||||
"react-native-custom-qr-codes": "^2.0.0",
|
||||
"react-native-device-info": "^0.24.3",
|
||||
"react-native-device-info": "^0.25.0",
|
||||
"react-native-elements": "^0.19.0",
|
||||
"react-native-flexi-radio-button": "^0.2.2",
|
||||
"react-native-fs": "^2.13.3",
|
||||
|
@ -83,13 +83,13 @@
|
|||
"react-native-svg": "^8.0.10",
|
||||
"react-native-vector-icons": "^6.0.2",
|
||||
"react-native-webview": "2.8.0",
|
||||
"react-native-wkwebview-reborn": "^2.0.0",
|
||||
"react-navigation": "^3.0.9",
|
||||
"react-test-render": "^1.1.1",
|
||||
"readable-stream": "^1.1.14",
|
||||
"request-promise-native": "^1.0.5",
|
||||
"secure-random": "^1.1.1",
|
||||
"stream-browserify": "^1.0.0",
|
||||
"util": "^0.10.4",
|
||||
"wif": "^2.0.1"
|
||||
},
|
||||
"react-native": {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import React, { Component } from 'react';
|
||||
import { TouchableOpacity, ActivityIndicator, View, Alert, Dimensions } from 'react-native';
|
||||
import { TouchableOpacity, ActivityIndicator, View, Platform, Alert, Dimensions } from 'react-native';
|
||||
import { WebView } from 'react-native-webview';
|
||||
import WKWebView from 'react-native-wkwebview-reborn';
|
||||
import { BlueNavigationStyle, SafeBlueArea } from '../../BlueComponents';
|
||||
import { FormInput } from 'react-native-elements';
|
||||
import Ionicons from 'react-native-vector-icons/Ionicons';
|
||||
|
@ -17,7 +18,7 @@ let bluewalletResponses = {};
|
|||
// eslint-disable-next-line
|
||||
var webln = {
|
||||
enable: function() {
|
||||
window.postMessage('enable');
|
||||
window.postMessage(JSON.stringify({ enable: true }));
|
||||
return new Promise(function(resolve, reject) {
|
||||
resolve(true);
|
||||
});
|
||||
|
@ -66,166 +67,8 @@ var webln = {
|
|||
/// /////////////////
|
||||
/// /////////////////
|
||||
|
||||
export default class Browser extends Component {
|
||||
static navigationOptions = ({ navigation }) => ({
|
||||
...BlueNavigationStyle(navigation, true),
|
||||
title: 'Lapp Browser',
|
||||
headerLeft: null,
|
||||
});
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
if (!props.navigation.getParam('fromSecret')) throw new Error('Invalid param');
|
||||
if (!props.navigation.getParam('fromWallet')) throw new Error('Invalid param');
|
||||
|
||||
this.state = {
|
||||
url: 'https://bluewallet.io/marketplace/',
|
||||
pageIsLoading: false,
|
||||
fromSecret: props.navigation.getParam('fromSecret'),
|
||||
fromWallet: props.navigation.getParam('fromWallet'),
|
||||
};
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<SafeBlueArea>
|
||||
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
this.webview.goBack();
|
||||
}}
|
||||
>
|
||||
<Ionicons
|
||||
name={'ios-arrow-round-back'}
|
||||
size={36}
|
||||
style={{
|
||||
color: 'red',
|
||||
backgroundColor: 'transparent',
|
||||
paddingLeft: 10,
|
||||
}}
|
||||
/>
|
||||
</TouchableOpacity>
|
||||
|
||||
<FormInput
|
||||
inputStyle={{ color: '#0c2550', maxWidth: width - 150, fontSize: 16 }}
|
||||
containerStyle={{
|
||||
maxWidth: width - 150,
|
||||
borderColor: '#d2d2d2',
|
||||
borderWidth: 0.5,
|
||||
backgroundColor: '#f5f5f5',
|
||||
}}
|
||||
value={this.state.url}
|
||||
/>
|
||||
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
this.setState({ url: 'https://bluewallet.io/marketplace/' });
|
||||
}}
|
||||
>
|
||||
<Ionicons
|
||||
name={'ios-home'}
|
||||
size={36}
|
||||
style={{
|
||||
color: 'red',
|
||||
backgroundColor: 'transparent',
|
||||
}}
|
||||
/>
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
this.webview.reload();
|
||||
}}
|
||||
>
|
||||
{(!this.state.pageIsLoading && (
|
||||
<Ionicons
|
||||
name={'ios-sync'}
|
||||
size={36}
|
||||
style={{
|
||||
color: 'red',
|
||||
backgroundColor: 'transparent',
|
||||
paddingLeft: 15,
|
||||
}}
|
||||
/>
|
||||
)) || (
|
||||
<View style={{ paddingLeft: 20 }}>
|
||||
<ActivityIndicator />
|
||||
</View>
|
||||
)}
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
<WebView
|
||||
ref={ref => (this.webview = ref)}
|
||||
source={{ uri: this.state.url }}
|
||||
mixedContentMode={'compatibility'}
|
||||
onMessage={e => {
|
||||
// this is a handler which receives messages sent from within the browser
|
||||
console.log('---- message from the bus:', e.nativeEvent.data);
|
||||
let json = false;
|
||||
try {
|
||||
json = JSON.parse(e.nativeEvent.data);
|
||||
} catch (_) {}
|
||||
// message from browser has ln invoice
|
||||
if (json && json.sendPayment) {
|
||||
// checking that we do not trigger alert too often:
|
||||
if (+new Date() - lastTimeTriedToPay < 3000) {
|
||||
return;
|
||||
}
|
||||
lastTimeTriedToPay = +new Date();
|
||||
|
||||
// checking that already asked about this invoice:
|
||||
if (processedInvoices[json.sendPayment]) {
|
||||
return;
|
||||
} else {
|
||||
processedInvoices[json.sendPayment] = 1;
|
||||
}
|
||||
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page asks for permission to pay an invoice',
|
||||
[
|
||||
{ text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Pay',
|
||||
onPress: () => {
|
||||
console.log('OK Pressed');
|
||||
this.props.navigation.navigate({
|
||||
routeName: 'ScanLndInvoice',
|
||||
params: {
|
||||
uri: json.sendPayment,
|
||||
fromSecret: this.state.fromSecret,
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
|
||||
if (json && json.makeInvoice) {
|
||||
let amount = Math.max(+json.makeInvoice.minimumAmount, +json.makeInvoice.maximumAmount, +json.makeInvoice.defaultAmount);
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page wants to pay you ' + amount + ' sats (' + json.makeInvoice.defaultMemo + ')',
|
||||
[
|
||||
{ text: 'No thanks', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Accept',
|
||||
onPress: async () => {
|
||||
/** @type {LightningCustodianWallet} */
|
||||
const fromWallet = this.state.fromWallet;
|
||||
const payreq = await fromWallet.addInvoice(amount, json.makeInvoice.defaultMemo || ' ');
|
||||
this.webview.postMessage(JSON.stringify({ bluewalletResponse: { paymentRequest: payreq }, id: json.id }));
|
||||
},
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
}}
|
||||
injectedJavaScript={`
|
||||
let alreadyInjected = false;
|
||||
const injectedParadise = `
|
||||
|
||||
/* rules:
|
||||
no 'let', only 'var'
|
||||
|
@ -251,7 +94,7 @@ bluewalletResponses = {};
|
|||
|
||||
webln = {
|
||||
enable : function () {
|
||||
window.postMessage('enable');
|
||||
window.postMessage(JSON.stringify({'enable': true}));
|
||||
return new Promise(function(resolve, reject){
|
||||
resolve(true);
|
||||
})
|
||||
|
@ -327,6 +170,7 @@ function tryToPay(invoice) {
|
|||
searching for all bolt11 manually */
|
||||
|
||||
setInterval(function() {
|
||||
window.postMessage('interval');
|
||||
|
||||
var searchText = "lnbc";
|
||||
|
||||
|
@ -362,14 +206,288 @@ setInterval(function() {
|
|||
|
||||
}, 1000);
|
||||
|
||||
`}
|
||||
`;
|
||||
|
||||
export default class Browser extends Component {
|
||||
static navigationOptions = ({ navigation }) => ({
|
||||
...BlueNavigationStyle(navigation, true),
|
||||
title: 'Lapp Browser',
|
||||
headerLeft: null,
|
||||
});
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
if (!props.navigation.getParam('fromSecret')) throw new Error('Invalid param');
|
||||
if (!props.navigation.getParam('fromWallet')) throw new Error('Invalid param');
|
||||
|
||||
this.state = {
|
||||
url: 'https://bluewallet.io/marketplace/',
|
||||
pageIsLoading: false,
|
||||
fromSecret: props.navigation.getParam('fromSecret'),
|
||||
fromWallet: props.navigation.getParam('fromWallet'),
|
||||
};
|
||||
}
|
||||
|
||||
renderWebView = () => {
|
||||
if (Platform.OS === 'android') {
|
||||
return (
|
||||
<WebView
|
||||
ref={ref => (this.webview = ref)}
|
||||
source={{ uri: this.state.url }}
|
||||
onMessage={e => {
|
||||
// this is a handler which receives messages sent from within the browser
|
||||
console.log('---- message from the bus:', e.nativeEvent.data);
|
||||
let json = false;
|
||||
try {
|
||||
json = JSON.parse(e.nativeEvent.data);
|
||||
} catch (_) {}
|
||||
// message from browser has ln invoice
|
||||
if (json && json.sendPayment) {
|
||||
// checking that already asked about this invoice:
|
||||
if (processedInvoices[json.sendPayment]) {
|
||||
return;
|
||||
} else {
|
||||
// checking that we do not trigger alert too often:
|
||||
if (+new Date() - lastTimeTriedToPay < 3000) {
|
||||
return;
|
||||
}
|
||||
lastTimeTriedToPay = +new Date();
|
||||
//
|
||||
processedInvoices[json.sendPayment] = 1;
|
||||
}
|
||||
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page asks for permission to pay an invoice',
|
||||
[
|
||||
{ text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Pay',
|
||||
onPress: () => {
|
||||
console.log('OK Pressed');
|
||||
this.props.navigation.navigate({
|
||||
routeName: 'ScanLndInvoice',
|
||||
params: {
|
||||
uri: json.sendPayment,
|
||||
fromSecret: this.state.fromSecret,
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
|
||||
if (json && json.makeInvoice) {
|
||||
let amount = Math.max(+json.makeInvoice.minimumAmount, +json.makeInvoice.maximumAmount, +json.makeInvoice.defaultAmount);
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page wants to pay you ' + amount + ' sats (' + json.makeInvoice.defaultMemo + ')',
|
||||
[
|
||||
{ text: 'No thanks', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Accept',
|
||||
onPress: async () => {
|
||||
/** @type {LightningCustodianWallet} */
|
||||
const fromWallet = this.state.fromWallet;
|
||||
const payreq = await fromWallet.addInvoice(amount, json.makeInvoice.defaultMemo || ' ');
|
||||
this.webview.postMessage(JSON.stringify({ bluewalletResponse: { paymentRequest: payreq }, id: json.id }));
|
||||
},
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
|
||||
if (json && json.enable) {
|
||||
console.log('webln enabled');
|
||||
this.setState({ weblnEnabled: true });
|
||||
}
|
||||
}}
|
||||
onLoadStart={e => {
|
||||
this.setState({ pageIsLoading: true });
|
||||
alreadyInjected = false;
|
||||
console.log('load start');
|
||||
this.setState({ pageIsLoading: true, weblnEnabled: false });
|
||||
}}
|
||||
onLoadEnd={e => {
|
||||
console.log('load end');
|
||||
this.setState({ url: e.nativeEvent.url, pageIsLoading: false });
|
||||
}}
|
||||
onLoadProgress={e => {
|
||||
console.log('progress:', e.nativeEvent.progress);
|
||||
if (!alreadyInjected && e.nativeEvent.progress > 0.5) {
|
||||
this.webview.injectJavaScript(injectedParadise);
|
||||
alreadyInjected = true;
|
||||
console.log('injected');
|
||||
}
|
||||
}}
|
||||
/>
|
||||
);
|
||||
} else if (Platform.OS === 'ios') {
|
||||
return (
|
||||
<WKWebView
|
||||
ref={ref => (this.webview = ref)}
|
||||
source={{ uri: this.state.url }}
|
||||
injectJavaScript={injectedParadise}
|
||||
onMessage={e => {
|
||||
// this is a handler which receives messages sent from within the browser
|
||||
console.log('---- message from the bus:', e.nativeEvent.data);
|
||||
let json = false;
|
||||
try {
|
||||
json = JSON.parse(e.nativeEvent.data);
|
||||
} catch (_) {}
|
||||
// message from browser has ln invoice
|
||||
if (json && json.sendPayment) {
|
||||
// checking that we do not trigger alert too often:
|
||||
if (+new Date() - lastTimeTriedToPay < 3000) {
|
||||
return;
|
||||
}
|
||||
lastTimeTriedToPay = +new Date();
|
||||
|
||||
// checking that already asked about this invoice:
|
||||
if (processedInvoices[json.sendPayment]) {
|
||||
return;
|
||||
} else {
|
||||
processedInvoices[json.sendPayment] = 1;
|
||||
}
|
||||
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page asks for permission to pay an invoice',
|
||||
[
|
||||
{ text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Pay',
|
||||
onPress: () => {
|
||||
console.log('OK Pressed');
|
||||
this.props.navigation.navigate({
|
||||
routeName: 'ScanLndInvoice',
|
||||
params: {
|
||||
uri: json.sendPayment,
|
||||
fromSecret: this.state.fromSecret,
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
|
||||
if (json && json.makeInvoice) {
|
||||
let amount = Math.max(+json.makeInvoice.minimumAmount, +json.makeInvoice.maximumAmount, +json.makeInvoice.defaultAmount);
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page wants to pay you ' + amount + ' sats (' + json.makeInvoice.defaultMemo + ')',
|
||||
[
|
||||
{ text: 'No thanks', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Accept',
|
||||
onPress: async () => {
|
||||
/** @type {LightningCustodianWallet} */
|
||||
const fromWallet = this.state.fromWallet;
|
||||
const payreq = await fromWallet.addInvoice(amount, json.makeInvoice.defaultMemo || ' ');
|
||||
this.webview.postMessage(JSON.stringify({ bluewalletResponse: { paymentRequest: payreq }, id: json.id }));
|
||||
},
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
|
||||
if (json && json.enable) {
|
||||
console.log('webln enabled');
|
||||
this.setState({ weblnEnabled: true });
|
||||
}
|
||||
}}
|
||||
onLoadStart={e => {
|
||||
alreadyInjected = false;
|
||||
console.log('load start');
|
||||
this.setState({ pageIsLoading: true, weblnEnabled: false });
|
||||
}}
|
||||
onLoadEnd={e => {
|
||||
console.log('load end');
|
||||
this.setState({ url: e.nativeEvent.url, pageIsLoading: false });
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
};
|
||||
render() {
|
||||
return (
|
||||
<SafeBlueArea>
|
||||
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
this.webview.goBack();
|
||||
}}
|
||||
>
|
||||
<Ionicons
|
||||
name={'ios-arrow-round-back'}
|
||||
size={36}
|
||||
style={{
|
||||
color: 'red',
|
||||
backgroundColor: 'transparent',
|
||||
paddingLeft: 10,
|
||||
}}
|
||||
/>
|
||||
</TouchableOpacity>
|
||||
|
||||
<FormInput
|
||||
inputStyle={{ color: '#0c2550', maxWidth: width - 150, fontSize: 16 }}
|
||||
containerStyle={{
|
||||
maxWidth: width - 150,
|
||||
borderColor: '#d2d2d2',
|
||||
borderWidth: 0.5,
|
||||
backgroundColor: '#f5f5f5',
|
||||
}}
|
||||
value={this.state.url}
|
||||
/>
|
||||
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
processedInvoices = {};
|
||||
this.setState({ url: 'https://bluewallet.io/marketplace/' });
|
||||
}}
|
||||
>
|
||||
<Ionicons
|
||||
name={'ios-home'}
|
||||
size={36}
|
||||
style={{
|
||||
color: this.state.weblnEnabled ? 'green' : 'red',
|
||||
backgroundColor: 'transparent',
|
||||
}}
|
||||
/>
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
let reloadUrl = this.state.url;
|
||||
this.setState({ url: 'about:blank' });
|
||||
processedInvoices = {};
|
||||
setTimeout(() => this.setState({ url: reloadUrl }), 500);
|
||||
// this.webview.reload();
|
||||
}}
|
||||
>
|
||||
{(!this.state.pageIsLoading && (
|
||||
<Ionicons
|
||||
name={'ios-sync'}
|
||||
size={36}
|
||||
style={{
|
||||
color: 'red',
|
||||
backgroundColor: 'transparent',
|
||||
paddingLeft: 15,
|
||||
}}
|
||||
/>
|
||||
)) || (
|
||||
<View style={{ paddingLeft: 20 }}>
|
||||
<ActivityIndicator />
|
||||
</View>
|
||||
)}
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
{this.renderWebView()}
|
||||
</SafeBlueArea>
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue