google free and metrics free

Signed-off-by: andrey <motor4ik@gmail.com>
This commit is contained in:
andrey 2022-05-16 11:28:03 +02:00
parent 95be83756b
commit f39b688e89
No known key found for this signature in database
GPG Key ID: 89B67245FD2F0272
85 changed files with 89 additions and 6390 deletions

2
.env
View File

@ -21,13 +21,11 @@ STATUS_GO_ENABLE_NIMBUS=0
KEYCARD_TEST_MENU=0
QR_READ_TEST_MENU=1
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=1
ENABLE_QUO_PREVIEW=1
MAX_IMAGES_BATCH=5
APN_TOPIC=im.status.ethereum.pr
COMMUNITIES_ENABLED=1
DATABASE_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1
COLLECTIBLES_ENABLED=1
COMMANDS_ENABLED=1

View File

@ -21,7 +21,6 @@ COMMANDS_ENABLED=1
KEYCARD_TEST_MENU=1
QR_READ_TEST_MENU=1
ENABLE_ROOT_ALERT=0
ENABLE_REFERRAL_INVITE=1
MAX_IMAGES_BATCH=5
APN_TOPIC=im.status.ethereum.pr
VERIFY_TRANSACTION_CHAIN_ID=3
@ -30,7 +29,6 @@ TEST_STATEOFUS=1
DATABASE_MANAGEMENT_ENABLED=1
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1
TWO_MINUTES_SYNCING=1
STICKERS_TEST_ENABLED=1

View File

@ -20,7 +20,6 @@ STATUS_GO_ENABLE_NIMBUS=0
COMMANDS_ENABLED=1
KEYCARD_TEST_MENU=0
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=1
DISABLE_WALLET_ON_MOBILE_NETWORK=1
APN_TOPIC=im.status.ethereum.pr
VERIFY_TRANSACTION_CHAIN_ID=3
@ -28,11 +27,9 @@ VERIFY_ENS_CHAIN_ID=3
TEST_STATEOFUS=1
BLANK_PREVIEW=0
MAX_IMAGES_BATCH=5
GOOGLE_FREE=0
DATABASE_MANAGEMENT_ENABLED=1
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1
TWO_MINUTES_SYNCING=1
ENABLE_QUO_PREVIEW=1

View File

@ -16,10 +16,8 @@ RPC_NETWORKS_ONLY=0
PARTITIONED_TOPIC=0
CONTRACT_NODES=1
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=0
MAX_IMAGES_BATCH=5
BLANK_PREVIEW=0
COMMUNITIES_ENABLED=1
DATABASE_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1

View File

@ -16,7 +16,5 @@ RPC_NETWORKS_ONLY=1
PARTITIONED_TOPIC=0
ENABLE_ROOT_ALERT=1
MAX_IMAGES_BATCH=1
ENABLE_REFERRAL_INVITE=0
METRICS_ENABLED=0
DELETE_MESSAGE_ENABLED=1
COLLECTIBLES_ENABLED=1

View File

@ -205,9 +205,7 @@ release-fdroid: export BUILD_TYPE = release
release-fdroid: export ANDROID_APK_SIGNED = false
release-fdroid: export ANDROID_ABI_SPLIT = false
release-fdroid: export ANDROID_ABI_INCLUDE = armeabi-v7a;arm64-v8a;x86;x86_64
release-fdroid: export READER_FEATURES = google-free
release-fdroid: ##@build Build release for F-Droid
scripts/google-free.sh
scripts/release-android.sh
release-ios: export TARGET := ios

View File

@ -123,11 +123,6 @@ def jscFlavor = 'org.webkit:android-jsc:+'
*/
def enableHermes = project.ext.react.get("enableHermes", false);
/**
* Exclude google library so we can publish to external android stores
*/
def googleFree = project.env.get("GOOGLE_FREE", 0) == '1'
def getCommitHash = { ->
if (project.hasProperty("commitHash")) {
return project.commitHash
@ -335,16 +330,6 @@ dependencies {
implementation jscFlavor
}
if (googleFree) {
implementation(project(':react-native-device-info')) {
exclude group: 'com.google.firebase'
exclude group: 'com.google.android.gms'
exclude group: 'com.android.installreferrer'
}
} else {
implementation 'com.google.firebase:firebase-messaging:23.0.0'
}
// react-native-screens
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
@ -396,7 +381,3 @@ task hemroidBuild(type: Exec) {
preBuild.dependsOn hemroidBuild
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
if (!googleFree) {
apply plugin: "com.google.gms.google-services"
}

View File

@ -1,119 +0,0 @@
{
"project_info": {
"project_number": "854811651919",
"firebase_url": "https://status-react-app.firebaseio.com",
"project_id": "status-react-app",
"storage_bucket": "status-react-app.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:854811651919:android:11ee7444ded8a00a",
"android_client_info": {
"package_name": "im.status.ethereum"
}
},
"oauth_client": [
{
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "im.status.ethereum"
}
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:854811651919:android:15dbe4af1e06ca3e005f3a",
"android_client_info": {
"package_name": "im.status.ethereum.debug"
}
},
"oauth_client": [
{
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "im.status.ethereum"
}
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:854811651919:android:1d0d69fe8c1bb89b005f3a",
"android_client_info": {
"package_name": "im.status.ethereum.pr"
}
},
"oauth_client": [
{
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "im.status.ethereum"
}
}
]
}
}
}
],
"configuration_version": "1"
}

View File

@ -81,12 +81,6 @@
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider_paths" />
</provider>
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/notification_icon" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/notification_icon_color" />
</application>
</manifest>

View File

@ -2,5 +2,4 @@
<resources>
<color name="alert_background">#ffffff</color>
<color name="alert_text">#000000</color>
<color name="notification_icon_color">#4360DF</color>
</resources>

View File

@ -22,7 +22,6 @@ buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31"
classpath "com.android.tools.build:gradle:${project.ext.gradlePluginVersion}"
classpath "com.google.gms:google-services:4.3.10"
// WARNING: Do not place your application dependencies here!
// They belong in the individual module build.gradle files.
}

View File

@ -2,7 +2,7 @@ PODS:
- boost-for-react-native (1.63.0)
- BVLinearGradient (2.5.6):
- React
- CryptoSwift (1.5.1)
- CryptoSwift (1.4.3)
- DoubleConversion (1.1.6)
- FBLazyVector (0.63.4)
- FBReactNativeSpec (0.63.4):
@ -226,8 +226,6 @@ PODS:
- React-Core
- react-native-netinfo (4.7.0):
- React
- react-native-notifications (4.1.3):
- React-Core
- react-native-randombytes (3.6.1):
- React-Core
- react-native-safe-area-context (2.0.0):
@ -326,8 +324,6 @@ PODS:
- React
- RNCPushNotificationIOS (1.4.1):
- React
- RNDeviceInfo (7.4.0):
- React-Core
- RNFastImage (8.5.11):
- React-Core
- SDWebImage (~> 5.11.1)
@ -436,7 +432,6 @@ DEPENDENCIES:
- react-native-image-resizer (from `../node_modules/react-native-image-resizer`)
- react-native-mail (from `../node_modules/react-native-mail`)
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
- react-native-notifications (from `../node_modules/react-native-notifications`)
- react-native-randombytes (from `../node_modules/react-native-randombytes`)
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- react-native-shake (from `../node_modules/react-native-shake`)
@ -461,7 +456,6 @@ DEPENDENCIES:
- "RNCClipboard (from `../node_modules/@react-native-community/clipboard`)"
- "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)"
- "RNCPushNotificationIOS (from `../node_modules/@react-native-community/push-notification-ios`)"
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
- RNFastImage (from `../node_modules/react-native-fast-image`)
- RNFS (from `../node_modules/react-native-fs`)
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
@ -549,8 +543,6 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-mail"
react-native-netinfo:
:path: "../node_modules/@react-native-community/netinfo"
react-native-notifications:
:path: "../node_modules/react-native-notifications"
react-native-randombytes:
:path: "../node_modules/react-native-randombytes"
react-native-safe-area-context:
@ -599,8 +591,6 @@ EXTERNAL SOURCES:
:path: "../node_modules/@react-native-community/masked-view"
RNCPushNotificationIOS:
:path: "../node_modules/@react-native-community/push-notification-ios"
RNDeviceInfo:
:path: "../node_modules/react-native-device-info"
RNFastImage:
:path: "../node_modules/react-native-fast-image"
RNFS:
@ -643,12 +633,12 @@ CHECKOUT OPTIONS:
SPEC CHECKSUMS:
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
CryptoSwift: c4f2debceb38bf44c80659afe009f71e23e4a082
CryptoSwift: a0799ee936271bd2253a006f1e4523df21845000
DoubleConversion: cde416483dac037923206447da6e1454df403714
FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e
FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
glog: 61334f8bdb4deea07543d4fbac3fb5948e78a7a5
glog: 2d7c14bbcd0c3139c6258f813895cb61d7860fcc
HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352
Keycard: 07f1b4d4fadcf1218084cb3e1bb3a8bac3870c5a
libwebp: 98a37e597e40bfdb4c911fc98f2c53d0b12d05fc
@ -673,7 +663,6 @@ SPEC CHECKSUMS:
react-native-image-resizer: 2f1577efa3bc762597681f530c8e8d05ce0ceeb3
react-native-mail: 8fdcd3aef007c33a6877a18eb4cf7447a1d4ce4a
react-native-netinfo: ddaca8bbb9e6e914b1a23787ccb879bc642931c9
react-native-notifications: 805108822ceff3440644d5701944f0cda35f5b4b
react-native-randombytes: 421f1c7d48c0af8dbcd471b0324393ebf8fe7846
react-native-safe-area-context: 60f654e00b6cc416573f6d5dbfce3839958eb57a
react-native-shake: de052eaa3eadc4a326b8ddd7ac80c06e8d84528c
@ -698,7 +687,6 @@ SPEC CHECKSUMS:
RNCClipboard: 8148e21ac347c51fd6cd4b683389094c216bb543
RNCMaskedView: 71fc32d971f03b7f03d6ab6b86b730c4ee64f5b6
RNCPushNotificationIOS: c145c6253ea016e5efeff604f2720736b4a596f7
RNDeviceInfo: 9538a884f862fe4aa0d7cead9f34e292d41ba8f6
RNFastImage: 1f2cab428712a4baaf78d6169eaec7f622556dd7
RNFS: 2bd9eb49dc82fa9676382f0585b992c424cd59df
RNGestureHandler: 7a5833d0f788dbd107fbb913e09aa0c1ff333c39

File diff suppressed because it is too large Load Diff

View File

@ -70,7 +70,6 @@ androidx.savedstate:savedstate:1.1.0
androidx.slidingpanelayout:slidingpanelayout:1.0.0
androidx.swiperefreshlayout:swiperefreshlayout:1.0.0
androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
androidx.test:monitor:1.2.0
androidx.tracing:tracing:1.0.0
androidx.transition:transition:1.2.0
androidx.transition:transition:1.2.0-rc01
@ -84,8 +83,6 @@ androidx.versionedparcelable:versionedparcelable:1.1.1
androidx.viewpager2:viewpager2:1.0.0
androidx.viewpager:viewpager:1.0.0
androidx.webkit:webkit:1.4.0
backport-util-concurrent:backport-util-concurrent:3.1
classworlds:classworlds:1.1-alpha-2
commons-codec:commons-codec:1.4
commons-codec:commons-codec:1.6
commons-codec:commons-codec:1.9
@ -96,7 +93,6 @@ commons-logging:commons-logging:1.2
com.adobe.xmp:xmpcore:5.1.2
com.afollestad.material-dialogs:commons:0.9.6.0
com.afollestad.material-dialogs:core:0.9.6.0
com.almworks.sqlite4java:sqlite4java:0.282
com.android.databinding:baseLibrary:1.0-rc5
com.android.databinding:baseLibrary:3.0.0
com.android.databinding:baseLibrary:3.0.1
@ -108,7 +104,6 @@ com.android.databinding:compilerCommon:1.0-rc5
com.android.databinding:compilerCommon:3.0.0
com.android.databinding:compilerCommon:3.0.1
com.android.databinding:compilerCommon:3.1.4
com.android.installreferrer:installreferrer:1.1.2
com.android.tools.analytics-library:crash:26.2.1
com.android.tools.analytics-library:crash:26.3.1
com.android.tools.analytics-library:crash:26.5.4
@ -365,25 +360,8 @@ com.github.wix-playground:reflow-animator:1.0.6
com.github.yalantis:ucrop:2.2.6-native
com.googlecode.json-simple:json-simple:1.1
com.googlecode.juniversalchardet:juniversalchardet:1.0.3
com.google.android.apps.common.testing.accessibility.framework:accessibility-test-framework:2.1
com.google.android.datatransport:transport-api:2.2.1
com.google.android.datatransport:transport-api:3.0.0
com.google.android.datatransport:transport-backend-cct:2.3.3
com.google.android.datatransport:transport-backend-cct:3.0.0
com.google.android.datatransport:transport-runtime:2.2.5
com.google.android.datatransport:transport-runtime:3.0.0
com.google.android.gms:play-services-basement:17.0.0
com.google.android.gms:play-services-base:17.0.0
com.google.android.gms:play-services-cloud-messaging:16.0.0
com.google.android.gms:play-services-cloud-messaging:17.0.0
com.google.android.gms:play-services-iid:17.0.0
com.google.android.gms:play-services-stats:17.0.0
com.google.android.gms:play-services-tasks:17.0.0
com.google.android.gms:strict-version-matcher-plugin:1.2.2
com.google.android.material:material:1.2.0-alpha03
com.google.auto.service:auto-service:1.0-rc4
com.google.auto.value:auto-value:1.5.2
com.google.auto:auto-common:0.8
com.google.code.findbugs:jsr305:1.3.9
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.2.4
@ -396,28 +374,6 @@ com.google.errorprone:error_prone_annotations:2.0.18
com.google.errorprone:error_prone_annotations:2.1.2
com.google.errorprone:error_prone_annotations:2.2.0
com.google.errorprone:error_prone_annotations:2.3.1
com.google.firebase:firebase-annotations:16.0.0
com.google.firebase:firebase-common:19.5.0
com.google.firebase:firebase-common:20.0.0
com.google.firebase:firebase-components:16.1.0
com.google.firebase:firebase-components:17.0.0
com.google.firebase:firebase-datatransport:17.0.10
com.google.firebase:firebase-datatransport:18.0.0
com.google.firebase:firebase-encoders-json:17.1.0
com.google.firebase:firebase-encoders-json:18.0.0
com.google.firebase:firebase-encoders:16.1.0
com.google.firebase:firebase-encoders:17.0.0
com.google.firebase:firebase-iid-interop:17.1.0
com.google.firebase:firebase-iid:21.1.0
com.google.firebase:firebase-installations-interop:16.0.1
com.google.firebase:firebase-installations-interop:17.0.0
com.google.firebase:firebase-installations:16.3.5
com.google.firebase:firebase-installations:17.0.0
com.google.firebase:firebase-measurement-connector:18.0.0
com.google.firebase:firebase-measurement-connector:19.0.0
com.google.firebase:firebase-messaging:21.1.0
com.google.firebase:firebase-messaging:23.0.0
com.google.gms:google-services:4.3.10
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:17.0
com.google.guava:guava:22.0
@ -428,15 +384,12 @@ com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.1
com.google.jimfs:jimfs:1.1
com.google.protobuf:protobuf-java-util:3.4.0
com.google.protobuf:protobuf-java:2.6.1
com.google.protobuf:protobuf-java:3.0.0
com.google.protobuf:protobuf-java:3.4.0
com.google.zxing:core:3.3.0
com.ibm.icu:icu4j:53.1
com.intellij:annotations:12.0
com.parse.bolts:bolts-applinks:1.4.0
com.parse.bolts:bolts-tasks:1.4.0
com.squareup.assertj:assertj-android:1.1.1
com.squareup.okhttp3:okhttp-tls:3.12.12
com.squareup.okhttp3:okhttp-urlconnection:3.12.12
com.squareup.okhttp3:okhttp:3.12.12
@ -452,17 +405,10 @@ com.tunnelvisionlabs:antlr4:4.5
de.undercouch:gradle-download-task:3.4.3
de.undercouch:gradle-download-task:4.0.2
it.unimi.dsi:fastutil:7.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.inject:javax.inject:1
javax.xml.bind:jaxb-api:2.2.12-b140109.1041
junit:junit:4.12
me.zhanghai.android.materialprogressbar:library:1.4.2
nekohtml:nekohtml:1.9.6.2
nekohtml:xercesMinimal:1.9.6.2
net.bytebuddy:byte-buddy-agent:1.9.10
net.bytebuddy:byte-buddy-agent:1.10.18
net.bytebuddy:byte-buddy:1.9.10
net.bytebuddy:byte-buddy:1.10.18
net.sf.jopt-simple:jopt-simple:4.9
net.sf.kxml:kxml2:2.3.0
net.sf.proguard:proguard-base:5.1
@ -479,8 +425,6 @@ org.antlr:antlr4-runtime:4.5.2-1
org.antlr:antlr4:4.5.3
org.antlr:antlr-runtime:3.5.2
org.antlr:antlr:3.5.2
org.apache.ant:ant-launcher:1.8.0
org.apache.ant:ant:1.8.0
org.apache.commons:commons-compress:1.8.1
org.apache.commons:commons-compress:1.12
org.apache.commons:commons-lang3:3.3.2
@ -498,35 +442,15 @@ org.apache.httpcomponents:httpcore:4.4.10
org.apache.httpcomponents:httpmime:4.1
org.apache.httpcomponents:httpmime:4.5.2
org.apache.httpcomponents:httpmime:4.5.6
org.apache.maven.wagon:wagon-file:1.0-beta-6
org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6
org.apache.maven.wagon:wagon-http-shared:1.0-beta-6
org.apache.maven.wagon:wagon-provider-api:1.0-beta-6
org.apache.maven:maven-ant-tasks:2.1.3
org.apache.maven:maven-artifact-manager:2.2.1
org.apache.maven:maven-artifact:2.2.1
org.apache.maven:maven-error-diagnostics:2.2.1
org.apache.maven:maven-model:2.2.1
org.apache.maven:maven-plugin-registry:2.2.1
org.apache.maven:maven-profile:2.2.1
org.apache.maven:maven-project:2.2.1
org.apache.maven:maven-repository-metadata:2.2.1
org.apache.maven:maven-settings:2.2.1
org.apiguardian:apiguardian-api:1.1.0
org.assertj:assertj-core:3.8.0
org.bouncycastle:bcpkix-jdk15on:1.48
org.bouncycastle:bcpkix-jdk15on:1.56
org.bouncycastle:bcprov-jdk15on:1.48
org.bouncycastle:bcprov-jdk15on:1.52
org.bouncycastle:bcprov-jdk15on:1.56
org.bouncycastle:bcprov-jdk15on:1.60
org.checkerframework:checker-qual:2.5.2
org.codehaus.groovy:groovy-all:2.4.15
org.codehaus.mojo:animal-sniffer-annotations:1.14
org.codehaus.mojo:animal-sniffer-annotations:1.17
org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1
org.codehaus.plexus:plexus-interpolation:1.11
org.codehaus.plexus:plexus-utils:1.5.15
org.conscrypt:conscrypt-android:2.0.0
org.eclipse.jdt.core.compiler:ecj:4.4
org.eclipse.jdt.core.compiler:ecj:4.4.2
@ -535,7 +459,6 @@ org.glassfish.jaxb:jaxb-core:2.2.11
org.glassfish.jaxb:jaxb-runtime:2.2.11
org.glassfish.jaxb:txw2:2.2.11
org.hamcrest:hamcrest-core:1.3
org.hamcrest:hamcrest-library:1.3
org.jacoco:org.jacoco.core:0.7.4.201502262128
org.jacoco:org.jacoco.report:0.7.4.201502262128
org.jdom:jdom2:2.0.6
@ -544,7 +467,6 @@ org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.2
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.8
org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.4.31
org.jetbrains.kotlin:kotlin-android-extensions:1.3.50
org.jetbrains.kotlin:kotlin-android-extensions:1.4.31
org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.3.50
@ -590,12 +512,10 @@ org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.71
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.30
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.20
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30
org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.0
org.jetbrains.kotlin:kotlin-stdlib-jre8:1.2.0
@ -611,41 +531,18 @@ org.jetbrains.kotlin:kotlin-util-io:1.4.31
org.jetbrains.kotlin:kotlin-util-klib:1.4.31
org.jetbrains.trove4j:trove4j:20160824
org.jetbrains:annotations:13.0
org.junit.jupiter:junit-jupiter-api:5.7.0
org.junit.platform:junit-platform-commons:1.7.0
org.jvnet.staxex:stax-ex:1.7.7
org.mockito:mockito-core:2.28.2
org.mockito:mockito-core:3.6.28
org.objenesis:objenesis:2.6
org.objenesis:objenesis:3.1
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm-analysis:5.0.3
org.ow2.asm:asm-analysis:5.1
org.ow2.asm:asm-analysis:6.0
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:5.1
org.ow2.asm:asm-commons:6.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-debug-all:5.0.1
org.ow2.asm:asm-tree:5.0.3
org.ow2.asm:asm-tree:5.1
org.ow2.asm:asm-tree:6.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:5.1
org.ow2.asm:asm-util:6.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:5.0.3
org.ow2.asm:asm:5.1
org.ow2.asm:asm:6.0
org.ow2.asm:asm:7.0
org.robolectric:annotations:4.3
org.robolectric:junit:4.3
org.robolectric:pluginapi:4.3
org.robolectric:plugins-maven-dependency-resolver:4.3
org.robolectric:resources:4.3
org.robolectric:robolectric:4.3
org.robolectric:sandbox:4.3
org.robolectric:shadowapi:4.3
org.robolectric:shadows-framework:4.3
org.robolectric:utils-reflector:4.3
org.robolectric:utils:4.3

View File

