RequestBodyUtil.smali
.class Lcom/facebook/react/modules/network/RequestBodyUtil;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field private static final CONTENT_ENCODING_GZIP:Ljava/lang/String; = "gzip"
.field private static final NAME:Ljava/lang/String; = "RequestBodyUtil"
.field private static final TEMP_FILE_SUFFIX:Ljava/lang/String; = "temp"
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static create(Lokhttp3/MediaType;Ljava/io/InputStream;)Lokhttp3/RequestBody;
.registers 3
new-instance v0, Lcom/facebook/react/modules/network/RequestBodyUtil$1;
invoke-direct {v0, p0, p1}, Lcom/facebook/react/modules/network/RequestBodyUtil$1;-><init>(Lokhttp3/MediaType;Ljava/io/InputStream;)V
return-object v0
.end method
.method public static createGzip(Lokhttp3/MediaType;Ljava/lang/String;)Lokhttp3/RequestBody;
.registers 4
.line 1
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 2
:try_start_5
new-instance v1, Ljava/util/zip/GZIPOutputStream;
invoke-direct {v1, v0}, Ljava/util/zip/GZIPOutputStream;-><init>(Ljava/io/OutputStream;)V
.line 3
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object p1
invoke-virtual {v1, p1}, Ljava/io/OutputStream;->write([B)V
.line 4
invoke-virtual {v1}, Ljava/io/OutputStream;->close()V
:try_end_14
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_14} :catch_1d
.line 5
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p1
invoke-static {p0, p1}, Lokhttp3/RequestBody;->create(Lokhttp3/MediaType;[B)Lokhttp3/RequestBody;
move-result-object p0
return-object p0
:catch_1d
const/4 p0, 0x0
return-object p0
.end method
.method public static createProgressRequest(Lokhttp3/RequestBody;Lcom/facebook/react/modules/network/ProgressListener;)Lcom/facebook/react/modules/network/ProgressRequestBody;
.registers 3
new-instance v0, Lcom/facebook/react/modules/network/ProgressRequestBody;
invoke-direct {v0, p0, p1}, Lcom/facebook/react/modules/network/ProgressRequestBody;-><init>(Lokhttp3/RequestBody;Lcom/facebook/react/modules/network/ProgressListener;)V
return-object v0
.end method
.method private static getDownloadFileInputStream(Landroid/content/Context;Landroid/net/Uri;)Ljava/io/InputStream;
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object p0
invoke-virtual {p0}, Landroid/content/Context;->getCacheDir()Ljava/io/File;
move-result-object p0
const-string v0, "RequestBodyUtil"
const-string v1, "temp"
.line 2
invoke-static {v0, v1, p0}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
move-result-object p0
.line 3
invoke-virtual {p0}, Ljava/io/File;->deleteOnExit()V
.line 4
new-instance v0, Ljava/net/URL;
invoke-virtual {p1}, Landroid/net/Uri;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
.line 5
invoke-static {v0}, Lcom/google/firebase/perf/network/FirebasePerfUrlConnection;->openStream(Ljava/net/URL;)Ljava/io/InputStream;
move-result-object p1
.line 6
:try_start_20
invoke-static {p1}, Ljava/nio/channels/Channels;->newChannel(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
move-result-object v6
:try_end_24
.catchall {:try_start_20 .. :try_end_24} :catchall_51
.line 7
:try_start_24
new-instance v7, Ljava/io/FileOutputStream;
invoke-direct {v7, p0}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_29
.catchall {:try_start_24 .. :try_end_29} :catchall_4c
.line 8
:try_start_29
invoke-virtual {v7}, Ljava/io/FileOutputStream;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v0
const-wide/16 v2, 0x0
const-wide v4, 0x7fffffffffffffffL
move-object v1, v6
invoke-virtual/range {v0 .. v5}, Ljava/nio/channels/FileChannel;->transferFrom(Ljava/nio/channels/ReadableByteChannel;JJ)J
.line 9
new-instance v0, Ljava/io/FileInputStream;
invoke-direct {v0, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_3d
.catchall {:try_start_29 .. :try_end_3d} :catchall_47
.line 10
:try_start_3d
invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
:try_end_40
.catchall {:try_start_3d .. :try_end_40} :catchall_4c
.line 11
:try_start_40
invoke-interface {v6}, Ljava/nio/channels/Channel;->close()V
:try_end_43
.catchall {:try_start_40 .. :try_end_43} :catchall_51
.line 12
invoke-virtual {p1}, Ljava/io/InputStream;->close()V
return-object v0
:catchall_47
move-exception p0
.line 13
:try_start_48
invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
.line 14
throw p0
:try_end_4c
.catchall {:try_start_48 .. :try_end_4c} :catchall_4c
:catchall_4c
move-exception p0
.line 15
:try_start_4d
invoke-interface {v6}, Ljava/nio/channels/Channel;->close()V
.line 16
throw p0
:try_end_51
.catchall {:try_start_4d .. :try_end_51} :catchall_51
:catchall_51
move-exception p0
.line 17
invoke-virtual {p1}, Ljava/io/InputStream;->close()V
.line 18
throw p0
.end method
.method public static getEmptyBody(Ljava/lang/String;)Lokhttp3/RequestBody;
.registers 3
const-string v0, "POST"
.line 1
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_1b
const-string v0, "PUT"
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1b
const-string v0, "PATCH"
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_1a
goto :goto_1b
:cond_1a
return-object v1
.line 2
:cond_1b
:goto_1b
sget-object p0, Lokio/e;->e:Lokio/e;
invoke-static {v1, p0}, Lokhttp3/RequestBody;->create(Lokhttp3/MediaType;Lokio/e;)Lokhttp3/RequestBody;
move-result-object p0
return-object p0
.end method
.method public static getFileInputStream(Landroid/content/Context;Ljava/lang/String;)Ljava/io/InputStream;
.registers 5
.line 1
:try_start_0
invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v0
.line 2
invoke-virtual {v0}, Landroid/net/Uri;->getScheme()Ljava/lang/String;
move-result-object v1
const-string v2, "http"
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_15
.line 3
invoke-static {p0, v0}, Lcom/facebook/react/modules/network/RequestBodyUtil;->getDownloadFileInputStream(Landroid/content/Context;Landroid/net/Uri;)Ljava/io/InputStream;
move-result-object p0
return-object p0
.line 4
:cond_15
invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object p0
invoke-virtual {p0, v0}, Landroid/content/ContentResolver;->openInputStream(Landroid/net/Uri;)Ljava/io/InputStream;
move-result-object p0
:try_end_1d
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1d} :catch_1e
return-object p0
:catch_1e
move-exception p0
.line 5
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Could not retrieve file for contentUri "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v0, "ReactNative"
invoke-static {v0, p1, p0}, Lcom/facebook/common/logging/FLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
const/4 p0, 0x0
return-object p0
.end method
.method public static isGzipEncoding(Ljava/lang/String;)Z
.registers 2
const-string v0, "gzip"
invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result p0
return p0
.end method