get images over HTTPS with self-signed certificate
Co-Authored-By: andrey <motor4ik@gmail.com> Signed-off-by: Michele Balistreri <michele@bitgamma.com>
This commit is contained in:
parent
9850dd5160
commit
52afbf46ee
|
@ -358,6 +358,7 @@ dependencies {
|
||||||
implementation 'com.github.status-im:function:0.0.1'
|
implementation 'com.github.status-im:function:0.0.1'
|
||||||
implementation 'com.facebook.fresco:fresco:2.2.0'
|
implementation 'com.facebook.fresco:fresco:2.2.0'
|
||||||
implementation 'com.facebook.fresco:animated-gif:2.2.0'
|
implementation 'com.facebook.fresco:animated-gif:2.2.0'
|
||||||
|
implementation "com.squareup.okhttp3:okhttp-tls:3.12.12"
|
||||||
}
|
}
|
||||||
|
|
||||||
def getLocalNDKDir = { ->
|
def getLocalNDKDir = { ->
|
||||||
|
|
|
@ -15,12 +15,14 @@ import com.reactnativenavigation.NavigationApplication;
|
||||||
import com.reactnativenavigation.react.NavigationReactNativeHost;
|
import com.reactnativenavigation.react.NavigationReactNativeHost;
|
||||||
import com.facebook.react.ReactPackage;
|
import com.facebook.react.ReactPackage;
|
||||||
import com.facebook.react.ReactInstanceManager;
|
import com.facebook.react.ReactInstanceManager;
|
||||||
|
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import im.status.ethereum.keycard.RNStatusKeycardPackage;
|
import im.status.ethereum.keycard.RNStatusKeycardPackage;
|
||||||
import im.status.ethereum.module.StatusPackage;
|
import im.status.ethereum.module.StatusPackage;
|
||||||
import im.status.ethereum.pushnotifications.PushNotificationPackage;
|
import im.status.ethereum.pushnotifications.PushNotificationPackage;
|
||||||
|
import im.status.ethereum.StatusOkHttpClientFactory;
|
||||||
|
|
||||||
public class MainApplication extends NavigationApplication {
|
public class MainApplication extends NavigationApplication {
|
||||||
|
|
||||||
|
@ -57,6 +59,8 @@ public class MainApplication extends NavigationApplication {
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
|
|
||||||
|
OkHttpClientProvider.setOkHttpClientFactory(new StatusOkHttpClientFactory());
|
||||||
|
|
||||||
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG_WEBVIEW == "1");
|
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG_WEBVIEW == "1");
|
||||||
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
package im.status.ethereum;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.facebook.react.modules.network.OkHttpClientFactory;
|
||||||
|
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||||
|
|
||||||
|
import okhttp3.OkHttpClient;
|
||||||
|
import okhttp3.Interceptor;
|
||||||
|
import okhttp3.tls.HandshakeCertificates;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.lang.RuntimeException;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.security.cert.CertificateFactory;
|
||||||
|
import java.security.cert.X509Certificate;
|
||||||
|
|
||||||
|
import im.status.ethereum.module.StatusPackage;
|
||||||
|
|
||||||
|
class StatusOkHttpClientFactory implements OkHttpClientFactory {
|
||||||
|
public OkHttpClient createNewNetworkModuleClient() {
|
||||||
|
String certPem = StatusPackage.getImageTLSCert();
|
||||||
|
X509Certificate cert;
|
||||||
|
|
||||||
|
try {
|
||||||
|
CertificateFactory cf = CertificateFactory.getInstance("X.509");
|
||||||
|
cert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(certPem.getBytes()));
|
||||||
|
} catch(Exception e) {
|
||||||
|
Log.e("StatusOkHttpClientFactory", "Could not parse certificate");
|
||||||
|
cert = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
HandshakeCertificates clientCertificates = new HandshakeCertificates.Builder()
|
||||||
|
.addPlatformTrustedCertificates()
|
||||||
|
.addTrustedCertificate(cert)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
return OkHttpClientProvider.createClientBuilder()
|
||||||
|
.sslSocketFactory(clientCertificates.sslSocketFactory(), clientCertificates.trustManager())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
|
@ -19,10 +19,23 @@
|
||||||
|
|
||||||
#import <React/RCTBridge.h>
|
#import <React/RCTBridge.h>
|
||||||
#import <React/RCTBundleURLProvider.h>
|
#import <React/RCTBundleURLProvider.h>
|
||||||
|
#import <React/RCTHTTPRequestHandler.h>
|
||||||
|
|
||||||
#import <UserNotifications/UserNotifications.h>
|
#import <UserNotifications/UserNotifications.h>
|
||||||
#import <RNCPushNotificationIOS.h>
|
#import <RNCPushNotificationIOS.h>
|
||||||
|
|
||||||
|
#import <SDWebImage/SDWebImageDownloaderConfig.h>
|
||||||
|
#import <SDWebImage/SDWebImageDownloaderOperation.h>
|
||||||
|
|
||||||
|
#import <Security/Security.h>
|
||||||
|
|
||||||
|
//TODO: properly import the framework
|
||||||
|
extern NSString* StatusgoImageServerTLSCert();
|
||||||
|
|
||||||
|
@interface StatusDownloaderOperation : SDWebImageDownloaderOperation
|
||||||
|
+ (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler;
|
||||||
|
@end
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
#import <FlipperKit/FlipperClient.h>
|
#import <FlipperKit/FlipperClient.h>
|
||||||
|
@ -84,6 +97,8 @@ static void InitializeFlipper(UIApplication *application) {
|
||||||
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
|
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
|
||||||
center.delegate = self;
|
center.delegate = self;
|
||||||
|
|
||||||
|
SDWebImageDownloaderConfig.defaultDownloaderConfig.operationClass = [StatusDownloaderOperation class];
|
||||||
|
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,3 +195,56 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@implementation StatusDownloaderOperation
|
||||||
|
|
||||||
|
+ (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler {
|
||||||
|
NSURLSessionAuthChallengeDisposition disposition = NSURLSessionAuthChallengeCancelAuthenticationChallenge;
|
||||||
|
__block NSURLCredential *credential = nil;
|
||||||
|
|
||||||
|
NSString *pemCert = StatusgoImageServerTLSCert();
|
||||||
|
pemCert = [pemCert stringByReplacingOccurrencesOfString:@"-----BEGIN CERTIFICATE-----\n" withString:@""];
|
||||||
|
pemCert = [pemCert stringByReplacingOccurrencesOfString:@"\n-----END CERTIFICATE-----" withString:@""];
|
||||||
|
NSData *derCert = [[NSData alloc] initWithBase64EncodedString:pemCert options:NSDataBase64DecodingIgnoreUnknownCharacters];
|
||||||
|
SecCertificateRef certRef = SecCertificateCreateWithData(NULL, (__bridge_retained CFDataRef) derCert);
|
||||||
|
CFArrayRef certArrayRef = CFArrayCreate(NULL, (void *)&certRef, 1, NULL);
|
||||||
|
SecTrustSetAnchorCertificates(challenge.protectionSpace.serverTrust, certArrayRef);
|
||||||
|
|
||||||
|
SecTrustResultType trustResult;
|
||||||
|
SecTrustEvaluate(challenge.protectionSpace.serverTrust, &trustResult);
|
||||||
|
|
||||||
|
if ((trustResult == kSecTrustResultProceed) || (trustResult == kSecTrustResultUnspecified)) {
|
||||||
|
disposition = NSURLSessionAuthChallengeUseCredential;
|
||||||
|
credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (completionHandler) {
|
||||||
|
completionHandler(disposition, credential);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler {
|
||||||
|
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust] &&
|
||||||
|
[challenge.protectionSpace.host isEqualToString:@"localhost"]) {
|
||||||
|
[StatusDownloaderOperation URLSession:session task:task didReceiveChallenge:challenge completionHandler:completionHandler];
|
||||||
|
} else {
|
||||||
|
[super URLSession:session task:task didReceiveChallenge:challenge completionHandler:completionHandler];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation RCTHTTPRequestHandler (SelfSigned)
|
||||||
|
|
||||||
|
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler {
|
||||||
|
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust] &&
|
||||||
|
[challenge.protectionSpace.host isEqualToString:@"localhost"]) {
|
||||||
|
[StatusDownloaderOperation URLSession:session task:task didReceiveChallenge:challenge completionHandler:completionHandler];
|
||||||
|
} else {
|
||||||
|
if (completionHandler) {
|
||||||
|
completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -10,10 +10,16 @@ import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import statusgo.Statusgo;
|
||||||
|
|
||||||
public class StatusPackage implements ReactPackage {
|
public class StatusPackage implements ReactPackage {
|
||||||
|
|
||||||
private boolean rootedDevice;
|
private boolean rootedDevice;
|
||||||
|
|
||||||
|
public static String getImageTLSCert() {
|
||||||
|
return Statusgo.imageServerTLSCert();
|
||||||
|
}
|
||||||
|
|
||||||
public StatusPackage(boolean rootedDevice) {
|
public StatusPackage(boolean rootedDevice) {
|
||||||
this.rootedDevice = rootedDevice;
|
this.rootedDevice = rootedDevice;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3933,48 +3933,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
"path": "com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3",
|
|
||||||
"host": "https://plugins.gradle.org/m2",
|
|
||||||
"type": "jar",
|
|
||||||
"pom": {
|
|
||||||
"sha1": "de3576b735ff4fb2c9b60701b7c346c905c48433",
|
|
||||||
"sha256": "1pra3yy7pig69a9dz508wxarl1g4m7rdhvyga22lh16szpvc5rsk"
|
|
||||||
},
|
|
||||||
"jar": {
|
|
||||||
"sha1": "c4540aecb99b9ec380acef6c10bb6f700de8ac2c",
|
|
||||||
"sha256": "1h0whgk0bj7zid7kdy4hwz5n3jxcz8wi5mycqwjsqsndvlyk3ip2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"path": "com/facebook/flipper/flipper-fresco-plugin/0.54.0/flipper-fresco-plugin-0.54.0",
|
|
||||||
"host": "https://plugins.gradle.org/m2",
|
|
||||||
"type": "aar",
|
|
||||||
"pom": {
|
|
||||||
"sha1": "78b6dd76ca355a13262d1b6fe97ea225d5b8c445",
|
|
||||||
"sha256": "0p5j7nix6q86xa3fiq0i2bnnb6qaszdl2yyq0w5c8yva86drvfrw"
|
|
||||||
},
|
|
||||||
"jar": {
|
|
||||||
"sha1": "36a4f4a3f4173cd4bdfe9a7f078e56fc93b63e64",
|
|
||||||
"sha256": "0kbv37kcj3lr3bikjfyfk48a0cq06n8jadbcyl7i6w7pr9lh7hlc"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"path": "com/facebook/flipper/flipper/0.54.0/flipper-0.54.0",
|
|
||||||
"host": "https://plugins.gradle.org/m2",
|
|
||||||
"type": "aar",
|
|
||||||
"pom": {
|
|
||||||
"sha1": "f1e963be185c5c5d5a8416faf16af29fddeaf1ab",
|
|
||||||
"sha256": "023hmlkczyswy2bdl559rasw7w3fi8210qkspl2wdh70axq8qvjq"
|
|
||||||
},
|
|
||||||
"jar": {
|
|
||||||
"sha1": "55d7417b5db25a08ac19048a6d03a44770ef1f68",
|
|
||||||
"sha256": "0aifn1d43f9b2xvww0r3xn59hv4np3s84m737xd2rkhvl38hcr5p"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "com/facebook/fresco/drawee/2.2.0/drawee-2.2.0",
|
"path": "com/facebook/fresco/drawee/2.2.0/drawee-2.2.0",
|
||||||
"host": "https://plugins.gradle.org/m2",
|
"host": "https://plugins.gradle.org/m2",
|
||||||
|
@ -4101,20 +4059,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
"path": "com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1",
|
|
||||||
"host": "https://plugins.gradle.org/m2",
|
|
||||||
"type": "jar",
|
|
||||||
"pom": {
|
|
||||||
"sha1": "59f786ef9485f034cfed3f0c9cd7bdee8155314b",
|
|
||||||
"sha256": "1c11zbpsmfyaklgjc5r401li1155jb89f9mx53hb84zp4zd28nqk"
|
|
||||||
},
|
|
||||||
"jar": {
|
|
||||||
"sha1": "3d015bb821875657ac8e4b808a223aae339defb2",
|
|
||||||
"sha256": "02czcs5blwl6l60ka82h5k355ib4szfrawg7s8dnba0jrdm8gs4z"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "antlr/antlr/2.7.7/antlr-2.7.7",
|
"path": "antlr/antlr/2.7.7/antlr-2.7.7",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -5109,6 +5053,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "jar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "de3576b735ff4fb2c9b60701b7c346c905c48433",
|
||||||
|
"sha256": "1pra3yy7pig69a9dz508wxarl1g4m7rdhvyga22lh16szpvc5rsk"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "c4540aecb99b9ec380acef6c10bb6f700de8ac2c",
|
||||||
|
"sha256": "1h0whgk0bj7zid7kdy4hwz5n3jxcz8wi5mycqwjsqsndvlyk3ip2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "com/facebook/fbjni/fbjni/0.0.2/fbjni-0.0.2",
|
"path": "com/facebook/fbjni/fbjni/0.0.2/fbjni-0.0.2",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -5123,6 +5081,34 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "com/facebook/flipper/flipper-fresco-plugin/0.54.0/flipper-fresco-plugin-0.54.0",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "aar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "78b6dd76ca355a13262d1b6fe97ea225d5b8c445",
|
||||||
|
"sha256": "0p5j7nix6q86xa3fiq0i2bnnb6qaszdl2yyq0w5c8yva86drvfrw"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "36a4f4a3f4173cd4bdfe9a7f078e56fc93b63e64",
|
||||||
|
"sha256": "0kbv37kcj3lr3bikjfyfk48a0cq06n8jadbcyl7i6w7pr9lh7hlc"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "com/facebook/flipper/flipper/0.54.0/flipper-0.54.0",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "aar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "f1e963be185c5c5d5a8416faf16af29fddeaf1ab",
|
||||||
|
"sha256": "023hmlkczyswy2bdl559rasw7w3fi8210qkspl2wdh70axq8qvjq"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "55d7417b5db25a08ac19048a6d03a44770ef1f68",
|
||||||
|
"sha256": "0aifn1d43f9b2xvww0r3xn59hv4np3s84m737xd2rkhvl38hcr5p"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "com/facebook/fresco/animated-base/2.2.0/animated-base-2.2.0",
|
"path": "com/facebook/fresco/animated-base/2.2.0/animated-base-2.2.0",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -5501,6 +5487,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "jar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "59f786ef9485f034cfed3f0c9cd7bdee8155314b",
|
||||||
|
"sha256": "1c11zbpsmfyaklgjc5r401li1155jb89f9mx53hb84zp4zd28nqk"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "3d015bb821875657ac8e4b808a223aae339defb2",
|
||||||
|
"sha256": "02czcs5blwl6l60ka82h5k355ib4szfrawg7s8dnba0jrdm8gs4z"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "com/github/bumptech/glide/annotations/4.12.0/annotations-4.12.0",
|
"path": "com/github/bumptech/glide/annotations/4.12.0/annotations-4.12.0",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -5960,16 +5960,16 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "com/google/errorprone/error_prone_annotations/2.10.0/error_prone_annotations-2.10.0",
|
"path": "com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "jar",
|
"type": "jar",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "972fdb73175fce135e78555269ede8c8d3b36f74",
|
"sha1": "ced1afa200bbf344ccdef14b92aa84f7863f395c",
|
||||||
"sha256": "1k6021km41hzmh68yzzj9hhsfs5i1qjw7cljv7facxwaaygxr06n"
|
"sha256": "026z5plz8bpn8g4nnjr9zf2v68v3qm15vrzcw8marsfjy80wlq82"
|
||||||
},
|
},
|
||||||
"jar": {
|
"jar": {
|
||||||
"sha1": "9bc20b94d3ac42489cf6ce1e42509c86f6f861a1",
|
"sha1": "c5a0ace696d3f8b1c1d8cc036d8c03cc0cbe6b69",
|
||||||
"sha256": "18940w3fbh9z4d9xrazfkw69y640ymfk7z42dhgd91pvbp9d8jd2"
|
"sha256": "1v5p6w0ml7hy0n9vjqr2nvlf3f684m94s43xhiba0vxl88cbj73j"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -6014,12 +6014,12 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "com/google/errorprone/error_prone_parent/2.10.0/error_prone_parent-2.10.0",
|
"path": "com/google/errorprone/error_prone_parent/2.11.0/error_prone_parent-2.11.0",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "pom",
|
"type": "pom",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "0d70888ba27b15543d639b0be077b1d0d6d38c40",
|
"sha1": "bd585f378139da5b5e670840892c48e75d03cf7b",
|
||||||
"sha256": "1yl9y1rcgq47cdk11y3xi8f0fvnbq5gfkglp430h1ychqj3im287"
|
"sha256": "0l85aka3gs1x3jarlp38ndl5lwcaic5xhvqb6ffsf9668k5z10w2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -6537,6 +6537,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "com/squareup/okhttp3/okhttp-tls/3.12.12/okhttp-tls-3.12.12",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "jar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "46fd244a7b499ca9c9915617267bf5bb67709816",
|
||||||
|
"sha256": "0lq2fwzq3i8h5361x9zbgnc0z3nqkczbh4kk5qxiwqnl5wgfq7xb"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "05abcbe1626d83fb6c82306396ec479b49683675",
|
||||||
|
"sha256": "1cm73al26q0vv2dpb258yjbc375161bhbjrsjqn93mbca006c42f"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "com/squareup/okhttp3/okhttp-urlconnection/3.12.12/okhttp-urlconnection-3.12.12",
|
"path": "com/squareup/okhttp3/okhttp-urlconnection/3.12.12/okhttp-urlconnection-3.12.12",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -6594,16 +6608,16 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "com/squareup/okhttp3/okhttp/5.0.0-alpha.3/okhttp-5.0.0-alpha.3",
|
"path": "com/squareup/okhttp3/okhttp/5.0.0-alpha.4/okhttp-5.0.0-alpha.4",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "jar",
|
"type": "jar",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "f57e69bf80c4307a338188b1629fd0dc09814df4",
|
"sha1": "928427ff8d8c2326263733462bc5f8ea1021b5cb",
|
||||||
"sha256": "1nsq0ar2sr9yhhkip3f6jzpyp66jz1vzb1mb2b7xn0hn24zd2nbd"
|
"sha256": "11iwhxf9ndkd6qmnb3iim97hm9h20v3fkvr8hnav5ypy44mgxilk"
|
||||||
},
|
},
|
||||||
"jar": {
|
"jar": {
|
||||||
"sha1": "b1636a6c8b77837a3a34f197ebdf8e9f48bdc1d7",
|
"sha1": "bca0daab030b78fbc74e97e45dd01c6826cf4959",
|
||||||
"sha256": "1a3iya8n1gc50m79pjh1520gckgbfs7882kmkzj8frhg5sjc97gh"
|
"sha256": "0s305pbn9rc8y37grz2gmzgmzpi4zdhg9r0sm4fknnimyzdk6j5x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -6637,20 +6651,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
"path": "com/squareup/okio/okio-jvm/3.0.0/okio-jvm-3.0.0",
|
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
|
||||||
"type": "jar",
|
|
||||||
"pom": {
|
|
||||||
"sha1": "63dca88e80ade884bc68585baa9940f5c8027bfa",
|
|
||||||
"sha256": "1ym2ydp7b9nqfi9nfmliyjqhwhny926698jk58xmhyb39i277jxh"
|
|
||||||
},
|
|
||||||
"jar": {
|
|
||||||
"sha1": "0ab5a73fa2ccb4a36b0b5c69fe10b16d0255bcf8",
|
|
||||||
"sha256": "01z946cpr2dzjyrrbi1qsw4chwmgaxspxpbhr7arrsi83z6a0r5y"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "com/squareup/okio/okio-parent/1.15.0/okio-parent-1.15.0",
|
"path": "com/squareup/okio/okio-parent/1.15.0/okio-parent-1.15.0",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -6993,6 +6993,34 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "com/willowtreeapps/assertk/assertk/0.25/assertk-0.25",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "jar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "557170cd696a66845f2f97c36b20b372739dff34",
|
||||||
|
"sha256": "0d6lqsv2j6z9bjzag72bffyswnbbgrz1qcaydm7i2kc34wxz5hjs"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "c20894404c38109ed837f6f6d254987777a06b0c",
|
||||||
|
"sha256": "0341gbcpz37abbk61xyfxmj5gjxggpvwpq5s16zrjkkrgx7v1sfi"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "com/willowtreeapps/opentest4k/opentest4k/1.2.2/opentest4k-1.2.2",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "jar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "e5c64dc093a91d1e2f591d0742798bb8f325b0ea",
|
||||||
|
"sha256": "1wn81995g9qdnxfgbscrm4a07m565dmk7mnycrw575w6vjjl0sca"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "cc1388f1517c5fb7b83009abbc2f0eb2883739ef",
|
||||||
|
"sha256": "0g31fw5nvd09nc3pkgzpiwmbvizbxw2wv0vz76m2xbpy8wh8n9jg"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "de/undercouch/gradle-download-task/3.4.3/gradle-download-task-3.4.3",
|
"path": "de/undercouch/gradle-download-task/3.4.3/gradle-download-task-3.4.3",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -8519,6 +8547,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "org/bouncycastle/bcprov-jdk15on/1.70/bcprov-jdk15on-1.70",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "jar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "696dce53f1cd6ea922402e76a6adce522cedda05",
|
||||||
|
"sha256": "1c5b2vhc175kf34qkjq76s0awm3iwn2s435dciv02qlhdnvvbx3d"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "4636a0d01f74acaf28082fb62b317f1080118371",
|
||||||
|
"sha256": "1m1hmjyv3jkg94k70amn76ngimyh6xx8bm786dpx4rfmwbij0g4g"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2",
|
"path": "org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -8534,16 +8576,16 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/checkerframework/checker-qual/3.21.1/checker-qual-3.21.1",
|
"path": "org/checkerframework/checker-qual/3.21.2/checker-qual-3.21.2",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "jar",
|
"type": "jar",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "8702ac7cebf178330090c6a3a9149a33a5c32ade",
|
"sha1": "5210da6cfdbdeb9371e82e7c763b40da9d9cf729",
|
||||||
"sha256": "1ajmkrhrpvdwp2qldnp7cp7nd3z4d8rp65bghzx2il270fv6jsw7"
|
"sha256": "15d34cvi8vyb81lsxia5qn4w66kzhnddi16mpi05mxkpj5qd9iw1"
|
||||||
},
|
},
|
||||||
"jar": {
|
"jar": {
|
||||||
"sha1": "cfa7c49db84e21f9fd7799584d7d09f28a665db7",
|
"sha1": "630f15607e9850363c10c81283a65bfbce622146",
|
||||||
"sha256": "0czlxlbxzpa7ys9rjpz9kwm729dpbf7jfah25x35h88syvvxsyvn"
|
"sha256": "1s7cm30zbr6qpw8c8lmnivxspv449jkf7kwn2gk3kf5r0b4m91by"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -8600,16 +8642,16 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/codehaus/mojo/animal-sniffer-annotations/1.20/animal-sniffer-annotations-1.20",
|
"path": "org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "jar",
|
"type": "jar",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "4daa545f375cc4e539a97425fb75aa52f856d5e4",
|
"sha1": "4468907f1901b842bab7bc4c7ef16f84d6e576df",
|
||||||
"sha256": "149f92fjjr21y0hv0sxfwaayl3dwgm8sadi472i6dchvpaj6wdz6"
|
"sha256": "1br40cgyfpv32xr6c3mb3fzg5sx6my1kp8s6d3nhicxgjq0drsnd"
|
||||||
},
|
},
|
||||||
"jar": {
|
"jar": {
|
||||||
"sha1": "0d98c2b001fcb9031859ec9d21914c2ce78912a5",
|
"sha1": "419a9acd297cb6fe6f91b982d909f2c20e9fa5c0",
|
||||||
"sha256": "1b12fpkw0gz0d04jd0bpqr70jx6fw3qddlccq3svihidrbgl9pdy"
|
"sha256": "0m0xcnqk1v9bkcf52bkgac7ksnsjp32f4c5nayd9a93yjcf8899g"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -8634,12 +8676,12 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/codehaus/mojo/animal-sniffer-parent/1.20/animal-sniffer-parent-1.20",
|
"path": "org/codehaus/mojo/animal-sniffer-parent/1.21/animal-sniffer-parent-1.21",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "pom",
|
"type": "pom",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "a1725fa054a1b943fa3a8e7ee72f1b57b507488d",
|
"sha1": "33f21501882f382578c943ddf5e9035de80ee9fa",
|
||||||
"sha256": "1bqwv253zjjgm0fdm3hinqmbmvgj8vpwh650cvfrvcg6mdsfd4y4"
|
"sha256": "1z2i1kl10l44w6vwmxg37b51c60b8c3ibn12ja4a3flf9fkmfqs2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -8664,12 +8706,12 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/codehaus/mojo/mojo-parent/61/mojo-parent-61",
|
"path": "org/codehaus/mojo/mojo-parent/65/mojo-parent-65",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "pom",
|
"type": "pom",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "11fdf4908dbf89fc128efc868ad990ad0a0a8b8a",
|
"sha1": "0599365e99855a082531d962070c67aeba360d0e",
|
||||||
"sha256": "1bh5g5nzl8624prasq9r4r8i3r7cw7b7bwa9g7342rghbjsl4cvm"
|
"sha256": "0xm6m26l5c52a4p59s1kn276i4wla6ccb2hhrbn3xf4plm0b97y8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -9771,6 +9813,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.5.30/kotlin-stdlib-common-1.5.30",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "jar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "850c3ca345e0afacbfaf203f5259e3e1be59df9e",
|
||||||
|
"sha256": "1g74j6k1lbnljsy2dif47mmc3hrwqch6j6zi1mdp4mh11r812w6d"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "649ffab7767038323fec0cc41e2d7b0a8f65a378",
|
||||||
|
"sha256": "1f346x78anwcxyj1lbywjz4vwa66la5sgfyhz3h2514p199srcwf"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.5.31/kotlin-stdlib-common-1.5.31",
|
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.5.31/kotlin-stdlib-common-1.5.31",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -9785,6 +9841,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.6.10/kotlin-stdlib-common-1.6.10",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "jar",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "d3974425e52440bfe098563c1f10f5712471453d",
|
||||||
|
"sha256": "157hbi7c8zk5mbz762rr384jl29j9841iq70n43rxpfqrlbz4npp"
|
||||||
|
},
|
||||||
|
"jar": {
|
||||||
|
"sha1": "0c118700e3a33c8a0d9adc920e9dec0831171925",
|
||||||
|
"sha256": "1zgg6x5lfnq2cr84fnb12zrbihnx8yqc30gf96d0qmp4jh4xs398"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.71/kotlin-stdlib-jdk7-1.2.71",
|
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.71/kotlin-stdlib-jdk7-1.2.71",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -9841,20 +9911,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.5.31/kotlin-stdlib-jdk7-1.5.31",
|
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
|
||||||
"type": "jar",
|
|
||||||
"pom": {
|
|
||||||
"sha1": "b3f53ded7aa6f0f85abfeca4b1a721849587de2d",
|
|
||||||
"sha256": "0y4p0y6csx1h7knpn649z4da3gq0yx2pg1v8f0cnhfi9xs4q84r3"
|
|
||||||
},
|
|
||||||
"jar": {
|
|
||||||
"sha1": "77e0f2568912e45d26c31fd417a332458508acdf",
|
|
||||||
"sha256": "0py1sypb9rq10f6pzagvwxrk99r1sqbfbpmx7j29v2ffadrz8nx2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.2.71/kotlin-stdlib-jdk8-1.2.71",
|
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.2.71/kotlin-stdlib-jdk8-1.2.71",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -9911,20 +9967,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
"path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5.31/kotlin-stdlib-jdk8-1.5.31",
|
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
|
||||||
"type": "jar",
|
|
||||||
"pom": {
|
|
||||||
"sha1": "6b1353e3e341eeddeea8e67db3d89bed51ceb920",
|
|
||||||
"sha256": "1pwkm0nx186pma90db27hxzb7lhqmwnjpc07b20jnybl02mhl4a5"
|
|
||||||
},
|
|
||||||
"jar": {
|
|
||||||
"sha1": "ff5d99aecd328872494e8921b72bf6e3af97af3e",
|
|
||||||
"sha256": "1p2z9ifcwm1mwa307dhrvsz3wvdx883l8ivy8792kw5cg9vgfj5m"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/jetbrains/kotlin/kotlin-stdlib-jre7/1.2.0/kotlin-stdlib-jre7-1.2.0",
|
"path": "org/jetbrains/kotlin/kotlin-stdlib-jre7/1.2.0/kotlin-stdlib-jre7-1.2.0",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -10107,20 +10149,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
"path": "org/jetbrains/kotlin/kotlin-stdlib/1.5.31/kotlin-stdlib-1.5.31",
|
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
|
||||||
"type": "jar",
|
|
||||||
"pom": {
|
|
||||||
"sha1": "f0765608cf114ef9fd254be913fcc39797b40cc4",
|
|
||||||
"sha256": "0v1fhm2dhr0jvdiislprp39vjxdd3gfk7w6914q8fkmc0h0pcxlg"
|
|
||||||
},
|
|
||||||
"jar": {
|
|
||||||
"sha1": "6628d61d0f5603568e72d2d5915d2c034b4f1c55",
|
|
||||||
"sha256": "0s3y58i395qvpga35fjfxb8yl62kwfw58w88kaavj2zcnancw028"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/jetbrains/kotlin/kotlin-test-common/1.4.31/kotlin-test-common-1.4.31",
|
"path": "org/jetbrains/kotlin/kotlin-test-common/1.4.31/kotlin-test-common-1.4.31",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -10215,6 +10243,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "org/junit/junit-bom/5.8.2/junit-bom-5.8.2",
|
||||||
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
"type": "pom",
|
||||||
|
"pom": {
|
||||||
|
"sha1": "90eab8a5a400f15b8e1cb6e65af0ceb616f23bba",
|
||||||
|
"sha256": "1ql6yb1zqznlzn26vl9zplvz2qqj57d24qip91pcbqwfkv56jq43"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0",
|
"path": "org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
|
@ -10960,54 +10998,54 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/slf4j/jcl-over-slf4j/2.0.0-alpha5/jcl-over-slf4j-2.0.0-alpha5",
|
"path": "org/slf4j/jcl-over-slf4j/2.0.0-alpha6/jcl-over-slf4j-2.0.0-alpha6",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "jar",
|
"type": "jar",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "10fd59906c5a47da77f96834c464da7fd472851a",
|
"sha1": "0c2080c93f767a568f99911768b2ab2abcb78009",
|
||||||
"sha256": "11k9830p0ifvwdrravzxm3l3b116k9978bw54lg1av4x8w48d737"
|
"sha256": "0nkpxccmxdgzma06nh7rknxiymv1m3yd8m5i2z9c159bhia446zs"
|
||||||
},
|
},
|
||||||
"jar": {
|
"jar": {
|
||||||
"sha1": "b7bf757b84f08ee7449da3122aa1ad5462ab6eec",
|
"sha1": "1833f64b12761f8e4fafac490df27379db2c8b58",
|
||||||
"sha256": "1ck382s2x4dxv9svvxlbd5m9czy5nk3ynjsjjgwc5hx0i0phxsz2"
|
"sha256": "1bqx6k6gw6124skxr3pwi6x5awxpf1wvzm9c6agjs879hbsjylqq"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/slf4j/slf4j-api/2.0.0-alpha5/slf4j-api-2.0.0-alpha5",
|
"path": "org/slf4j/slf4j-api/2.0.0-alpha6/slf4j-api-2.0.0-alpha6",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "jar",
|
"type": "jar",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "81b5496c77956334945b92738f2407d6c6eb8065",
|
"sha1": "0435fb3801e7b028a169062383f34a1aa7b12e1a",
|
||||||
"sha256": "1swyj4dk8b1g93b9kw5jrx5m1jx5jin0nap13i3agjq5ld1hkwqn"
|
"sha256": "1z0nx6rw8l2shn3w18cmy4455i69pc3z7b2wgs9qarf2sqh57mqa"
|
||||||
},
|
},
|
||||||
"jar": {
|
"jar": {
|
||||||
"sha1": "241721b0e0ef3cd6cf584b8f0e24d24ea80799ea",
|
"sha1": "4dbe258ca244936b915f15bc6006cb4224421390",
|
||||||
"sha256": "1nzyyj2mjyv2n70r6g0nb75gnn5prizjqcxa392ca3lmjm8r77r9"
|
"sha256": "0bjgx4biww7na0cjcwm9m8nbr38jgzw2lnfyxrriw2yq94gkls4b"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/slf4j/slf4j-jdk14/2.0.0-alpha5/slf4j-jdk14-2.0.0-alpha5",
|
"path": "org/slf4j/slf4j-jdk14/2.0.0-alpha6/slf4j-jdk14-2.0.0-alpha6",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "jar",
|
"type": "jar",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "9055ded49a361930af4696831f2e5c9ea92e52b9",
|
"sha1": "a3434dc6e8c66d7c0043192fcd2b2bc3ac58ad64",
|
||||||
"sha256": "1b6yw0lwlmd51sjcqw143x894xzf82z16dj9db0pa1cizlpb2c0c"
|
"sha256": "0skwqjwzvvysva5kd6lgxl5z0y51bsnj13vfznppcsagia1xaa88"
|
||||||
},
|
},
|
||||||
"jar": {
|
"jar": {
|
||||||
"sha1": "303aca334e7eccf86bfe61d3c8f769bc1b81ae82",
|
"sha1": "26af0196ec5f631d9565257bcfb10993e7b2c5fa",
|
||||||
"sha256": "0krwvrda0p9gqvv14gqzd8cxwgndgsrwfh2336zyzv741xlqfgkc"
|
"sha256": "0jj3vln4s0gw443cyfs93n8309y9an3n4q20vrz4azpkg3586pib"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "org/slf4j/slf4j-parent/2.0.0-alpha5/slf4j-parent-2.0.0-alpha5",
|
"path": "org/slf4j/slf4j-parent/2.0.0-alpha6/slf4j-parent-2.0.0-alpha6",
|
||||||
"host": "https://repo.maven.apache.org/maven2",
|
"host": "https://repo.maven.apache.org/maven2",
|
||||||
"type": "pom",
|
"type": "pom",
|
||||||
"pom": {
|
"pom": {
|
||||||
"sha1": "7099e8b69993614780298f3ec9be6621a45a12c8",
|
"sha1": "22a1b39a5a2298f1ec637604000423988700627d",
|
||||||
"sha256": "01rj9wp9x09685ds1w14alzs7nfr3gks9yss9gh8am2xp45akbya"
|
"sha256": "09ra3bf0yz6r5k0rcpr0mw0w0xfk26sybgcsfby4z4apsjjw5gwv"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -390,6 +390,7 @@ com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0
|
||||||
com.parse.bolts:bolts-applinks:1.4.0
|
com.parse.bolts:bolts-applinks:1.4.0
|
||||||
com.parse.bolts:bolts-tasks:1.4.0
|
com.parse.bolts:bolts-tasks:1.4.0
|
||||||
com.squareup.assertj:assertj-android:1.1.1
|
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-urlconnection:3.12.12
|
||||||
com.squareup.okhttp3:okhttp:3.12.12
|
com.squareup.okhttp3:okhttp:3.12.12
|
||||||
com.squareup.okio:okio:1.15.0
|
com.squareup.okio:okio:1.15.0
|
||||||
|
|
|
@ -279,9 +279,6 @@ https://jitpack.io/com/github/status-im/status-keycard-java/lib/3.0.4/lib-3.0.4.
|
||||||
https://jitpack.io/com/github/wix-playground/ahbottomnavigation/3.3.0/ahbottomnavigation-3.3.0.pom
|
https://jitpack.io/com/github/wix-playground/ahbottomnavigation/3.3.0/ahbottomnavigation-3.3.0.pom
|
||||||
https://jitpack.io/com/github/wix-playground/reflow-animator/1.0.6/reflow-animator-1.0.6.pom
|
https://jitpack.io/com/github/wix-playground/reflow-animator/1.0.6/reflow-animator-1.0.6.pom
|
||||||
https://jitpack.io/com/github/yalantis/ucrop/2.2.6-native/ucrop-2.2.6-native.pom
|
https://jitpack.io/com/github/yalantis/ucrop/2.2.6-native/ucrop-2.2.6-native.pom
|
||||||
https://plugins.gradle.org/m2/com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3.pom
|
|
||||||
https://plugins.gradle.org/m2/com/facebook/flipper/flipper-fresco-plugin/0.54.0/flipper-fresco-plugin-0.54.0.pom
|
|
||||||
https://plugins.gradle.org/m2/com/facebook/flipper/flipper/0.54.0/flipper-0.54.0.pom
|
|
||||||
https://plugins.gradle.org/m2/com/facebook/fresco/drawee/2.2.0/drawee-2.2.0.pom
|
https://plugins.gradle.org/m2/com/facebook/fresco/drawee/2.2.0/drawee-2.2.0.pom
|
||||||
https://plugins.gradle.org/m2/com/facebook/fresco/fbcore/2.2.0/fbcore-2.2.0.pom
|
https://plugins.gradle.org/m2/com/facebook/fresco/fbcore/2.2.0/fbcore-2.2.0.pom
|
||||||
https://plugins.gradle.org/m2/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
|
https://plugins.gradle.org/m2/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
|
||||||
|
@ -291,7 +288,6 @@ https://plugins.gradle.org/m2/com/facebook/fresco/memory-type-java/2.2.0/memory-
|
||||||
https://plugins.gradle.org/m2/com/facebook/fresco/memory-type-native/2.2.0/memory-type-native-2.2.0.pom
|
https://plugins.gradle.org/m2/com/facebook/fresco/memory-type-native/2.2.0/memory-type-native-2.2.0.pom
|
||||||
https://plugins.gradle.org/m2/com/facebook/fresco/nativeimagefilters/2.2.0/nativeimagefilters-2.2.0.pom
|
https://plugins.gradle.org/m2/com/facebook/fresco/nativeimagefilters/2.2.0/nativeimagefilters-2.2.0.pom
|
||||||
https://plugins.gradle.org/m2/com/facebook/fresco/stetho/2.2.0/stetho-2.2.0.pom
|
https://plugins.gradle.org/m2/com/facebook/fresco/stetho/2.2.0/stetho-2.2.0.pom
|
||||||
https://plugins.gradle.org/m2/com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1.pom
|
|
||||||
https://repo.maven.apache.org/maven2/antlr/antlr/2.7.7/antlr-2.7.7.pom
|
https://repo.maven.apache.org/maven2/antlr/antlr/2.7.7/antlr-2.7.7.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-cli/commons-cli/1.2/commons-cli-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.4/commons-codec-1.4.pom
|
||||||
|
@ -363,7 +359,10 @@ https://repo.maven.apache.org/maven2/com/android/tools/sdk-common/24.3.1/sdk-com
|
||||||
https://repo.maven.apache.org/maven2/com/android/tools/sdk-common/24.5.0/sdk-common-24.5.0.pom
|
https://repo.maven.apache.org/maven2/com/android/tools/sdk-common/24.5.0/sdk-common-24.5.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/drewnoakes/metadata-extractor/2.9.1/metadata-extractor-2.9.1.pom
|
https://repo.maven.apache.org/maven2/com/drewnoakes/metadata-extractor/2.9.1/metadata-extractor-2.9.1.pom
|
||||||
https://repo.maven.apache.org/maven2/com/facebook/conceal/conceal/1.1.3/conceal-1.1.3.pom
|
https://repo.maven.apache.org/maven2/com/facebook/conceal/conceal/1.1.3/conceal-1.1.3.pom
|
||||||
|
https://repo.maven.apache.org/maven2/com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3.pom
|
||||||
https://repo.maven.apache.org/maven2/com/facebook/fbjni/fbjni/0.0.2/fbjni-0.0.2.pom
|
https://repo.maven.apache.org/maven2/com/facebook/fbjni/fbjni/0.0.2/fbjni-0.0.2.pom
|
||||||
|
https://repo.maven.apache.org/maven2/com/facebook/flipper/flipper-fresco-plugin/0.54.0/flipper-fresco-plugin-0.54.0.pom
|
||||||
|
https://repo.maven.apache.org/maven2/com/facebook/flipper/flipper/0.54.0/flipper-0.54.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/facebook/fresco/animated-base/2.2.0/animated-base-2.2.0.pom
|
https://repo.maven.apache.org/maven2/com/facebook/fresco/animated-base/2.2.0/animated-base-2.2.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/facebook/fresco/animated-drawable/2.2.0/animated-drawable-2.2.0.pom
|
https://repo.maven.apache.org/maven2/com/facebook/fresco/animated-drawable/2.2.0/animated-drawable-2.2.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/facebook/fresco/animated-gif/2.2.0/animated-gif-2.2.0.pom
|
https://repo.maven.apache.org/maven2/com/facebook/fresco/animated-gif/2.2.0/animated-gif-2.2.0.pom
|
||||||
|
@ -391,6 +390,7 @@ https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.6.0/soload
|
||||||
https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.8.2/soloader-0.8.2.pom
|
https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.8.2/soloader-0.8.2.pom
|
||||||
https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.9.0/soloader-0.9.0.pom
|
https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.9.0/soloader-0.9.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/facebook/stetho/stetho/1.3.1/stetho-1.3.1.pom
|
https://repo.maven.apache.org/maven2/com/facebook/stetho/stetho/1.3.1/stetho-1.3.1.pom
|
||||||
|
https://repo.maven.apache.org/maven2/com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1.pom
|
||||||
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/annotations/4.12.0/annotations-4.12.0.pom
|
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/annotations/4.12.0/annotations-4.12.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/compiler/4.12.0/compiler-4.12.0.pom
|
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/compiler/4.12.0/compiler-4.12.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/disklrucache/4.12.0/disklrucache-4.12.0.pom
|
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/disklrucache/4.12.0/disklrucache-4.12.0.pom
|
||||||
|
@ -426,12 +426,12 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotatio
|
||||||
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.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
|
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1.pom
|
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1.pom
|
||||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.10.0/error_prone_annotations-2.10.0.pom
|
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18.pom
|
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18.pom
|
||||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.1.2/error_prone_parent-2.1.2.pom
|
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.1.2/error_prone_parent-2.1.2.pom
|
||||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.2.0/error_prone_parent-2.2.0.pom
|
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.2.0/error_prone_parent-2.2.0.pom
|
||||||
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.3.1/error_prone_parent-2.3.1.pom
|
||||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.10.0/error_prone_parent-2.10.0.pom
|
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.11.0/error_prone_parent-2.11.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/google/google/1/google-1.pom
|
https://repo.maven.apache.org/maven2/com/google/google/1/google-1.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/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/17.0/guava-parent-17.0.pom
|
||||||
|
@ -473,15 +473,15 @@ https://repo.maven.apache.org/maven2/com/parse/bolts/bolts-tasks/1.4.0/bolts-tas
|
||||||
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/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/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/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
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.12.12/okhttp-urlconnection-3.12.12.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.12.12/okhttp-urlconnection-3.12.12.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.9.1/okhttp-3.9.1.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.9.1/okhttp-3.9.1.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.1/okhttp-3.12.1.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.1/okhttp-3.12.1.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.12/okhttp-3.12.12.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.12/okhttp-3.12.12.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/5.0.0-alpha.3/okhttp-5.0.0-alpha.3.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/5.0.0-alpha.4/okhttp-5.0.0-alpha.4.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.9.1/parent-3.9.1.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.9.1/parent-3.9.1.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.12.1/parent-3.12.1.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.12.1/parent-3.12.1.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.12.12/parent-3.12.12.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.12.12/parent-3.12.12.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.0.0/okio-jvm-3.0.0.pom
|
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.15.0/okio-parent-1.15.0.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.15.0/okio-parent-1.15.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.15.0/okio-1.15.0.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.15.0/okio-1.15.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.0.0/okio-3.0.0.pom
|
https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.0.0/okio-3.0.0.pom
|
||||||
|
@ -511,6 +511,8 @@ https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4-master/4.9.0/an
|
||||||
https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4-runtime/4.5/antlr4-runtime-4.5.pom
|
https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4-runtime/4.5/antlr4-runtime-4.5.pom
|
||||||
https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4-runtime/4.9.0/antlr4-runtime-4.9.0.pom
|
https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4-runtime/4.9.0/antlr4-runtime-4.9.0.pom
|
||||||
https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4/4.5/antlr4-4.5.pom
|
https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4/4.5/antlr4-4.5.pom
|
||||||
|
https://repo.maven.apache.org/maven2/com/willowtreeapps/assertk/assertk/0.25/assertk-0.25.pom
|
||||||
|
https://repo.maven.apache.org/maven2/com/willowtreeapps/opentest4k/opentest4k/1.2.2/opentest4k-1.2.2.pom
|
||||||
https://repo.maven.apache.org/maven2/de/undercouch/gradle-download-task/3.4.3/gradle-download-task-3.4.3.pom
|
https://repo.maven.apache.org/maven2/de/undercouch/gradle-download-task/3.4.3/gradle-download-task-3.4.3.pom
|
||||||
https://repo.maven.apache.org/maven2/de/undercouch/gradle-download-task/4.0.2/gradle-download-task-4.0.2.pom
|
https://repo.maven.apache.org/maven2/de/undercouch/gradle-download-task/4.0.2/gradle-download-task-4.0.2.pom
|
||||||
https://repo.maven.apache.org/maven2/it/unimi/dsi/fastutil/7.2.0/fastutil-7.2.0.pom
|
https://repo.maven.apache.org/maven2/it/unimi/dsi/fastutil/7.2.0/fastutil-7.2.0.pom
|
||||||
|
@ -636,19 +638,20 @@ https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.48/bcprov
|
||||||
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.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.60/bcprov-jdk15on-1.60.pom
|
||||||
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65.pom
|
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65.pom
|
||||||
|
https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.70/bcprov-jdk15on-1.70.pom
|
||||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.pom
|
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.pom
|
||||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.21.1/checker-qual-3.21.1.pom
|
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.21.2/checker-qual-3.21.2.pom
|
||||||
https://repo.maven.apache.org/maven2/org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
|
https://repo.maven.apache.org/maven2/org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
|
||||||
https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-all/2.4.15/groovy-all-2.4.15.pom
|
https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-all/2.4.15/groovy-all-2.4.15.pom
|
||||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.pom
|
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.pom
|
||||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.pom
|
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.pom
|
||||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.20/animal-sniffer-annotations-1.20.pom
|
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21.pom
|
||||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.14/animal-sniffer-parent-1.14.pom
|
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.14/animal-sniffer-parent-1.14.pom
|
||||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.17/animal-sniffer-parent-1.17.pom
|
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.17/animal-sniffer-parent-1.17.pom
|
||||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.20/animal-sniffer-parent-1.20.pom
|
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.21/animal-sniffer-parent-1.21.pom
|
||||||
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/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/40/mojo-parent-40.pom
|
||||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/61/mojo-parent-61.pom
|
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/65/mojo-parent-65.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/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/easymockclassextension/3.2/easymockclassextension-3.2.pom
|
||||||
https://repo.maven.apache.org/maven2/org/easymock/easymock-parent/3.2/easymock-parent-3.2.pom
|
https://repo.maven.apache.org/maven2/org/easymock/easymock-parent/3.2/easymock-parent-3.2.pom
|
||||||
|
@ -730,17 +733,17 @@ 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.71/kotlin-stdlib-common-1.3.71.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.30/kotlin-stdlib-common-1.4.30.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.30/kotlin-stdlib-common-1.4.30.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.4.31/kotlin-stdlib-common-1.4.31.pom
|
||||||
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.30/kotlin-stdlib-common-1.5.30.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.31/kotlin-stdlib-common-1.5.31.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.31/kotlin-stdlib-common-1.5.31.pom
|
||||||
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.10/kotlin-stdlib-common-1.6.10.pom
|
||||||
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.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.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.3.50/kotlin-stdlib-jdk7-1.3.50.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.31/kotlin-stdlib-jdk7-1.4.31.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.31/kotlin-stdlib-jdk7-1.4.31.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.5.31/kotlin-stdlib-jdk7-1.5.31.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.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.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.3.50/kotlin-stdlib-jdk8-1.3.50.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.31/kotlin-stdlib-jdk8-1.4.31.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.31/kotlin-stdlib-jdk8-1.4.31.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5.31/kotlin-stdlib-jdk8-1.5.31.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-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
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jre8/1.2.0/kotlin-stdlib-jre8-1.2.0.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.1.3-2/kotlin-stdlib-1.1.3-2.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.1.3-2/kotlin-stdlib-1.1.3-2.pom
|
||||||
|
@ -754,7 +757,6 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/k
|
||||||
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.3.71/kotlin-stdlib-1.3.71.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.30/kotlin-stdlib-1.4.30.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.30/kotlin-stdlib-1.4.30.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.4.31/kotlin-stdlib-1.4.31.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.5.31/kotlin-stdlib-1.5.31.pom
|
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-common/1.4.31/kotlin-test-common-1.4.31.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-common/1.4.31/kotlin-test-common-1.4.31.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test/1.4.31/kotlin-test-1.4.31.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test/1.4.31/kotlin-test-1.4.31.pom
|
||||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.3.50/kotlin-util-io-1.3.50.pom
|
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.3.50/kotlin-util-io-1.3.50.pom
|
||||||
|
@ -762,6 +764,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.4.31/
|
||||||
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/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/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.0/junit-bom-5.7.0.pom
|
||||||
|
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.8.2/junit-bom-5.8.2.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/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/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/1.7.7/stax-ex-1.7.7.pom
|
||||||
|
@ -818,10 +821,10 @@ https://repo.maven.apache.org/maven2/org/robolectric/shadowapi/4.4/shadowapi-4.4
|
||||||
https://repo.maven.apache.org/maven2/org/robolectric/shadows-framework/4.4/shadows-framework-4.4.pom
|
https://repo.maven.apache.org/maven2/org/robolectric/shadows-framework/4.4/shadows-framework-4.4.pom
|
||||||
https://repo.maven.apache.org/maven2/org/robolectric/utils-reflector/4.4/utils-reflector-4.4.pom
|
https://repo.maven.apache.org/maven2/org/robolectric/utils-reflector/4.4/utils-reflector-4.4.pom
|
||||||
https://repo.maven.apache.org/maven2/org/robolectric/utils/4.4/utils-4.4.pom
|
https://repo.maven.apache.org/maven2/org/robolectric/utils/4.4/utils-4.4.pom
|
||||||
https://repo.maven.apache.org/maven2/org/slf4j/jcl-over-slf4j/2.0.0-alpha5/jcl-over-slf4j-2.0.0-alpha5.pom
|
https://repo.maven.apache.org/maven2/org/slf4j/jcl-over-slf4j/2.0.0-alpha6/jcl-over-slf4j-2.0.0-alpha6.pom
|
||||||
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.0-alpha5/slf4j-api-2.0.0-alpha5.pom
|
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.0-alpha6/slf4j-api-2.0.0-alpha6.pom
|
||||||
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-jdk14/2.0.0-alpha5/slf4j-jdk14-2.0.0-alpha5.pom
|
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-jdk14/2.0.0-alpha6/slf4j-jdk14-2.0.0-alpha6.pom
|
||||||
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.0.0-alpha5/slf4j-parent-2.0.0-alpha5.pom
|
https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.0.0-alpha6/slf4j-parent-2.0.0-alpha6.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/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/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/oss/oss-parent/9/oss-parent-9.pom
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
app
|
app
|
||||||
react-native-background-timer
|
react-native-background-timer
|
||||||
|
react-native-blob-util
|
||||||
react-native-camera-kit
|
react-native-camera-kit
|
||||||
react-native-community_async-storage
|
react-native-community_async-storage
|
||||||
react-native-community_audio-toolkit
|
react-native-community_audio-toolkit
|
||||||
|
|
|
@ -40,18 +40,19 @@
|
||||||
"react-native-device-info": "^7.4.0",
|
"react-native-device-info": "^7.4.0",
|
||||||
"react-native-dialogs": "^1.0.4",
|
"react-native-dialogs": "^1.0.4",
|
||||||
"react-native-draggable-flatlist": "^3.0.3",
|
"react-native-draggable-flatlist": "^3.0.3",
|
||||||
"react-native-fast-image": "8.5.11",
|
"react-native-fast-image": "^8.5.11",
|
||||||
"react-native-fetch-polyfill": "^1.1.2",
|
"react-native-fetch-polyfill": "^1.1.2",
|
||||||
"react-native-fs": "^2.14.1",
|
"react-native-fs": "^2.14.1",
|
||||||
"react-native-gesture-handler": "^1.8.0",
|
"react-native-gesture-handler": "^1.8.0",
|
||||||
"react-native-haptic-feedback": "^1.9.0",
|
"react-native-haptic-feedback": "^1.9.0",
|
||||||
"react-native-image-crop-picker": "git+https://github.com/status-im/react-native-image-crop-picker.git#v0.36.2-status.0",
|
"react-native-image-crop-picker": "git+https://github.com/status-im/react-native-image-crop-picker.git#v0.36.2-status.0",
|
||||||
"react-native-image-resizer": "^1.2.3",
|
"react-native-image-resizer": "^1.2.3",
|
||||||
"react-native-image-viewing": "git+https://github.com/Ferossgp/react-native-image-viewing.git#v0.2.1",
|
"react-native-image-viewing": "git+https://github.com/status-im/react-native-image-viewing.git#v0.2.1.status",
|
||||||
"react-native-keychain": "git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-5-status",
|
"react-native-keychain": "git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-5-status",
|
||||||
"react-native-languages": "^3.0.2",
|
"react-native-languages": "^3.0.2",
|
||||||
"react-native-linear-gradient": "^2.5.6",
|
"react-native-linear-gradient": "^2.5.6",
|
||||||
"react-native-mail": "^6.1.1",
|
"react-native-mail": "^6.1.1",
|
||||||
|
"react-native-blob-util": "^0.13.18",
|
||||||
"react-native-navigation": "^7.13.0",
|
"react-native-navigation": "^7.13.0",
|
||||||
"react-native-permissions": "^2.1.5",
|
"react-native-permissions": "^2.1.5",
|
||||||
"react-native-reanimated": "^2.1.0",
|
"react-native-reanimated": "^2.1.0",
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
(:require [re-frame.core :as re-frame]
|
(:require [re-frame.core :as re-frame]
|
||||||
[status-im.utils.fx :as fx]
|
[status-im.utils.fx :as fx]
|
||||||
["@react-native-community/cameraroll" :as CameraRoll]
|
["@react-native-community/cameraroll" :as CameraRoll]
|
||||||
|
["react-native-blob-util" :default ReactNativeBlobUtil]
|
||||||
[status-im.utils.types :as types]
|
[status-im.utils.types :as types]
|
||||||
[status-im.utils.config :as config]
|
[status-im.utils.config :as config]
|
||||||
[status-im.ui.components.permissions :as permissions]
|
[status-im.ui.components.permissions :as permissions]
|
||||||
|
@ -12,6 +13,7 @@
|
||||||
[status-im.i18n.i18n :as i18n]
|
[status-im.i18n.i18n :as i18n]
|
||||||
[status-im.utils.utils :as utils]
|
[status-im.utils.utils :as utils]
|
||||||
[status-im.utils.platform :as platform]
|
[status-im.utils.platform :as platform]
|
||||||
|
[status-im.utils.fs :as fs]
|
||||||
[status-im.chat.models :as chat]))
|
[status-im.chat.models :as chat]))
|
||||||
|
|
||||||
(def maximum-image-size-px 2000)
|
(def maximum-image-size-px 2000)
|
||||||
|
@ -37,31 +39,27 @@
|
||||||
(.-localIdentifier result)
|
(.-localIdentifier result)
|
||||||
(.-path result)))
|
(.-path result)))
|
||||||
|
|
||||||
(defn android-save-image-to-gallery [base64-uri]
|
(def temp-image-url (str (fs/cache-dir) "/StatusIm_Image.jpeg"))
|
||||||
(react/image-get-size
|
|
||||||
base64-uri
|
(defn download-image-http [base64-uri on-success]
|
||||||
(fn [width height]
|
(-> (.config ReactNativeBlobUtil (clj->js {:trusty platform/ios?
|
||||||
(image-processing/resize
|
:path temp-image-url}))
|
||||||
base64-uri
|
(.fetch "GET" base64-uri)
|
||||||
width
|
(.then #(on-success (.path %)))
|
||||||
height
|
(.catch #(log/error "could not save image"))))
|
||||||
100
|
|
||||||
(fn [^js resized-image]
|
(defn save-to-gallery [path] (.save CameraRoll path))
|
||||||
(let [path (.-path resized-image)
|
|
||||||
path (if (string/starts-with? path "file") path (str "file://" path))]
|
|
||||||
(.save CameraRoll path)))
|
|
||||||
#(log/error "could not resize image" %)))))
|
|
||||||
|
|
||||||
(re-frame/reg-fx
|
(re-frame/reg-fx
|
||||||
::save-image-to-gallery
|
::save-image-to-gallery
|
||||||
(fn [base64-uri]
|
(fn [base64-uri]
|
||||||
(if platform/ios?
|
(if platform/ios?
|
||||||
(-> (.save CameraRoll base64-uri)
|
(-> (download-image-http base64-uri save-to-gallery)
|
||||||
(.catch #(utils/show-popup (i18n/label :t/error)
|
(.catch #(utils/show-popup (i18n/label :t/error)
|
||||||
(i18n/label :t/external-storage-denied))))
|
(i18n/label :t/external-storage-denied))))
|
||||||
(permissions/request-permissions
|
(permissions/request-permissions
|
||||||
{:permissions [:write-external-storage]
|
{:permissions [:write-external-storage]
|
||||||
:on-allowed #(android-save-image-to-gallery base64-uri)
|
:on-allowed #(download-image-http base64-uri save-to-gallery)
|
||||||
:on-denied (fn []
|
:on-denied (fn []
|
||||||
(utils/set-timeout
|
(utils/set-timeout
|
||||||
#(utils/show-popup (i18n/label :t/error)
|
#(utils/show-popup (i18n/label :t/error)
|
||||||
|
|
|
@ -9,13 +9,10 @@
|
||||||
["react-native-image-viewing" :default image-viewing]
|
["react-native-image-viewing" :default image-viewing]
|
||||||
[status-im.utils.share :as share]
|
[status-im.utils.share :as share]
|
||||||
[taoensso.timbre :as log]
|
[taoensso.timbre :as log]
|
||||||
[status-im.utils.fs :as fs]
|
[status-im.chat.models.images :as images]))
|
||||||
[clojure.string :as string]))
|
|
||||||
|
|
||||||
(def temp-image-url (str (fs/cache-dir) "/image.jpeg"))
|
(defn share [path]
|
||||||
|
(share/open {:url (str (when platform/android? "file://") path)
|
||||||
(defn share []
|
|
||||||
(share/open {:url (str (when platform/android? "file://") temp-image-url)
|
|
||||||
:type "image/jpeg"}
|
:type "image/jpeg"}
|
||||||
#(log/debug "image shared successfully")
|
#(log/debug "image shared successfully")
|
||||||
#(log/error "could not share image")))
|
#(log/error "could not share image")))
|
||||||
|
@ -40,12 +37,7 @@
|
||||||
:height 24}
|
:height 24}
|
||||||
:color colors/white-persist}]]
|
:color colors/white-persist}]]
|
||||||
[react/touchable-opacity
|
[react/touchable-opacity
|
||||||
{:on-press (fn []
|
{:on-press #(images/download-image-http (get-in message [:content :image]) share)
|
||||||
(fs/write-file
|
|
||||||
temp-image-url
|
|
||||||
(last (string/split (get-in message [:content :image]) ",")) "base64"
|
|
||||||
#(share)
|
|
||||||
#(log/error "error writing image to cache dir")))
|
|
||||||
:style {:margin-left 10}
|
:style {:margin-left 10}
|
||||||
:accessibility-label :share-button}
|
:accessibility-label :share-button}
|
||||||
[icons/icon :main-icons/share-default {:container-style {:width 24
|
[icons/icon :main-icons/share-default {:container-style {:width 24
|
||||||
|
|
|
@ -99,7 +99,7 @@
|
||||||
(if (and image
|
(if (and image
|
||||||
;; Disabling images for public-chats
|
;; Disabling images for public-chats
|
||||||
(not public?))
|
(not public?))
|
||||||
[react/image {:style {:width 56
|
[react/fast-image {:style {:width 56
|
||||||
:height 56
|
:height 56
|
||||||
:background-color :black
|
:background-color :black
|
||||||
:border-radius 4}
|
:border-radius 4}
|
||||||
|
@ -341,24 +341,27 @@
|
||||||
(def image-max-height 192)
|
(def image-max-height 192)
|
||||||
|
|
||||||
(defn image-set-size [dimensions]
|
(defn image-set-size [dimensions]
|
||||||
(fn [width height]
|
(fn [evt]
|
||||||
(when (< width height)
|
(let [width (.-width (.-nativeEvent evt))
|
||||||
|
height (.-height (.-nativeEvent evt))]
|
||||||
|
(if (< width height)
|
||||||
;; if width less than the height we reduce width proportionally to height
|
;; if width less than the height we reduce width proportionally to height
|
||||||
(let [k (/ height image-max-height)]
|
(let [k (/ height image-max-height)]
|
||||||
(when (not= (/ width k) (first @dimensions))
|
(when (not= (/ width k) (first @dimensions))
|
||||||
(reset! dimensions [(/ width k) image-max-height]))))))
|
(reset! dimensions {:width (/ width k) :height image-max-height :loaded true})))
|
||||||
|
(swap! dimensions assoc :loaded true)))))
|
||||||
|
|
||||||
(defn message-content-image
|
(defn message-content-image
|
||||||
[{:keys [content outgoing in-popover?] :as message}
|
[{:keys [content outgoing in-popover?] :as message}
|
||||||
{:keys [on-long-press]}]
|
{:keys [on-long-press]}]
|
||||||
(let [dimensions (reagent/atom [image-max-width image-max-height])
|
(let [dimensions (reagent/atom {:width image-max-width :height image-max-height :loaded false})
|
||||||
visible (reagent/atom false)
|
visible (reagent/atom false)
|
||||||
uri (:image content)]
|
uri (:image content)]
|
||||||
(react/image-get-size uri (image-set-size dimensions))
|
|
||||||
(fn []
|
(fn []
|
||||||
(let [style-opts {:outgoing outgoing
|
(let [style-opts {:outgoing outgoing
|
||||||
:width (first @dimensions)
|
:opacity (if (:loaded @dimensions) 1 0)
|
||||||
:height (second @dimensions)}]
|
:width (:width @dimensions)
|
||||||
|
:height (:height @dimensions)}]
|
||||||
[:<>
|
[:<>
|
||||||
[preview/preview-image {:message message
|
[preview/preview-image {:message message
|
||||||
:visible @visible
|
:visible @visible
|
||||||
|
@ -371,10 +374,10 @@
|
||||||
:disabled in-popover?}
|
:disabled in-popover?}
|
||||||
[react/view {:style (style/image-message style-opts)
|
[react/view {:style (style/image-message style-opts)
|
||||||
:accessibility-label :image-message}
|
:accessibility-label :image-message}
|
||||||
[react/image {:style (dissoc style-opts :outgoing)
|
[react/fast-image {:style (dissoc style-opts :outgoing)
|
||||||
:resize-mode :cover
|
:on-load (image-set-size dimensions)
|
||||||
:source {:uri uri}}
|
:source {:uri uri}}]
|
||||||
[react/view {:style (style/image-message-border style-opts)}]]]]]))))
|
[react/view {:style (style/image-message-border style-opts)}]]]]))))
|
||||||
|
|
||||||
(defmulti ->message :content-type)
|
(defmulti ->message :content-type)
|
||||||
|
|
||||||
|
|
|
@ -12,9 +12,8 @@
|
||||||
(fn [photo-path size accessibility-label _]
|
(fn [photo-path size accessibility-label _]
|
||||||
(let [identicon? (when photo-path (profile.db/base64-png? photo-path))]
|
(let [identicon? (when photo-path (profile.db/base64-png? photo-path))]
|
||||||
[react/view {:style (style/photo-container size)}
|
[react/view {:style (style/photo-container size)}
|
||||||
[react/image {:source (utils.image/source photo-path)
|
[react/fast-image {:source (utils.image/source photo-path)
|
||||||
:style (style/photo size)
|
:style (style/photo size)
|
||||||
:resize-mode :cover
|
|
||||||
:accessibility-label (or accessibility-label :chat-icon)}]
|
:accessibility-label (or accessibility-label :chat-icon)}]
|
||||||
(when identicon?
|
(when identicon?
|
||||||
[react/view {:style (style/photo-border size)}])]))))
|
[react/view {:style (style/photo-border size)}])]))))
|
||||||
|
@ -37,8 +36,7 @@
|
||||||
(defn member-identicon [identicon]
|
(defn member-identicon [identicon]
|
||||||
(let [size style/default-size]
|
(let [size style/default-size]
|
||||||
[react/view {:style (style/photo-container size)}
|
[react/view {:style (style/photo-container size)}
|
||||||
[react/image {:source {:uri identicon}
|
[react/fast-image {:source {:uri identicon}
|
||||||
:style (style/photo size)
|
:style (style/photo size)
|
||||||
:resize-mode :cover
|
|
||||||
:accessibility-label :member-photo}]
|
:accessibility-label :member-photo}]
|
||||||
[react/view {:style (style/photo-border size)}]]))
|
[react/view {:style (style/photo-border size)}]]))
|
||||||
|
|
|
@ -24,40 +24,29 @@
|
||||||
|
|
||||||
(defonce messages-list-ref (atom nil))
|
(defonce messages-list-ref (atom nil))
|
||||||
(def image-max-dimension 192)
|
(def image-max-dimension 192)
|
||||||
(def image-sizes (atom {}))
|
|
||||||
|
|
||||||
(defn image-set-size [dimensions uri]
|
(defn image-set-size [width]
|
||||||
(fn [width height]
|
(fn [evt]
|
||||||
(swap! image-sizes assoc uri {:initialized? true})
|
(reset! width (/ (.-width (.-nativeEvent evt)) (/ (.-height (.-nativeEvent evt)) image-max-dimension)))))
|
||||||
(when (< width height)
|
|
||||||
;; if width less than the height we reduce width proportionally to height
|
|
||||||
(let [k (/ height image-max-dimension)]
|
|
||||||
(when (not= (/ width k) (first @dimensions))
|
|
||||||
(swap! image-sizes assoc uri {:width (/ width k)})
|
|
||||||
(reset! dimensions [(/ width k) image-max-dimension]))))))
|
|
||||||
|
|
||||||
(defn message-content-image [uri _]
|
(defn message-content-image [_ _]
|
||||||
(let [stored-image (get @image-sizes uri)
|
(let [width (reagent/atom nil)]
|
||||||
dimensions (reagent/atom [nil image-max-dimension])]
|
|
||||||
(if stored-image
|
|
||||||
(reset! dimensions [(:width stored-image) image-max-dimension])
|
|
||||||
(js/setTimeout #(react/image-get-size uri (image-set-size dimensions uri)) 20))
|
|
||||||
(fn [uri show-close?]
|
(fn [uri show-close?]
|
||||||
[react/view {:style {:width (first @dimensions)
|
[react/view {:style {:width @width
|
||||||
:height image-max-dimension
|
:height image-max-dimension
|
||||||
:overflow :hidden
|
:overflow :hidden
|
||||||
|
:opacity (if @width 1 0)
|
||||||
:border-radius 16
|
:border-radius 16
|
||||||
:margin-top 8}
|
:margin-top 8}
|
||||||
:accessibility-label :image-message}
|
:accessibility-label :image-message}
|
||||||
[react/image {:style {:width (first @dimensions)
|
[react/fast-image {:style {:width @width
|
||||||
:height image-max-dimension}
|
:height image-max-dimension}
|
||||||
:cache :force-cache
|
:on-load (image-set-size width)
|
||||||
:resize-mode :cover
|
|
||||||
:source {:uri uri}}]
|
:source {:uri uri}}]
|
||||||
[react/view {:border-width 1
|
[react/view {:border-width 1
|
||||||
:top 0
|
:top 0
|
||||||
:left 0
|
:left 0
|
||||||
:width (first @dimensions)
|
:width @width
|
||||||
:height image-max-dimension
|
:height image-max-dimension
|
||||||
:border-radius 16
|
:border-radius 16
|
||||||
:position :absolute
|
:position :absolute
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"_comment": "Instead use: scripts/update-status-go.sh <rev>",
|
"_comment": "Instead use: scripts/update-status-go.sh <rev>",
|
||||||
"owner": "status-im",
|
"owner": "status-im",
|
||||||
"repo": "status-go",
|
"repo": "status-go",
|
||||||
"version": "v0.93.5",
|
"version": "v0.94.0",
|
||||||
"commit-sha1": "54b35b051052a0eaa74e4d0b123aca3427a27734",
|
"commit-sha1": "5925b3b7cca127805c200a631e9b88d4ce5d31d5",
|
||||||
"src-sha256": "14d55yd4rdm9hdc5k888xlm5sjl3iclggzrgxsmjlvfvcg81lf85"
|
"src-sha256": "0wzlvap62m85rqn69vy7a3ny1kjcaxfhrzcjsx2p16xwjmi0i1rm"
|
||||||
}
|
}
|
||||||
|
|
28
yarn.lock
28
yarn.lock
|
@ -1987,7 +1987,7 @@ balanced-match@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||||
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||||
|
|
||||||
base-64@^0.1.0:
|
base-64@0.1.0, base-64@^0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
|
resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
|
||||||
integrity sha1-eAqZyE59YAJgNhURxId2E78k9rs=
|
integrity sha1-eAqZyE59YAJgNhURxId2E78k9rs=
|
||||||
|
@ -3741,6 +3741,18 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
|
||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
path-is-absolute "^1.0.0"
|
path-is-absolute "^1.0.0"
|
||||||
|
|
||||||
|
glob@^7.1.6:
|
||||||
|
version "7.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
|
||||||
|
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
|
||||||
|
dependencies:
|
||||||
|
fs.realpath "^1.0.0"
|
||||||
|
inflight "^1.0.4"
|
||||||
|
inherits "2"
|
||||||
|
minimatch "^3.0.4"
|
||||||
|
once "^1.3.0"
|
||||||
|
path-is-absolute "^1.0.0"
|
||||||
|
|
||||||
global@~4.3.0:
|
global@~4.3.0:
|
||||||
version "4.3.2"
|
version "4.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
|
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
|
||||||
|
@ -6586,6 +6598,14 @@ react-native-background-timer@^2.1.1:
|
||||||
resolved "https://registry.yarnpkg.com/react-native-background-timer/-/react-native-background-timer-2.2.0.tgz#ff82d30899209b924983cc00e6ce174b8de5054a"
|
resolved "https://registry.yarnpkg.com/react-native-background-timer/-/react-native-background-timer-2.2.0.tgz#ff82d30899209b924983cc00e6ce174b8de5054a"
|
||||||
integrity sha512-Y7N6diSFko/FCJPMmB0PoBlmY1kEcma7qDVwn8t7zi12GLqpe/Vwls97onkSD8/QL+BR33BygUHOrLTPwgeKfg==
|
integrity sha512-Y7N6diSFko/FCJPMmB0PoBlmY1kEcma7qDVwn8t7zi12GLqpe/Vwls97onkSD8/QL+BR33BygUHOrLTPwgeKfg==
|
||||||
|
|
||||||
|
react-native-blob-util@^0.13.18:
|
||||||
|
version "0.13.18"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-blob-util/-/react-native-blob-util-0.13.18.tgz#7b924d55607bda380d6e9862b621ed1ac0c007ec"
|
||||||
|
integrity sha512-f9NyydQKMd24QiyW+LZmDg2rjCTi4GBff3UJzP1BDgEQ8aoHMs4MZmPs5erNH4E577qhEFp5v7HGzXVRQL8SnQ==
|
||||||
|
dependencies:
|
||||||
|
base-64 "0.1.0"
|
||||||
|
glob "^7.1.6"
|
||||||
|
|
||||||
react-native-camera-kit@^8.0.4:
|
react-native-camera-kit@^8.0.4:
|
||||||
version "8.0.4"
|
version "8.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-camera-kit/-/react-native-camera-kit-8.0.4.tgz#8e350b37a205054ceb140a8babe1d032acdcdbd5"
|
resolved "https://registry.yarnpkg.com/react-native-camera-kit/-/react-native-camera-kit-8.0.4.tgz#8e350b37a205054ceb140a8babe1d032acdcdbd5"
|
||||||
|
@ -6623,7 +6643,7 @@ react-native-draggable-flatlist@^3.0.3:
|
||||||
resolved "https://registry.yarnpkg.com/react-native-draggable-flatlist/-/react-native-draggable-flatlist-3.0.3.tgz#e85503585253be01ad251f78d5b341ac22f9d952"
|
resolved "https://registry.yarnpkg.com/react-native-draggable-flatlist/-/react-native-draggable-flatlist-3.0.3.tgz#e85503585253be01ad251f78d5b341ac22f9d952"
|
||||||
integrity sha512-bDro6aqQMvvTm/CuHre9dAjSBKosAfZRLDx3nmrjOz799kxcn0bq+uCB6yF6m+g1Xd/gVPl7E3Ss4uX+oPUlHg==
|
integrity sha512-bDro6aqQMvvTm/CuHre9dAjSBKosAfZRLDx3nmrjOz799kxcn0bq+uCB6yF6m+g1Xd/gVPl7E3Ss4uX+oPUlHg==
|
||||||
|
|
||||||
react-native-fast-image@8.5.11:
|
react-native-fast-image@^8.5.11:
|
||||||
version "8.5.11"
|
version "8.5.11"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-fast-image/-/react-native-fast-image-8.5.11.tgz#e3dc969d0e4e8df026646bf18194465aa55cbc2b"
|
resolved "https://registry.yarnpkg.com/react-native-fast-image/-/react-native-fast-image-8.5.11.tgz#e3dc969d0e4e8df026646bf18194465aa55cbc2b"
|
||||||
integrity sha512-cNW4bIJg3nvKaheG8vGMfqCt5LMWX9MS5+wMudgKIHbGO51spRr4sgnlhVgwHLcZ5aeNOVJ8CPRxDIWKRq/0QA==
|
integrity sha512-cNW4bIJg3nvKaheG8vGMfqCt5LMWX9MS5+wMudgKIHbGO51spRr4sgnlhVgwHLcZ5aeNOVJ8CPRxDIWKRq/0QA==
|
||||||
|
@ -6665,9 +6685,9 @@ react-native-image-resizer@^1.2.3:
|
||||||
resolved "https://registry.yarnpkg.com/react-native-image-resizer/-/react-native-image-resizer-1.2.3.tgz#21cb2b158ff950e55a0fc01c2cb61375bd5a03ba"
|
resolved "https://registry.yarnpkg.com/react-native-image-resizer/-/react-native-image-resizer-1.2.3.tgz#21cb2b158ff950e55a0fc01c2cb61375bd5a03ba"
|
||||||
integrity sha512-RDPNJglRmWDZ/7hvu+CbpsKYl6AQmseL8cWX4UkLAHxQWNc5ZdYhP/9avC5xCfyiwkRw+Zmkmv78HO0kt0ewhQ==
|
integrity sha512-RDPNJglRmWDZ/7hvu+CbpsKYl6AQmseL8cWX4UkLAHxQWNc5ZdYhP/9avC5xCfyiwkRw+Zmkmv78HO0kt0ewhQ==
|
||||||
|
|
||||||
"react-native-image-viewing@git+https://github.com/Ferossgp/react-native-image-viewing.git#v0.2.1":
|
"react-native-image-viewing@git+https://github.com/status-im/react-native-image-viewing.git#v0.2.1.status":
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "git+https://github.com/Ferossgp/react-native-image-viewing.git#8ef67cdce7b7c66065a939847e45db71347c678e"
|
resolved "git+https://github.com/status-im/react-native-image-viewing.git#94af89356f2e4e08f462370c77e4778d7626ce2f"
|
||||||
|
|
||||||
"react-native-keychain@git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-5-status":
|
"react-native-keychain@git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-5-status":
|
||||||
version "3.0.0-rc.3"
|
version "3.0.0-rc.3"
|
||||||
|
|
Loading…
Reference in New Issue