@ -82,7 +82,6 @@ https://dl.google.com/dl/android/maven2/androidx/savedstate/savedstate/1.1.0/sav
https://dl.google.com/dl/android/maven2/androidx/slidingpanelayout/slidingpanelayout/1.0.0/slidingpanelayout-1.0.0.pom
https://dl.google.com/dl/android/maven2/androidx/swiperefreshlayout/swiperefreshlayout/1.0.0/swiperefreshlayout-1.0.0.pom
https://dl.google.com/dl/android/maven2/androidx/swiperefreshlayout/swiperefreshlayout/1.1.0/swiperefreshlayout-1.1.0.pom
https://dl.google.com/dl/android/maven2/androidx/test/monitor/1.2.0/monitor-1.2.0.pom
https://dl.google.com/dl/android/maven2/androidx/tracing/tracing/1.0.0/tracing-1.0.0.pom
https://dl.google.com/dl/android/maven2/androidx/transition/transition/1.0.0/transition-1.0.0.pom
https://dl.google.com/dl/android/maven2/androidx/transition/transition/1.2.0-rc01/transition-1.2.0-rc01.pom
@ -110,17 +109,14 @@ https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.5.
https://dl.google.com/dl/android/maven2/com/android/databinding/compilerCommon/3.0.0/compilerCommon-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/databinding/compilerCommon/3.0.1/compilerCommon-3.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/databinding/compilerCommon/3.1.4/compilerCommon-3.1.4.pom
https://dl.google.com/dl/android/maven2/com/android/installreferrer/installreferrer/1.1.2/installreferrer-1.1.2.pom
https://dl.google.com/dl/android/maven2/com/android/support/animated-vector-drawable/26.0.2/animated-vector-drawable-26.0.2.pom
https://dl.google.com/dl/android/maven2/com/android/support/animated-vector-drawable/27.0.1/animated-vector-drawable-27.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/26.0.2/appcompat-v7-26.0.2.pom
https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/27.0.1/appcompat-v7-27.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/support/recyclerview-v7/27.0.1/recyclerview-v7-27.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/support/support-annotations/22.2.1/support-annotations-22.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/support/support-annotations/26.0.2/support-annotations-26.0.2.pom
https://dl.google.com/dl/android/maven2/com/android/support/support-annotations/26.1.0/support-annotations-26.1.0.pom
https://dl.google.com/dl/android/maven2/com/android/support/support-annotations/27.0.1/support-annotations-27.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/support/support-annotations/28.0.0/support-annotations-28.0.0.pom
https://dl.google.com/dl/android/maven2/com/android/support/support-compat/26.0.2/support-compat-26.0.2.pom
https://dl.google.com/dl/android/maven2/com/android/support/support-compat/27.0.1/support-compat-27.0.1.pom
https://dl.google.com/dl/android/maven2/com/android/support/support-core-ui/26.0.2/support-core-ui-26.0.2.pom
@ -284,46 +280,8 @@ https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.1.4/sdk-
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.2.1/sdk-common-26.2.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.3.1/sdk-common-26.3.1.pom
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.5.4/sdk-common-26.5.4.pom
https://dl.google.com/dl/android/maven2/com/google/android/datatransport/transport-api/2.2.0/transport-api-2.2.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/datatransport/transport-api/2.2.1/transport-api-2.2.1.pom
https://dl.google.com/dl/android/maven2/com/google/android/datatransport/transport-api/3.0.0/transport-api-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/datatransport/transport-backend-cct/2.3.3/transport-backend-cct-2.3.3.pom
https://dl.google.com/dl/android/maven2/com/google/android/datatransport/transport-backend-cct/3.0.0/transport-backend-cct-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/datatransport/transport-runtime/2.2.0/transport-runtime-2.2.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/datatransport/transport-runtime/2.2.5/transport-runtime-2.2.5.pom
https://dl.google.com/dl/android/maven2/com/google/android/datatransport/transport-runtime/3.0.0/transport-runtime-3.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-basement/17.0.0/play-services-basement-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-base/17.0.0/play-services-base-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-cloud-messaging/16.0.0/play-services-cloud-messaging-16.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-cloud-messaging/17.0.0/play-services-cloud-messaging-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-iid/17.0.0/play-services-iid-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-stats/17.0.0/play-services-stats-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-tasks/17.0.0/play-services-tasks-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/gms/strict-version-matcher-plugin/1.2.2/strict-version-matcher-plugin-1.2.2.pom
https://dl.google.com/dl/android/maven2/com/google/android/material/material/1.0.0/material-1.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/android/material/material/1.2.0-alpha03/material-1.2.0-alpha03.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-annotations/16.0.0/firebase-annotations-16.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-common/19.5.0/firebase-common-19.5.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-common/20.0.0/firebase-common-20.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-components/16.1.0/firebase-components-16.1.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-components/17.0.0/firebase-components-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-datatransport/17.0.10/firebase-datatransport-17.0.10.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-datatransport/18.0.0/firebase-datatransport-18.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-encoders-json/17.1.0/firebase-encoders-json-17.1.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-encoders-json/18.0.0/firebase-encoders-json-18.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-encoders/16.1.0/firebase-encoders-16.1.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-encoders/17.0.0/firebase-encoders-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-iid-interop/17.1.0/firebase-iid-interop-17.1.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-iid/21.1.0/firebase-iid-21.1.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-installations-interop/16.0.1/firebase-installations-interop-16.0.1.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-installations-interop/17.0.0/firebase-installations-interop-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-installations/16.3.5/firebase-installations-16.3.5.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-installations/17.0.0/firebase-installations-17.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-measurement-connector/18.0.0/firebase-measurement-connector-18.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-measurement-connector/19.0.0/firebase-measurement-connector-19.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-messaging/21.1.0/firebase-messaging-21.1.0.pom
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-messaging/23.0.0/firebase-messaging-23.0.0.pom
https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.3.10/google-services-4.3.10.pom
https://jitpack.io/com/github/status-im/function/0.0.1/function-0.0.1.pom
https://jitpack.io/com/github/status-im/status-keycard-java/android/3.0.4/android-3.0.4.pom
https://jitpack.io/com/github/status-im/status-keycard-java/lib/3.0.4/lib-3.0.4.pom
@ -341,27 +299,18 @@ https://plugins.gradle.org/m2/com/facebook/fresco/nativeimagefilters/2.2.0/nativ
https://plugins.gradle.org/m2/com/facebook/fresco/stetho/2.2.0/stetho-2.2.0.pom
https://repo.maven.apache.org/maven2/antlr/antlr/2.7.1/antlr-2.7.1.pom
https://repo.maven.apache.org/maven2/antlr/antlr/2.7.7/antlr-2.7.7.pom
https://repo.maven.apache.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.pom
https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom
https://repo.maven.apache.org/maven2/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
https://repo.maven.apache.org/maven2/commons-cli/commons-cli/1.2/commons-cli-1.2.pom
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.2/commons-codec-1.2.pom
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.4/commons-codec-1.4.pom
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.6/commons-codec-1.6.pom
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.9/commons-codec-1.9.pom
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.10/commons-codec-1.10.pom
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.15/commons-codec-1.15.pom
https://repo.maven.apache.org/maven2/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom
https://repo.maven.apache.org/maven2/commons-io/commons-io/2.4/commons-io-2.4.pom
https://repo.maven.apache.org/maven2/commons-io/commons-io/2.6/commons-io-2.6.pom
https://repo.maven.apache.org/maven2/commons-io/commons-io/2.11.0/commons-io-2.11.0.pom
https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
https://repo.maven.apache.org/maven2/com/adobe/xmp/xmpcore/5.1.2/xmpcore-5.1.2.pom
https://repo.maven.apache.org/maven2/com/afollestad/material-dialogs/commons/0.9.6.0/commons-0.9.6.0.pom
https://repo.maven.apache.org/maven2/com/afollestad/material-dialogs/core/0.9.6.0/core-0.9.6.0.pom
https://repo.maven.apache.org/maven2/com/almworks/sqlite4java/sqlite4java/0.282/sqlite4java-0.282.pom
https://repo.maven.apache.org/maven2/com/android/databinding/baseLibrary/1.0-rc5/baseLibrary-1.0-rc5.pom
https://repo.maven.apache.org/maven2/com/android/databinding/compilerCommon/1.0-rc5/compilerCommon-1.0-rc5.pom
https://repo.maven.apache.org/maven2/com/android/tools/annotations/24.1.3/annotations-24.1.3.pom
@ -461,11 +410,7 @@ https://repo.maven.apache.org/maven2/com/github/clans/fab/1.6.4/fab-1.6.4.pom
https://repo.maven.apache.org/maven2/com/github/gundy/semver4j/0.16.4/semver4j-0.16.4.pom
https://repo.maven.apache.org/maven2/com/googlecode/json-simple/json-simple/1.1/json-simple-1.1.pom
https://repo.maven.apache.org/maven2/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.pom
https://repo.maven.apache.org/maven2/com/google/android/apps/common/testing/accessibility/framework/accessibility-test-framework/2.1/accessibility-test-framework-2.1.pom
https://repo.maven.apache.org/maven2/com/google/auto/auto-common/0.8/auto-common-0.8.pom
https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/3/auto-parent-3.pom
https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/5/auto-parent-5.pom
https://repo.maven.apache.org/maven2/com/google/auto/service/auto-service/1.0-rc4/auto-service-1.0-rc4.pom
https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9.pom
https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-parent/1.9/auto-value-parent-1.9.pom
https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value/1.5.2/auto-value-1.5.2.pom
@ -483,7 +428,6 @@ https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.pom
https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.0/gson-2.8.0.pom
https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom
https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.pom
https://repo.maven.apache.org/maven2/com/google/dagger/dagger/2.24/dagger-2.24.pom
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.pom
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.1.2/error_prone_annotations-2.1.2.pom
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0.pom
@ -495,7 +439,6 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.3.1/error_prone_parent-2.3.1.pom
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.13.1/error_prone_parent-2.13.1.pom
https://repo.maven.apache.org/maven2/com/google/google/1/google-1.pom
https://repo.maven.apache.org/maven2/com/google/google/5/google-5.pom
https://repo.maven.apache.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.pom
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/17.0/guava-parent-17.0.pom
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/22.0/guava-parent-22.0.pom
@ -512,15 +455,12 @@ https://repo.maven.apache.org/maven2/com/google/guava/guava/26.0-jre/guava-26.0-
https://repo.maven.apache.org/maven2/com/google/guava/guava/27.0.1-jre/guava-27.0.1-jre.pom
https://repo.maven.apache.org/maven2/com/google/guava/guava/31.1-jre/guava-31.1-jre.pom
https://repo.maven.apache.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom
https://repo.maven.apache.org/maven2/com/google/inject/guice-parent/5.1.0/guice-parent-5.1.0.pom
https://repo.maven.apache.org/maven2/com/google/inject/guice/5.1.0/guice-5.1.0.pom
https://repo.maven.apache.org/maven2/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.pom
https://repo.maven.apache.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.pom
https://repo.maven.apache.org/maven2/com/google/jimfs/jimfs-parent/1.1/jimfs-parent-1.1.pom
https://repo.maven.apache.org/maven2/com/google/jimfs/jimfs/1.1/jimfs-1.1.pom
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/4.0.0-rc-2/protobuf-bom-4.0.0-rc-2.pom
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java-util/3.4.0/protobuf-java-util-3.4.0.pom
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.pom
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.0.0/protobuf-java-3.0.0.pom
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.4.0/protobuf-java-3.4.0.pom
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/4.0.0-rc-2/protobuf-java-4.0.0-rc-2.pom
@ -531,11 +471,9 @@ https://repo.maven.apache.org/maven2/com/google/truth/truth-parent/1.1.3/truth-p
https://repo.maven.apache.org/maven2/com/google/truth/truth/1.1.3/truth-1.1.3.pom
https://repo.maven.apache.org/maven2/com/google/zxing/core/3.3.0/core-3.3.0.pom
https://repo.maven.apache.org/maven2/com/google/zxing/zxing-parent/3.3.0/zxing-parent-3.3.0.pom
https://repo.maven.apache.org/maven2/com/ibm/icu/icu4j/53.1/icu4j-53.1.pom
https://repo.maven.apache.org/maven2/com/intellij/annotations/12.0/annotations-12.0.pom
https://repo.maven.apache.org/maven2/com/parse/bolts/bolts-applinks/1.4.0/bolts-applinks-1.4.0.pom
https://repo.maven.apache.org/maven2/com/parse/bolts/bolts-tasks/1.4.0/bolts-tasks-1.4.0.pom
https://repo.maven.apache.org/maven2/com/squareup/assertj/assertj-android/1.1.1/assertj-android-1.1.1.pom
https://repo.maven.apache.org/maven2/com/squareup/javapoet/1.8.0/javapoet-1.8.0.pom
https://repo.maven.apache.org/maven2/com/squareup/javawriter/2.5.0/javawriter-2.5.0.pom
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp-tls/3.12.12/okhttp-tls-3.12.12.pom
@ -582,29 +520,14 @@ https://repo.maven.apache.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api-paren
https://repo.maven.apache.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api/4.0.0/jakarta.xml.bind-api-4.0.0.pom
https://repo.maven.apache.org/maven2/javax/activation/activation/1.1/activation-1.1.pom
https://repo.maven.apache.org/maven2/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.pom
https://repo.maven.apache.org/maven2/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.pom
https://repo.maven.apache.org/maven2/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.pom
https://repo.maven.apache.org/maven2/javax/el/javax.el-api/3.0.1-b06/javax.el-api-3.0.1-b06.pom
https://repo.maven.apache.org/maven2/javax/enterprise/cdi-api/1.2/cdi-api-1.2.pom
https://repo.maven.apache.org/maven2/javax/enterprise/cdi-api/2.0-PFD2/cdi-api-2.0-PFD2.pom
https://repo.maven.apache.org/maven2/javax/inject/javax.inject/1/javax.inject-1.pom
https://repo.maven.apache.org/maven2/javax/interceptor/javax.interceptor-api/1.2.2/javax.interceptor-api-1.2.2.pom
https://repo.maven.apache.org/maven2/javax/xml/bind/jaxb-api-parent/2.4.0-b180830.0359/jaxb-api-parent-2.4.0-b180830.0359.pom
https://repo.maven.apache.org/maven2/javax/xml/bind/jaxb-api/2.2.12-b140109.1041/jaxb-api-2.2.12-b140109.1041.pom
https://repo.maven.apache.org/maven2/javax/xml/bind/jaxb-api/2.4.0-b180830.0359/jaxb-api-2.4.0-b180830.0359.pom
https://repo.maven.apache.org/maven2/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.pom
https://repo.maven.apache.org/maven2/junit/junit/3.8.1/junit-3.8.1.pom
https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom
https://repo.maven.apache.org/maven2/junit/junit/4.13.2/junit-4.13.2.pom
https://repo.maven.apache.org/maven2/me/zhanghai/android/materialprogressbar/library/1.4.2/library-1.4.2.pom
https://repo.maven.apache.org/maven2/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9.6.2.pom
https://repo.maven.apache.org/maven2/nekohtml/xercesMinimal/1.9.6.2/xercesMinimal-1.9.6.2.pom
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.9.10/byte-buddy-agent-1.9.10.pom
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.10.18/byte-buddy-agent-1.10.18.pom
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.9.10/byte-buddy-parent-1.9.10.pom
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.10.18/byte-buddy-parent-1.10.18.pom
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.9.10/byte-buddy-1.9.10.pom
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.18/byte-buddy-1.10.18.pom
https://repo.maven.apache.org/maven2/net/java/jvnet-parent/1/jvnet-parent-1.pom
https://repo.maven.apache.org/maven2/net/java/jvnet-parent/3/jvnet-parent-3.pom
https://repo.maven.apache.org/maven2/net/java/jvnet-parent/4/jvnet-parent-4.pom
@ -643,13 +566,7 @@ https://repo.maven.apache.org/maven2/org/antlr/antlr-runtime/3.5.3/antlr-runtime
https://repo.maven.apache.org/maven2/org/antlr/antlr/3.5.2/antlr-3.5.2.pom
https://repo.maven.apache.org/maven2/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.pom
https://repo.maven.apache.org/maven2/org/antlr/stringtemplate/4.0.2/stringtemplate-4.0.2.pom
https://repo.maven.apache.org/maven2/org/apache/ant/ant-launcher/1.8.0/ant-launcher-1.8.0.pom
https://repo.maven.apache.org/maven2/org/apache/ant/ant-parent/1.8.0/ant-parent-1.8.0.pom
https://repo.maven.apache.org/maven2/org/apache/ant/ant/1.8.0/ant-1.8.0.pom
https://repo.maven.apache.org/maven2/org/apache/apache/1/apache-1.pom
https://repo.maven.apache.org/maven2/org/apache/apache/3/apache-3.pom
https://repo.maven.apache.org/maven2/org/apache/apache/4/apache-4.pom
https://repo.maven.apache.org/maven2/org/apache/apache/5/apache-5.pom
https://repo.maven.apache.org/maven2/org/apache/apache/9/apache-9.pom
https://repo.maven.apache.org/maven2/org/apache/apache/13/apache-13.pom
https://repo.maven.apache.org/maven2/org/apache/apache/15/apache-15.pom
@ -657,12 +574,10 @@ https://repo.maven.apache.org/maven2/org/apache/apache/16/apache-16.pom
https://repo.maven.apache.org/maven2/org/apache/apache/18/apache-18.pom
https://repo.maven.apache.org/maven2/org/apache/apache/21/apache-21.pom
https://repo.maven.apache.org/maven2/org/apache/apache/23/apache-23.pom
https://repo.maven.apache.org/maven2/org/apache/apache/25/apache-25.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-compress/1.12/commons-compress-1.12.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-lang3/3.9/commons-lang3-3.9.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/5/commons-parent-5.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/11/commons-parent-11.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/22/commons-parent-22.pom
@ -672,12 +587,8 @@ https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/33/common
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/34/commons-parent-34.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/35/commons-parent-35.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/39/commons-parent-39.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/42/commons-parent-42.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/48/commons-parent-48.pom
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/52/commons-parent-52.pom
https://repo.maven.apache.org/maven2/org/apache/geronimo/genesis/genesis-default-flava/2.3/genesis-default-flava-2.3.pom
https://repo.maven.apache.org/maven2/org/apache/geronimo/genesis/genesis-java8-flava/2.3/genesis-java8-flava-2.3.pom
https://repo.maven.apache.org/maven2/org/apache/geronimo/genesis/genesis/2.3/genesis-2.3.pom
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.pom
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.2.6/httpclient-4.2.6.pom
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.pom
@ -710,68 +621,9 @@ https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpmime/4.5.2/ht
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpmime/4.5.6/httpmime-4.5.6.pom
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/project/4.1.1/project-4.1.1.pom
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/project/7/project-7.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-ant-tasks/2.1.3/maven-ant-tasks-2.1.3.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/3.8.5/maven-artifact-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-builder-support/3.8.5/maven-builder-support-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-compat/3.8.5/maven-compat-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-core/3.8.5/maven-core-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-error-diagnostics/2.2.1/maven-error-diagnostics-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-model-builder/3.8.5/maven-model-builder-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/3.8.5/maven-model-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/10/maven-parent-10.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/11/maven-parent-11.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/19/maven-parent-19.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/34/maven-parent-34.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/35/maven-parent-35.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-api/3.8.5/maven-plugin-api-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/3.0-alpha-2/maven-project-3.0-alpha-2.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-metadata/3.8.5/maven-repository-metadata-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-resolver-provider/3.8.5/maven-resolver-provider-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-settings-builder/3.8.5/maven-settings-builder-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/3.8.5/maven-settings-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven/2.2.1/maven-2.2.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven/3.0-alpha-2/maven-3.0-alpha-2.pom
https://repo.maven.apache.org/maven2/org/apache/maven/maven/3.8.5/maven-3.8.5.pom
https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-api/1.8.0/maven-resolver-api-1.8.0.pom
https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-impl/1.8.0/maven-resolver-impl-1.8.0.pom
https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-named-locks/1.8.0/maven-resolver-named-locks-1.8.0.pom
https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-spi/1.8.0/maven-resolver-spi-1.8.0.pom
https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-util/1.8.0/maven-resolver-util-1.8.0.pom
https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver/1.8.0/maven-resolver-1.8.0.pom
https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-components/34/maven-shared-components-34.pom
https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-utils/3.3.4/maven-shared-utils-3.3.4.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-file/1.0-beta-6/wagon-file-1.0-beta-6.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-file/3.5.1/wagon-file-3.5.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-6/wagon-http-lightweight-1.0-beta-6.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-lightweight/3.5.1/wagon-http-lightweight-3.5.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-shared/1.0-beta-6/wagon-http-shared-1.0-beta-6.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-shared/3.5.1/wagon-http-shared-3.5.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-providers/1.0-beta-6/wagon-providers-1.0-beta-6.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-providers/3.5.1/wagon-providers-3.5.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-provider-api/3.5.1/wagon-provider-api-3.5.1.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon/3.5.1/wagon-3.5.1.pom
https://repo.maven.apache.org/maven2/org/apache/xbean/xbean-reflect/4.21/xbean-reflect-4.21.pom
https://repo.maven.apache.org/maven2/org/apache/xbean/xbean/4.21/xbean-4.21.pom
https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.pom
https://repo.maven.apache.org/maven2/org/assertj/assertj-core/1.7.1/assertj-core-1.7.1.pom
https://repo.maven.apache.org/maven2/org/assertj/assertj-core/3.8.0/assertj-core-3.8.0.pom
https://repo.maven.apache.org/maven2/org/assertj/assertj-parent-pom/1.2.6/assertj-parent-pom-1.2.6.pom
https://repo.maven.apache.org/maven2/org/assertj/assertj-parent-pom/2.1.6/assertj-parent-pom-2.1.6.pom
https://repo.maven.apache.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48.pom
https://repo.maven.apache.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk15on-1.56.pom
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.pom
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.52/bcprov-jdk15on-1.52.pom
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk15on-1.56.pom
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.60/bcprov-jdk15on-1.60.pom
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.70/bcprov-jdk15on-1.70.pom
@ -788,44 +640,6 @@ https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.2
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/34/mojo-parent-34.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/40/mojo-parent-40.pom
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/65/mojo-parent-65.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-cipher/2.0/plexus-cipher-2.0.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-classworlds/2.5.2/plexus-classworlds-2.5.2.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-classworlds/2.6.0/plexus-classworlds-2.6.0.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-component-annotations/1.5.6/plexus-component-annotations-1.5.6.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-component-annotations/1.6/plexus-component-annotations-1.6.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-component-annotations/2.1.0/plexus-component-annotations-2.1.0.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-component-annotations/2.1.1/plexus-component-annotations-2.1.1.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.5.6/plexus-containers-1.5.6.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.6/plexus-containers-1.6.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/2.1.0/plexus-containers-2.1.0.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/2.1.1/plexus-containers-2.1.1.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-container-default/2.1.1/plexus-container-default-2.1.1.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolation/1.26/plexus-interpolation-1.26.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-sec-dispatcher/2.0/plexus-sec-dispatcher-2.0.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.18/plexus-utils-3.0.18.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.3.0/plexus-utils-3.3.0.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.4.1/plexus-utils-3.4.1.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/3.3.2/plexus-3.3.2.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/5.1/plexus-5.1.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/6.5/plexus-6.5.pom
https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/8/plexus-8.pom
https://repo.maven.apache.org/maven2/org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.pom
https://repo.maven.apache.org/maven2/org/codehaus/woodstox/wstx-asl/4.0.6/wstx-asl-4.0.6.pom
https://repo.maven.apache.org/maven2/org/conscrypt/conscrypt-android/2.0.0/conscrypt-android-2.0.0.pom
https://repo.maven.apache.org/maven2/org/easymock/easymockclassextension/3.2/easymockclassextension-3.2.pom
https://repo.maven.apache.org/maven2/org/easymock/easymock-parent/3.2/easymock-parent-3.2.pom
@ -837,10 +651,6 @@ https://repo.maven.apache.org/maven2/org/eclipse/ee4j/project/1.0.7/project-1.0.
https://repo.maven.apache.org/maven2/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.pom
https://repo.maven.apache.org/maven2/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4.pom
https://repo.maven.apache.org/maven2/org/eclipse/jdt/core/compiler/ecj/4.6.1/ecj-4.6.1.pom
https://repo.maven.apache.org/maven2/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M1/org.eclipse.sisu.inject-0.9.0.M1.pom
https://repo.maven.apache.org/maven2/org/eclipse/sisu/org.eclipse.sisu.plexus/0.9.0.M1/org.eclipse.sisu.plexus-0.9.0.M1.pom
https://repo.maven.apache.org/maven2/org/eclipse/sisu/sisu-inject/0.9.0.M1/sisu-inject-0.9.0.M1.pom
https://repo.maven.apache.org/maven2/org/eclipse/sisu/sisu-plexus/0.9.0.M1/sisu-plexus-0.9.0.M1.pom
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-bom/2.2.11/jaxb-bom-2.2.11.pom
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-bom/4.0.0-M4/jaxb-bom-4.0.0-M4.pom
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-core/2.2.11/jaxb-core-2.2.11.pom
@ -850,7 +660,6 @@ https://repo.maven.apache.org/maven2/org/glassfish/jaxb/txw2/2.2.11/txw2-2.2.11.
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/txw2/4.0.0-M4/txw2-4.0.0-M4.pom
https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.pom
https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.pom
https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest/2.2/hamcrest-2.2.pom
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.build/0.7.4.201502262128/org.jacoco.build-0.7.4.201502262128.pom
@ -858,8 +667,6 @@ https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.build/0.8.8/org.jacoc
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.core/0.7.4.201502262128/org.jacoco.core-0.7.4.201502262128.pom
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.core/0.8.8/org.jacoco.core-0.8.8.pom
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.report/0.7.4.201502262128/org.jacoco.report-0.7.4.201502262128.pom
https://repo.maven.apache.org/maven2/org/jboss/weld/weld-parent/26/weld-parent-26.pom
https://repo.maven.apache.org/maven2/org/jboss/weld/weld-parent/36/weld-parent-36.pom
https://repo.maven.apache.org/maven2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.pom
https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom
https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.pom
@ -869,7 +676,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-co
https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1/kotlinx-coroutines-core-1.1.1.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.8/kotlinx-coroutines-core-1.3.8.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-metadata-jvm/0.1.0/kotlinx-metadata-jvm-0.1.0.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.4.31/kotlin-android-extensions-runtime-1.4.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-extensions/1.3.50/kotlin-android-extensions-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-extensions/1.4.31/kotlin-android-extensions-1.4.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.50/kotlin-annotation-processing-gradle-1.3.50.pom
@ -913,7 +719,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.31/kotlin-stdlib-common-1.3.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71/kotlin-stdlib-common-1.3.71.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.10/kotlin-stdlib-common-1.4.10.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.31/kotlin-stdlib-common-1.4.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.10/kotlin-stdlib-common-1.5.10.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.30/kotlin-stdlib-common-1.5.30.pom
@ -922,12 +727,10 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.71/kotlin-stdlib-jdk7-1.2.71.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.20/kotlin-stdlib-jdk7-1.3.20.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.10/kotlin-stdlib-jdk7-1.4.10.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.5.30/kotlin-stdlib-jdk7-1.5.30.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.2.71/kotlin-stdlib-jdk8-1.2.71.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.20/kotlin-stdlib-jdk8-1.3.20.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.50/kotlin-stdlib-jdk8-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.10/kotlin-stdlib-jdk8-1.4.10.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5.30/kotlin-stdlib-jdk8-1.5.30.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jre7/1.2.0/kotlin-stdlib-jre7-1.2.0.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jre8/1.2.0/kotlin-stdlib-jre8-1.2.0.pom
@ -940,7 +743,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.20/k
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.31/kotlin-stdlib-1.3.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotlin-stdlib-1.3.71.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.10/kotlin-stdlib-1.4.10.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.31/kotlin-stdlib-1.4.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.5.10/kotlin-stdlib-1.5.10.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.5.30/kotlin-stdlib-1.5.30.pom
@ -948,31 +750,17 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.3.50/
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.4.31/kotlin-util-io-1.4.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-klib/1.4.31/kotlin-util-klib-1.4.31.pom
https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.7.0/junit-bom-5.7.0.pom
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.7.1/junit-bom-5.7.1.pom
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.7.2/junit-bom-5.7.2.pom
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.9.0-M1/junit-bom-5.9.0-M1.pom
https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0.pom
https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.7.0/junit-platform-commons-1.7.0.pom
https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.7.7/stax-ex-1.7.7.pom
https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/2.1.0/stax-ex-2.1.0.pom
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/2.28.2/mockito-core-2.28.2.pom
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/3.6.28/mockito-core-3.6.28.pom
https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/2.6/objenesis-parent-2.6.pom
https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/3.1/objenesis-parent-3.1.pom
https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/3.2/objenesis-parent-3.2.pom
https://repo.maven.apache.org/maven2/org/objenesis/objenesis/2.6/objenesis-2.6.pom
https://repo.maven.apache.org/maven2/org/objenesis/objenesis/3.1/objenesis-3.1.pom
https://repo.maven.apache.org/maven2/org/objenesis/objenesis/3.2/objenesis-3.2.pom
https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/5.1/asm-analysis-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/6.0/asm-analysis-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/7.0/asm-analysis-7.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/9.3/asm-analysis-9.3.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/5.1/asm-commons-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/6.0/asm-commons-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/7.0/asm-commons-7.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/9.3/asm-commons-9.3.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-debug-all/5.0.1/asm-debug-all-5.0.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-debug-all/6.0_BETA/asm-debug-all-6.0_BETA.pom
@ -984,59 +772,18 @@ https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/6.0_BETA/asm-parent-
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/5.1/asm-tree-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/6.0/asm-tree-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/7.0/asm-tree-7.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/9.3/asm-tree-9.3.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-util/5.1/asm-util-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-util/6.0/asm-util-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-util/7.0/asm-util-7.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/5.0.3/asm-5.0.3.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/5.1/asm-5.1.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/6.0/asm-6.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/7.0/asm-7.0.pom
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/9.3/asm-9.3.pom
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.3/ow2-1.3.pom
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.5/ow2-1.5.pom
https://repo.maven.apache.org/maven2/org/robolectric/annotations/4.3/annotations-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/junit/4.3/junit-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/pluginapi/4.3/pluginapi-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/plugins-maven-dependency-resolver/4.3/plugins-maven-dependency-resolver-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/resources/4.3/resources-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/robolectric/4.3/robolectric-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/sandbox/4.3/sandbox-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/shadowapi/4.3/shadowapi-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/shadows-framework/4.3/shadows-framework-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/utils-reflector/4.3/utils-reflector-4.3.pom
https://repo.maven.apache.org/maven2/org/robolectric/utils/4.3/utils-4.3.pom
https://repo.maven.apache.org/maven2/org/slf4j/jcl-over-slf4j/2.0.0-alpha7/jcl-over-slf4j-2.0.0-alpha7.pom
https://repo.maven.apache.org/maven2/org/slf4j/jul-to-slf4j/2.0.0-alpha7/jul-to-slf4j-2.0.0-alpha7.pom
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.0-alpha7/slf4j-api-2.0.0-alpha7.pom
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-jdk14/2.0.0-alpha7/slf4j-jdk14-2.0.0-alpha7.pom
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.0.0-alpha7/slf4j-parent-2.0.0-alpha7.pom
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/2.0.0-alpha7/slf4j-simple-2.0.0-alpha7.pom
https://repo.maven.apache.org/maven2/org/sonatype/buildsupport/buildsupport/5/buildsupport-5.pom
https://repo.maven.apache.org/maven2/org/sonatype/buildsupport/buildsupport/12/buildsupport-12.pom
https://repo.maven.apache.org/maven2/org/sonatype/buildsupport/public-parent/5/public-parent-5.pom
https://repo.maven.apache.org/maven2/org/sonatype/buildsupport/public-parent/12/public-parent-12.pom
https://repo.maven.apache.org/maven2/org/sonatype/forge/forge-parent/3/forge-parent-3.pom
https://repo.maven.apache.org/maven2/org/sonatype/forge/forge-parent/6/forge-parent-6.pom
https://repo.maven.apache.org/maven2/org/sonatype/forge/forge-parent/10/forge-parent-10.pom
https://repo.maven.apache.org/maven2/org/sonatype/forge/forge-parent/38/forge-parent-38.pom
https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/4/oss-parent-4.pom
https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/inject/cglib/3.1.1/cglib-3.1.1.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/inject/guice-parent/2.9.4/guice-parent-2.9.4.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/inject/guice-parent/4.2.0/guice-parent-4.2.0.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/inject/wrappers/2.6.0/wrappers-2.6.0.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/sisu-guice/2.9.4/sisu-guice-2.9.4.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/sisu-guice/4.2.0/sisu-guice-4.2.0.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/sisu-inject-bean/2.6.0/sisu-inject-bean-2.6.0.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/sisu-inject-plexus/2.6.0/sisu-inject-plexus-2.6.0.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/sisu-inject/2.6.0/sisu-inject-2.6.0.pom
https://repo.maven.apache.org/maven2/org/sonatype/sisu/sisu-parent/2.6.0/sisu-parent-2.6.0.pom
https://repo.maven.apache.org/maven2/org/sonatype/spice/model-builder/1.10/model-builder-1.10.pom
https://repo.maven.apache.org/maven2/org/sonatype/spice/spice-parent/10/spice-parent-10.pom
https://repo.maven.apache.org/maven2/org/sonatype/spice/spice-parent/17/spice-parent-17.pom
https://repo.maven.apache.org/maven2/stax/stax-api/1.0.1/stax-api-1.0.1.pom
https://repo.maven.apache.org/maven2/xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.pom
https://repo.maven.apache.org/maven2/xml-apis/xml-apis/1.3.03/xml-apis-1.3.03.pom

