NativeCreateReportSpiCall.smali
.class public Lcom/google/firebase/crashlytics/internal/report/network/NativeCreateReportSpiCall;
.super Lcom/google/firebase/crashlytics/internal/common/AbstractSpiCall;
.source "NativeCreateReportSpiCall.java"
# interfaces
.implements Lcom/google/firebase/crashlytics/internal/report/network/CreateReportSpiCall;
# static fields
.field private static final APP_META_FILE_MULTIPART_PARAM:Ljava/lang/String; = "app_meta_file"
.field private static final BINARY_IMAGES_FILE_MULTIPART_PARAM:Ljava/lang/String; = "binary_images_file"
.field private static final DEVICE_META_FILE_MULTIPART_PARAM:Ljava/lang/String; = "device_meta_file"
.field private static final GZIP_FILE_CONTENT_TYPE:Ljava/lang/String; = "application/octet-stream"
.field private static final KEYS_FILE_MULTIPART_PARAM:Ljava/lang/String; = "keys_file"
.field private static final LOGS_FILE_MULTIPART_PARAM:Ljava/lang/String; = "logs_file"
.field private static final METADATA_FILE_MULTIPART_PARAM:Ljava/lang/String; = "crash_meta_file"
.field private static final MINIDUMP_FILE_MULTIPART_PARAM:Ljava/lang/String; = "minidump_file"
.field static final ORGANIZATION_IDENTIFIER_PARAM:Ljava/lang/String; = "org_id"
.field private static final OS_META_FILE_MULTIPART_PARAM:Ljava/lang/String; = "os_meta_file"
.field private static final REPORT_IDENTIFIER_PARAM:Ljava/lang/String; = "report_id"
.field private static final SESSION_META_FILE_MULTIPART_PARAM:Ljava/lang/String; = "session_meta_file"
.field private static final USER_META_FILE_MULTIPART_PARAM:Ljava/lang/String; = "user_meta_file"
# instance fields
.field private final version:Ljava/lang/String;
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/String;Lcom/google/firebase/crashlytics/internal/network/HttpRequestFactory;Ljava/lang/String;)V
.registers 6
.line 55
sget-object v0, Lcom/google/firebase/crashlytics/internal/network/HttpMethod;->POST:Lcom/google/firebase/crashlytics/internal/network/HttpMethod;
invoke-direct {p0, p1, p2, p3, v0}, Lcom/google/firebase/crashlytics/internal/common/AbstractSpiCall;-><init>(Ljava/lang/String;Ljava/lang/String;Lcom/google/firebase/crashlytics/internal/network/HttpRequestFactory;Lcom/google/firebase/crashlytics/internal/network/HttpMethod;)V
.line 56
iput-object p4, p0, Lcom/google/firebase/crashlytics/internal/report/network/NativeCreateReportSpiCall;->version:Ljava/lang/String;
return-void
.end method
.method private applyHeadersTo(Lcom/google/firebase/crashlytics/internal/network/HttpRequest;Ljava/lang/String;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
.registers 6
.line 87
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Crashlytics Android SDK/"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 90
invoke-static {}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->getVersion()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "User-Agent"
.line 88
invoke-virtual {p1, v1, v0}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
move-result-object v0
const-string v1, "X-CRASHLYTICS-API-CLIENT-TYPE"
const-string v2, "android"
.line 91
invoke-virtual {v0, v1, v2}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
move-result-object v0
iget-object v1, p0, Lcom/google/firebase/crashlytics/internal/report/network/NativeCreateReportSpiCall;->version:Ljava/lang/String;
const-string v2, "X-CRASHLYTICS-API-CLIENT-VERSION"
.line 92
invoke-virtual {v0, v2, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
move-result-object v0
const-string v1, "X-CRASHLYTICS-GOOGLE-APP-ID"
.line 93
invoke-virtual {v0, v1, p2}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
return-object p1
.end method
.method private applyMultipartDataTo(Lcom/google/firebase/crashlytics/internal/network/HttpRequest;Ljava/lang/String;Lcom/google/firebase/crashlytics/internal/report/model/Report;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
.registers 9
if-eqz p2, :cond_7
const-string v0, "org_id"
.line 100
invoke-virtual {p1, v0, p2}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
.line 102
:cond_7
invoke-interface {p3}, Lcom/google/firebase/crashlytics/internal/report/model/Report;->getIdentifier()Ljava/lang/String;
move-result-object p2
const-string v0, "report_id"
invoke-virtual {p1, v0, p2}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
.line 103
invoke-interface {p3}, Lcom/google/firebase/crashlytics/internal/report/model/Report;->getFiles()[Ljava/io/File;
move-result-object p2
array-length p3, p2
const/4 v0, 0x0
:goto_16
if-ge v0, p3, :cond_ff
aget-object v1, p2, v0
.line 104
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "minidump"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
const-string v3, "application/octet-stream"
if-eqz v2, :cond_33
.line 105
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "minidump_file"
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
goto/16 :goto_fb
.line 106
:cond_33
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "metadata"
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_4a
.line 107
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "crash_meta_file"
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
goto/16 :goto_fb
.line 108
:cond_4a
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "binaryImages"
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_61
.line 110
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "binary_images_file"
.line 109
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
goto/16 :goto_fb
.line 111
:cond_61
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "session"
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_78
.line 112
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "session_meta_file"
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
goto/16 :goto_fb
.line 113
:cond_78
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "app"
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_8e
.line 114
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "app_meta_file"
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
goto :goto_fb
.line 115
:cond_8e
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "device"
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_a4
.line 116
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "device_meta_file"
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
goto :goto_fb
.line 117
:cond_a4
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "os"
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_ba
.line 118
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "os_meta_file"
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
goto :goto_fb
.line 119
:cond_ba
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "user"
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_d0
.line 120
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "user_meta_file"
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
goto :goto_fb
.line 121
:cond_d0
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "logs"
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_e6
.line 122
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "logs_file"
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
goto :goto_fb
.line 123
:cond_e6
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "keys"
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_fb
.line 124
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
const-string v4, "keys_file"
invoke-virtual {p1, v4, v2, v3, v1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->part(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
:cond_fb
:goto_fb
add-int/lit8 v0, v0, 0x1
goto/16 :goto_16
:cond_ff
return-object p1
.end method
# virtual methods
.method public invoke(Lcom/google/firebase/crashlytics/internal/report/model/CreateReportRequest;Z)Z
.registers 5
if-eqz p2, :cond_61
.line 65
invoke-virtual {p0}, Lcom/google/firebase/crashlytics/internal/report/network/NativeCreateReportSpiCall;->getHttpRequest()Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
move-result-object p2
.line 68
iget-object v0, p1, Lcom/google/firebase/crashlytics/internal/report/model/CreateReportRequest;->googleAppId:Ljava/lang/String;
invoke-direct {p0, p2, v0}, Lcom/google/firebase/crashlytics/internal/report/network/NativeCreateReportSpiCall;->applyHeadersTo(Lcom/google/firebase/crashlytics/internal/network/HttpRequest;Ljava/lang/String;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
move-result-object p2
.line 69
iget-object v0, p1, Lcom/google/firebase/crashlytics/internal/report/model/CreateReportRequest;->organizationId:Ljava/lang/String;
iget-object p1, p1, Lcom/google/firebase/crashlytics/internal/report/model/CreateReportRequest;->report:Lcom/google/firebase/crashlytics/internal/report/model/Report;
invoke-direct {p0, p2, v0, p1}, Lcom/google/firebase/crashlytics/internal/report/network/NativeCreateReportSpiCall;->applyMultipartDataTo(Lcom/google/firebase/crashlytics/internal/network/HttpRequest;Ljava/lang/String;Lcom/google/firebase/crashlytics/internal/report/model/Report;)Lcom/google/firebase/crashlytics/internal/network/HttpRequest;
move-result-object p1
.line 71
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object p2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Sending report to: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/google/firebase/crashlytics/internal/report/network/NativeCreateReportSpiCall;->getUrl()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Lcom/google/firebase/crashlytics/internal/Logger;->d(Ljava/lang/String;)V
.line 74
:try_start_30
invoke-virtual {p1}, Lcom/google/firebase/crashlytics/internal/network/HttpRequest;->execute()Lcom/google/firebase/crashlytics/internal/network/HttpResponse;
move-result-object p1
.line 76
invoke-virtual {p1}, Lcom/google/firebase/crashlytics/internal/network/HttpResponse;->code()I
move-result p1
.line 78
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object p2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Result was: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Lcom/google/firebase/crashlytics/internal/Logger;->d(Ljava/lang/String;)V
.line 80
invoke-static {p1}, Lcom/google/firebase/crashlytics/internal/common/ResponseParser;->parse(I)I
move-result p1
:try_end_54
.catch Ljava/io/IOException; {:try_start_30 .. :try_end_54} :catch_5a
if-nez p1, :cond_58
const/4 p1, 0x1
goto :goto_59
:cond_58
const/4 p1, 0x0
:goto_59
return p1
:catch_5a
move-exception p1
.line 82
new-instance p2, Ljava/lang/RuntimeException;
invoke-direct {p2, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw p2
.line 62
:cond_61
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "An invalid data collection token was used."
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method