View File

@ -10,7 +10,6 @@ react-native-community_masked-view
react-native-community_netinfo
react-native-community_slider
react-native-config
react-native-device-info
react-native-dialogs
react-native-fast-image
react-native-fs
@ -24,7 +23,6 @@ react-native-linear-gradient
react-native-mail
react-native-navigation
react-native-nfc-manager
react-native-notifications
react-native-permissions
react-native-randombytes
react-native-reanimated

View File

@ -30,7 +30,6 @@
"emojilib": "^2.4.0",
"eth-phishing-detect": "^1.1.13",
"functional-red-black-tree": "^1.0.1",
"hermes-engine": "0.5.2-rc1",
"hi-base32": "^0.5.0",
"i18n-js": "^3.3.0",
"node-libs-react-native": "^1.2.1",
@ -42,7 +41,6 @@
"react-native-blob-util": "^0.13.18",
"react-native-camera-kit": "^8.0.4",
"react-native-config": "git+https://github.com/status-im/react-native-config.git#refs/tags/v1.4.2-status",
"react-native-device-info": "^7.4.0",
"react-native-dialogs": "^1.0.4",
"react-native-draggable-flatlist": "^3.0.3",
"react-native-fast-image": "^8.5.11",
@ -58,7 +56,6 @@
"react-native-linear-gradient": "^2.5.6",
"react-native-mail": "^6.1.1",
"react-native-navigation": "^7.27.1",
"react-native-notifications": "^4.1.3",
"react-native-permissions": "^2.1.5",
"react-native-randombytes": "^3.6.1",
"react-native-reanimated": "^2.1.0",

View File

@ -1,10 +0,0 @@
#!/usr/bin/env bash
set -e
# Used by Clojure to condition code and Gradle to make dependencies optional
sed -i -e '$aGOOGLE_FREE=1' .env.release
# remove react-native-notifications(uses google dependencies) and google-services.json for the fdroid-build
yarn remove react-native-notifications
rm android/app/google-services.json

View File

@ -56,11 +56,6 @@ if [[ -n "${OPENSEA_API_KEY}" ]]; then
append_env_export 'OPENSEA_API_KEY'
fi
# Used by Clojure at compile time for remove import of react-native-notifications for fdroid release
if [[ -n "${READER_FEATURES}" ]]; then
append_env_export 'READER_FEATURES'
fi
# If no secrets were passed there's no need to pass the 'secretsFile'.
if [[ -s "${SECRETS_FILE_PATH}" ]]; then
nixOpts+=("--argstr" "secretsFile" "${SECRETS_FILE_PATH}")

View File

@ -64,8 +64,7 @@
:static-fns true
:fn-invoke-direct true
:optimizations :advanced
:js-options {:js-provider :closure}
:reader-features #{#shadow/env ["READER_FEATURES" :as :keyword :default :cljs]}}}}
:js-options {:js-provider :closure}}}}
;; the tests are ran with node, react-native dependencies are mocked
;; by using node --require override.js, which uses the node-library
;; produced by the target :mocks below and redefines node require

View File

@ -211,9 +211,6 @@
(def react-native-draggable-flatlist
#js {:default #js {}})
(def react-native-notifications
#js {:Notifications #js {}})
(def react-native-blur
(clj->js {:BlurView {}}))
@ -257,7 +254,6 @@
"@react-native-community/blur" react-native-blur
"react-native-camera-kit" react-native-camera-kit
"rn-emoji-keyboard" rn-emoji-keyboard
"react-native-notifications" react-native-notifications
"react-native-draggable-flatlist" react-native-draggable-flatlist
"./fleets.js" default-fleets
"./chats.js" default-chats

View File

@ -1,35 +0,0 @@
(ns status-im.acquisition.advertiser
(:require [status-im.utils.fx :as fx]
[status-im.popover.core :as popover]
[status-im.ethereum.core :as ethereum]
[status-im.acquisition.gateway :as gateway]
[status-im.acquisition.claim :as claim]
[status-im.acquisition.notifications :as notifications]
[status-im.acquisition.persistance :as persistence]))
(fx/defn start-acquisition
[cofx _]
(popover/show-popover cofx
{:prevent-closing? true
:view :advertiser-invite}))
(fx/defn advertiser-decide
{:events [::decision]}
[{:keys [db] :as cofx} decision]
(let [referral (get-in db [:acquisition :referrer])
{:keys [rewardable]} (get-in db [:acquisition :metadata])
payload {:chat_key (get-in db [:multiaccount :public-key])
:address (ethereum/default-address db)
:invite_code referral}]
(fx/merge cofx
(if (= decision :accept)
(fn [cofx]
(fx/merge cofx
(when rewardable
(notifications/accept))
(gateway/handle-acquisition {:message payload
:method "PATCH"
:url [:clicks referral]
:on-success [::claim/success-starter-pack-claim]})))
{::persistence/set-referrer-state :declined})
(popover/hide-popover))))

View File

@ -1,65 +0,0 @@
(ns status-im.acquisition.chat
(:require [re-frame.core :as re-frame]
[status-im.utils.fx :as fx]
[status-im.acquisition.claim :as claim]
[status-im.ethereum.core :as ethereum]
[status-im.acquisition.persistance :as persistence]
[status-im.acquisition.notifications :as notifications]
[status-im.acquisition.gateway :as gateway]
[status-im.chat.models :as chat]
[status-im.navigation :as navigation]
[status-im.bottom-sheet.core :as bottom-sheet]))
(def public-chat "public-chat")
(fx/defn start-acquisition
[{:keys [db]} {:keys [key id] :as referrer} public]
{:db (assoc-in db [:acquisition :chat-referrer (or key id)] referrer)
::persistence/chat-initialized? (fn [state]
(when-not (= "initialized" state)
(if public
(re-frame/dispatch [::start-public-chat referrer public])
(re-frame/dispatch [::start-chat referrer public]))))})
(fx/defn start-chat
{:events [::start-chat]}
[cofx {:keys [key id]} public]
(fx/merge cofx
{::persistence/chat-initalized! true}
(chat/start-chat key nil)))
(fx/defn start-public-chat
{:events [::start-public-chat]}
[cofx referrer chat-name]
(fx/merge cofx
{::persistence/chat-initalized! true}
(navigation/navigate-to-cofx :referral-enclav nil)))
(fx/defn join-public-chat
[cofx chat-name]
(chat/start-public-chat cofx chat-name nil))
(fx/defn accept-pack
{:events [::accept-pack]}
[{:keys [db] :as cofx}]
(let [referral (get-in db [:acquisition :referrer])
{:keys [type id rewardable]} (get-in db [:acquisition :metadata])
payload {:chat_key (get-in db [:multiaccount :public-key])
:address (ethereum/default-address db)
:invite_code referral}]
(fx/merge cofx
(when rewardable
(notifications/accept))
(when (= type public-chat)
(join-public-chat id))
(gateway/handle-acquisition {:message payload
:method "PATCH"
:url [:clicks referral]
:on-success [::claim/success-starter-pack-claim]}))))
(fx/defn decline
{:events [::decline]}
[cofx]
(fx/merge cofx
{::persistence/set-referrer-state :declined}
(bottom-sheet/hide-bottom-sheet)))

View File

@ -1,44 +0,0 @@
(ns status-im.acquisition.claim
(:require [status-im.utils.fx :as fx]
[status-im.ethereum.transactions.core :as transaction]
[status-im.acquisition.notifications :as notifications]
[status-im.acquisition.persistance :as persistence]
[status-im.ethereum.json-rpc :as json-rpc]
[re-frame.core :as re-frame]))
(fx/defn success-tx-received
{:events [::success-tx-received]}
[cofx]
(fx/merge cofx
(notifications/claimed)
{::persistence/set-referrer-state :claimed}))
(fx/defn add-tx-watcher
{:events [::add-tx-watcher]}
[cofx tx]
(fx/merge cofx
{::persistence/set-watch-tx tx}
(transaction/watch-transaction tx
{:trigger-fn (constantly true)
:on-trigger
(fn []
{:dispatch [::success-tx-received]})})))
(fx/defn check-transaction-receipt
{:events [::check-transaction-receipt]}
[cofx tx]
(when tx
{::json-rpc/call [{:method "eth_getTransactionReceipt"
:params [tx]
:on-success (fn [receipt]
(if receipt
(re-frame/dispatch [::success-tx-received])
(re-frame/dispatch [::add-tx-watcher tx])))}]}))
(fx/defn success-starter-pack-claim
{:events [::success-starter-pack-claim]}
[cofx {:keys [tx]}]
(fx/merge cofx
{::persistence/set-referrer-state (if tx :accepted :claimed)}
(when tx
(add-tx-watcher tx))))

View File

@ -1,127 +0,0 @@
(ns status-im.acquisition.core
(:require [re-frame.core :as re-frame]
[clojure.string :as string]
[status-im.utils.fx :as fx]
[status-im.ethereum.core :as ethereum]
[status-im.ethereum.ens :as ens]
[status-im.ethereum.contracts :as contracts]
[status-im.acquisition.notifications :as notifications]
[status-im.acquisition.chat :as chat]
[status-im.acquisition.dapp :as dapp]
[status-im.acquisition.claim :as claim]
[status-im.acquisition.advertiser :as advertiser]
[status-im.acquisition.persistance :as persistence]
[status-im.acquisition.gateway :as gateway]
[status-im.utils.config :as config]
[status-im.acquisition.install-referrer :as install-referrer]))
(def not-found-code "notfound.click_id")
(def advertiser-type "advertiser")
(def chat-type "chat")
(def chat-public-type "public-chat")
(def dapp-type "dapp")
(fx/defn handle-registration
[cofx {:keys [message on-success]}]
(gateway/handle-acquisition cofx
{:message message
:on-success on-success
:method "POST"
:url [:registrations nil]}))
(re-frame/reg-fx
::get-referrer
(fn []
(persistence/get-referrer-flow-state
(fn [^js data]
(install-referrer/get-referrer
(fn [install-referrer]
(persistence/set-referrer install-referrer)
(when (not= install-referrer "unknown")
(when-let [referrer (install-referrer/parse-referrer install-referrer)]
(re-frame/dispatch [::has-referrer data referrer])))))))))
(re-frame/reg-fx
::check-referrer
(fn [external-referrer]
(persistence/get-referrer-flow-state
(fn [^js data]
(if external-referrer
(re-frame/dispatch [::has-referrer data external-referrer])
(persistence/get-referrer
(fn [install-referrer]
(when (not= install-referrer "unknown")
(when-let [referrer (install-referrer/parse-referrer install-referrer)]
(re-frame/dispatch [::has-referrer data referrer]))))))))))
(fx/defn referrer-registered
{:events [::referrer-registered]}
[{:keys [db] :as cofx} referrer {:keys [type attributed] :as referrer-meta}]
(when-not attributed
(fx/merge cofx
{:db (assoc-in db [:acquisition :metadata] referrer-meta)
::notifications/create-channel nil}
(cond
(= type advertiser-type)
(advertiser/start-acquisition referrer-meta)
(#{chat-type chat-public-type} type)
(chat/start-acquisition referrer-meta (= type chat-public-type))
(= type dapp-type)
(dapp/start-acquisition referrer-meta)))))
(fx/defn outdated-referrer
{:events [::outdated-referrer]}
[_ _]
{::persistence/set-referrer-state :outdated})
(fx/defn has-referrer
{:events [::has-referrer]}
[{:keys [db] :as cofx} flow-state referrer]
(when referrer
(fx/merge cofx
{:db (-> db
(assoc-in [:acquisition :referrer] referrer)
(assoc-in [:acquisition :flow-state] flow-state))}
(cond
(nil? flow-state)
(gateway/get-referrer
referrer
(fn [resp] [::referrer-registered referrer resp])
(fn [{:keys [code]}] (= code not-found-code))
(fn [resp]
(re-frame/dispatch [::outdated-referrer resp])))
(= flow-state (:accepted persistence/referrer-state))
(fn [_]
{::persistence/check-tx-state (fn [tx]
(when-not (nil? tx)
(re-frame/dispatch [::claim/check-transaction-receipt tx])))})))))
(re-frame/reg-fx
::resolve-contract
(fn [{:keys [chain-id contract on-success]}]
(when contract
(if (string/starts-with? contract "0x")
(on-success contract)
(ens/address chain-id contract on-success)))))
(fx/defn create [{:keys [db]}]
(when-not config/google-free
{::resolve-contract {:chain (ethereum/chain-id db)
:contract (contracts/get-address db :status/acquisition)
:on-success #(re-frame/dispatch [:set-in [:acquisition :contract] %])}
::get-referrer nil}))
(fx/defn login [{:keys [db]}]
(when-not config/google-free
{::resolve-contract {:chain (ethereum/chain-id db)
:contract (contracts/get-address db :status/acquisition)
:on-success #(re-frame/dispatch [:set-in [:acquisition :contract] %])}
::check-referrer nil}))
(re-frame/reg-sub
::metadata
(fn [db]
(get-in db [:acquisition :metadata])))

View File

@ -1,40 +0,0 @@
(ns status-im.acquisition.dapp
(:require [status-im.utils.fx :as fx]
[status-im.popover.core :as popover]
[status-im.ethereum.core :as ethereum]
[status-im.acquisition.gateway :as gateway]
[status-im.acquisition.claim :as claim]
[status-im.browser.core :as browser]
[status-im.utils.security :as security]
[status-im.acquisition.persistance :as persistence]))
(fx/defn start-acquisition
[cofx _]
(popover/show-popover cofx
{:prevent-closing? true
:view :dapp-invite}))
(fx/defn succes-claim
{:events [::success-claim]}
[cofx response]
(let [link (get-in cofx [:db :acquisition :metadata :url])]
(fx/merge cofx
(when (security/safe-link? link)
(browser/open-url link))
(claim/success-starter-pack-claim response))))
(fx/defn dapp-decision
{:events [::decision]}
[{:keys [db] :as cofx} decision]
(let [referral (get-in db [:acquisition :referrer])
payload {:chat_key (get-in db [:multiaccount :public-key])
:address (ethereum/default-address db)
:invite_code referral}]
(fx/merge cofx
(if (= decision :accept)
(gateway/handle-acquisition {:message payload
:method "PATCH"
:url [:clicks referral]
:on-success [::success-claim]})
{::persistence/set-referrer-state :declined})
(popover/hide-popover))))

View File

@ -1,87 +0,0 @@
(ns status-im.acquisition.gateway
(:require [re-frame.core :as re-frame]
[status-im.utils.fx :as fx]
[status-im.ethereum.core :as ethereum]
[status-im.i18n.i18n :as i18n]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.utils.types :as types]))
(def acquisition-gateway {:mainnet "https://get.status.im"
:rinkeby "https://test-referral.status.im"})
(defn acquisition-routes [network type]
(get {:clicks (str (get acquisition-gateway network) "/clicks")
:registrations (str (get acquisition-gateway network) "/registrations")}
type))
(def network-statuses {:initiated 1
:in-flight 2
:error 3
:success 4})
(defn get-url [network [type referral]]
(if (= type :clicks)
(str (acquisition-routes network :clicks) "/" referral)
(acquisition-routes network :registrations)))
(fx/defn handle-error
{:events [::on-error]}
[{:keys [db]} error]
{:db (assoc-in db [:acquisition :network-status]
(get network-statuses :error))
:utils/show-popup {:title (i18n/label :t/http-gateway-error)
:content (str error)}})
(fx/defn handle-acquisition
{:events [::handle-acquisition]}
[{:keys [db] :as cofx} {:keys [message on-success method url]}]
(let [msg (types/clj->json message)
network (ethereum/chain-keyword db)]
{:db (assoc-in db [:acquisition :network-status]
(get network-statuses :initiated))
::json-rpc/call [{:method "wakuext_signMessageWithChatKey"
:params [msg]
:on-error #(re-frame/dispatch [::on-error (i18n/label :t/sign-request-failed)])
:on-success #(re-frame/dispatch [::call-acquisition-gateway
{:chat-key (get-in db [:multiaccount :public-key])
:message msg
:method method
:url (get-url network url)
:on-success on-success} %])}]}))
(fx/defn call-acquisition-gateway
{:events [::call-acquisition-gateway]}
[{:keys [db]}
{:keys [chat-key message on-success type url method]}
sig]
(let [payload {:chat_key chat-key
:msg message
:sig sig
:version 2}]
{:db (assoc-in db [:acquisition :network-status]
(get network-statuses :in-flight))
:http-post {:url url
:opts {:headers {"Content-Type" "application/json"}
:method method}
:data (types/clj->json payload)
:on-success (fn [response]
(re-frame/dispatch [:set-in [:acquisition :network-status]]
(get network-statuses :success))
(re-frame/dispatch (conj on-success (types/json->clj (get response :response-body)))))
:on-error (fn [error]
(re-frame/dispatch [::on-error (:error (types/json->clj (get error :response-body)))]))}}))
(fx/defn get-referrer
[{:keys [db]} referrer on-success handled-error handle-error]
(let [network (ethereum/chain-keyword db)]
{:http-get {:url (get-url network [:clicks referrer])
:on-success (fn [response]
(re-frame/dispatch (on-success (types/json->clj response))))
:on-error (fn [response]
(let [error (types/json->clj response)]
(if (handled-error error)
(handle-error error)
(re-frame/dispatch [::on-error (:error error)]))))}}))
(re-frame/reg-sub
::network-status
(fn [db]
(get-in db [:acquisition :network-status])))

View File

@ -1,14 +0,0 @@
(ns status-im.acquisition.install-referrer
(:require [taoensso.timbre :as log]
["react-native-device-info" :refer [getInstallReferrer]]
[status-im.utils.http :as http]))
(defn parse-referrer
"Google return query params for referral with all utm tags"
[referrer]
(-> referrer http/query->map (get "referrer")))
(defn get-referrer [cb]
(-> (getInstallReferrer)
(.then cb)
(.catch #(log/error "[install-referrer]" %))))

View File

@ -1,33 +0,0 @@
(ns status-im.acquisition.notifications
(:require [re-frame.core :as re-frame]
[status-im.notifications.android :as pn-android]
[status-im.utils.fx :as fx]
[status-im.i18n.i18n :as i18n]
[status-im.notifications.core :as notifications]
[status-im.ui.components.react :as react]
[quo.platform :as platform]
[status-im.ethereum.tokens :as tokens]))
(def channel-id "status-im-referrals")
(re-frame/reg-fx
::create-channel
(fn []
(when platform/android?
(pn-android/create-channel {:channel-id channel-id
:channel-name "Status referrals push notifications"}))))
(fx/defn accept
[_]
{::notifications/local-notification
{:title (i18n/label :t/starter-pack-coming)
:message (i18n/label :t/starter-pack-coming-description)
:channel-id channel-id
:icon (:uri (react/resolve-asset-source tokens/snt-icon-source))}})
(fx/defn claimed
[_]
{::notifications/local-notification {:title (i18n/label :t/starter-pack-received)
:message (i18n/label :t/starter-pack-received-description)
:channel-id channel-id
:icon (:uri (react/resolve-asset-source tokens/snt-icon-source))}})

View File

@ -1,84 +0,0 @@
(ns status-im.acquisition.persistance
(:require [re-frame.core :as re-frame]
[taoensso.timbre :as log]
["@react-native-community/async-storage" :default async-storage]))
(def chat-initialized-key "acquisition-chat-initialized")
(def referrer-flow-state-key "acquisition-referrer-flow-state")
(def tx-store-key "acquisition-watch-tx")
(def referrer-key "acquisition-referrer")
(def referrer-state {:accepted "accepted"
:declined "declined"
:claimed "claimed"
:outdated "outdated"})
(re-frame/reg-fx
::set-referrer-state
(fn [decision]
(-> ^js async-storage
(.setItem referrer-flow-state-key (get referrer-state decision))
(.then (fn []
(re-frame/dispatch [:set-in [:acquisition :flow-state]
(get referrer-state decision)])))
(.catch (fn [error]
(log/error "[async-storage]" error))))))
(defn get-referrer-flow-state [on-success]
(-> ^js async-storage
(.getItem referrer-flow-state-key)
(.then (fn [^js data]
(on-success data)))
(.catch (fn [error]
(log/error "[async-storage]" error)))))
(re-frame/reg-fx
::check-tx-state
(fn [on-success]
(-> ^js async-storage
(.getItem tx-store-key)
(.then (fn [^js tx]
(on-success tx)))
(.catch (fn [error]
(log/error "[async-storage]" error))))))
(re-frame/reg-fx
::set-watch-tx
(fn [tx]
(when tx
(-> ^js async-storage
(.setItem tx-store-key tx)
(.catch (fn [error]
(log/error "[async-storage]" error)))))))
(re-frame/reg-fx
::chat-initalized!
(fn []
(-> ^js async-storage
(.setItem chat-initialized-key "initialized")
(.catch (fn [error]
(log/error "[async-storage]" error))))))
(re-frame/reg-fx
::chat-initialized?
(fn [on-success]
(-> ^js async-storage
(.getItem chat-initialized-key)
(.then (fn [^js data]
(on-success data)))
(.catch (fn [error]
(log/error "[async-storage]" error))))))
(defn set-referrer [referrer]
(-> ^js async-storage
(.setItem referrer-key referrer)
(.catch (fn [error]
(log/error "[async-storage]" error)))))
(defn get-referrer [on-success]
(-> ^js async-storage
(.getItem referrer-key)
(.then (fn [^js data]
(on-success data)))
(.catch (fn [error]
(log/error "[async-storage]" error)))))

View File

@ -1,182 +0,0 @@
(ns status-im.anon-metrics.core
(:require [taoensso.timbre :as log]
[re-frame.core :as re-frame]
[re-frame.interceptor :refer [->interceptor]]
[status-im.async-storage.core :as async-storage]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.utils.async :refer [async-periodic-exec async-periodic-stop!]]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.utils.platform :as platform]
[status-im.utils.build :as build]
[status-im.utils.fx :as fx]
[status-im.utils.config :as config]
[status-im.anon-metrics.transformers :as txf]))
(defonce events-foyer (atom []))
(defonce periodic-tasks-chan (atom nil))
(defn onboard-events
"Check if there are any events in the foyer,
flush them to the backend and clear foyer on-success."
[]
(let [outstanding-events @events-foyer]
(when (seq outstanding-events)
(reset! events-foyer [])
(json-rpc/call
{:method "appmetrics_saveAppMetrics"
:params [outstanding-events]
:on-success #()
:on-error (fn [err]
(log/error {:error err
:events outstanding-events})
(log/warn "The logged events will be rejected"))}))))
(re-frame/reg-fx
::transfer-data
(fn [transfer?]
(if (and transfer?
;; double run safety
(not @periodic-tasks-chan))
(do
(log/info "[anon-metrics] Start collection service")
(reset! periodic-tasks-chan
;; interval = 4000 ms (run every `interval` ms)
;; timeout = 5000 ms (exit if the fn doesn't exit within `timeout` ms)
(async-periodic-exec onboard-events 4000 5000)))
(do
(log/info "[anon-metrics] Stop collection service")
(when @periodic-tasks-chan
(async-periodic-stop! @periodic-tasks-chan)
(onboard-events) ; final onboard, will save and clear any pending events
(reset! periodic-tasks-chan nil))))))
(fx/defn start-transferring
[_]
{::transfer-data true})
(fx/defn stop-transferring
[_]
{::transfer-data false})
(defn transform-and-log [context]
(let [transformed-payload (txf/transform context)
should-send? (get-in context
[:coeffects
:db
:multiaccount
:anon-metrics/should-send?]
false)]
(when (and config/metrics-enabled? ;metrics are enabled
should-send? ; user opted-in
transformed-payload); we were able to transform metrics-shape
(swap!
events-foyer
conj
{:event (-> context :coeffects :event first)
:value transformed-payload
:app_version build/version
:os platform/os}))))
(re-frame/reg-fx ::transform-and-log transform-and-log)
(defn catch-events-before [context]
(transform-and-log context)
context)
(def interceptor
(->interceptor
:id :catch-events
:before catch-events-before))
(fx/defn hoax-capture-event
"Due to usage of fx/defn with fx/merge, it might not be able to
intercept some events (like navigate-to-cofx). In cases like that,
this hoax capture event can be used in conjunction with `fx/merge`"
{:events [::hoax-capture-event]}
[_ {:keys [og-event]}]
;; re-shape event to look like a context object
{::transform-and-log {:coeffects {:event og-event}}})
(fx/defn fetch-local-metrics-success
{:events [::fetch-local-metrics-success]}
[{:keys [db]} {:keys [metrics total-count clear-existing?]}]
{:db (-> db
(as-> db
(if clear-existing?
(assoc db
:anon-metrics/events metrics
:anon-metrics/total-count total-count)
(update db :anon-metrics/events concat metrics)))
(dissoc :anon-metrics/fetching?))})
(fx/defn fetch-local-metrics
{:events [::fetch-local-metrics]}
[{:keys [db]} {:keys [limit offset clear-existing?]}]
{::json-rpc/call [{:method "appmetrics_getAppMetrics"
:params [(or limit 3) (or offset 0)]
:on-success #(re-frame/dispatch
[::fetch-local-metrics-success
{:metrics (get % :AppMetrics [])
:total-count (get % :TotalCount 0)
:clear-existing? clear-existing?}])}]
:db (assoc db :anon-metrics/fetching? true)})
(fx/defn set-opt-in-screen-displayed-flag
[{:keys [db]}]
{::async-storage/set! {:anon-metrics/opt-in-screen-displayed? true}
:db (assoc db :anon-metrics/opt-in-screen-displayed? true)})
(fx/defn set-show-thank-you
{:events [::set-show-thank-you]}
[{:keys [db]} show?]
{:db (assoc db :anon-metrics/show-thank-you? show?)})
(defn on-opt-in-success [enabled?]
(if enabled?
(do
;; animate
(re-frame/dispatch [::set-show-thank-you true])
;; and redirect after 1 second
(js/setTimeout
(fn []
(re-frame/dispatch [:navigate-reset {:index 0
:routes [{:name :tabs}]}])
(re-frame/dispatch [::set-show-thank-you false]))
1000))
(re-frame/dispatch [:navigate-reset {:index 0
:routes [{:name :tabs}]}])))
(fx/defn fetch-opt-in-displayed-success
{:events [::fetch-opt-in-displayed-success]}
[{:keys [db]} [k v]]
{:db (assoc db k v)})
(fx/defn fetch-opt-in-screen-displayed?
{:events [::fetch-opt-in-screen-displayed?]}
[cofx]
{::async-storage/get
{:keys [:anon-metrics/opt-in-screen-displayed?]
:cb #(re-frame/dispatch [::fetch-opt-in-displayed-success (first %)])}})
(fx/defn opt-in
{:events [::opt-in]}
[cofx enabled?]
(fx/merge cofx
(set-opt-in-screen-displayed-flag)
(if enabled?
(start-transferring)
(stop-transferring))
(multiaccounts.update/multiaccount-update
:anon-metrics/should-send? enabled?
{:on-success #(on-opt-in-success enabled?)})))
(comment
;; read the database
(def events-in-db (atom nil))
(->> events-in-db
deref
(take-last 5))
(json-rpc/call {:method "appmetrics_getAppMetrics"
:params [1000 0] ; limit, offset
:on-success #(reset! events-in-db %)}))

View File

@ -1,24 +0,0 @@
(ns status-im.anon-metrics.transformers)
(defn navigate-to-txf [context]
(let [event (-> context :coeffects :event)]
{:view_id (second event)
:params {:screen (get-in event [1 :screen] "")}}))
(defn screens-on-will-focus-txf [context]
(let [view-id (-> context :coeffects :event second)]
;; we need this check because in some cases, :screens/on-will-focus is dispatched
;; after navigate to this check ensures that only the events that are not handled
;; via navigate to are captured hence avoiding duplicates
(when (#{:chat :empty-tab :wallet :status :my-profile} view-id)
{:view_id view-id
:params {:screen ""}})))
(def value-transformations
{:navigate-to navigate-to-txf
:screens/on-will-focus screens-on-will-focus-txf})
(defn transform [ctx]
(when-let [txf (-> ctx :coeffects :event first value-transformations)]
(txf ctx)))

View File

@ -152,8 +152,6 @@
(def ^:const one-week (* one-day 7))
(def ^:const one-month (* one-day 31))
(def ^:const metrics-github-link
"https://github.com/status-im/status-go/blob/develop/_docs/app-metrics.md")
(def ^:const privacy-policy-link "https://status.im/privacy-policy/")
(def ^:const terms-of-service-link "https://status.im/terms-of-use")
(def ^:const docs-link "https://status.im/docs/")

View File

@ -15,10 +15,7 @@
:mainnet "0x12824271339304d3a9f7e096e62a2a7e73b4a7e7"}
:status/sticker-pack
{:testnet "0xf852198d0385c4b871e0b91804ecd47c6ba97351"
:mainnet "0x110101156e8F0743948B2A61aFcf3994A8Fb172e"}
:status/acquisition
{:rinkeby "statusreferrals.eth"
:mainnet "statusreferrals.eth"}})
:mainnet "0x110101156e8F0743948B2A61aFcf3994A8Fb172e"}})
(defn get-address
[db contract]

View File

@ -2,7 +2,6 @@
(:require clojure.set
[re-frame.core :as re-frame]
status-im.add-new.core
[status-im.anon-metrics.core :as anon-metrics]
[status-im.async-storage.core :as async-storage]
status-im.backup.core
status-im.bootnodes.core
@ -238,8 +237,7 @@
(chat/preload-chat-data cofx constants/timeline-chat-id)))
(fx/defn on-will-focus
{:events [:screens/on-will-focus]
:interceptors [anon-metrics/interceptor]}
{:events [:screens/on-will-focus]}
[{:keys [db] :as cofx} view-id]
(fx/merge cofx
(cond

View File

@ -2,7 +2,6 @@
(:require [clojure.string :as string]
[re-frame.core :as re-frame]
[status-im.multiaccounts.login.core :as multiaccounts.login]
[status-im.anon-metrics.core :as anon-metrics]
[status-im.native-module.core :as status]
[status-im.network.net-info :as network]
[status-im.db :refer [app-db]]
@ -58,8 +57,7 @@
(assoc :multiaccounts/logout? logout?)
(assoc :multiaccounts/loading false))
:dispatch-n [[::initialize-view]
[:get-opted-in-to-new-terms-of-service]
[::anon-metrics/fetch-opt-in-screen-displayed?]]})))
[:get-opted-in-to-new-terms-of-service]]})))
(fx/defn start-app
{:events [:init/app-started]}

View File

@ -3,7 +3,6 @@
[status-im.ethereum.stateofus :as stateofus]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.bottom-sheet.core :as bottom-sheet]
[status-im.anon-metrics.core :as anon-metrics]
[status-im.native-module.core :as native-module]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.utils.fx :as fx]
@ -150,17 +149,6 @@
:default-sync-period value
{}))
(fx/defn switch-share-anonymous-usage-data
{:events [:multiaccounts.ui/share-anonymous-usage-data-switched]}
[cofx opted-in?]
(fx/merge cofx
(multiaccounts.update/multiaccount-update
:anon-metrics/should-send? (boolean opted-in?)
{})
(if opted-in?
(anon-metrics/start-transferring)
(anon-metrics/stop-transferring))))
(fx/defn switch-preview-privacy-mode-flag
[{:keys [db]}]
(let [private? (get-in db [:multiaccount :preview-privacy?])]

View File

@ -1,6 +1,5 @@
(ns status-im.multiaccounts.login.core
(:require [re-frame.core :as re-frame]
[status-im.anon-metrics.core :as anon-metrics]
[status-im.contact.core :as contact]
[status-im.utils.config :as config]
[status-im.data-store.settings :as data-store.settings]
@ -27,7 +26,6 @@
[status-im.utils.utils :as utils]
[status-im.wallet.core :as wallet]
[status-im.wallet.prices :as prices]
[status-im.acquisition.core :as acquisition]
[taoensso.timbre :as log]
[status-im.data-store.invitations :as data-store.invitations]
[status-im.chat.models.link-preview :as link-preview]
@ -392,7 +390,6 @@
{:on-success
#(do (re-frame/dispatch [:chats-list/load-success %])
(re-frame/dispatch [::get-chats-callback]))})
(acquisition/login)
(initialize-appearance)
(initialize-communities-enabled)
(initialize-wallet-connect)
@ -474,22 +471,9 @@
(defn redirect-to-root
"Decides which root should be initialised depending on user and app state"
[db]
(let [tos-accepted? (get db :tos/accepted?)
metrics-opt-in-screen-displayed? (get db :anon-metrics/opt-in-screen-displayed?)]
;; There is a race condition to show metrics opt-in and
;; tos opt-in. Tos is more important and is displayed first.
;; Metrics opt-in is diplayed the next time the user logs in
(cond
(not tos-accepted?)
(re-frame/dispatch [:init-root :tos])
;; TODO <shivekkhurana>: This needs work post new navigation
(and tos-accepted?
(not metrics-opt-in-screen-displayed?)
config/metrics-enabled?)
(navigation/navigate-to :anon-metrics-opt-in {})
:else (re-frame/dispatch [:init-root :chat-stack]))))
(if (get db :tos/accepted?)
(re-frame/dispatch [:init-root :chat-stack])
(re-frame/dispatch [:init-root :tos])))
(fx/defn login-only-events
[{:keys [db] :as cofx} key-uid password save-password?]
@ -571,8 +555,7 @@
recovered-account?
(keycard-setup? cofx)))
from-migration? (get-in db [:keycard :from-key-storage-and-migration?])
nodes nil
should-send-metrics? (get-in db [:multiaccount :anon-metrics/should-send?])]
nodes nil]
(log/debug "[multiaccount] multiaccount-login-success"
"login-only?" login-only?
"recovered-account?" recovered-account?)
@ -581,9 +564,6 @@
::json-rpc/call
[{:method "web3_clientVersion"
:on-success #(re-frame/dispatch [::initialize-web3-client-version %])}]}
;; Start tasks to save usage data locally
(when should-send-metrics?
(anon-metrics/start-transferring))
;;FIXME
(when nodes
(fleet/set-nodes :eth.contract nodes))
@ -722,14 +702,8 @@
(fx/defn welcome-lets-go
{:events [:welcome-lets-go]}
[cofx]
(let [first-account? (get-in cofx [:db :multiaccount :multiaccounts/first-account])]
(fx/merge cofx
{:init-root-fx :chat-stack}
(when first-account?
(acquisition/create))
(when config/metrics-enabled?
{:dispatch [:navigate-to :anon-metrics-opt-in]}))))
[_]
{:init-root-fx :chat-stack})
(fx/defn multiaccount-selected
{:events [:multiaccounts.login.ui/multiaccount-selected]}

View File

@ -1,6 +1,5 @@
(ns status-im.multiaccounts.logout.core
(:require [re-frame.core :as re-frame]
[status-im.anon-metrics.core :as anon-metrics]
[status-im.i18n.i18n :as i18n]
[status-im.init.core :as init]
[status-im.native-module.core :as status]
@ -13,8 +12,7 @@
(fx/defn logout-method
{:events [::logout-method]}
[{:keys [db] :as cofx} {:keys [auth-method logout?]}]
(let [key-uid (get-in db [:multiaccount :key-uid])
should-send-metrics? (get-in db [:multiaccount :anon-metrics/should-send?])]
(let [key-uid (get-in db [:multiaccount :key-uid])]
(fx/merge cofx
{:init-root-fx :progress
:hide-popover nil
@ -22,8 +20,6 @@
::multiaccounts/webview-debug-changed false
:keychain/clear-user-password key-uid
::init/open-multiaccounts #(re-frame/dispatch [::init/initialize-multiaccounts % {:logout? logout?}])}
(when should-send-metrics?
(anon-metrics/stop-transferring))
(keychain/save-auth-method key-uid auth-method)
(wallet/clear-timeouts)
(init/initialize-app-db))))

View File

@ -1,6 +1,5 @@
(ns status-im.navigation
(:require [status-im.anon-metrics.core :as anon-metrics]
[status-im.utils.fx :as fx]))
(:require [status-im.utils.fx :as fx]))
(defn- all-screens-params [db view screen-params]
(cond-> db
@ -15,9 +14,7 @@
{:db
(-> (assoc db :view-id go-to-view-id)
(all-screens-params go-to-view-id screen-params))
:navigate-to-fx go-to-view-id
;; simulate a navigate-to event so it can be captured be anon-metrics
::anon-metrics/transform-and-log {:coeffects {:event [:navigate-to go-to-view-id screen-params]}}})
:navigate-to-fx go-to-view-id})
(fx/defn navigate-to
{:events [:navigate-to]}
@ -45,8 +42,7 @@
{:change-tab-fx tab})
(fx/defn navigate-replace
{:events [:navigate-replace]
:interceptors [anon-metrics/interceptor]}
{:events [:navigate-replace]}
[{:keys [db]} go-to-view-id screen-params]
(let [db (cond-> (assoc db :view-id go-to-view-id)
(seq screen-params)

View File

@ -1,50 +0,0 @@
(ns status-im.notifications.android-remote
(:require #?@(:google-free []
:cljs [[re-frame.core :as re-frame]
[taoensso.timbre :as log]
[status-im.notifications.android :as pn-android]
["react-native-notifications" :refer (Notifications)]])))
#?(:google-free
[(defn register-remote-notifications [] nil)
(defn unregister-remote-notifications [] nil)]
:cljs
[(defonce remote-notifications? (atom false))
(defn remote-notifications-registered-listener []
(.registerRemoteNotificationsRegistered
(.events Notifications)
(fn [^js evn]
(let [token (.-deviceToken evn)]
(when @remote-notifications?
(re-frame/dispatch [:notifications/registered-for-push-notifications token]))))))
(defn remote-notifications-registration-failed-listener []
(.registerRemoteNotificationsRegistrationFailed
(.events Notifications)
(fn [^js err]
(log/info "Remote notifications registration failed" err)
(reset! @remote-notifications? false)
(re-frame/dispatch [:notifications/switch-error true err]))))
(defn notification-opened-listener []
(.registerNotificationOpened
(.events Notifications)
(fn [^js _ cb _]
(when @remote-notifications?
(pn-android/clear-all-message-notifications))
(^js cb))))
(defn register-remote-notifications []
(reset! remote-notifications? true)
;; event listeners registeration
(remote-notifications-registered-listener)
(remote-notifications-registration-failed-listener)
(notification-opened-listener)
;; Register for remote notifications
(.registerRemoteNotifications Notifications))
(defn unregister-remote-notifications []
(reset! remote-notifications? false)
(re-frame/dispatch [:notifications/unregistered-from-push-notifications]))])

View File

@ -8,8 +8,7 @@
[status-im.notifications.local :as local]
[quo.platform :as platform]
[status-im.utils.config :as config]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.notifications.android-remote :as pn-android-remote]))
[status-im.ethereum.json-rpc :as json-rpc]))
(def server-type-default 1)
(def server-type-custom 2)
@ -46,22 +45,14 @@
(.abandonPermissions ^js pn-ios)
(re-frame/dispatch [:notifications/unregistered-from-push-notifications]))
(defn enable-android-notifications [remote-push-notifications-enabled?]
(if (and remote-push-notifications-enabled? (not config/google-free))
(do
(pn-android/disable-notifications)
(pn-android/clear-all-message-notifications)
(pn-android-remote/register-remote-notifications))
(do
(pn-android-remote/unregister-remote-notifications)
(pn-android/create-channel
{:channel-id "status-im-notifications"
:channel-name "Status push notifications"})
(pn-android/enable-notifications))))
(defn enable-android-notifications []
(pn-android/create-channel
{:channel-id "status-im-notifications"
:channel-name "Status push notifications"})
(pn-android/enable-notifications))
(defn disable-android-notifications []
(pn-android/disable-notifications)
(pn-android-remote/unregister-remote-notifications))
(pn-android/disable-notifications))
;; FIXME: Repalce with request permission from audio messages PR lib
(re-frame/reg-fx
@ -82,10 +73,9 @@
(re-frame/reg-fx
::enable
(fn [remote-push-notifications-enabled?]
(fn []
(if platform/android?
(enable-android-notifications
remote-push-notifications-enabled?)
(enable-android-notifications)
(enable-ios-notifications))))
(re-frame/reg-fx
@ -102,16 +92,13 @@
(pn-android/disable-notifications)
(.abandonPermissions ^js pn-ios))))
(defn clear-all-message-notifications []
(if platform/android?
(pn-android/clear-all-message-notifications)
(.removeAllDeliveredNotifications ^js pn-ios)))
(re-frame/reg-fx
:clear-message-notifications
(fn [[chat-ids remote-push-notifications-enabled?]]
(fn [[chat-ids] remote-push-notifications-enabled?]
(if remote-push-notifications-enabled?
(clear-all-message-notifications)
(if platform/android?
(pn-android/clear-all-message-notifications)
(.removeAllDeliveredNotifications ^js pn-ios))
(when platform/android?
(doseq [chat-id chat-ids]
(pn-android/clear-message-notifications chat-id))))))

View File

@ -52,8 +52,7 @@
"g/" group-chat-extractor
["wallet/" :account] :wallet-account
["u/" :user-id] :user
["user/" :user-id] :user
["referral/" :referrer] :referrals}
["user/" :user-id] :user}
ethereum-scheme eip-extractor}])
(defn parse-query-params
@ -175,10 +174,6 @@
(defn address->eip681 [address]
(match-eip681 (str ethereum-scheme address)))
(defn match-referral [{:keys [referrer]}]
{:type :referrals
:referrer referrer})
(defn match-wallet-account [{:keys [account]}]
{:type :wallet-account
:account (when account (string/lower-case account))})
@ -217,9 +212,6 @@
(= handler :community-chat)
(cb {:type handler :chat-id (:chat-id route-params)})
(= handler :referrals)
(cb (match-referral route-params))
(= handler :wallet-account)
(cb (match-wallet-account route-params))

View File

@ -236,8 +236,6 @@
(reg-root-key-sub :push-notifications/servers :push-notifications/servers)
(reg-root-key-sub :push-notifications/preferences :push-notifications/preferences)
(reg-root-key-sub :acquisition :acquisition)
(reg-root-key-sub :buy-crypto/on-ramps :buy-crypto/on-ramps)
;; communities
@ -253,15 +251,6 @@
(reg-root-key-sub :activity.center/notifications :activity.center/notifications)
(reg-root-key-sub :activity.center/notifications-count :activity.center/notifications-count)
;; anon. metrics
(reg-root-key-sub :anon-metrics/opt-in-screen-displayed? :anon-metrics/opt-in-screen-displayed?)
(reg-root-key-sub :anon-metrics/show-thank-you? :anon-metrics/show-thank-you?)
(reg-root-key-sub :anon-metrics/events :anon-metrics/events)
(reg-root-key-sub :anon-metrics/total-count :anon-metrics/total-count)
(reg-root-key-sub :anon-metrics/fetching? :anon-metrics/fetching?)
(reg-root-key-sub :anon-metrics/data-visible? :anon-metrics/data-visible?)
(reg-root-key-sub :anon-metrics/learn-more-visible? :anon-metrics/learn-more-visible?)
(reg-root-key-sub :bug-report/description-error :bug-report/description-error)
(reg-root-key-sub :bug-report/details :bug-report/details)

View File

@ -1,19 +0,0 @@
(ns status-im.ui.components.invite.advertiser
(:require [status-im.ui.components.invite.modal :as modal]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[status-im.acquisition.core :as acquisition]
[status-im.acquisition.advertiser :as advertiser]))
(defn accept-popover []
(let [{:keys [rewardable]} @(re-frame/subscribe [::acquisition/metadata])]
[modal/popover {:on-accept #(re-frame/dispatch [::advertiser/decision :accept])
:on-decline #(re-frame/dispatch [::advertiser/decision :decline])
:has-reward rewardable
:accept-label (i18n/label :t/advertiser-starter-pack-accept)
:title (if rewardable
(i18n/label :t/advertiser-starter-pack-title)
(i18n/label :t/advertiser-title))
:description (if rewardable
(i18n/label :t/advertiser-starter-pack-description)
(i18n/label :t/advertiser-description))}]))

View File

@ -1,126 +0,0 @@
(ns status-im.ui.components.invite.chat
(:require [clojure.string :as cstr]
[quo.design-system.colors :as colors]
[quo.design-system.spacing :as spacing]
[quo.react-native :as rn]
[re-frame.core :as re-frame]
[status-im.ui.components.invite.utils :as utils]
[quo.core :as quo]
[status-im.acquisition.chat :as acquisition]
[status-im.ui.components.invite.events :as invite]
[status-im.i18n.i18n :as i18n]
[status-im.acquisition.gateway :as gateway]
[status-im.ui.components.invite.style :as styles]))
(defn messages-wrapper []
(:small spacing/padding-vertical))
(defn message-wrapper []
{:padding-right 96
:padding-left 8
:flex-direction :row})
(defn message-view []
{:border-top-left-radius 16
:border-top-right-radius 16
:border-bottom-right-radius 16
:border-radius 8
:border-bottom-left-radius 4
:border-width 1
:margin-bottom 4
:border-color (:border-01 @colors/theme)})
(defn message-text []
(merge (:small spacing/padding-horizontal)
{:padding-vertical 6}))
(defn author-text []
(merge (:small spacing/padding-horizontal)
{:padding-top (:tiny spacing/spacing)
:paddingbottom (:x-tiny spacing/spacing)}))
(defn button-message []
{:flex-direction :row
:justify-content :center
:align-items :center})
(defn starter-pack-style []
(merge (:small spacing/padding-horizontal)
(:small spacing/padding-vertical)
{:background-color (:interactive-02 @colors/theme)
:flex-direction :row
:border-bottom-width 1
:border-top-width 1
:border-color (:border-02 @colors/theme)}))
(defn starter-pack []
(let [pack @(re-frame/subscribe [::invite/starter-pack])
tokens (utils/transform-tokens pack)
reward-text (->> tokens
(map (comp :symbol first))
(filter (comp not nil?))
(map name)
(cstr/join ", "))]
[rn/view {:style (starter-pack-style)}
[rn/view {:style (styles/reward-tokens-icons (count tokens))}
(doall
(for [[{name :name
{source :source} :icon} _ idx] tokens]
^{:key name}
[rn/view {:style (styles/reward-token-icon idx)}
[rn/image {:source (if (fn? source) (source) source)
:style {:width 40
:height 40}}]]))]
[rn/view {:style styles/reward-description}
[quo/text {:weight :medium}
(i18n/label :t/invite-chat-starter-pack)]
[quo/text {} reward-text]]]))
(defn render-message [{:keys [content]}]
[rn/view {:style (message-wrapper)}
[rn/view {:style (message-view)}
(for [{:keys [type value]} content]
(case type
:text [rn/view {:style (message-text)}
[quo/text value]]
:pack [starter-pack]
:author [rn/view {:style (author-text)}
[quo/text {:color :secondary}
value]]
:button [rn/view {:style (button-message)}
value]
nil))]])
(defn reward-messages []
(let [has-invite @(re-frame/subscribe [::invite/has-chat-invite])
loading (#{(get gateway/network-statuses :initiated)
(get gateway/network-statuses :in-flight)}
@(re-frame/subscribe [::gateway/network-status]))
pending @(re-frame/subscribe [::invite/pending-reward])
messages [{:content [{:type :text
:value "👋"}]}
{:content [{:type :author
:value (i18n/label :t/invite-chat-name)}
{:type :text
:value (i18n/label :t/invite-chat-intro)}
{:type :pack}
{:type :button
:value [quo/button {:type :secondary
:loading loading
:disabled pending
:on-press #(re-frame/dispatch [::acquisition/accept-pack])}
(if pending
(i18n/label :t/invite-chat-pending)
(i18n/label :t/invite-chat-accept))]}]}
{:content [{:type :text
:value (i18n/label :t/invite-chat-rule)}]}
{:content [{:type :text
:value [:<>
(i18n/label :t/invite-privacy-policy1) " "
[quo/text {:color :link
:on-press #(re-frame/dispatch [::invite/terms-and-conditions])}
(i18n/label :t/invite-privacy-policy2)]]}]}]]
(when has-invite
[rn/view {:style (messages-wrapper)}
(for [message messages]
[render-message message])])))

View File

@ -1,17 +0,0 @@
(ns status-im.ui.components.invite.dapp
(:require [status-im.ui.components.invite.modal :as modal]
[re-frame.core :as re-frame]
[status-im.acquisition.core :as acquisition]
[status-im.i18n.i18n :as i18n]
[status-im.acquisition.dapp :as dapp]))
(defn accept-popover []
(let [{:keys [rewardable]} @(re-frame/subscribe [::acquisition/metadata])]
[modal/popover {:on-accept #(re-frame/dispatch [::dapp/decision :accept])
:on-decline #(re-frame/dispatch [::dapp/decision :decline])
:has-reward rewardable
:accept-label (i18n/label :t/dapp-starter-pack-accept)
:title (i18n/label :t/dapp-starter-pack-title)
:description (i18n/label :t/dapp-starter-pack-description)}]))

View File

@ -1,23 +1,9 @@
(ns status-im.ui.components.invite.events
(:require [re-frame.core :as re-frame]
[reagent.ratom :refer [make-reaction]]
[taoensso.timbre :as log]
[status-im.utils.fx :as fx]
[status-im.utils.config :as config]
[status-im.ethereum.abi-spec :as abi-spec]
[status-im.ethereum.json-rpc :as json-rpc]
[status-im.i18n.i18n :as i18n]
[status-im.signing.core :as signing]
[status-im.ethereum.core :as ethereum]
[status-im.ui.components.react :as react]
[status-im.navigation :as navigation]
[status-im.utils.universal-links.utils :as universal-links]
[status-im.acquisition.core :as acquisition]
[status-im.acquisition.persistance :as persistence]
[status-im.utils.money :as money]
[status-im.bottom-sheet.core :as bottom-sheet]))
(def privacy-policy-link "https://status.im/referral-program/terms-and-conditions")
[status-im.utils.universal-links.utils :as universal-links]))
(re-frame/reg-fx
::share
@ -26,216 +12,9 @@
(fx/defn share-link
{:events [::share-link]}
[{:keys [db]} response]
[{:keys [db]}]
(let [{:keys [public-key preferred-name]} (get db :multiaccount)
invite-id (get response :invite_code)
profile-link (universal-links/generate-link :user :external
(or preferred-name public-key))
share-link (cond-> profile-link
invite-id
(str "?invite=" invite-id))
message (i18n/label :t/join-me {:url share-link})]
message (i18n/label :t/join-me {:url profile-link})]
{::share {:message message}}))
(fx/defn generate-invite
{:events [::generate-invite]}
[{:keys [db] :as cofx} {:keys [address]}]
(acquisition/handle-registration cofx
{:message {:address address
:interaction_address (get-in db [:multiaccount :public-key])}
:on-success [::share-link]}))
(re-frame/reg-sub
::has-chat-invite
:<- [:chats/current-chat-id]
:<- [:acquisition]
(fn [[chat-id acquisition]]
(let [{:keys [flow-state attributed]} acquisition
chat-referrer (get-in acquisition [:chat-referrer chat-id])]
(and chat-referrer
(not attributed)
(nil? flow-state)))))
(re-frame/reg-sub
::pending-reward
:<- [:acquisition]
(fn [{:keys [flow-state]}]
(= flow-state (get persistence/referrer-state :accepted))))
(re-frame/reg-sub
::has-public-chat-invite
:<- [:acquisition]
(fn [acquisition]
(let [{:keys [metadata flow-state attributed]} acquisition
{:keys [type]} metadata]
(and (= type "public-chat")
(not attributed)
(nil? flow-state)))))
(fx/defn go-to-invite
{:events [::open-invite]}
[{:keys [db] :as cofx}]
(let [contract (get-in db [:acquisition :contract])
accounts (filter #(not= (:type %) :watch) (get db :multiaccount/accounts))]
(fx/merge cofx
{::get-rewards (mapv (fn [{:keys [address]}]
{:address address
:contract contract
:on-success (fn [type data]
(re-frame/dispatch [::get-reward-success address type data]))})
accounts)}
(navigation/open-modal :referral-invite nil))))
(re-frame/reg-fx
::terms-and-conditions
(fn []
(.openURL ^js react/linking privacy-policy-link)))
(fx/defn open-privacy-policy-link
{:events [::terms-and-conditions]}
[_]
{::terms-and-conditions nil})
(fx/defn redeem-success
{:events [::redeem-success]}
[{:keys [db]} account]
{:db (assoc-in db [:acquisition :accounts account :bonuses] 0)})
(fx/defn redeem-error
{:events [::redeem-error]}
[cofx error]
{:utils/show-popup {:title "Error"
:content error}})
(fx/defn redeem-bonus
{:events [::redeem-bonus]}
[{:keys [db] :as cofx} {:keys [address]}]
(fx/merge cofx
(bottom-sheet/hide-bottom-sheet)
(signing/sign
{:tx-obj {:to (get-in db [:acquisition :contract])
:from address
:data (abi-spec/encode "withdrawAttributions()" [])}
:on-result [::redeem-success address]
:on-error [::redeem-error]})))
;; Invite reward
(re-frame/reg-sub
:invite/accounts-reward
(fn [db]
(get-in db [:acquisition :accounts])))
(re-frame/reg-sub
:invite/account-reward
:<- [:invite/accounts-reward]
(fn [accounts [_ account]]
(get accounts account)))
(defn- get-reward [contract address on-success]
(json-rpc/eth-call
{:contract contract
:method "pendingAttributionCnt(address)"
:params [address]
:outputs ["uint256"]
:on-success (fn [[response]]
(log/info "Attribution count for" address "=" response)
(on-success :attribution response))})
(json-rpc/eth-call
{:contract contract
:method "getReferralReward(address,bool)"
:params [address false]
;; [uint ethAmount, uint tokenLen, uint maxThreshold, uint attribCount]
:outputs ["uint256" "uint256" "uint256" "uint256"]
:on-success (fn [[eth-amount tokens-count max-threshold attrib-count]]
(on-success :reward [eth-amount tokens-count max-threshold attrib-count])
(log/info "Reward data for" address "=" eth-amount tokens-count max-threshold attrib-count)
(dotimes [id tokens-count]
(json-rpc/eth-call
{:contract contract
:method "getReferralRewardTokens(address,bool,uint256)"
:params [address false id]
:outputs ["address" "uint256"]
:on-success (fn [token-data]
(log/info "Token data for" address "token id" id "=" token-data)
(on-success :token token-data))})))}))
(re-frame/reg-fx
::get-rewards
(fn [accounts]
(doseq [{:keys [contract address on-success]} accounts]
(get-reward contract address on-success))))
(fx/defn default-reward-success
{:events [::default-reward-success]}
[{:keys [db]} type data]
(case type
:reward
(let [[eth-amount tokens-count max-threshold attrib-count] data]
{:db (assoc-in db [:acquisition :referral-reward] {:eth-amount (money/wei->ether eth-amount)
:tokens-count tokens-count
:max-threshold max-threshold
:attrib-count attrib-count})})
:token
(let [[address amount] data]
{:db (assoc-in db [:acquisition :referral-reward :tokens address] (money/wei->ether amount))})
:attribution
{:db (assoc-in db [:acquisition :referral-reward :bonuses] data)}))
(fx/defn get-reward-success
{:events [::get-reward-success]}
[{:keys [db]} account type data]
(case type
:reward
(let [[eth-amount _ max-threshold attrib-count] data]
{:db (update-in db [:acquisition :accounts account] merge {:eth-amount (money/wei->ether eth-amount)
:max-threshold max-threshold
:attrib-count attrib-count})})
:token
(let [[address amount] data]
{:db (assoc-in db [:acquisition :accounts account :tokens address] (money/wei->ether amount))})
:attribution
{:db (assoc-in db [:acquisition :accounts account :bonuses] data)}))
;;TODO this one rerender whole root many times FIX IT
(re-frame/reg-sub-raw
::default-reward
(fn [db]
(get-reward (get-in @db [:acquisition :contract])
(ethereum/default-address @db)
(fn [type data]
(re-frame/dispatch [::default-reward-success type data])))
(make-reaction
(fn []
(get-in @db [:acquisition :referral-reward])))))
;; Starter pack
(fx/defn get-starter-pack-amount
{:events [::starter-pack-amount]}
[{:keys [db]} [_ eth-amount tokens tokens-amount sticker-packs]]
{:db (assoc-in db [:acquisition :starter-pack :pack]
{:eth-amount (money/wei->ether eth-amount)
:tokens (zipmap tokens
(map money/wei->ether tokens-amount))
:sticker-packs sticker-packs})})
(re-frame/reg-sub-raw
::starter-pack
(fn [db]
(let [contract (get-in @db [:acquisition :contract])]
(json-rpc/eth-call
{:contract contract
:method "getDefaultPack()"
:outputs ["address" "uint256" "address[]" "uint256[]" "uint256[]"]
:on-success #(re-frame/dispatch [::starter-pack-amount (vec %)])})
(make-reaction
(fn []
(get-in @db [:acquisition :starter-pack :pack]))))))
(re-frame/reg-sub
::enabled
(fn [db]
(and config/referrals-invite-enabled?
(get-in db [:acquisition :contract]))))

View File

@ -1,77 +0,0 @@
(ns status-im.ui.components.invite.modal
(:require [re-frame.core :as re-frame]
[quo.react-native :as rn]
[quo.core :as quo]
[status-im.i18n.i18n :as i18n]
[status-im.ui.components.invite.style :as styles]
[status-im.ui.components.invite.events :as invite]
[status-im.acquisition.gateway :as gateway]
[status-im.ui.components.invite.utils :as utils]))
(defn perk [{name :name
{source :source} :icon} value]
[rn/view {:style {:flex-direction :row
:align-items :center
:padding-vertical 4}}
[rn/view {:style {:flex-direction :row}}
[rn/image {:source (if (fn? source) (source) source)
:style {:width 20
:height 20
:margin-right 8}}]
[quo/text {:size :small
:weight :medium}
(str value " ")]
[quo/text {:size :small
:weight :medium}
name]]])
(defn popover [{:keys [on-accept has-reward on-decline accept-label title description]}]
(fn []
(let [pack (when has-reward @(re-frame/subscribe [::invite/starter-pack]))
loading (#{(get gateway/network-statuses :initiated)
(get gateway/network-statuses :in-flight)}
@(re-frame/subscribe [::gateway/network-status]))
tokens (when has-reward (utils/transform-tokens pack))]
[rn/view {:style {:align-items :center
:padding-vertical 16
:padding-horizontal 16}}
(when has-reward
[rn/view {:style (styles/modal-tokens-icons-style (count tokens))}
(for [[{name :name
{source :source} :icon} _ i] tokens]
^{:key name}
[rn/view {:style (styles/modal-token-icon-style i)}
[rn/image {:source (if (fn? source) (source) source)
:style {:width 40
:height 40}}]])])
[rn/view {:style {:padding 8}}
(when title
[quo/text {:style {:margin-bottom 8}
:align :center
:size :x-large}
title])
[quo/text {:align :center}
description]]
(when has-reward
[rn/view {:style (styles/modal-perks-container)}
(for [[k v] tokens]
^{:key (:name k)}
[perk k v])])
[rn/view {:style {:margin-vertical 8}}
[quo/button {:on-press on-accept
:loading loading}
accept-label]]
[rn/view {:style {:opacity (if loading 0 1)}}
[quo/button {:type :secondary
:on-press on-decline}
(i18n/label :t/advertiser-starter-pack-decline)]]
[rn/view {:padding-vertical 8}
[quo/text {:color :secondary
:align :center
:size :small}
(i18n/label :t/invite-privacy-policy1)]
[quo/text {:color :link
:align :center
:size :small
:on-press #(re-frame/dispatch [::invite/terms-and-conditions])}
(i18n/label :t/invite-privacy-policy2)]]])))

View File

@ -1,104 +0,0 @@
(ns status-im.ui.components.invite.style
(:require [quo.design-system.spacing :as spacing]
[quo.design-system.colors :as colors]))
(def reward-item-title (merge (:base spacing/padding-horizontal)
{:padding-top 12
:padding-bottom 4}))
(defn reward-item-content []
(merge (:base spacing/padding-horizontal)
(:base spacing/padding-vertical)
{:background-color (:interactive-02 @colors/theme)
:flex-direction :row
:border-bottom-width 1
:border-top-width 1
:border-color (:border-02 @colors/theme)}))
(defn reward-token-icon [idx]
{:align-items :center
:shadow-radius 16
:shadow-opacity 1
:shadow-color (:shadow-01 @colors/theme)
:shadow-offset {:width 0 :height 4}
:width 40
:height 40
:border-radius 20
:position :absolute
:top (* idx 20)})
(def reward-description {:flex 1})
(defn reward-tokens-icons [c]
{:margin-right 16
:width 40
:height (- (* 40 c) (* 20 (dec c)))})
(defn home-token-icon-style [idx]
{:align-items :center
:shadow-radius 16
:shadow-opacity 1
:shadow-color (:shadow-01 @colors/theme)
:shadow-offset {:width 0 :height 4}
:width 20
:height 20
:border-radius 20
:position :absolute
:top 0
:left (* idx 10)})
(defn home-tokens-icons [c]
{:height 20
:margin-horizontal 6
:width (- (* 20 c) (* 10 (dec c)))})
(defn invite-instructions []
{:border-top-width 1
:border-top-color (:ui-01 @colors/theme)
:border-bottom-width 1
:border-bottom-color (:ui-01 @colors/theme)
:padding-top (:small spacing/spacing)})
(defn invite-instructions-title []
(merge
(:tiny spacing/padding-vertical)
(:base spacing/padding-horizontal)))
(defn invite-instructions-content []
(merge (:tiny spacing/padding-vertical)
(:base spacing/padding-horizontal)))
(defn invite-warning []
(merge
(:tiny spacing/padding-vertical)
(:base spacing/padding-horizontal)
{:background-color (:warning-02 @colors/theme)
:border-top-width 1
:border-top-color (:warning-01 @colors/theme)
:border-bottom-width 1
:border-bottom-color (:warning-01 @colors/theme)}))
(defn modal-token-icon-style [idx]
{:align-items :center
:shadow-radius 16
:shadow-opacity 1
:shadow-color (:shadow-01 @colors/theme)
:shadow-offset {:width 0 :height 4}
:width 40
:height 40
:border-radius 20
:position :absolute
:top 0
:left (* idx 20)})
(defn modal-tokens-icons-style [c]
{:height 40
:width (- (* 40 c) (* 20 (dec c)))})
(defn modal-perks-container []
{:border-radius 8
:border-width 1
:border-color (:ui-02 @colors/theme)
:width "100%"
:margin-vertical 8
:padding-vertical 8
:padding-horizontal 12})

View File

@ -1,15 +0,0 @@
(ns status-im.ui.components.invite.utils
(:require [status-im.ethereum.tokens :as tokens]
[re-frame.core :as re-frame]))
;;TODO: this is not cool, because this should be separate subscription
(defn transform-tokens [{:keys [tokens eth-amount]}]
(let [all-tokens @(re-frame/subscribe [:wallet/all-tokens])
chain @(re-frame/subscribe [:ethereum/chain-keyword])]
(cond-> (mapv (fn [[k v] i]
[(tokens/address->token all-tokens k) v i])
tokens
(range))
(pos? eth-amount)
(conj [(get tokens/all-native-currencies chain) eth-amount (count tokens)]))))

View File

@ -1,289 +1,24 @@
(ns status-im.ui.components.invite.views
(:require [quo.core :as quo]
[reagent.core :as reagent]
[re-frame.core :as re-frame]
[status-im.ui.components.chat-icon.screen :as chat-icon]
[status-im.ui.components.toolbar :as toolbar]
[status-im.utils.utils :as utils]
[status-im.i18n.i18n :as i18n]
[quo.design-system.spacing :as spacing]
[quo.design-system.colors :as colors]
[status-im.ui.components.invite.style :as styles]
[status-im.ui.components.invite.events :as invite.events]
[status-im.ui.components.invite.utils :refer [transform-tokens]]
[quo.react-native :as rn]
[clojure.string :as cstr]))
(defn- threshold-badge [max-threshold attrib-count]
(when (pos? max-threshold)
[rn/view {:flex-direction :row}
[rn/view {:padding-horizontal 8
:padding-vertical 2
:border-radius 11
:background-color (:interactive-01 @colors/theme)}
[quo/text {:weight :medium
:size :small
:color :inverse}
(i18n/label :t/attribution-received {:max max-threshold
:attrib attrib-count})]]]))
;; Select account sheet
(defn- render-account [current-account change-account]
(fn [account]
(let [{:keys [max-threshold attrib-count bonuses]
:or {bonuses 0}}
@(re-frame/subscribe [:invite/account-reward (:address account)])]
[:<>
[quo/list-item
{:theme :accent
:active (= (:address current-account) (:address account))
:disabled (and max-threshold attrib-count
(< max-threshold (inc attrib-count)))
:accessory :radio
:icon [chat-icon/custom-icon-view-list (:name account) (:color account)]
:title (:name account)
:subtitle [:<>
[quo/text {:monospace true
:color :secondary}
(utils/get-shortened-checksum-address (:address account))]
[threshold-badge max-threshold attrib-count]]
:on-press #(change-account account)}]
[quo/list-item
{:theme :accent
:disabled (not (pos? bonuses))
:icon :main-icons/arrow-down
:title (i18n/label :t/redeem-now)
:subtitle (i18n/label :t/redeem-amount {:quantity bonuses})
:on-press #(re-frame/dispatch [::invite.events/redeem-bonus account])}]
[quo/separator {:style {:margin-vertical 10}}]])))
(defn- accounts-list [accounts current-account change-account]
[rn/view {:flex 1}
[rn/view {:style (merge (:base spacing/padding-horizontal)
(:tiny spacing/padding-vertical))}
[quo/text {:align :center}
(i18n/label :t/invite-select-account)]]
[rn/flat-list {:data accounts
:key-fn :address
:render-fn (render-account current-account change-account)}]])
;; Invite sheet
(defn- step [{:keys [number description]}]
[rn/view {:style (merge
(:small spacing/padding-vertical)
{:flex-direction :row
:flex 1
:align-items :center})}
[rn/view {:style {:width 40
:height 40
:border-radius 20
:border-width 1
:justify-content :center
:align-items :center
:border-color (:ui-01 @colors/theme)}}
[quo/text {:weight :bold
:size :large}
number]]
[rn/view {:padding-left (:base spacing/spacing)
:flex 1}
[quo/text (i18n/label description)]]])
(def steps-values [{:number 1
:description :t/invite-instruction-first}
{:number 2
:description :t/invite-instruction-second}
{:number 3
:description :t/invite-instruction-third}
{:number 4
:description :t/invite-instruction-fourth}
{:number 5
:description :t/invite-instruction-fifth}])
(defn- referral-steps []
[rn/view {:style (styles/invite-instructions)}
[rn/view {:style (styles/invite-instructions-title)}
[quo/text {:color :secondary}
(i18n/label :t/how-it-works)]]
[rn/view {:style (styles/invite-warning)}
[quo/text (i18n/label :t/invite-warning)]]
[rn/view {:style (styles/invite-instructions-content)}
(for [s steps-values]
^{:key (str (:number s))}
[step s])]])
(defn bottom-sheet-content [accounts account change-account]
(fn []
[accounts-list accounts account (fn [a]
(re-frame/dispatch [:bottom-sheet/hide])
(change-account a))]))
(defn- referral-account [{:keys [account accounts change-account]}]
(let [{:keys [max-threshold bonuses attrib-count]
:or {bonuses 0}}
@(re-frame/subscribe [:invite/account-reward (:address account)])]
[rn/view {:style (:tiny spacing/padding-vertical)}
[rn/view {:style (merge (:base spacing/padding-horizontal)
(:x-tiny spacing/padding-vertical))}
[quo/text {:color :secondary}
(i18n/label :t/invite-receive-account)]]
[quo/list-item
{:icon [chat-icon/custom-icon-view-list (:name account) (:color account)]
:title (:name account)
:subtitle [:<>
[quo/text {:monospace true
:color :secondary}
(utils/get-shortened-checksum-address (:address account))]
[threshold-badge max-threshold attrib-count]]
:on-press #(re-frame/dispatch
[:bottom-sheet/show-sheet
{:content (bottom-sheet-content accounts account change-account)}])}]
[quo/list-item
{:theme :accent
:disabled (not (pos? bonuses))
:icon :main-icons/arrow-down
:title (i18n/label :t/redeem-now)
:subtitle (i18n/label :t/redeem-amount {:quantity bonuses})
:on-press #(re-frame/dispatch [::invite.events/redeem-bonus account])}]]))
(defn reward-item [data description]
(let [tokens (transform-tokens data)
reward-text (->> tokens
(map (fn [[{:keys [symbol]} value _]]
(str value " " (name symbol))))
(cstr/join ", "))]
[rn/view {}
[rn/view {:style styles/reward-item-title}
[quo/text {:weight :medium}
[quo/text {:color :link
:weight :inherit}
(i18n/label :t/invite-reward-you)]
(i18n/label :t/invite-reward-you-name)]]
[rn/view {:style (styles/reward-item-content)}
[rn/view {:style (styles/reward-tokens-icons (count tokens))}
(doall
(for [[{name :name
{source :source} :icon} _ idx] tokens]
^{:key name}
[rn/view {:style (styles/reward-token-icon idx)}
[rn/image {:source (if (fn? source) (source) source)
:style {:width 40
:height 40}}]]))]
[rn/view {:style styles/reward-description}
[quo/text {}
(i18n/label description {:reward reward-text})]]]]))
(defn friend-reward-item [starter-pack-amount description]
(let [tokens (transform-tokens starter-pack-amount)
reward-text (->> tokens
(map (comp :symbol first))
(filter (comp not nil?))
(map name)
(cstr/join ", "))]
[rn/view {}
[rn/view {:style styles/reward-item-title}
[quo/text {:weight :medium}
[quo/text {:color :link
:weight :inherit}
(i18n/label :t/invite-reward-friend)]
(i18n/label :t/invite-reward-friend-name)]]
[rn/view {:style (styles/reward-item-content)}
[rn/view {:style (styles/reward-tokens-icons (count tokens))}
(doall
(for [[{name :name
{source :source} :icon} _ idx] tokens]
^{:key name}
[rn/view {:style (styles/reward-token-icon idx)}
[rn/image {:source (if (fn? source) (source) source)
:style {:width 40
:height 40}}]]))]
[rn/view {:style styles/reward-description}
[quo/text {}
(i18n/label description {:reward reward-text})]]]]))
(defn referral-invite []
(let [account* (reagent/atom nil)]
(fn []
(let [accounts @(re-frame/subscribe [:accounts-without-watch-only])
default-account @(re-frame/subscribe [:multiaccount/default-account])
account (or @account* default-account)
reward @(re-frame/subscribe [::invite.events/default-reward])
starter-pack @(re-frame/subscribe [::invite.events/starter-pack])]
[:<>
[rn/scroll-view {:flex 1}
[reward-item reward :t/invite-reward-you-description]
[friend-reward-item starter-pack :t/invite-reward-friend-description]
[referral-account {:account account
:change-account #(reset! account* %)
:accounts accounts}]
[referral-steps]
[rn/view {:padding-vertical 10
:padding-horizontal 16}
[quo/text {}
(i18n/label :t/invite-privacy-policy1)
" "
[quo/text {:color :link
:on-press #(re-frame/dispatch [::invite.events/terms-and-conditions])}
(i18n/label :t/invite-privacy-policy2)]]]]
[toolbar/toolbar
{:show-border? true
:center
[quo/button {:type :secondary
:on-press #(re-frame/dispatch [::invite.events/generate-invite
{:address (get account :address)}])}
(i18n/label :t/invite-button)]}]]))))
[status-im.i18n.i18n :as i18n]))
(defn button []
(if-not @(re-frame/subscribe [::invite.events/enabled])
[quo/button {:on-press #(re-frame/dispatch [::invite.events/share-link nil])
:accessibility-label :invite-friends-button}
(i18n/label :t/invite-friends)]
(let [pack @(re-frame/subscribe [::invite.events/default-reward])
tokens (transform-tokens pack)]
[rn/view {:style {:align-items :center
:padding-horizontal 8
:padding-vertical 8}}
[rn/view {:style (:tiny spacing/padding-vertical)}
[quo/button {:on-press #(re-frame/dispatch [::invite.events/open-invite])
:accessibility-label :invite-friends-button}
(i18n/label :t/invite-friends)]]
[rn/view {:style (merge (:tiny spacing/padding-vertical)
(:base spacing/padding-horizontal))}
(when (seq tokens)
[rn/view {:style {:flex-direction :row
:justify-content :center}}
[rn/view {:style (styles/home-tokens-icons (count tokens))}
(doall
(for [[{name :name
{source :source} :icon} _ i] tokens]
^{:key name}
[rn/view {:style (styles/home-token-icon-style i)}
[rn/image {:source (if (fn? source) (source) source)
:style {:width 20
:height 20}}]]))]
[quo/text {:align :center}
(i18n/label :t/invite-reward)]])]])))
[quo/button {:on-press #(re-frame/dispatch [::invite.events/share-link nil])
:accessibility-label :invite-friends-button}
(i18n/label :t/invite-friends)])
(defn list-item [{:keys [accessibility-label]}]
(if-not @(re-frame/subscribe [::invite.events/enabled])
[quo/list-item
{:theme :accent
:title (i18n/label :t/invite-friends)
:icon :main-icons/share
:accessibility-label accessibility-label
:on-press (fn []
(re-frame/dispatch [:bottom-sheet/hide])
(js/setTimeout
#(re-frame/dispatch [::invite.events/share-link nil]) 250))}]
[quo/list-item
{:theme :accent
:title (i18n/label :t/invite-friends)
:subtitle (i18n/label :t/invite-reward)
:icon :main-icons/share
:accessibility-label accessibility-label
:on-press #(do
(re-frame/dispatch [:bottom-sheet/hide])
(re-frame/dispatch [::invite.events/open-invite]))}]))
[quo/list-item
{:theme :accent
:title (i18n/label :t/invite-friends)
:icon :main-icons/share
:accessibility-label accessibility-label
:on-press (fn []
(re-frame/dispatch [:bottom-sheet/hide])
(js/setTimeout
#(re-frame/dispatch [::invite.events/share-link nil]) 250))}])

View File

@ -16,14 +16,14 @@
[reagent.core :as reagent]
[quo.react-native :as rn]
[clojure.string :as string]
[status-im.ui.components.invite.views :as invite]
[status-im.ethereum.ens :as ens]
[quo.platform :as platform]
[status-im.utils.identicon :as identicon]
[status-im.ui.components.keyboard-avoid-presentation :as kb-presentation]
[status-im.ui.components.animation :as animation]
[status-im.ui.screens.chat.photos :as photos]
[status-im.utils.db :as utils.db])
[status-im.utils.db :as utils.db]
[status-im.ui.components.invite.views :as invite])
(:require-macros [status-im.utils.views :as views]))
(defn- render-row [row]

View File

@ -69,13 +69,6 @@
:on-press
#(re-frame/dispatch [:navigate-to :rpc-usage-info])
:chevron true}
(when-not config/google-free
{:size :small
:title (i18n/label :t/notification-settings)
:accessibility-label :advanced-notification-settings
:on-press
#(re-frame/dispatch [:navigate-to :notifications-advanced-settings])
:chevron true})
;; If it's enabled in the config, we don't show the option
(when (not config/communities-enabled?)
{:size :small

View File

@ -1,301 +0,0 @@
(ns status-im.ui.screens.anonymous-metrics-settings.views
(:require-macros [status-im.utils.views :refer [defview letsubs]])
(:require [re-frame.core :as re-frame]
[status-im.ui.components.animation :as animation]
[status-im.react-native.resources :as resources]
[status-im.anon-metrics.core :as anon-metrics]
[status-im.ui.components.accordion :as accordion]
[status-im.ui.components.react :as react]
[quo.design-system.colors :as colors]
[status-im.ui.components.icons.icons :as icons]
[status-im.i18n.i18n :as i18n]
[status-im.constants :refer [metrics-github-link]]
[quo.design-system.spacing :as spacing]
[status-im.ui.components.topbar :as topbar]
[quo.core :as quo]))
(defn graphic-and-desc [{:keys [show-title?]}]
[:<>
[react/view {:align-items :center
:margin-vertical 25}
[react/image {:source (resources/get-image :graph)}]]
(when show-title?
[quo/text {:size :x-large
:weight :bold
:align :center
:style {:margin-bottom 16}}
(i18n/label :t/help-improve-status)])
[react/touchable-highlight
{:on-press #(re-frame/dispatch [:navigate-to :anon-metrics-learn-more])
:accessibility-label :learn-more-anchor}
[react/nested-text
{:style (merge {:color colors/gray
:text-align :center}
(:large spacing/padding-horizontal))}
(i18n/label :t/anonymous-usage-data-subtitle)
[{:style {:color colors/blue
;; :font-weight key doesn't work
:fontWeight :bold}}
(str " " (i18n/label :t/learn-more))]]]])
(defn setting-switch [enabled? on-press]
[quo/list-item {:title (i18n/label :t/share-anonymous-usage-data)
:active enabled?
:accessibility-label :opt-in-switch
:accessory :switch
:subtitle-max-lines 2
:on-press on-press}])
(defn icon-list-item
([icon label]
(icon-list-item icon {} label))
([icon icon-opts label]
[react/view {:flex-direction :row
:margin-horizontal (:base spacing/spacing)
:margin-vertical (:tiny spacing/spacing)}
[icons/icon icon (into icon-opts
{:container-style {:margin-top 1.2
:margin-right (:tiny spacing/spacing)}})]
[react/view {:style {:padding-right (:xx-large spacing/spacing)}}
(if (string? label)
[react/text label]
label)]]))
(defn what-is-shared []
[:<>
[quo/list-header (i18n/label :t/what-is-shared)]
(for [label [(i18n/label :t/anon-metrics-your-interactions)
(i18n/label :t/anon-metrics-bg-activity)
(i18n/label :t/anon-metrics-settings-and-prefs)]]
^{:key label}
[icon-list-item :main-icons/info {:color colors/blue} label])])
(defn event-item [event]
[accordion/section
{:title [react/view {:flex 1
:flex-direction :row
:margin-bottom (:base spacing/spacing)}
[react/view {:style {:padding-right (:base spacing/spacing)}}
(for [label ["event" "time" "os"]]
^{:key label}
[react/text {:style {:color colors/gray}}
label])]
[react/view
[react/text (:event event)]
[react/text (:created_at event)]
[react/text (:os event)]]]
:content [react/view {:style {:background-color colors/gray-lighter
:padding (:small spacing/spacing)
:border-radius 14}}
[react/text (:value event)]]}])
(defn data-sheet-header-and-desc []
[:<>
[quo/text {:size :x-large
:weight :bold
:align :center
:style {:margin-vertical 16}}
(i18n/label :t/data-collected)]
[react/touchable-highlight
{:on-press #(.openURL ^js react/linking metrics-github-link)}
[react/nested-text
{:style (:base spacing/padding-horizontal)}
(i18n/label :t/data-collected-subtitle)
[{:style {:color colors/blue}}
(str " " (i18n/label :t/view-rules))]]]])
(defview view-data []
(letsubs [events [:anon-metrics/events]
total [:anon-metrics/total-count]
fetching? [:anon-metrics/fetching?]]
{:component-did-mount #(re-frame/dispatch [::anon-metrics/fetch-local-metrics
{:clear-existing? true
:limit 10
:offset 0}])}
[:<>
[topbar/topbar {:modal? true
:border-bottom false}]
[react/scroll-view
[data-sheet-header-and-desc]
[quo/list-header (i18n/label :t/count-metrics-collected {:count total})]
(when (pos? total)
[react/view
{:style (merge
{:border-width 1
:border-radius 8
:border-color colors/gray-lighter
:padding-top 16
:padding-bottom 20
:margin 16}
(:base spacing/padding-horizontal))}
(doall
(map-indexed
(fn [index event]
^{:key index}
[event-item event])
events))
(if fetching?
[react/activity-indicator {:size :large
:animating true}]
[quo/button {:type :primary
:disabled (= (count events) total)
:accessibility-label :show-more-button
:on-press #(re-frame/dispatch [::anon-metrics/fetch-local-metrics
{:clear-existing? false
:limit 10
:offset (count events)}])}
(i18n/label :t/show-more)])])]]))
(defn view-data-button []
[react/view {:flex 1
:align-items :center
:style {:margin-top (:x-large spacing/spacing)}}
[quo/button {:type :primary
:theme :main
:accessibility-label :view-data-button
:on-press #(re-frame/dispatch [:navigate-to :anon-metrics-view-data])}
(i18n/label :t/view-data)]])
(defn desc-point-with-link [desc link-text link-href accessibility-label]
[react/touchable-highlight {:on-press #(.openURL ^js react/linking link-href)
:accessibility-label accessibility-label}
[react/view
[react/text desc]
[react/view {:flex-direction :row}
[react/text {:style {:text-align :center
:color colors/blue}}
link-text]
[icons/tiny-icon :tiny-icons/tiny-external
{:color colors/blue
:container-style {:margin-left 4
:margin-top 4}}]]]])
(defn learn-more []
[:<>
[topbar/topbar {:modal? true
:border-bottom false}]
[react/scroll-view
[quo/text {:size :x-large
:weight :bold
:align :center
:style {:margin-top 16}}
(i18n/label :t/about-sharing-data)]
[react/text {:style (merge
(:base spacing/padding-horizontal)
(:small spacing/padding-vertical))}
(i18n/label :t/about-sharing-data-subtitle)]
[what-is-shared]
[view-data-button]
[quo/separator {:style {:margin-vertical (:base spacing/spacing)}}]
[quo/list-header (i18n/label :t/how-it-works)]
(for [label [[desc-point-with-link
(i18n/label :t/sharing-data-desc-1)
(i18n/label :t/view-rules)
metrics-github-link
:view-rules-anchor]
(i18n/label :t/sharing-data-desc-2)
(i18n/label :t/sharing-data-desc-3)
(i18n/label :t/sharing-data-desc-4)
;; TODO (shivekkhurana): Enable this link when the public
;; dashboard is live
;; [desc-point-with-link
;; (i18n/label :t/sharing-data-desc-5)
;; (i18n/label :t/view-public-dashboard)
;; "https://github.com/"
;; :view-dashboad-anchor]
(i18n/label :t/sharing-data-desc-6)]]
^{:key label}
[icon-list-item :main-icons/arrow-right {:color colors/blue} label])
[react/view {:style {:margin-bottom (:xx-large spacing/spacing)}}]]])
(defview settings []
(letsubs [{:keys [:anon-metrics/should-send?]} [:multiaccount]]
[:<>
[topbar/topbar {:title (i18n/label :t/anonymous-usage-data)}]
[react/scroll-view {:flex 1}
[graphic-and-desc]
[setting-switch
should-send?
#(re-frame/dispatch [:multiaccounts.ui/share-anonymous-usage-data-switched (not should-send?)])]
[quo/separator]
[what-is-shared]
[react/view {:padding-bottom 80}
[view-data-button]]]]))
(defn allow-or-not-actions []
[react/view {:align-items :center
:style {:padding-bottom 80}}
[quo/button {:type :primary
:theme :main
:accessibility-label :opt-in-button
:on-press #(re-frame/dispatch [::anon-metrics/opt-in true])}
(i18n/label :t/allow-and-send)]
[react/view {:style {:margin-top (:base spacing/spacing)}}]
[quo/button {:type :primary
:theme :main
:accessibility-label :opt-out-button
:on-press #(re-frame/dispatch [::anon-metrics/opt-in false])}
(i18n/label :t/no-thanks)]])
(defn thank-you-animation [overlay-opacity box-opacity]
(fn []
(animation/start
(animation/parallel
[(animation/spring
overlay-opacity
{:toValue 0.72
:useNativeDriver true})
(animation/spring
box-opacity
{:toValue 1
:useNativeDriver true})]))))
(defview floating-thank-you []
(letsubs [overlay-opacity (animation/create-value 1)
box-opacity (animation/create-value 0.2)]
{:component-did-mount (thank-you-animation overlay-opacity box-opacity)}
[:<>
[react/animated-view ; thank you container
{:style {:position :absolute
:opacity box-opacity
:z-index 2
:top "40%"
:padding (:x-large spacing/spacing)
:background-color colors/white
:align-items :center
:align-self :center}}
[react/text {:style {:font-size 32}} "\uD83C\uDF89"]
[quo/text {:size :x-large
:weight :bold}
(i18n/label :t/thank-you)]]
[react/animated-view ; translucent overlay
{:style {:position :absolute
:top 0
:bottom 0
:left 0
:right 0
:z-index 1
:background-color colors/white
:opacity overlay-opacity}}]]))
(defview new-account-opt-in []
(letsubs [show-thank-you? [:anon-metrics/show-thank-you?]]
[react/scroll-view {:flex 1
:padding-vertical (:large spacing/spacing)
:flex-direction :column}
(when show-thank-you? [floating-thank-you])
[graphic-and-desc {:show-title? true}]
[react/view {:style {:margin-bottom (:small spacing/spacing)
:margin-top (:large spacing/spacing)}}
[quo/separator]]
[what-is-shared]
[react/view {:style (:large spacing/padding-vertical)}
[quo/separator]]
[allow-or-not-actions]]))
(comment
(re-frame/dispatch [:navigate-back])
(re-frame/dispatch [:navigate-to :metrics-learn-more])
(re-frame/dispatch [:navigate-to :metrics-view-data])
(re-frame/dispatch [:navigate-to :anon-metrics-opt-in {}]))

View File

@ -23,7 +23,6 @@
[status-im.ui.screens.chat.extensions.views :as extensions]
[status-im.ui.screens.chat.group :as chat.group]
[status-im.ui.screens.chat.message.gap :as gap]
[status-im.ui.components.invite.chat :as invite.chat]
[status-im.ui.screens.chat.components.accessory :as accessory]
[status-im.ui.screens.chat.components.input :as components]
[status-im.ui.screens.chat.message.datemark :as message-datemark]
@ -226,7 +225,7 @@
(when panel
(js/setTimeout #(react/dismiss-keyboard!) 100))))
(defn list-footer [{:keys [chat-id chat-type] :as chat}]
(defn list-footer [{:keys [chat-id] :as chat}]
(let [loading-messages? @(re-frame/subscribe [:chats/loading-messages? chat-id])
no-messages? @(re-frame/subscribe [:chats/chat-no-messages? chat-id])
all-loaded? @(re-frame/subscribe [:chats/all-loaded? chat-id])]
@ -234,9 +233,7 @@
(if (or loading-messages? (not chat-id) (not all-loaded?))
[react/view {:height 324 :align-items :center :justify-content :center}
[react/activity-indicator {:animating true}]]
[chat-intro-header-container chat no-messages?])
(when (= chat-type constants/one-to-one-chat-type)
[invite.chat/reward-messages])]))
[chat-intro-header-container chat no-messages?])]))
(defn list-header [{:keys [chat-id chat-type invitation-admin]}]
(when (= chat-type constants/private-group-chat-type)

View File

@ -10,7 +10,6 @@
[status-im.ui.screens.home.styles :as styles]
[status-im.ui.screens.communities.views :as communities.views]
[status-im.ui.screens.home.views.inner-item :as inner-item]
[status-im.ui.screens.referrals.home-item :as referral-item]
[quo.design-system.colors :as colors]
[quo.core :as quo]
[status-im.add-new.core :as new-chat]
@ -18,12 +17,12 @@
[status-im.add-new.db :as db]
[status-im.utils.debounce :as debounce]
[status-im.utils.utils :as utils]
[status-im.ui.components.invite.views :as invite]
[status-im.ui.components.topbar :as topbar]
[status-im.ui.components.plus-button :as components.plus-button]
[status-im.ui.screens.chat.sheets :as sheets]
[status-im.ui.components.tabbar.core :as tabbar]
["react-native-navigation" :refer (Navigation)])
["react-native-navigation" :refer (Navigation)]
[status-im.ui.components.invite.views :as invite])
(:require-macros [status-im.utils.views :as views]))
(defn home-tooltip-view []
@ -135,7 +134,6 @@
:header [:<>
(when (or (seq items) @search-active? (seq search-filter))
[search-input-wrapper search-filter (empty? items)])
[referral-item/list-item]
(when (and (empty? items)
(or @search-active? (seq search-filter)))
[start-suggestion search-filter])]

View File

@ -5,7 +5,6 @@
[status-im.i18n.i18n :as i18n]
[quo.core :as quo]
[quo.platform :as platform]
[status-im.utils.config :as config]
[quo.design-system.colors :as quo-colors]
[status-im.notifications.core :as notifications]
[status-im.ui.components.react :as react]))
@ -13,48 +12,25 @@
(defonce server (reagent/atom ""))
(defn local-notifications []
(let [{:keys [enabled]} @(re-frame/subscribe [:notifications/wallet-transactions])
{:keys [notifications-enabled?]} @(re-frame/subscribe [:multiaccount])
enabled (and enabled (or platform/ios? notifications-enabled?))]
[quo/list-item
{:size :small
:title (i18n/label :t/notifications-transactions)
:accessibility-label :notifications-button
:active enabled
:disabled (not (or platform/ios? notifications-enabled?))
:on-press #(re-frame/dispatch
[::notifications/switch-transaction-notifications enabled])
:accessory :switch}]))
(let [{:keys [enabled]} @(re-frame/subscribe [:notifications/wallet-transactions])]
[:<>
[quo/separator {:color (:ui-02 @quo-colors/theme)
:style {:margin-vertical 8}}]
[quo/list-header (i18n/label :t/local-notifications)]
[quo/list-item
{:size :small
:title (i18n/label :t/notifications-transactions)
:accessibility-label :notifications-button
:active enabled
:on-press #(re-frame/dispatch
[::notifications/switch-transaction-notifications enabled])
:accessory :switch}]]))
(defn remote-notifications []
(defn notifications-settings-ios []
(let [{:keys [remote-push-notifications-enabled?
push-notifications-block-mentions?
push-notifications-from-contacts-only?]}
@(re-frame/subscribe [:multiaccount])]
[:<>
[quo/list-item
{:size :small
:title (i18n/label :t/notifications-non-contacts)
:accessibility-label :notifications-button
:active (and remote-push-notifications-enabled?
(not push-notifications-from-contacts-only?))
:disabled (not remote-push-notifications-enabled?)
:on-press #(re-frame/dispatch
[::notifications/switch-non-contacts (not push-notifications-from-contacts-only?)])
:accessory :switch}]
[quo/list-item
{:size :small
:title (i18n/label :t/allow-mention-notifications)
:accessibility-label :notifications-button
:active (and remote-push-notifications-enabled?
(not push-notifications-block-mentions?))
:disabled (not remote-push-notifications-enabled?)
:on-press #(re-frame/dispatch
[::notifications/switch-block-mentions (not push-notifications-block-mentions?)])
:accessory :switch}]]))
(defn notifications-settings-ios []
(let [{:keys [remote-push-notifications-enabled?]} @(re-frame/subscribe [:multiaccount])]
[:<>
[quo/list-item
{:size :small
@ -66,12 +42,28 @@
[quo/separator {:color (:ui-02 @quo-colors/theme)
:style {:margin-vertical 8}}]
[quo/list-header (i18n/label :t/notifications-preferences)]
[local-notifications]
[remote-notifications]]))
[quo/list-item
{:size :small
:title (i18n/label :t/notifications-non-contacts)
:accessibility-label :notifications-button
:active (and remote-push-notifications-enabled?
(not push-notifications-from-contacts-only?))
:on-press #(re-frame/dispatch
[::notifications/switch-non-contacts (not push-notifications-from-contacts-only?)])
:accessory :switch}]
[quo/list-item
{:size :small
:title (i18n/label :t/allow-mention-notifications)
:accessibility-label :notifications-button
:active (and remote-push-notifications-enabled?
(not push-notifications-block-mentions?))
:on-press #(re-frame/dispatch
[::notifications/switch-block-mentions (not push-notifications-block-mentions?)])
:accessory :switch}]
[local-notifications]]))
(defn notifications-settings-android []
(let [{:keys [notifications-enabled? remote-push-notifications-enabled?]}
@(re-frame/subscribe [:multiaccount])]
(let [{:keys [notifications-enabled?]} @(re-frame/subscribe [:multiaccount])]
[:<>
[quo/list-item
{:title (i18n/label :t/local-notifications)
@ -81,22 +73,7 @@
:on-press #(re-frame/dispatch
[::notifications/switch (not notifications-enabled?) false])
:accessory :switch}]
(when (and platform/android? (not config/google-free))
[quo/list-item
{:title (i18n/label :t/remote-notifications)
:accessibility-label :remote-notifications-settings-button
:subtitle (i18n/label :t/remote-notifications-subtitle)
:active remote-push-notifications-enabled?
:on-press #(re-frame/dispatch
[::notifications/switch
(not remote-push-notifications-enabled?) true])
:accessory :switch}])
[quo/separator {:color (:ui-02 @quo-colors/theme)
:style {:margin-vertical 8}}]
[quo/list-header (i18n/label :t/notifications-preferences)]
[local-notifications]
(when (and platform/android? (not config/google-free))
[remote-notifications])]))
[local-notifications]]))
(defn notifications-settings []
[react/scroll-view {:style {:flex 1}

View File

@ -10,9 +10,7 @@
[status-im.ui.screens.wallet.request.views :as request]
[status-im.ui.screens.profile.user.views :as profile.user]
["react-native" :refer (BackHandler)]
[status-im.ui.components.invite.advertiser :as advertiser.invite]
[status-im.ui.screens.reset-password.views :as reset-password.views]
[status-im.ui.components.invite.dapp :as dapp.invite]
[status-im.ui.screens.multiaccounts.recover.views :as multiaccounts.recover]
[status-im.ui.screens.multiaccounts.key-storage.views :as multiaccounts.key-storage]
[status-im.ui.screens.signing.views :as signing]
@ -154,15 +152,9 @@
(= :blocked-card view)
[keycard.views/blocked-card-popover]
(= :advertiser-invite view)
[advertiser.invite/accept-popover]
(= :export-community view)
[communities/export-community]
(= :dapp-invite view)
[dapp.invite/accept-popover]
(= :seed-key-uid-mismatch view)
[multiaccounts.key-storage/seed-key-uid-mismatch-popover]

View File

@ -100,12 +100,6 @@
(re-frame/dispatch [::reset-password/clear-form-vals])
(re-frame/dispatch [:navigate-to :reset-password]))
:accessibility-label :reset-password}])
(when config/metrics-enabled?
[quo/list-item {:size :small
:title (i18n/label :t/anonymous-usage-data)
:chevron true
:on-press #(re-frame/dispatch [:navigate-to :anonymous-metrics-settings])
:accessibility-label :anonymous-usage-data}])
(when platform/android?
[quo/list-item {:size :small
:title (i18n/label :t/webview-camera-permission-requests)

View File

@ -1,59 +0,0 @@
(ns status-im.ui.screens.referrals.home-item
(:require [status-im.acquisition.chat :as acquisition.chat]
[status-im.acquisition.core :as acquisition]
[quo.core :as quo]
[status-im.i18n.i18n :as i18n]
[re-frame.core :as re-frame]
[status-im.ui.components.chat-icon.screen :as chat-icon.screen]
[quo.react-native :as rn]
[status-im.ui.components.icons.icons :as icons]
[status-im.utils.core :as utils]
[quo.design-system.colors :as colors]
[status-im.ui.components.invite.events :as invite]))
(defn icon-style []
{:color colors/black
:width 15
:height 15
:container-style {:width 15
:height 15
:margin-right 2}})
(defn referral-sheet []
[quo/list-item
{:theme :negative
:title (i18n/label :t/delete-chat)
:accessibility-label :delete-chat-button
:icon :main-icons/delete
:on-press #(re-frame/dispatch [::acquisition.chat/decline])}])
(defn list-item []
(let [{:keys [id]} @(re-frame/subscribe [::acquisition/metadata])
{:keys [chat-id
chat-name
group-chat
color]} {:chat-name (str "#" id)
:chat-id id
:color "#887af9"
:public? true
:group-chat true}]
(when @(re-frame/subscribe [::invite/has-public-chat-invite])
[quo/list-item {:icon [chat-icon.screen/chat-icon-view-chat-list
chat-id group-chat chat-name color nil false]
:title [rn/view {:flex-direction :row
:flex 1}
[rn/view {:flex-direction :row
:flex 1
:padding-right 16
:align-items :center}
[icons/icon :main-icons/tiny-public (icon-style)]
[quo/text {:weight :medium
:accessibility-label :chat-name-text
:ellipsize-mode :tail
:number-of-lines 1}
(utils/truncate-str chat-name 30)]]]
:title-accessibility-label :chat-name-text
:subtitle (i18n/label :t/invite-public-chat-home)
:on-press #(re-frame/dispatch [:navigate-to :chat])
:on-long-press #(re-frame/dispatch [:bottom-sheet/show-sheet
{:content referral-sheet}])}])))

View File

@ -1,108 +0,0 @@
(ns status-im.ui.screens.referrals.public-chat
(:require [status-im.ui.components.topbar :as topbar]
[status-im.ui.screens.chat.toolbar-content :as toolbar-content]
[re-frame.core :as re-frame]
[status-im.acquisition.chat :as chat.acquisition]
[status-im.acquisition.core :as acquisition]
[status-im.ui.components.invite.events :as invite]
[status-im.i18n.i18n :as i18n]
[status-im.acquisition.gateway :as gateway]
[quo.react-native :as rn]
[quo.core :as quo]
[quo.design-system.colors :as colors]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.chat-icon.screen :as chat-icon.screen]
[status-im.ui.screens.chat.styles.main :as chat.styles]
[status-im.ui.components.invite.chat :as invite.chat]))
(defn non-reward []
(let [loading (#{(get gateway/network-statuses :initiated)
(get gateway/network-statuses :in-flight)}
@(re-frame/subscribe [::gateway/network-status]))]
[rn/view {:border-radius 16
:padding-horizontal 12
:padding-vertical 16
:justify-content :center
:align-items :center
:border-width 1
:border-color (colors/get-color :border-01)}
[rn/view
[icons/icon :main-icons/link {:color (colors/get-color :icon-04)}]]
[rn/view {:style {:padding-vertical 10}}
[quo/text {:color :secondary
:align :center}
(i18n/label :t/invite-privacy-policy-public) " "
[quo/text {:color :link
:on-press #(re-frame/dispatch [::invite/terms-and-conditions])}
(i18n/label :t/invite-privacy-policy2)]]]
[rn/view {:padding-horizontal 16
:padding-vertival 8
:flex-direction :row}
[quo/button {:loading loading
:on-press #(re-frame/dispatch [::chat.acquisition/accept-pack])}
(i18n/label :t/invite-chat-accept-join)]]]))
(defn reward-messages []
(let [loading (#{(get gateway/network-statuses :initiated)
(get gateway/network-statuses :in-flight)}
@(re-frame/subscribe [::gateway/network-status]))
pending @(re-frame/subscribe [::invite/pending-reward])
messages [{:content [{:type :text
:value "👋"}]}
{:content [{:type :text
:value (i18n/label :t/invite-public-chat-intro)}
{:type :pack}
{:type :button
:value [quo/button {:type :secondary
:loading loading
:disabled pending
:on-press #(re-frame/dispatch [::chat.acquisition/accept-pack])}
(if pending
(i18n/label :t/invite-chat-pending)
(i18n/label :t/invite-chat-accept-join))]}]}
{:content [{:type :text
:value [:<>
(i18n/label :t/invite-privacy-policy-public) " "
[quo/text {:color :link
:on-press #(re-frame/dispatch [::invite/terms-and-conditions])}
(i18n/label :t/invite-privacy-policy2)]]}]}]]
[rn/view {:style (invite.chat/messages-wrapper)}
(for [message messages]
[invite.chat/render-message message])]))
(defn view []
(let [{:keys [rewardable id]} @(re-frame/subscribe [::acquisition/metadata])
{:keys [chat-id
chat-name
group-chat
color]
:as chat-info} {:chat-name (str "#" id)
:color "#887af9"
:public? true
:group-chat true}]
[:<>
[topbar/topbar
{:content [toolbar-content/toolbar-content-view-inner chat-info]}]
[rn/scroll-view {:style {:flex 1}
:center-content true
:content-container-style {:padding 16}}
[rn/view {:style {:flex 1
:justify-content :flex-end
:align-items :center
:padding-vertical 24}}
[rn/view {:style {:padding-vertical 16}}
[chat-icon.screen/chat-intro-icon-view
chat-name chat-id group-chat
{:default-chat-icon (chat.styles/intro-header-icon 120 color)
:default-chat-icon-text chat.styles/intro-header-icon-text
:size 120}]]
[rn/view {:style {:padding-horizontal 32
:padding-bottom 32}}
[quo/text {:size :x-large
:weight :bold}
chat-name]]]
(if rewardable
[reward-messages]
[non-reward])]]))

View File

@ -5,12 +5,10 @@
[status-im.i18n.i18n :as i18n]
[status-im.keycard.core :as keycard.core]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.invite.views :as invite]
[status-im.ui.screens.about-app.views :as about-app]
[status-im.ui.screens.add-new.new-chat.views :as new-chat]
[status-im.ui.screens.add-new.new-public-chat.view :as new-public-chat]
[status-im.ui.screens.advanced-settings.views :as advanced-settings]
[status-im.ui.screens.anonymous-metrics-settings.views :as anonymous-metrics-settings]
[status-im.ui.screens.appearance.views :as appearance]
[status-im.ui.screens.bootnodes-settings.edit-bootnode.views
:as
@ -104,7 +102,6 @@
[status-im.ui.screens.profile.seed.views :as profile.seed]
[status-im.ui.screens.progress.views :as progress]
[status-im.ui.screens.qr-scanner.views :as qr-scanner]
[status-im.ui.screens.referrals.public-chat :as referrals.public-chat]
[status-im.ui.screens.backup-settings.view :as backup-settings]
[status-im.ui.screens.reset-password.views :as reset-password]
[status-im.ui.screens.rpc-usage-info :as rpc-usage-info]
@ -316,10 +313,6 @@
:options {:topBar {:visible false}}
;;TODO custom subtitle
:component group-chat/new-group}
{:name :referral-enclav
;;TODO custom content
:options {:topBar {:visible false}}
:component referrals.public-chat/view}
{:name :communities
;;TODO custom
:options {:topBar {:visible false}}
@ -594,15 +587,6 @@
{:name :default-sync-period-settings
:options {:topBar {:title {:text (i18n/label :t/default-sync-period)}}}
:component default-sync-period-settings/default-sync-period-settings}
{:name :anonymous-metrics-settings
:component anonymous-metrics-settings/settings}
{:name :anon-metrics-learn-more
:component anonymous-metrics-settings/learn-more}
{:name :anon-metrics-view-data
:component anonymous-metrics-settings/view-data}
{:name :anon-metrics-opt-in
:back-handler :noop
:component anonymous-metrics-settings/new-account-opt-in}
;;MODALS
@ -659,12 +643,6 @@
:options {:topBar {:visible false}}
:component new-chat/new-contact}
;Refferal invite
{:name :referral-invite
:insets {:bottom true}
:options {:topBar {:title {:text (i18n/label :t/invite-friends)}}}
:component invite/referral-invite}
;[Wallet] Recipient
{:name :recipient
:insets {:bottom true}

View File

@ -41,13 +41,10 @@
(def commands-enabled? (enabled? (get-config :COMMANDS_ENABLED "0")))
(def keycard-test-menu-enabled? (enabled? (get-config :KEYCARD_TEST_MENU "0")))
(def qr-test-menu-enabled? (enabled? (get-config :QR_READ_TEST_MENU "0")))
(def referrals-invite-enabled? (enabled? (get-config :ENABLE_REFERRAL_INVITE "0")))
(def quo-preview-enabled? (enabled? (get-config :ENABLE_QUO_PREVIEW "0")))
(def google-free (enabled? (get-config :GOOGLE_FREE "0")))
(def communities-enabled? (enabled? (get-config :COMMUNITIES_ENABLED "0")))
(def database-management-enabled? (enabled? (get-config :DATABASE_MANAGEMENT_ENABLED "0")))
(def debug-webview? (enabled? (get-config :DEBUG_WEBVIEW "0")))
(def metrics-enabled? (enabled? (get-config :METRICS_ENABLED "0")))
(def delete-message-enabled? (enabled? (get-config :DELETE_MESSAGE_ENABLED "0")))
(def collectibles-enabled? (enabled? (get-config :COLLECTIBLES_ENABLED "1")))
(def test-stateofus? (enabled? (get-config :TEST_STATEOFUS "0")))
@ -87,7 +84,6 @@
:profile-pictures-visibility 1
:log-level log-level
:webview-allow-permission-requests? false
:anon-metrics/should-send? false
:opensea-enabled? false
:link-previews-enabled-sites #{}
:link-preview-request-enabled true})

View File

@ -13,7 +13,6 @@
[status-im.navigation :as navigation]
[status-im.utils.fx :as fx]
[taoensso.timbre :as log]
[status-im.acquisition.core :as acquisition]
[status-im.wallet.choose-recipient.core :as choose-recipient]
[status-im.group-chats.core :as group-chats]))
@ -99,10 +98,6 @@
(choose-recipient/parse-eip681-uri-and-resolve-ens data true)
(navigation/navigate-to-cofx :wallet nil)))
(fx/defn handle-referrer-url [_ {:keys [referrer]}]
;; TODO: Use only for testing
{::acquisition/check-referrer referrer})
(defn existing-account? [{:keys [db]} address]
(when address
(some #(when (= (string/lower-case (:address %))
@ -138,7 +133,6 @@
:contact (handle-view-profile cofx data)
:browser (handle-browse cofx data)
:eip681 (handle-eip681 cofx data)
:referrals (handle-referrer-url cofx data)
:wallet-account (handle-wallet-account cofx data)
(handle-not-found url)))

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "يسمح لـ DApp باسترداد عنوان محفظتك وتمكين Web3",
"already-have-asset": "لديك بالفعل هذا الأصل",
"amount": "المبلغ",
"anon-metrics-bg-activity": "نشاط الخلفية والعمليات الداخلية",
"anon-metrics-data-is-validated": "يتم التحقق من صحة البيانات مقابل قواعد التحقق العامة لضمان عدم إرسال بيانات حساسة.",
"anon-metrics-ephemeral-key": "بدلا من مفتاح الدردشة العادي، يتم استخدام مفتاح استخدام واحد",
"anon-metrics-public-dashboard": "البيانات التراكمية لجميع المستخدمين متاحة للعامة عرض لوحة المعلومات العامة",
"anon-metrics-removed-from-phone": "تتم إزالة البيانات من هاتفك بعد إرسالها",
"anon-metrics-settings-and-prefs": "الإعدادات والتفضيلات",
"anon-metrics-usage-data-sent": "يتم إرسال بيانات الاستخدام مشفرة من طرف إلى طرف عبر شبكة نظير إلى نظير الخاصة بStatus",
"anon-metrics-usage-not-linked-to-ip": "لا يمكن إقران بيانات الاستخدام بعنوان IP الخاص بك",
"anon-metrics-your-interactions": "تفاعلاتك مع التطبيق مثل النقرات وطرق عرض الشاشة",
"anonymous-usage-data": "بيانات الاستخدام المجهول",
"anonymous-usage-data-subtitle": "شارك بيانات مشفرة مجهولة المصدر من طرف إلى طرف حول كيفية استخدام Status.",
"anyone": "اي شخص",
"app-commit": "فرض التطبيق",
"appearance": "مظهر خارجي",
@ -332,7 +321,6 @@
"copy-to-clipboard": "نسخ",
"copy-transaction-hash": "نسخ معرف المعاملة",
"cost-fee": "التكلفة \/ رسوم",
"count-metrics-collected": "{{count}} المقاييس التي تم جمعها",
"counter-9-plus": "9+",
"counter-99-plus": "99 +",
"create": "انشاء",
@ -1473,7 +1461,6 @@
"settings": "الإعدادات",
"share": "مشاركه",
"share-address": "مشاركة العنوان",
"share-anonymous-usage-data": "مشاركة بيانات الاستخدام المجهول",
"share-chat": "مشاركة الدردشة",
"share-contact-code": "مشاركة مفتاح الدردشة الخاص بي",
"share-dapp-text": "تحقق من هذا التطبيق الذي أستخدمه في Status: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "আপনার ওয়ালেট ঠিকানা পুনরুদ্ধার এবং Web3 সক্রিয় করতে এই DApp অনুমোদন দেন",
"already-have-asset": "আপনার এই সম্পদ ইতিমধ্যেই আছে",
"amount": "পরিমান",
"anon-metrics-bg-activity": "পটভূমি কার্যকলাপ এবং অভ্যন্তরীণ প্রক্রিয়া",
"anon-metrics-data-is-validated": "কোনও সংবেদনশীল ডেটা প্রেরণ করা হয় না তা নিশ্চিত করার জন্য ডেটা সর্বজনীন যাচাইকরণের নিয়মগুলির বিরুদ্ধে যাচাই করা হয়।",
"anon-metrics-ephemeral-key": "আপনার নিয়মিত চ্যাট কী এর পরিবর্তে, একটি একক ব্যবহার কী ব্যবহার করা হয়",
"anon-metrics-public-dashboard": "সমস্ত ব্যবহারকারীর সমষ্টিগত তথ্য প্রকাশ্যে পাওয়া যায় পাবলিক ড্যাশবোর্ড দেখুন",
"anon-metrics-removed-from-phone": "ডেটা পাঠানোর পরে আপনার ফোন থেকে সরানো হয়",
"anon-metrics-settings-and-prefs": "সেটিংস এবং পছন্দসমূহ",
"anon-metrics-usage-data-sent": "স্ট্যাটাস 'পিয়ার-টু-পিয়ার নেটওয়ার্কে ব্যবহারের ডেটা এন্ড-টু-এন্ড এনক্রিপ্ট করা হয়",
"anon-metrics-usage-not-linked-to-ip": "ব্যবহারের তথ্য আপনার আইপি ঠিকানার সাথে যুক্ত করা যাবে না",
"anon-metrics-your-interactions": "অ্যাপের সাথে আপনার ইন্টারঅ্যাকশন যেমন ক্লিক এবং স্ক্রিন ভিউ",
"anonymous-usage-data": "বেনামী ব্যবহারের তথ্য",
"anonymous-usage-data-subtitle": "আপনি কিভাবে স্ট্যাটাস ব্যবহার করেন সে সম্পর্কে বেনামী, এন্ড-টু-এন্ড এক্রিপটেড ডেটা শেয়ার করুন।",
"anyone": "যে কেউ",
"app-commit": "অ্যাপ কমিট",
"appearance": "উপস্থিতি",
@ -319,7 +308,6 @@
"copy-to-clipboard": "অনুলিপি",
"copy-transaction-hash": "লেনদেন আইডি অনুলিপি করুন",
"cost-fee": "খরচ \/ ফি",
"count-metrics-collected": "{{count}} মেট্রিক্স সংগ্রহ করা হয়েছে",
"counter-9-plus": "৯+",
"counter-99-plus": "৯৯+",
"create": "তৈরি",
@ -1409,7 +1397,6 @@
"settings": "সেটিংস",
"share": "ভাগ করুন",
"share-address": "ঠিকানা শেয়ার করুন",
"share-anonymous-usage-data": "বেনামী ব্যবহারের ডেটা শেয়ার করুন",
"share-chat": "চ্যাট শেয়ার করুন",
"share-contact-code": "আমার চ্যাট কী শেয়ার করুন",
"share-dapp-text": "Status আমি যে DApp ব্যবহার করছি তা দেখুন: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Durch das Zulassen wird diese DApp berechtigt, Ihre Wallet Adresse abzurufen und Web3 zu aktivieren",
"already-have-asset": "Sie haben dieses Asset bereits",
"amount": "Betrag",
"anon-metrics-bg-activity": "Hintergrundaktivitäten und interne Prozesse",
"anon-metrics-data-is-validated": "Die Daten werden anhand öffentlicher Validierungsregeln validiert, um sicherzustellen, dass keine sensiblen Daten gesendet werden.",
"anon-metrics-ephemeral-key": "Anstelle Ihres normalen Chat-Schlüssels wird ein Einmalschlüssel verwendet",
"anon-metrics-public-dashboard": "Kumulative Daten aller Benutzer sind öffentlich verfügbar. Öffentliches Dashboard anzeigen",
"anon-metrics-removed-from-phone": "Die Daten werden nach dem Senden von Ihrem Smartphone entfernt",
"anon-metrics-settings-and-prefs": "Einstellungen und Präferenzen",
"anon-metrics-usage-data-sent": "Nutzungsdaten werden Ende-zu-Ende verschlüsselt über das Peer-to-Peer-Netzwerk von Status gesendet",
"anon-metrics-usage-not-linked-to-ip": "Nutzungsdaten können nicht mit Ihrer IP-Adresse in Verbindung gebracht werden",
"anon-metrics-your-interactions": "Ihre Interaktionen mit der App wie Klicks und Bildschirmaufrufe",
"anonymous-usage-data": "Anonyme Nutzungsdaten",
"anonymous-usage-data-subtitle": "Teilen Sie anonyme, Ende-zu-Ende verschlüsselte Daten darüber, wie Sie Status verwenden.",
"anyone": "Jeder",
"appearance": "Erscheinungsbild",
"apply": "Anwenden",
@ -318,7 +307,6 @@
"copy-to-clipboard": "Kopieren",
"copy-transaction-hash": "Transaktions-ID kopieren",
"cost-fee": "Kosten\/Gebühr",
"count-metrics-collected": "{{count}} gesammelte Metriken",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Erstellen",
@ -1404,7 +1392,6 @@
"settings": "Einstellungen",
"share": "Teilen",
"share-address": "Adresse teilen",
"share-anonymous-usage-data": "Teilen Sie anonyme Nutzungsdaten",
"share-chat": "Chat teilen",
"share-contact-code": "Meinen Chat-Schlüssel teilen",
"share-dapp-text": "Schauen Sie sich diese DApp an, die ich in Status verwende: {{link}}",

View File

@ -959,6 +959,7 @@
"notifications-switch": "Show notifications",
"notifications-non-contacts": "Notifications from non-contacts",
"notifications-transactions": "Wallet transactions",
"local-notifications": "Local notifications",
"send-push-notifications": "Send Push Notifications",
"send-push-notifications-description": "When disabled, the person receiving your messages won't be notified of their arrival",
"push-notifications-server-enabled": "Server enabled",
@ -1597,26 +1598,13 @@
"bip39-password-placeholder": "BIP39 password",
"public-channel": "Public channel",
"default-sync-period": "Sync history for",
"anonymous-usage-data": "Anonymous usage data",
"anonymous-usage-data-subtitle": "Share anonymous, end-to-end ecrypted data about how you use Status.",
"share-anonymous-usage-data": "Share anonymous usage data",
"what-is-shared": "What is shared",
"anon-metrics-your-interactions": "Your interactions with the app like clicks and screen views",
"anon-metrics-bg-activity": "Background activity and internal processes",
"anon-metrics-settings-and-prefs": "Settings and preferences",
"anon-metrics-data-is-validated": "Data is validated against public validation rules to ensure no sensitive data is sent.",
"anon-metrics-usage-data-sent": "Usage data is sent end-to-end encrypted over Status peer-to-peer network",
"anon-metrics-ephemeral-key": "Instead of your regular chat key, a single use key is used",
"anon-metrics-usage-not-linked-to-ip": "Usage data cannot be associated with your IP address",
"anon-metrics-removed-from-phone": "The data is removed from your phone after they are sent",
"anon-metrics-public-dashboard": "Cumulative data of all users is publicaly available View public dashboard",
"view-data": "View data",
"data-collected": "Data collected",
"data-collected-subtitle": "The table below shows the exact data that is stored and will be sent. Data is validated against public rules to ensure no sensitive data is sent. Dont trust, verify.",
"view-rules": "View rules",
"expand-all": "Expand all",
"about-sharing-data": "About sharing data",
"about-sharing-data-subtitle": "As open-source community project, Status asks you to share anonymous, non-invasive data to improve the app. This is strictly opt-in, and can be changed at any time in Settings.",
"sharing-data-desc-1": "Data is validated against public rules to ensure no sensitive data is sent. Dont trust, verify.",
"sharing-data-desc-2": "Usage data is sent end-to-end encrypted over Status peer-to-peer network",
"sharing-data-desc-3": "Instead of your regular chat key, a single use key is used",
@ -1628,7 +1616,6 @@
"no-thanks": "No thanks",
"help-improve-status": "Help improve Status",
"thank-you": "Thank you",
"count-metrics-collected": "{{count}} metrics collected",
"current-password": "Current password",
"reset-password": "Reset password",
"password-reset-success": "Password changed",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Permitir autoriza a esta DApp a recuperar la dirección de tu billetera y habilitar Web3",
"already-have-asset": "Ya tienes este activo",
"amount": "Cantidad",
"anon-metrics-bg-activity": "Actividad de fondo y procesos internos",
"anon-metrics-data-is-validated": "Los datos se validan según las normas de validación pública para garantizar que no se envían datos sensibles.",
"anon-metrics-ephemeral-key": "En lugar de la clave de chat habitual, se utiliza una clave de uso único",
"anon-metrics-public-dashboard": "Los datos acumulativos de todos los usuarios está disponible públicamente Ver el panel público",
"anon-metrics-removed-from-phone": "El dato es removido de su teléfono luego de ser enviado",
"anon-metrics-settings-and-prefs": "Configuración y preferencias",
"anon-metrics-usage-data-sent": "Los datos de uso se envían cifrados de extremo a extremo a través de la red peer-to-peer de Status",
"anon-metrics-usage-not-linked-to-ip": "Los datos de Uso no pueden asociarse con su dirección IP",
"anon-metrics-your-interactions": "Sus interacciones con la app como clics y vistas de pantalla",
"anonymous-usage-data": "Datos de uso Anónimos",
"anonymous-usage-data-subtitle": "Comparta datos anónimos, escritos de extremo a extremo sobre cómo usa Status.",
"anyone": "Cualquiera",
"appearance": "Apariencia",
"apply": "Aplicar",
@ -317,7 +306,6 @@
"copy-to-clipboard": "Copiar",
"copy-transaction-hash": "Copiar ID de transacción",
"cost-fee": "Costo\/Tarifa",
"count-metrics-collected": "{{count}} métricas recolectadas",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Crear",
@ -1404,7 +1392,6 @@
"settings": "Ajustes",
"share": "Compartir",
"share-address": "Compartir dirección",
"share-anonymous-usage-data": "Compartir datos de uso anónimo",
"share-chat": "Compartir chat",
"share-contact-code": "Compartir mi clave de chat",
"share-dapp-text": "Echa un vistazo a esta DApp que estoy usando en Status: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Pinapayagan ang nagpapahintulot sa DApp na ito na makuha ang iyong address ng pitaka at paganahin ang Web3",
"already-have-asset": "Mayroon ka nang asset na ito",
"amount": "Halaga",
"anon-metrics-bg-activity": "Aktibidad sa likod at mga panloob na proseso",
"anon-metrics-data-is-validated": "Ang data ay napatunayan laban sa mga patakaran sa pagpapatunay ng publiko upang matiyak na walang sensitibong data ang naipadala.",
"anon-metrics-ephemeral-key": "Sa halip na iyong regular na chat key, ginagamit ang isang solong key para magamit",
"anon-metrics-public-dashboard": "Ang Cumulative data ng lahat ng mga gumagamit ay magagamit sa publiko Tingnan ang pampublikong dashboard",
"anon-metrics-removed-from-phone": "Ang data ay tinanggal mula sa iyong telepono pagkatapos maipadala ang mga ito",
"anon-metrics-settings-and-prefs": "Mga setting at kagustuhan",
"anon-metrics-usage-data-sent": "Ang usage data ay ipinadala end-to-end na naka-encrypt sa peer-to-peer network ng Status",
"anon-metrics-usage-not-linked-to-ip": "Ang usage data ay hindi maaaring maiugnay sa iyong IP address",
"anon-metrics-your-interactions": "Ang iyong mga pakikipag-ugnayan sa app tulad ng mga pag-click at view ng screen",
"anonymous-usage-data": "Data ng hindi nagpapakilalang paggamit",
"anonymous-usage-data-subtitle": "Magbahagi ng hindi nagpapakilalang, end-to-end na naka-encrypt na data tungkol sa kung paano mo ginagamit ang Status.",
"anyone": "Sinuman",
"app-commit": "App commit",
"appearance": "Hitsura",
@ -331,7 +320,6 @@
"copy-to-clipboard": "Kopya",
"copy-transaction-hash": "Kopyahin ang transaksyon ID",
"cost-fee": "Gastos \/ Bayad",
"count-metrics-collected": "Nakolektang mga metriko {{count}}",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Lumikha",
@ -1468,7 +1456,6 @@
"settings": "Settings",
"share": "Ibahagi",
"share-address": "Share address",
"share-anonymous-usage-data": "Magbahagi ng data ng hindi nagpapakilalang paggamit",
"share-chat": "Ibahagi ang chat",
"share-contact-code": "Ibahagi ang aking susi sa chat",
"share-dapp-text": "Tingnan ang DApp na ginagamit ko sa Status:{{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Autoriser cette DApp à récupérer votre adresse portefeuille et à activer Web3",
"already-have-asset": "Vous avez déjà cet actif",
"amount": "Montant",
"anon-metrics-bg-activity": "Activité en arrière-plan et processus internes",
"anon-metrics-data-is-validated": "Les données sont validées par rapport à des règles de validation publiques afin de garantir qu'aucune donnée sensible n'est envoyée.",
"anon-metrics-ephemeral-key": "Au lieu de votre clé de chat habituelle, une clé à usage unique est utilisée",
"anon-metrics-public-dashboard": "Les données cumulées de tous les utilisateurs sont disponibles publiquement sur le tableau de bord public",
"anon-metrics-removed-from-phone": "Les données sont supprimées de votre téléphone après leur envoi.",
"anon-metrics-settings-and-prefs": "Paramètres et préférences",
"anon-metrics-usage-data-sent": "Les données d'utilisation envoyées sont cryptées de bout en bout sur le réseau peer-to-peer de Status.",
"anon-metrics-usage-not-linked-to-ip": "Les données d'utilisation ne peuvent pas être associées à votre adresse IP",
"anon-metrics-your-interactions": "Vos interactions avec l'application, comme les clics et l'écran.",
"anonymous-usage-data": "Données d'utilisation anonymes",
"anonymous-usage-data-subtitle": "Partager des données anonymes, cryptées de bout en bout, sur la façon dont vous utilisez Status.",
"anyone": "Tout le monde",
"appearance": "Apparence",
"apply": "Appliquer",
@ -302,7 +291,6 @@
"copy-to-clipboard": "Copie",
"copy-transaction-hash": "Copier l'ID de transaction",
"cost-fee": "Coût\/Frais",
"count-metrics-collected": "{{count}} mesures collectées",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Créer",
@ -1369,7 +1357,6 @@
"settings": "Réglages",
"share": "Partager",
"share-address": "Partager l'adresse",
"share-anonymous-usage-data": "Partager des données d'utilisation anonymes",
"share-chat": "Partager un chat",
"share-contact-code": "Partager mon code de contact",
"share-dapp-text": "Découvrez ce DApp que j'utilise sur Status: {{link}}",

View File

@ -64,17 +64,6 @@
"allowing-authorizes-this-dapp": "Mengizinkan otorisasi DApp ini untuk mengambil alamat dompet Anda dan mengaktifkan Web3",
"already-have-asset": "Anda sudah memiliki aset ini",
"amount": "Jumlah",
"anon-metrics-bg-activity": "Aktivitas latar belakang dan proses internal",
"anon-metrics-data-is-validated": "Data divalidasi terhadap aturan validasi publik untuk memastikan tidak ada data sensitif yang dikirim.",
"anon-metrics-ephemeral-key": "Alih-alih kunci obrolan reguler Anda, kunci sekali pakai digunakan",
"anon-metrics-public-dashboard": "Data kumulatif semua pengguna tersedia untuk umum Lihat dasbor publik",
"anon-metrics-removed-from-phone": "Data dihapus dari ponsel Anda setelah dikirim",
"anon-metrics-settings-and-prefs": "Pengaturan dan preferensi",
"anon-metrics-usage-data-sent": "Data penggunaan dikirim dari ujung ke ujung yang dienkripsi melalui jaringan peer-to-peer Status",
"anon-metrics-usage-not-linked-to-ip": "Data pengguna tidak dapat di kaitkan dengan alamat IP anda",
"anon-metrics-your-interactions": "Interaksi Anda dengan aplikasi seperti klik dan tampilan layar",
"anonymous-usage-data": "Data penggunaan anonim",
"anonymous-usage-data-subtitle": "Bagikan data terenkripsi anonim dan end-to-end tentang cara Anda menggunakan Status.",
"anyone": "Siapa saja",
"appearance": "Penampilan",
"apply": "Menerapkan",
@ -253,7 +242,6 @@
"copy-to-clipboard": "Salinan",
"copy-transaction-hash": "Salin ID transaksi",
"cost-fee": "Biaya\/Biaya",
"count-metrics-collected": "{{count}} metrik dikumpulkan",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Membuat",
@ -1165,7 +1153,6 @@
"settings": "Pengaturan",
"share": "Bagikan",
"share-address": "Bagikan alamat",
"share-anonymous-usage-data": "Bagikan data penggunaan anonim",
"share-chat": "Bagikan obrolan",
"share-contact-code": "Bagikan kunci obrolan saya",
"share-dapp-text": "Lihat DApp ini yang saya gunakan di Status: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Autorizzare questo DApp a recuperare l'indirizzo del tuo portafoglio e abilitare Web3",
"already-have-asset": "Hai già questo cryptoasset",
"amount": "Importo",
"anon-metrics-bg-activity": "Attività in background e processi interni",
"anon-metrics-data-is-validated": "I dati vengono validati rispetto alle regole di convalida pubbliche per garantire che non vengano inviati dati sensibili.",
"anon-metrics-ephemeral-key": "Invece della normale chiave di chat, viene utilizzata una chiave monouso",
"anon-metrics-public-dashboard": "I dati cumulativi di tutti gli utenti sono pubblicamente disponibili Visualizza dashboard pubblica",
"anon-metrics-removed-from-phone": "I dati vengono rimossi dal telefono dopo l'invio",
"anon-metrics-settings-and-prefs": "Impostazioni e preferenze",
"anon-metrics-usage-data-sent": "I dati di utilizzo vengono inviati crittografati end-to-end sulla rete peer-to-peer di Status",
"anon-metrics-usage-not-linked-to-ip": "I dati di utilizzo non possono essere associati al tuo indirizzo IP",
"anon-metrics-your-interactions": "Le tue interazioni con l'app come clic e visualizzazioni dello schermo",
"anonymous-usage-data": "Dati di utilizzo anonimi",
"anonymous-usage-data-subtitle": "Condividi dati crittografati end-to-end anonimi su come utilizzi Status.",
"anyone": "Chiunque",
"appearance": "Aspetto",
"apply": "Applica",
@ -317,7 +306,6 @@
"copy-to-clipboard": "Copia",
"copy-transaction-hash": "Copia ID transazione",
"cost-fee": "Costo\/Tassa",
"count-metrics-collected": "{{count}} metriche raccolte",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Crea",
@ -1402,7 +1390,6 @@
"settings": "Impostazioni",
"share": "Condividi",
"share-address": "Condividi l'indirizzo",
"share-anonymous-usage-data": "Condividi dati di utilizzo anonimi",
"share-chat": "Condividi chat",
"share-contact-code": "Condividi la mia chiave di chat",
"share-dapp-text": "Dai un'occhiata a questa DApp che sto usando su Status: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "アクセスを許可すると、このDAppはあなたのウォレットアドレスを取得し、Web3を有効にします。",
"already-have-asset": "このアセットはすでに持っています",
"amount": "金額",
"anon-metrics-bg-activity": "バックグラウンド処理と内部プロセス",
"anon-metrics-data-is-validated": "機密データが送信されることがないよう、データは公開検証ルールに照らして検証されます。",
"anon-metrics-ephemeral-key": "通常のチャット キーの代わりに、使い捨てキーが用いられます。",
"anon-metrics-public-dashboard": "全ユーザの累積データはView公開ダッシュボードで公開されます。",
"anon-metrics-removed-from-phone": "データは送信後にこの電話から削除されます。",
"anon-metrics-settings-and-prefs": "設定情報",
"anon-metrics-usage-data-sent": "使用状況データはエンドツーエンド暗号化され、Statusのピアツーピアネットワークを介して送信されます。",
"anon-metrics-usage-not-linked-to-ip": "使用状況データがIPアドレスと関連付けられることはありません。",
"anon-metrics-your-interactions": "クリックや画面表示などのアプリでの操作",
"anonymous-usage-data": "匿名の利用データ",
"anonymous-usage-data-subtitle": "あなたがどのように Status を利用しているかについて、匿名でエンドツーエンドの暗号化されたデータを共有します。",
"anyone": "全員",
"app-commit": "コミットハッシュ",
"appearance": "画面表示",
@ -317,7 +306,6 @@
"copy-to-clipboard": "コピー",
"copy-transaction-hash": "トランザクションIDをコピー",
"cost-fee": "コスト\/手数料",
"count-metrics-collected": "{{count}}メトリックが収集されました",
"counter-9-plus": "9+",
"counter-99-plus": "99以上",
"create": "作成",
@ -1403,7 +1391,6 @@
"settings": "設定",
"share": "シェア",
"share-address": "アドレスを共有",
"share-anonymous-usage-data": "匿名の利用データを共有する",
"share-chat": "チャットを共有",
"share-contact-code": "チャットキーを共有",
"share-dapp-text": "このDAppをチェックしてください {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "웹3를 활용하기 위해, 디앱이 사용자의 지갑 주소를 검색하는 것을 허용합니다",
"already-have-asset": "이미 해당 자산을 가지고 있습니다",
"amount": "수량",
"anon-metrics-bg-activity": "백그라운드 활동 및 내부 프로세스",
"anon-metrics-data-is-validated": "데이터는 중요한 데이터가 전송되지 않도록 공공 유효성 검사 규칙에 따라 검증됩니다.",
"anon-metrics-ephemeral-key": "일반 채팅 키 대신 일회용 키가 사용됩니다",
"anon-metrics-public-dashboard": "모든 사용자의 누적 데이터를 공개적으로 사용할 수 있습니다. 공공 대시보드 보기",
"anon-metrics-removed-from-phone": "데이터가 전송된 후 휴대폰에서 제거됩니다",
"anon-metrics-settings-and-prefs": "기본 설정",
"anon-metrics-usage-data-sent": "사용 데이터는 스테이터스의 P2P 네트워크를 통해 암호화되어 종단간 전송됩니다",
"anon-metrics-usage-not-linked-to-ip": "사용 데이터는 IP 주소와 연동될 수 없습니다",
"anon-metrics-your-interactions": "클릭 및 화면 보기 등 앱과의 상호 작용",
"anonymous-usage-data": "익명의 사용 데이터",
"anonymous-usage-data-subtitle": "스테이터스 사용 방법에 대한 익명의 데이터가 종단간 암호화를 거쳐 공유됩니다.",
"anyone": "누구든지",
"app-commit": "앱 커밋",
"appearance": "테마",
@ -317,7 +306,6 @@
"copy-to-clipboard": "클립보드에 복사",
"copy-transaction-hash": "트랜잭션 ID 복사",
"cost-fee": "비용",
"count-metrics-collected": "{{count}} 메트릭스 수집됨",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "만들기",
@ -1403,7 +1391,6 @@
"settings": "설정",
"share": "공유",
"share-address": "주소 공유",
"share-anonymous-usage-data": "익명의 사용 데이터 공유",
"share-chat": "채팅 공유",
"share-contact-code": "채팅 키 공유하기",
"share-dapp-text": "스테이터스에서 사용하는 디앱 확인: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Membolehkan membenarkan DApp ini untuk mengambil alamat dompet anda dan mengaktifkan Web3",
"already-have-asset": "Anda sudah mempunyai aset ini",
"amount": "Jumlah",
"anon-metrics-bg-activity": "Aktiviti latar belakang dan proses dalaman",
"anon-metrics-data-is-validated": "Data disahkan berdasarkan peraturan pengesahan awam untuk memastikan tidak ada data sensitif yang dikirim.",
"anon-metrics-ephemeral-key": "Daripada kekunci sembang biasa anda, kunci penggunaan sekali sahaja digunakan",
"anon-metrics-public-dashboard": "Data kumulatif semua pengguna boleh didapati secara umum Paparan papan pemuka awam",
"anon-metrics-removed-from-phone": "Data dipadam daripada telefon anda selepas ia dihantar",
"anon-metrics-settings-and-prefs": "Tetapan dan pilihan",
"anon-metrics-usage-data-sent": "Data penggunaan dihantar dari hujung ke hujung dienkripsi melalui rangkaian peer-to-peer Status",
"anon-metrics-usage-not-linked-to-ip": "Penggunaan data tidak akan dikaitkan dengan alamat IP anda",
"anon-metrics-your-interactions": "Interaksi anda dengan aplikasi seperti klik dan pandangan skrin",
"anonymous-usage-data": "Data penggunaan tanpa nama",
"anonymous-usage-data-subtitle": "Kongsi data yang dienkripsi dari hujung ke hujung tanpa nama tentang cara anda menggunakan Status.",
"anyone": "Sesiapa",
"appearance": "Penampilan",
"apply": "Memohon",
@ -294,7 +283,6 @@
"copy-to-clipboard": "Salinan",
"copy-transaction-hash": "Salin ID transaksi",
"cost-fee": "Kos \/ Bayaran",
"count-metrics-collected": "{{count}} metrik dikumpul",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Buat",
@ -1341,7 +1329,6 @@
"settings": "Tetapan",
"share": "Berkongsi",
"share-address": "Kongsi alamat",
"share-anonymous-usage-data": "Kongsi penggunaan data tanpa nama",
"share-chat": "Kongsi sembang",
"share-contact-code": "Kongsi kod pengenalan saya",
"share-dapp-text": "Lihat DApp ini yang saya gunakan di Status: {{link}}",

View File

@ -70,17 +70,6 @@
"allowing-authorizes-this-dapp": "Toestaan autoriseert deze DApp om je wallet-adres op te halen en Web3 in te schakelen",
"already-have-asset": "Je hebt deze asset al",
"amount": "Bedrag",
"anon-metrics-bg-activity": "Achtergrondactiviteit en interne processen",
"anon-metrics-data-is-validated": "Data wordt gevalideerd aan de hand van openbare validatieregels om ervoor te zorgen dat er geen gevoelige data wordt verzonden.",
"anon-metrics-ephemeral-key": "In plaats van je gewone chat-key wordt een eenmalige-key gebruikt",
"anon-metrics-public-dashboard": "Cumulatieve data van alle gebruikers zijn openbaar beschikbaar Openbaar dashboard weergeven",
"anon-metrics-removed-from-phone": "De data wordt van je telefoon verwijderd nadat het is verzonden",
"anon-metrics-settings-and-prefs": "Instellingen en voorkeuren",
"anon-metrics-usage-data-sent": "Gebruiksdata wordt end-to-end versleuteld verzonden via het peer-to-peer-netwerk van Status",
"anon-metrics-usage-not-linked-to-ip": "Gebruiksdata kan niet worden gekoppeld aan je IP-adres",
"anon-metrics-your-interactions": "Je interacties met de app, zoals klikken en schermweergaven",
"anonymous-usage-data": "Anonieme gebruiksdata",
"anonymous-usage-data-subtitle": "Deel anonieme, end-to-end versleutelde data over hoe je Status gebruikt.",
"anyone": "Iedereen",
"appearance": "Thema",
"apply": "Toepassen",
@ -298,7 +287,6 @@
"copy-to-clipboard": "Kopiëren",
"copy-transaction-hash": "Kopieer transactie-ID",
"cost-fee": "Kosten\/Tarief",
"count-metrics-collected": "{{count}} verzamelde statistieken",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Maken",
@ -1353,7 +1341,6 @@
"settings": "Instellingen",
"share": "Delen",
"share-address": "Adres delen",
"share-anonymous-usage-data": "Anonieme gebruiksgegevens delen",
"share-chat": "Deel chat",
"share-contact-code": "Deel mijn chat-key",
"share-dapp-text": "Kijk eens naar deze DApp die ik op Status gebruik: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Zgadzając się, umożliwisz tej zdecentralizowanej aplikacji na pobranie adresu Twojego portfela i uruchomieniu Web3",
"already-have-asset": "Masz już to aktywo",
"amount": "Ilość",
"anon-metrics-bg-activity": "Działalność w tle i procesy wewnętrzne",
"anon-metrics-data-is-validated": "Dane są weryfikowane zgodnie z publicznymi regułami walidacji, aby upewnić się, że nie są wysyłane żadne dane wrażliwe.",
"anon-metrics-ephemeral-key": "Zamiast zwykłego klucza czatu używany jest klucz jednorazowy",
"anon-metrics-public-dashboard": "Zbiorcze dane wszystkich użytkowników są publicznie dostępne w widoku publicznego pulpitu nawigacyjnego",
"anon-metrics-removed-from-phone": "Dane są usuwane z telefonu po ich wysłaniu",
"anon-metrics-settings-and-prefs": "Ustawienia i preferencje",
"anon-metrics-usage-data-sent": "Dane użytkowania są przesyłane zaszyfrowane end-to-end przez sieć peer-to-peer Statusu",
"anon-metrics-usage-not-linked-to-ip": "Dane użytkowania nie mogą być powiązane z Twoim adresem IP",
"anon-metrics-your-interactions": "Twoje interakcje z aplikacją, takie jak kliknięcia i wyświetlenia ekranu",
"anonymous-usage-data": "Anonimowe dane użytkowania",
"anonymous-usage-data-subtitle": "Udostępniaj anonimowe, kompleksowo zaszyfrowane dane dotyczące sposobu korzystania ze Statusu.",
"anyone": "Ktoś",
"appearance": "Wygląd",
"apply": "Zastosuj",
@ -323,7 +312,6 @@
"copy-to-clipboard": "Kopiuj",
"copy-transaction-hash": "Skopiuj ID transakcji",
"cost-fee": "Koszt\/Opłata",
"count-metrics-collected": "Zebrano {{count}} metryk",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Utwórz",
@ -1430,7 +1418,6 @@
"settings": "Ustawienia",
"share": "Udostępnij",
"share-address": "Udostępnij adres",
"share-anonymous-usage-data": "Udostępnij anonimowe dane użytkowania",
"share-chat": "Udostępnij czat",
"share-contact-code": "Udostępnij mój klucz czatu",
"share-dapp-text": "Sprawdź tą zdecentralizowaną aplikację, której używam na platformie Status: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Permitir que este DApp recupere o endereço da sua carteira e ative o Web3",
"already-have-asset": "Você já tem este ativo",
"amount": "Quantia",
"anon-metrics-bg-activity": "Atividade de fundo e processos internos",
"anon-metrics-data-is-validated": "Os dados são validados de acordo com as regras de validação pública para garantir que nenhum dado sensível seja enviado.",
"anon-metrics-ephemeral-key": "Em vez de sua chave de bate-papo normal, uma única chave de uso é usada",
"anon-metrics-public-dashboard": "Os dados cumulativos de todos os usuários estão disponíveis publicamente. Visualize o painel público",
"anon-metrics-removed-from-phone": "Os dados são removidos do seu telefone após serem enviados",
"anon-metrics-settings-and-prefs": "Configurações e preferências",
"anon-metrics-usage-data-sent": "Os dados de uso são enviados criptografados de ponta a ponta pela rede ponto a ponto (P2P) da Status",
"anon-metrics-usage-not-linked-to-ip": "Os dados de uso não podem ser associados ao seu endereço IP",
"anon-metrics-your-interactions": "Suas interações com o aplicativo, como cliques e visualizações de tela",
"anonymous-usage-data": "Dados de uso anônimos",
"anonymous-usage-data-subtitle": "Compartilhe dados criptografados, anônimos de ponta a ponta, sobre como você usa o Status.",
"anyone": "Qualquer um",
"app-commit": "Commit do aplicativo",
"appearance": "Aparência",
@ -319,7 +308,6 @@
"copy-to-clipboard": "Copiar",
"copy-transaction-hash": "Copiar ID da transação",
"cost-fee": "Custo\/Taxa",
"count-metrics-collected": "{{count}} métricas coletadas",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Criar",
@ -1412,7 +1400,6 @@
"settings": "Configurações",
"share": "Compartilhar",
"share-address": "Compartilhar endereço",
"share-anonymous-usage-data": "Compartilhe dados de uso anônimos",
"share-chat": "Compartilhar bate-papo",
"share-contact-code": "Compartilhar minha chave de bate-papo",
"share-dapp-text": "Confira este DApp que estou usando no Status: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Соглашаясь, вы разрешаете DApp получить адрес вашего кошелька и включить Web3",
"already-have-asset": "У вас есть актив с таким адресом",
"amount": "Сумма",
"anon-metrics-bg-activity": "Фоновая активность и внутренние процессы",
"anon-metrics-data-is-validated": "Данные проверяются на соответствие общедоступным правилам проверки, чтобы гарантировать, что конфиденциальные данные не будут отправлены.",
"anon-metrics-ephemeral-key": "Вместо обычного ключа чата используется одноразовый ключ.",
"anon-metrics-public-dashboard": "Кумулятивные данные всех пользователей общедоступны. Посмотреть общедоступную панель управления",
"anon-metrics-removed-from-phone": "Данные удаляются с вашего телефона после их отправки",
"anon-metrics-settings-and-prefs": "Настройки и предпочтения",
"anon-metrics-usage-data-sent": "Данные об использовании отправляются сквозным шифрованием по одноранговой сети Status",
"anon-metrics-usage-not-linked-to-ip": "Данные об использовании не могут быть связаны с вашим IP-адресом",
"anon-metrics-your-interactions": "Ваше взаимодействие с приложением, например клики и просмотры экрана.",
"anonymous-usage-data": "Анонимные данные об использовании",
"anonymous-usage-data-subtitle": "Делитесь анонимными, зашифрованными сквозным шифрованием данными о том, как вы используете Status.",
"anyone": "Любой",
"appearance": "Внешний вид",
"apply": "Применить",
@ -326,7 +315,6 @@
"copy-to-clipboard": "Копировать",
"copy-transaction-hash": "Копировать ID транзакции",
"cost-fee": "Стоимость\/Комиссия",
"count-metrics-collected": "Собранные метрики {{count}}",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Создать",
@ -1444,7 +1432,6 @@
"settings": "Настройки",
"share": "Поделиться",
"share-address": "Поделиться адресом",
"share-anonymous-usage-data": "Обмен анонимными данными об использовании",
"share-chat": "Поделиться чатом",
"share-contact-code": "Поделиться своим кодом контакта",
"share-dapp-text": "Попробуйте это DApp, которое я использую в приложении Status: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "Bu DApp'e cüzdan adresinizi alma ve Web3'ü etkinleştirme yetkisi verin.",
"already-have-asset": "Bu öğeye zaten sahipsiniz",
"amount": "Miktar",
"anon-metrics-bg-activity": "Arka plan etkinliği ve dahili süreçler",
"anon-metrics-data-is-validated": "Hassas verilerin gönderilmediğinden emin olmak için veriler genel doğrulama kurallarına göre doğrulanır.",
"anon-metrics-ephemeral-key": "Normal sohbet anahtarınız yerine tek kullanımlık bir anahtar kullanılır",
"anon-metrics-public-dashboard": "Tüm kullanıcıların toplu verileri herkese açıktır Genel gösterge panosunu görüntüleyin",
"anon-metrics-removed-from-phone": "Veriler gönderildikten sonra telefonunuzdan kaldırılır",
"anon-metrics-settings-and-prefs": "Ayarlar ve tercihler",
"anon-metrics-usage-data-sent": "Kullanım verileri, Status' eşler arası ağ üzerinden uçtan uca şifreli olarak gönderilir",
"anon-metrics-usage-not-linked-to-ip": "Kullanım verileri IP adresinizle ilişkilendirilemez",
"anon-metrics-your-interactions": "Tıklamalar ve ekran görünümleri gibi uygulamayla etkileşimleriniz",
"anonymous-usage-data": "Anonim kullanım verileri",
"anonymous-usage-data-subtitle": "Statusu nasıl kullandığınızla ilgili anonim, uçtan uca şifrelenmiş verileri paylaşın.",
"anyone": "Kimse",
"appearance": "Görünüm",
"apply": "Uygula",
@ -311,7 +300,6 @@
"copy-to-clipboard": "Kopyala",
"copy-transaction-hash": "İşlem kimliğini kopyala",
"cost-fee": "Maliyet \/ Ücret",
"count-metrics-collected": "Toplanan metrik {{count}}.",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "Oluştur",
@ -1384,7 +1372,6 @@
"settings": "Ayarlar",
"share": "Paylaş",
"share-address": "Adresi paylaş",
"share-anonymous-usage-data": "Anonim kullanım verilerini paylaşın",
"share-chat": "Sohbeti paylaş",
"share-contact-code": "Sohbet anahtarımı paylaş",
"share-dapp-text": "Status'da kullandığım şu DApp'e göz atın: {{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "允许授权此DApp以检索您的钱包地址, 并启用Web3",
"already-have-asset": "您已有该资产",
"amount": "金额",
"anon-metrics-bg-activity": "后台活动和内部流程",
"anon-metrics-data-is-validated": "数据根据公共验证规则进行验证,以确保不会发送敏感数据。",
"anon-metrics-ephemeral-key": "使用一次性密钥而不是您的常规聊天密钥",
"anon-metrics-public-dashboard": "所有用户的累积数据均公开 可在公共仪表板查看",
"anon-metrics-removed-from-phone": "数据发送后会从您的手机中删除",
"anon-metrics-settings-and-prefs": "设置和选项",
"anon-metrics-usage-data-sent": "使用数据通过 Status 的对等网络进行端到端加密发送",
"anon-metrics-usage-not-linked-to-ip": "使用数据无法与您的IP地址相关联",
"anon-metrics-your-interactions": "您与应用程序的互动,如点击数据和屏幕视图",
"anonymous-usage-data": "匿名使用数据",
"anonymous-usage-data-subtitle": "共享匿名的端到端加密数据了解您如何使用Status。",
"anyone": "任何人",
"app-commit": "应用程序提交",
"appearance": "显示",
@ -316,7 +305,6 @@
"copy-to-clipboard": "复制",
"copy-transaction-hash": "复制交易ID",
"cost-fee": "成本\/费用",
"count-metrics-collected": "{{count}}项指标已收集",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "创建",
@ -1398,7 +1386,6 @@
"settings": "设置",
"share": "分享",
"share-address": "分享地址",
"share-anonymous-usage-data": "共享匿名使用数据",
"share-chat": "分享聊天",
"share-contact-code": "分享我的聊天码",
"share-dapp-text": "查看我在Status上使用的这个DApp{{link}}",

View File

@ -71,17 +71,6 @@
"allowing-authorizes-this-dapp": "允許授權此DApp檢索您的錢包地址並啟用Web3",
"already-have-asset": "您已經擁有此資產",
"amount": "數目",
"anon-metrics-bg-activity": "背景活動和內部流程",
"anon-metrics-data-is-validated": "資料根據公共驗證規則進行驗證,以確保不會發送敏感資料。",
"anon-metrics-ephemeral-key": "使用一次性密鑰而不是您個人的聊天密鑰",
"anon-metrics-public-dashboard": "所有用戶的累積資料均公開,可至公共數據面板查看",
"anon-metrics-removed-from-phone": "資料傳送後會從您的手機中刪除",
"anon-metrics-settings-and-prefs": "設定和選項",
"anon-metrics-usage-data-sent": "使用資料是通過 Status 的對等網路進行端到端加密發送",
"anon-metrics-usage-not-linked-to-ip": "使用資料無法與您的 IP 地址相關聯",
"anon-metrics-your-interactions": "您與應用程式的互動,例如點擊次數和頁面瀏覽次數",
"anonymous-usage-data": "匿名使用資料",
"anonymous-usage-data-subtitle": "匿名共享、端到端加密傳送有關您如何使用 Status 的資料",
"anyone": "任何人",
"app-commit": "App提交",
"appearance": "版面外觀",
@ -317,7 +306,6 @@
"copy-to-clipboard": "複製",
"copy-transaction-hash": "複製交易編號",
"cost-fee": "支出\/交易費用",
"count-metrics-collected": "{{count}}項指標已收集",
"counter-9-plus": "9+",
"counter-99-plus": "99+",
"create": "建立",
@ -1403,7 +1391,6 @@
"settings": "設定",
"share": "分享",
"share-address": "分享地址",
"share-anonymous-usage-data": "共享匿名使用資料",
"share-chat": "分享聊天",
"share-contact-code": "分享聊天金鑰",
"share-dapp-text": "在Status上查看這個使用中的ÐApp {{link}}",

View File

@ -4321,11 +4321,6 @@ hasha@^3.0.0:
dependencies:
is-stream "^1.0.1"
hermes-engine@0.5.2-rc1:
version "0.5.2-rc1"
resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.5.2-rc1.tgz#01faccf58b45f6a4592443c1acf98f0ddbd5bf36"
integrity sha512-+cLjML2+XVSLPdEtU/b5FwtF+3yhxV8dfuviRS3MPdMxlxDlG/Iu3wFvTByOzTzWaQyPg+Q/68o5HLrL4QqJng==
hermes-engine@~0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.5.1.tgz#601115e4b1e0a17d9aa91243b96277de4e926e09"
@ -7346,11 +7341,6 @@ react-native-crypto@^2.0.1:
public-encrypt "^4.0.0"
randomfill "^1.0.3"
react-native-device-info@^7.4.0:
version "7.4.0"
resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-7.4.0.tgz#694deddfc6de0ff7268ff463d84693ee980c683c"
integrity sha512-n5mrUuwUcPXAspLZcAOE+Q087yq+Gfvo8+soZIg1l7rUZUrLNWlFxFgOo/DMPNZA5vcBSv1TSGFFdiAZVHalLw==
react-native-dialogs@^1.0.4:
version "1.1.0"
resolved "https://registry.yarnpkg.com/react-native-dialogs/-/react-native-dialogs-1.1.0.tgz#8f7ee7f9d96574fc878fb7c1be101611fb4af517"
@ -7437,11 +7427,6 @@ react-native-navigation@^7.27.1:
react-lifecycles-compat "2.0.0"
tslib "1.9.3"
react-native-notifications@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/react-native-notifications/-/react-native-notifications-4.1.3.tgz#841e4a1542c45184a6725eaa46094acf5d1edc48"
integrity sha512-A4SmRyfh2OlkptlJQvcQKkfnBKO1toUShmFplTkLXPNCqfpm/i4Fz+Uv+LzHSvbsU5U7EYf3JX9sfuyR06ZGPg==
react-native-permissions@^2.1.5:
version "2.1.5"
resolved "https://registry.yarnpkg.com/react-native-permissions/-/react-native-permissions-2.1.5.tgz#6cfc4f1ab1590f4952299b7cdc9698525ad540e0"