NetworkPrefetch.smali
.class public Lcom/facebook/react/modules/network/NetworkPrefetch;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;
}
.end annotation
# static fields
.field private static final DEFAULT_HIT_COUNT:I = 0x1
.field private static final ME_PAGE:Ljava/lang/String; = "ME_PAGE"
.field public static final PREFETCH_DISABLE:I = 0x2
.field public static final PREFETCH_DISABLE_FOR_ORIGIN:I = 0x3
.field public static final PREFETCH_ENABLE:I = 0x1
.field public static final PREFETCH_ONGOING:I = 0x3
.field public static final PREFETCH_PREPARING:I = 0x1
.field public static final PREFETCH_REJECT:I = 0x4
.field public static final PREFETCH_SUCCESS:I = 0x2
.field private static final TAG:Ljava/lang/String; = "NetworkPrefetch"
# instance fields
.field public nm:Lcom/facebook/react/modules/network/NetworkingModule;
.field private prefetchEnableMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field private prefetchTaskMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/String;",
"Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Lcom/facebook/react/modules/network/NetworkingModule;)V
.registers 3
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
iput-object v0, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchTaskMap:Ljava/util/Map;
.line 3
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
iput-object v0, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchEnableMap:Ljava/util/Map;
.line 4
iput-object p1, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
return-void
.end method
.method public static synthetic a(Lcom/facebook/react/modules/network/NetworkPrefetch;Ljava/lang/String;Ljava/lang/String;ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;ZIZ)V
.registers 10
invoke-direct/range {p0 .. p9}, Lcom/facebook/react/modules/network/NetworkPrefetch;->lambda$willPrefetch$0(Ljava/lang/String;Ljava/lang/String;ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;ZIZ)V
return-void
.end method
.method public static synthetic access$000(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/ReadableMap;)Ljava/lang/String;
.registers 3
invoke-static {p0, p1, p2}, Lcom/facebook/react/modules/network/NetworkPrefetch;->getRequestHash(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/ReadableMap;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static synthetic access$100(Lcom/facebook/react/modules/network/NetworkPrefetch;Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
.registers 5
invoke-direct {p0, p1, p2, p3, p4}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.end method
.method public static synthetic access$200(Lcom/facebook/react/modules/network/NetworkPrefetch;Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/bridge/WritableMap;I)V
.registers 4
invoke-direct {p0, p1, p2, p3}, Lcom/facebook/react/modules/network/NetworkPrefetch;->cacheHeaders(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/bridge/WritableMap;I)V
return-void
.end method
.method public static synthetic access$300(Lcom/facebook/react/modules/network/NetworkPrefetch;Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Lcom/facebook/react/bridge/WritableMap;Ljava/lang/String;Z)V
.registers 6
invoke-direct/range {p0 .. p5}, Lcom/facebook/react/modules/network/NetworkPrefetch;->finishPrefetchRequest(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Lcom/facebook/react/bridge/WritableMap;Ljava/lang/String;Z)V
return-void
.end method
.method private addMePagePrefetchTracker(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.registers 6
.line 1
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_36
const-string v0, "get_me_page"
invoke-virtual {p1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result p1
if-eqz p1, :cond_36
.line 2
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "me_page_"
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v1, "NetworkPrefetch"
invoke-static {p1, v1, p3}, Lcom/facebook/react/util/RNTracker;->globalStart(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.line 3
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {p1, v1, p3}, Lcom/facebook/react/util/RNTracker;->globalEnd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
:cond_36
return-void
.end method
.method private cacheHeaders(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/bridge/WritableMap;I)V
.registers 4
.line 1
iput-object p2, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->headers:Lcom/facebook/react/bridge/WritableMap;
.line 2
iput p3, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->statusCode:I
return-void
.end method
.method private checkEnableForRnPage(Ljava/lang/String;Ljava/lang/String;)Z
.registers 6
.line 1
invoke-static {p1, p2}, Lcom/facebook/react/modules/network/NetworkPrefetch;->getRequestKey(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 2
iget-object p2, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchEnableMap:Ljava/util/Map;
invoke-interface {p2, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/lang/Integer;
const/4 v0, 0x0
if-eqz p2, :cond_2a
.line 3
invoke-virtual {p2}, Ljava/lang/Integer;->intValue()I
move-result v1
const/4 v2, 0x2
if-ne v1, v2, :cond_22
.line 4
iget-object v1, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchEnableMap:Ljava/util/Map;
const/4 v2, 0x3
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-interface {v1, p1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 5
sget-boolean p1, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
.line 6
:cond_22
invoke-virtual {p2}, Ljava/lang/Integer;->intValue()I
move-result p1
const/4 p2, 0x1
if-ne p2, p1, :cond_2a
const/4 v0, 0x1
:cond_2a
return v0
.end method
.method private checkTaskDestroyByHitCount(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
.registers 5
.line 1
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->maxHitCountForSinglePreFetch:Ljava/util/concurrent/atomic/AtomicInteger;
const-string v1, ""
if-eqz v0, :cond_3a
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndDecrement()I
move-result v0
const/4 v2, 0x1
if-le v0, v2, :cond_3a
.line 2
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->responseData:Lcom/facebook/react/bridge/WritableMap;
invoke-static {v0}, Lcom/facebook/react/bridge/Arguments;->toBundle(Lcom/facebook/react/bridge/ReadableMap;)Landroid/os/Bundle;
move-result-object v0
if-eqz v0, :cond_1b
.line 3
invoke-static {v0}, Lcom/facebook/react/bridge/Arguments;->fromBundle(Landroid/os/Bundle;)Lcom/facebook/react/bridge/WritableMap;
move-result-object v0
iput-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->responseData:Lcom/facebook/react/bridge/WritableMap;
.line 4
:cond_1b
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->headers:Lcom/facebook/react/bridge/WritableMap;
invoke-static {v0}, Lcom/facebook/react/bridge/Arguments;->toBundle(Lcom/facebook/react/bridge/ReadableMap;)Landroid/os/Bundle;
move-result-object v0
if-eqz v0, :cond_29
.line 5
invoke-static {v0}, Lcom/facebook/react/bridge/Arguments;->fromBundle(Landroid/os/Bundle;)Lcom/facebook/react/bridge/WritableMap;
move-result-object v0
iput-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->headers:Lcom/facebook/react/bridge/WritableMap;
.line 6
:cond_29
sget-boolean v0, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
if-eqz v0, :cond_32
.line 7
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->maxHitCountForSinglePreFetch:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I
.line 8
:cond_32
iget-object p1, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->url:Ljava/lang/String;
const-string v0, "recycle"
invoke-direct {p0, p1, v0, v1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->addMePagePrefetchTracker(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
goto :goto_44
.line 9
:cond_3a
invoke-direct {p0, p1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->destroyTask(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
.line 10
iget-object p1, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->url:Ljava/lang/String;
const-string v0, "destroy"
invoke-direct {p0, p1, v0, v1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->addMePagePrefetchTracker(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
:goto_44
return-void
.end method
.method private destroyTask(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
.registers 4
.line 1
sget-boolean v0, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
if-eqz v0, :cond_6
.line 2
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->url:Ljava/lang/String;
.line 3
:cond_6
iget-object v0, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchTaskMap:Ljava/util/Map;
iget-object v1, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->requestKey:Ljava/lang/String;
invoke-interface {v0, v1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 4
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->url:Ljava/lang/String;
iget-object p1, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->method:Ljava/lang/String;
const/4 v1, 0x0
invoke-virtual {p0, v0, p1, v1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->setEnableState(Ljava/lang/String;Ljava/lang/String;Z)V
return-void
.end method
.method private finishPrefetchRequest(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Lcom/facebook/react/bridge/WritableMap;Ljava/lang/String;Z)V
.registers 8
if-nez p1, :cond_3
return-void
.line 1
:cond_3
monitor-enter p1
.line 2
:try_start_4
iget-object v0, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchTaskMap:Ljava/util/Map;
iget-object v1, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->requestKey:Ljava/lang/String;
invoke-interface {v0, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_12
.line 3
sget-boolean p2, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
.line 4
monitor-exit p1
return-void
.line 5
:cond_12
iput-boolean p5, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->isSuccessful:Z
.line 6
iput-object p3, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->responseData:Lcom/facebook/react/bridge/WritableMap;
.line 7
iput-object p4, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->response:Ljava/lang/String;
const/4 p3, 0x1
.line 8
iput-boolean p3, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->isDone:Z
.line 9
sget-boolean p3, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
.line 10
iget-object p3, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->realRequestId:Ljava/lang/Integer;
if-eqz p3, :cond_36
.line 11
iget-boolean p3, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->isSuccessful:Z
if-eqz p3, :cond_2a
.line 12
invoke-direct {p0, p1, p2}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchSuccess(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;)V
.line 13
monitor-exit p1
return-void
.line 14
:cond_2a
iget-object p2, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->originSend:Ljava/lang/Runnable;
if-eqz p2, :cond_33
.line 15
invoke-interface {p2}, Ljava/lang/Runnable;->run()V
.line 16
sget-boolean p2, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
.line 17
:cond_33
invoke-direct {p0, p1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->destroyTask(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
.line 18
:cond_36
monitor-exit p1
return-void
:catchall_38
move-exception p2
monitor-exit p1
:try_end_3a
.catchall {:try_start_4 .. :try_end_3a} :catchall_38
throw p2
.end method
.method private static getRequestHash(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/ReadableMap;)Ljava/lang/String;
.registers 4
.line 1
invoke-static {p0, p1}, Landroidx/appcompat/p;->d(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p0
if-eqz p2, :cond_17
const-string p1, "string"
.line 2
invoke-interface {p2, p1}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_17
.line 3
invoke-interface {p2, p1}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
if-eqz p1, :cond_17
.line 4
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 5
:cond_17
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 6
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lokio/e;->m([B)Lokio/e;
move-result-object p0
invoke-virtual {p0}, Lokio/e;->k()Lokio/e;
move-result-object p0
invoke-virtual {p0}, Lokio/e;->i()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getRequestKey(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 3
const-string v0, ":"
.line 1
invoke-static {p1, v0, p0}, Landroidx/biometric/i0;->c(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method private isRnRequestRaised(Ljava/lang/String;)Z
.registers 3
.line 1
iget-object v0, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchEnableMap:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/Integer;
if-eqz p1, :cond_13
.line 2
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result p1
const/4 v0, 0x3
if-ne p1, v0, :cond_13
const/4 p1, 0x1
goto :goto_14
:cond_13
const/4 p1, 0x0
:goto_14
return p1
.end method
.method private synthetic lambda$willPrefetch$0(Ljava/lang/String;Ljava/lang/String;ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;ZIZ)V
.registers 21
move-object v0, p0
iget-object v1, v0, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
move-object v2, p1
move-object v3, p2
move v4, p3
move-object v5, p4
move-object/from16 v6, p5
move-object/from16 v7, p6
move/from16 v8, p7
move/from16 v9, p8
move/from16 v10, p9
invoke-virtual/range {v1 .. v10}, Lcom/facebook/react/modules/network/NetworkingModule;->sendRequestInternal(Ljava/lang/String;Ljava/lang/String;ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;ZIZ)V
return-void
.end method
.method private onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
.registers 6
if-nez p1, :cond_3
return-void
.line 1
:cond_3
monitor-enter p1
.line 2
:try_start_4
iget-object p3, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchTaskMap:Ljava/util/Map;
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->requestKey:Ljava/lang/String;
invoke-interface {p3, v0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result p3
if-nez p3, :cond_12
.line 3
sget-boolean p2, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
.line 4
monitor-exit p1
return-void
.line 5
:cond_12
sget-boolean p3, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
if-eqz p3, :cond_19
.line 6
invoke-virtual {p4}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
:cond_19
const/4 p3, 0x1
.line 7
iput-boolean p3, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->isDone:Z
.line 8
iget-object p3, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->realRequestId:Ljava/lang/Integer;
if-eqz p3, :cond_38
.line 9
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->originSend:Ljava/lang/Runnable;
if-eqz v0, :cond_2a
.line 10
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
.line 11
sget-boolean p2, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
goto :goto_35
.line 12
:cond_2a
invoke-virtual {p3}, Ljava/lang/Integer;->intValue()I
move-result p3
invoke-virtual {p4}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-static {p2, p3, v0, p4}, Lcom/facebook/react/modules/network/ResponseUtil;->onRequestError(Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;ILjava/lang/String;Ljava/lang/Throwable;)V
.line 13
:goto_35
invoke-direct {p0, p1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->destroyTask(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
.line 14
:cond_38
monitor-exit p1
return-void
:catchall_3a
move-exception p2
monitor-exit p1
:try_end_3c
.catchall {:try_start_4 .. :try_end_3c} :catchall_3a
throw p2
.end method
.method private onPrefetchSuccess(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;)V
.registers 7
if-nez p1, :cond_3
return-void
.line 1
:cond_3
sget-boolean v0, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
.line 2
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->realRequestId:Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
iget v1, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->statusCode:I
iget-object v2, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->headers:Lcom/facebook/react/bridge/WritableMap;
iget-object v3, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->url:Ljava/lang/String;
invoke-static {p2, v0, v1, v2, v3}, Lcom/facebook/react/modules/network/ResponseUtil;->onResponseReceived(Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;IILcom/facebook/react/bridge/WritableMap;Ljava/lang/String;)V
.line 3
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->responseData:Lcom/facebook/react/bridge/WritableMap;
if-eqz v0, :cond_24
.line 4
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->realRequestId:Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
iget-object v1, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->responseData:Lcom/facebook/react/bridge/WritableMap;
invoke-static {p2, v0, v1}, Lcom/facebook/react/modules/network/ResponseUtil;->onDataReceived(Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;ILcom/facebook/react/bridge/WritableMap;)V
goto :goto_2f
.line 5
:cond_24
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->realRequestId:Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
iget-object v1, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->response:Ljava/lang/String;
invoke-static {p2, v0, v1}, Lcom/facebook/react/modules/network/ResponseUtil;->onDataReceived(Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;ILjava/lang/String;)V
.line 6
:goto_2f
iget-object v0, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->realRequestId:Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
invoke-static {p2, v0}, Lcom/facebook/react/modules/network/ResponseUtil;->onRequestSuccess(Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;I)V
.line 7
iget-object p2, p1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->maxHitCountForSinglePreFetch:Ljava/util/concurrent/atomic/AtomicInteger;
if-nez p2, :cond_40
.line 8
invoke-direct {p0, p1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->destroyTask(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
goto :goto_43
.line 9
:cond_40
invoke-direct {p0, p1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->checkTaskDestroyByHitCount(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
:goto_43
return-void
.end method
.method private sendRequestInternalForPrefetch(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Ljava/lang/String;Ljava/lang/String;ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;ZIZ)V
.registers 27
move-object/from16 v9, p0
move-object/from16 v4, p1
move/from16 v0, p4
move-object/from16 v1, p6
move-object/from16 v7, p7
move/from16 v2, p9
.line 1
iget-object v3, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
const-string v5, "sendRequestInternal"
invoke-virtual {v3, v5}, Lcom/facebook/react/modules/network/NetworkingModule;->getEventEmitter(Ljava/lang/String;)Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;
move-result-object v5
.line 2
:try_start_14
invoke-static/range {p3 .. p3}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v3
.line 3
iget-object v6, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
invoke-virtual {v6}, Lcom/facebook/react/modules/network/NetworkingModule;->getUriHandlers()Ljava/util/List;
move-result-object v6
invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v6
:cond_22
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v8
if-eqz v8, :cond_4a
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v8
check-cast v8, Lcom/facebook/react/modules/network/NetworkingModule$UriHandler;
.line 4
invoke-interface {v8, v3, v7}, Lcom/facebook/react/modules/network/NetworkingModule$UriHandler;->supports(Landroid/net/Uri;Ljava/lang/String;)Z
move-result v10
if-eqz v10, :cond_22
.line 5
invoke-interface {v8, v3}, Lcom/facebook/react/modules/network/NetworkingModule$UriHandler;->fetch(Landroid/net/Uri;)Lcom/facebook/react/bridge/WritableMap;
move-result-object v0
const/4 v1, 0x0
const/4 v2, 0x1
move-object/from16 p2, p0
move-object/from16 p3, p1
move-object/from16 p4, v5
move-object/from16 p5, v0
move-object/from16 p6, v1
move/from16 p7, v2
.line 6
invoke-direct/range {p2 .. p7}, Lcom/facebook/react/modules/network/NetworkPrefetch;->finishPrefetchRequest(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Lcom/facebook/react/bridge/WritableMap;Ljava/lang/String;Z)V
:try_end_49
.catch Ljava/io/IOException; {:try_start_14 .. :try_end_49} :catch_23a
return-void
.line 7
:cond_4a
:try_start_4a
new-instance v3, Lokhttp3/Request$Builder;
invoke-direct {v3}, Lokhttp3/Request$Builder;-><init>()V
move-object/from16 v6, p3
invoke-virtual {v3, v6}, Lokhttp3/Request$Builder;->url(Ljava/lang/String;)Lokhttp3/Request$Builder;
move-result-object v6
:try_end_55
.catch Ljava/lang/Exception; {:try_start_4a .. :try_end_55} :catch_230
if-eqz v0, :cond_5e
.line 8
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v6, v3}, Lokhttp3/Request$Builder;->tag(Ljava/lang/Object;)Lokhttp3/Request$Builder;
.line 9
:cond_5e
invoke-static {}, Lcom/facebook/react/modules/network/ShopeeNetworkProvider;->shouldUseShopeeNetwork()Z
move-result v3
.line 10
iget-object v8, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
if-eqz v3, :cond_6b
invoke-virtual {v8}, Lcom/facebook/react/modules/network/NetworkingModule;->getShpOkHttpClient()Lokhttp3/OkHttpClient;
move-result-object v8
goto :goto_6f
:cond_6b
invoke-virtual {v8}, Lcom/facebook/react/modules/network/NetworkingModule;->getOkhttpClient()Lokhttp3/OkHttpClient;
move-result-object v8
:goto_6f
if-nez v8, :cond_72
return-void
.line 11
:cond_72
invoke-virtual {v8}, Lokhttp3/OkHttpClient;->newBuilder()Lokhttp3/OkHttpClient$Builder;
move-result-object v10
.line 12
invoke-static {v10}, Lcom/facebook/react/modules/network/NetworkingModule;->applyCustomBuilder(Lokhttp3/OkHttpClient$Builder;)V
.line 13
invoke-static {v6, v10}, Lcom/facebook/react/modules/network/NetworkingModule;->applyCustomBuilderForRequest(Lokhttp3/Request$Builder;Lokhttp3/OkHttpClient$Builder;)V
if-nez p10, :cond_83
.line 14
sget-object v11, Lokhttp3/CookieJar;->NO_COOKIES:Lokhttp3/CookieJar;
invoke-virtual {v10, v11}, Lokhttp3/OkHttpClient$Builder;->cookieJar(Lokhttp3/CookieJar;)Lokhttp3/OkHttpClient$Builder;
:cond_83
if-eqz p8, :cond_b6
.line 15
new-instance v11, Lcom/facebook/react/modules/network/NetworkPrefetch$1;
invoke-direct {v11, v9, v7, v5, v0}, Lcom/facebook/react/modules/network/NetworkPrefetch$1;-><init>(Lcom/facebook/react/modules/network/NetworkPrefetch;Ljava/lang/String;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;I)V
.line 16
invoke-virtual {v10}, Lokhttp3/OkHttpClient$Builder;->interceptors()Ljava/util/List;
move-result-object v12
const/4 v13, 0x0
.line 17
:goto_8f
invoke-interface {v12}, Ljava/util/List;->size()I
move-result v14
if-ge v13, v14, :cond_b3
.line 18
invoke-interface {v12, v13}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v14
check-cast v14, Lokhttp3/Interceptor;
if-eqz v14, :cond_b0
.line 19
instance-of v15, v14, Lcom/facebook/react/modules/network/ReactNativeDelegateInterceptor;
if-eqz v15, :cond_b0
.line 20
check-cast v14, Lcom/facebook/react/modules/network/ReactNativeDelegateInterceptor;
invoke-virtual {v14}, Lcom/facebook/react/modules/network/ReactNativeDelegateInterceptor;->getListener()Lcom/facebook/react/modules/network/ReactNativeDelegateInterceptor$OnCronetListener;
move-result-object v14
.line 21
new-instance v15, Lcom/facebook/react/modules/network/ReactNativeDelegateInterceptor;
invoke-direct {v15, v14, v11}, Lcom/facebook/react/modules/network/ReactNativeDelegateInterceptor;-><init>(Lcom/facebook/react/modules/network/ReactNativeDelegateInterceptor$OnCronetListener;Lokhttp3/Interceptor;)V
.line 22
invoke-interface {v12, v13, v15}, Ljava/util/List;->set(ILjava/lang/Object;)Ljava/lang/Object;
goto :goto_b3
:cond_b0
add-int/lit8 v13, v13, 0x1
goto :goto_8f
.line 23
:cond_b3
:goto_b3
invoke-virtual {v10, v11}, Lokhttp3/OkHttpClient$Builder;->addNetworkInterceptor(Lokhttp3/Interceptor;)Lokhttp3/OkHttpClient$Builder;
.line 24
:cond_b6
invoke-virtual {v8}, Lokhttp3/OkHttpClient;->connectTimeoutMillis()I
move-result v8
if-eq v2, v8, :cond_c2
int-to-long v11, v2
.line 25
sget-object v2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v10, v11, v12, v2}, Lokhttp3/OkHttpClient$Builder;->connectTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;
.line 26
:cond_c2
invoke-virtual {v10}, Lokhttp3/OkHttpClient$Builder;->build()Lokhttp3/OkHttpClient;
move-result-object v2
.line 27
iget-object v8, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
move-object/from16 v10, p5
invoke-virtual {v8, v10, v1}, Lcom/facebook/react/modules/network/NetworkingModule;->extractHeaders(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;)Lokhttp3/Headers;
move-result-object v8
if-nez v8, :cond_d7
const-string v0, "Unrecognized headers format"
const/4 v1, 0x0
.line 28
invoke-direct {v9, v4, v5, v0, v1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
:cond_d7
const-string v10, "content-type"
.line 29
invoke-virtual {v8, v10}, Lokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object v10
const-string v11, "content-encoding"
.line 30
invoke-virtual {v8, v11}, Lokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object v11
.line 31
invoke-virtual {v6, v8}, Lokhttp3/Request$Builder;->headers(Lokhttp3/Headers;)Lokhttp3/Request$Builder;
if-eqz v1, :cond_105
.line 32
iget-object v8, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
invoke-virtual {v8}, Lcom/facebook/react/modules/network/NetworkingModule;->getResponseBodyHandlers()Ljava/util/List;
move-result-object v8
invoke-interface {v8}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v8
:cond_f2
invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z
move-result v12
if-eqz v12, :cond_105
invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v12
check-cast v12, Lcom/facebook/react/modules/network/NetworkingModule$RequestBodyHandler;
.line 33
invoke-interface {v12, v1}, Lcom/facebook/react/modules/network/NetworkingModule$RequestBodyHandler;->supports(Lcom/facebook/react/bridge/ReadableMap;)Z
move-result v13
if-eqz v13, :cond_f2
goto :goto_106
:cond_105
const/4 v12, 0x0
:goto_106
if-eqz v1, :cond_1e2
.line 34
invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v8
const-string v13, "get"
invoke-virtual {v8, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-nez v8, :cond_1e2
invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v8
const-string v13, "head"
invoke-virtual {v8, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_122
goto/16 :goto_1e2
:cond_122
if-eqz v12, :cond_12a
.line 35
invoke-interface {v12, v1, v10}, Lcom/facebook/react/modules/network/NetworkingModule$RequestBodyHandler;->toRequestBody(Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;)Lokhttp3/RequestBody;
move-result-object v1
goto/16 :goto_1e6
:cond_12a
const-string v8, "string"
.line 36
invoke-interface {v1, v8}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v12
const-string v13, "Payload is set but no content-type header specified"
if-eqz v12, :cond_16b
if-nez v10, :cond_13b
const/4 v0, 0x0
.line 37
invoke-direct {v9, v4, v5, v13, v0}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
:cond_13b
const/4 v12, 0x0
.line 38
invoke-interface {v1, v8}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 39
invoke-static {v10}, Lokhttp3/MediaType;->parse(Ljava/lang/String;)Lokhttp3/MediaType;
move-result-object v8
.line 40
invoke-static {v11}, Lcom/facebook/react/modules/network/RequestBodyUtil;->isGzipEncoding(Ljava/lang/String;)Z
move-result v10
if-eqz v10, :cond_156
.line 41
invoke-static {v8, v1}, Lcom/facebook/react/modules/network/RequestBodyUtil;->createGzip(Lokhttp3/MediaType;Ljava/lang/String;)Lokhttp3/RequestBody;
move-result-object v1
if-nez v1, :cond_1e6
const-string v0, "Failed to gzip request body"
.line 42
invoke-direct {v9, v4, v5, v0, v12}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
:cond_156
if-nez v8, :cond_15b
.line 43
sget-object v10, Lcom/facebook/react/common/StandardCharsets;->UTF_8:Ljava/nio/charset/Charset;
goto :goto_161
.line 44
:cond_15b
sget-object v10, Lcom/facebook/react/common/StandardCharsets;->UTF_8:Ljava/nio/charset/Charset;
invoke-virtual {v8, v10}, Lokhttp3/MediaType;->charset(Ljava/nio/charset/Charset;)Ljava/nio/charset/Charset;
move-result-object v10
.line 45
:goto_161
invoke-virtual {v1, v10}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
move-result-object v1
invoke-static {v8, v1}, Lokhttp3/RequestBody;->create(Lokhttp3/MediaType;[B)Lokhttp3/RequestBody;
move-result-object v1
goto/16 :goto_1e6
:cond_16b
const-string v8, "base64"
.line 46
invoke-interface {v1, v8}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v11
if-eqz v11, :cond_18b
if-nez v10, :cond_17a
const/4 v0, 0x0
.line 47
invoke-direct {v9, v4, v5, v13, v0}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.line 48
:cond_17a
invoke-interface {v1, v8}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 49
invoke-static {v10}, Lokhttp3/MediaType;->parse(Ljava/lang/String;)Lokhttp3/MediaType;
move-result-object v8
.line 50
invoke-static {v1}, Lokio/e;->c(Ljava/lang/String;)Lokio/e;
move-result-object v1
invoke-static {v8, v1}, Lokhttp3/RequestBody;->create(Lokhttp3/MediaType;Lokio/e;)Lokhttp3/RequestBody;
move-result-object v1
goto :goto_1e6
:cond_18b
const/4 v8, 0x0
const-string/jumbo v11, "uri"
.line 51
invoke-interface {v1, v11}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v12
if-eqz v12, :cond_1bf
if-nez v10, :cond_19b
.line 52
invoke-direct {v9, v4, v5, v13, v8}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.line 53
:cond_19b
invoke-interface {v1, v11}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 54
iget-object v8, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
.line 55
invoke-virtual {v8}, Lcom/facebook/react/modules/network/NetworkingModule;->getRNAppContext()Lcom/facebook/react/bridge/ReactApplicationContext;
move-result-object v8
invoke-static {v8, v1}, Lcom/facebook/react/modules/network/RequestBodyUtil;->getFileInputStream(Landroid/content/Context;Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v8
if-nez v8, :cond_1b6
const-string v0, "Could not retrieve file for uri "
.line 56
invoke-static {v0, v1}, Landroidx/appcompat/e;->g(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
.line 57
invoke-direct {v9, v4, v5, v0, v1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.line 58
:cond_1b6
invoke-static {v10}, Lokhttp3/MediaType;->parse(Ljava/lang/String;)Lokhttp3/MediaType;
move-result-object v1
invoke-static {v1, v8}, Lcom/facebook/react/modules/network/RequestBodyUtil;->create(Lokhttp3/MediaType;Ljava/io/InputStream;)Lokhttp3/RequestBody;
move-result-object v1
goto :goto_1e6
:cond_1bf
const-string v8, "formData"
.line 59
invoke-interface {v1, v8}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v11
if-eqz v11, :cond_1dd
if-nez v10, :cond_1cb
const-string v10, "multipart/form-data"
.line 60
:cond_1cb
invoke-interface {v1, v8}, Lcom/facebook/react/bridge/ReadableMap;->getArray(Ljava/lang/String;)Lcom/facebook/react/bridge/ReadableArray;
move-result-object v1
.line 61
iget-object v8, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
.line 62
invoke-virtual {v8, v1, v10, v0}, Lcom/facebook/react/modules/network/NetworkingModule;->constructMultipartBody(Lcom/facebook/react/bridge/ReadableArray;Ljava/lang/String;I)Lokhttp3/MultipartBody$Builder;
move-result-object v1
if-nez v1, :cond_1d8
return-void
.line 63
:cond_1d8
invoke-virtual {v1}, Lokhttp3/MultipartBody$Builder;->build()Lokhttp3/MultipartBody;
move-result-object v1
goto :goto_1e6
.line 64
:cond_1dd
invoke-static/range {p2 .. p2}, Lcom/facebook/react/modules/network/RequestBodyUtil;->getEmptyBody(Ljava/lang/String;)Lokhttp3/RequestBody;
move-result-object v1
goto :goto_1e6
.line 65
:cond_1e2
:goto_1e2
invoke-static/range {p2 .. p2}, Lcom/facebook/react/modules/network/RequestBodyUtil;->getEmptyBody(Ljava/lang/String;)Lokhttp3/RequestBody;
move-result-object v1
.line 66
:cond_1e6
:goto_1e6
iget-object v8, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
.line 67
invoke-virtual {v8, v1, v5, v0}, Lcom/facebook/react/modules/network/NetworkingModule;->wrapRequestBodyWithProgressEmitter(Lokhttp3/RequestBody;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;I)Lokhttp3/RequestBody;
move-result-object v1
move-object/from16 v8, p2
.line 68
invoke-virtual {v6, v8, v1}, Lokhttp3/Request$Builder;->method(Ljava/lang/String;Lokhttp3/RequestBody;)Lokhttp3/Request$Builder;
.line 69
iget-object v1, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
invoke-virtual {v1, v0}, Lcom/facebook/react/modules/network/NetworkingModule;->addRequest(I)V
if-eqz v3, :cond_22f
.line 70
iget-object v1, v9, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
invoke-virtual {v1}, Lcom/facebook/react/modules/network/NetworkingModule;->getNetworkDataSource()Lcom/shopee/arch/network/e;
move-result-object v1
if-eqz v1, :cond_22f
.line 71
new-instance v1, Lcom/shopee/core/context/a;
new-instance v3, Ljava/util/HashMap;
invoke-direct {v3}, Ljava/util/HashMap;-><init>()V
const-string v8, "com.shopee.reactnative"
const-string v10, "NetworkingModule"
invoke-direct {v1, v8, v10, v3}, Lcom/shopee/core/context/a;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/HashMap;)V
.line 72
const-class v3, Lcom/shopee/core/context/a;
invoke-virtual {v6, v3, v1}, Lokhttp3/Request$Builder;->tag(Ljava/lang/Class;Ljava/lang/Object;)Lokhttp3/Request$Builder;
.line 73
new-instance v10, Lcom/shopee/shopeenetwork/okhttp/f;
invoke-virtual {v6}, Lokhttp3/Request$Builder;->build()Lokhttp3/Request;
move-result-object v1
invoke-direct {v10, v2, v1}, Lcom/shopee/shopeenetwork/okhttp/f;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/Request;)V
.line 74
new-instance v11, Lcom/facebook/react/modules/network/NetworkPrefetch$2;
move-object v1, v11
move-object/from16 v2, p0
move/from16 v3, p4
move-object/from16 v4, p1
move-object/from16 v7, p7
move/from16 v8, p8
invoke-direct/range {v1 .. v8}, Lcom/facebook/react/modules/network/NetworkPrefetch$2;-><init>(Lcom/facebook/react/modules/network/NetworkPrefetch;ILcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Lokhttp3/Request$Builder;Ljava/lang/String;Z)V
invoke-virtual {v10, v11}, Lcom/shopee/shopeenetwork/okhttp/f;->a(Lcom/shopee/shopeenetwork/common/http/m;)V
:cond_22f
return-void
:catch_230
move-exception v0
.line 75
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
invoke-direct {v9, v4, v5, v0, v1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
:catch_23a
move-exception v0
.line 76
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-direct {v9, v4, v5, v1, v0}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchError(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.end method
# virtual methods
.method public checkPrefetch(ILjava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/Runnable;)I
.registers 8
.line 1
iget-object v0, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchTaskMap:Ljava/util/Map;
invoke-static {p2, p3}, Lcom/facebook/react/modules/network/NetworkPrefetch;->getRequestKey(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;
if-nez v0, :cond_12
.line 2
sget-boolean p1, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
const/4 p1, 0x1
return p1
.line 3
:cond_12
invoke-static {p2, p3, p4}, Lcom/facebook/react/modules/network/NetworkPrefetch;->getRequestHash(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/ReadableMap;)Ljava/lang/String;
move-result-object p2
.line 4
iget-object p3, v0, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->requestHash:Ljava/lang/String;
invoke-virtual {p2, p3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p2
.line 5
sget-boolean p3, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
const/4 p3, 0x4
if-nez p2, :cond_25
.line 6
invoke-direct {p0, v0}, Lcom/facebook/react/modules/network/NetworkPrefetch;->destroyTask(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
return p3
.line 7
:cond_25
monitor-enter v0
.line 8
:try_start_26
iget-boolean p2, v0, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->isDone:Z
if-nez p2, :cond_35
.line 9
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
iput-object p1, v0, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->realRequestId:Ljava/lang/Integer;
.line 10
iput-object p5, v0, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->originSend:Ljava/lang/Runnable;
const/4 p1, 0x3
.line 11
monitor-exit v0
return p1
.line 12
:cond_35
iget-boolean p2, v0, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->isSuccessful:Z
if-eqz p2, :cond_4d
.line 13
iget-object p2, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->nm:Lcom/facebook/react/modules/network/NetworkingModule;
const-string p3, "sendRequestPrefetchDone"
invoke-virtual {p2, p3}, Lcom/facebook/react/modules/network/NetworkingModule;->getEventEmitter(Ljava/lang/String;)Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;
move-result-object p2
.line 14
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
iput-object p1, v0, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->realRequestId:Ljava/lang/Integer;
.line 15
invoke-direct {p0, v0, p2}, Lcom/facebook/react/modules/network/NetworkPrefetch;->onPrefetchSuccess(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Lcom/facebook/react/modules/core/DeviceEventManagerModule$RCTDeviceEventEmitter;)V
const/4 p1, 0x2
.line 16
monitor-exit v0
return p1
.line 17
:cond_4d
invoke-direct {p0, v0}, Lcom/facebook/react/modules/network/NetworkPrefetch;->destroyTask(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
.line 18
monitor-exit v0
return p3
:catchall_52
move-exception p1
monitor-exit v0
:try_end_54
.catchall {:try_start_26 .. :try_end_54} :catchall_52
throw p1
.end method
.method public doPrefetchApi(Lcom/facebook/react/modules/network/PrefetchConfig;)V
.registers 13
.line 1
new-instance v1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;
invoke-direct {v1, p1}, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;-><init>(Lcom/facebook/react/modules/network/PrefetchConfig;)V
const/4 v0, 0x0
.line 2
iput-boolean v0, v1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->isDone:Z
.line 3
iget-object v0, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchTaskMap:Ljava/util/Map;
iget-object v2, v1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->requestKey:Ljava/lang/String;
invoke-interface {v0, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 4
iget-object v0, v1, Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;->requestKey:Ljava/lang/String;
invoke-direct {p0, v0}, Lcom/facebook/react/modules/network/NetworkPrefetch;->isRnRequestRaised(Ljava/lang/String;)Z
move-result v0
const-string v2, "ME_PAGE"
if-eqz v0, :cond_28
.line 5
invoke-virtual {p1}, Lcom/facebook/react/modules/network/PrefetchConfig;->getUrl()Ljava/lang/String;
move-result-object p1
const-string v0, "rn_first"
invoke-direct {p0, p1, v0, v2}, Lcom/facebook/react/modules/network/NetworkPrefetch;->addMePagePrefetchTracker(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.line 6
sget-boolean p1, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
.line 7
invoke-direct {p0, v1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->destroyTask(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;)V
return-void
.line 8
:cond_28
invoke-virtual {p1}, Lcom/facebook/react/modules/network/PrefetchConfig;->getUrl()Ljava/lang/String;
move-result-object v0
const-string v3, "prefetch_first"
invoke-direct {p0, v0, v3, v2}, Lcom/facebook/react/modules/network/NetworkPrefetch;->addMePagePrefetchTracker(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.line 9
invoke-virtual {p1}, Lcom/facebook/react/modules/network/PrefetchConfig;->getMethod()Ljava/lang/String;
move-result-object v2
invoke-virtual {p1}, Lcom/facebook/react/modules/network/PrefetchConfig;->getUrl()Ljava/lang/String;
move-result-object v3
const/4 v4, -0x1
invoke-virtual {p1}, Lcom/facebook/react/modules/network/PrefetchConfig;->getHeader()Lcom/facebook/react/bridge/ReadableArray;
move-result-object v5
invoke-virtual {p1}, Lcom/facebook/react/modules/network/PrefetchConfig;->getData()Lcom/facebook/react/bridge/ReadableMap;
move-result-object v6
.line 10
invoke-virtual {p1}, Lcom/facebook/react/modules/network/PrefetchConfig;->getResponseType()Ljava/lang/String;
move-result-object v7
const/4 v8, 0x0
invoke-virtual {p1}, Lcom/facebook/react/modules/network/PrefetchConfig;->getTimeout()I
move-result v9
invoke-virtual {p1}, Lcom/facebook/react/modules/network/PrefetchConfig;->isWithCredentials()Z
move-result v10
move-object v0, p0
.line 11
invoke-direct/range {v0 .. v10}, Lcom/facebook/react/modules/network/NetworkPrefetch;->sendRequestInternalForPrefetch(Lcom/facebook/react/modules/network/NetworkPrefetch$PrefetchTask;Ljava/lang/String;Ljava/lang/String;ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;ZIZ)V
return-void
.end method
.method public setDisable(Ljava/lang/String;Ljava/lang/String;)V
.registers 3
.line 1
invoke-static {p1, p2}, Lcom/facebook/react/modules/network/NetworkPrefetch;->getRequestKey(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 2
iget-object p2, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchEnableMap:Ljava/util/Map;
invoke-interface {p2, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public setEnableState(Ljava/lang/String;Ljava/lang/String;Z)V
.registers 4
.line 1
invoke-static {p1, p2}, Lcom/facebook/react/modules/network/NetworkPrefetch;->getRequestKey(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
if-eqz p3, :cond_18
.line 2
invoke-direct {p0, p1}, Lcom/facebook/react/modules/network/NetworkPrefetch;->isRnRequestRaised(Ljava/lang/String;)Z
move-result p2
if-eqz p2, :cond_d
return-void
.line 3
:cond_d
iget-object p2, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchEnableMap:Ljava/util/Map;
const/4 p3, 0x1
invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p3
invoke-interface {p2, p1, p3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_22
.line 4
:cond_18
iget-object p2, p0, Lcom/facebook/react/modules/network/NetworkPrefetch;->prefetchEnableMap:Ljava/util/Map;
const/4 p3, 0x2
invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p3
invoke-interface {p2, p1, p3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:goto_22
return-void
.end method
.method public willPrefetch(Ljava/lang/String;Ljava/lang/String;ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;ZIZ)Z
.registers 27
move-object/from16 v12, p0
move-object/from16 v13, p2
const-string v14, ""
const/4 v15, 0x0
move-object/from16 v0, p1
.line 1
:try_start_9
invoke-direct {v12, v13, v0}, Lcom/facebook/react/modules/network/NetworkPrefetch;->checkEnableForRnPage(Ljava/lang/String;Ljava/lang/String;)Z
move-result v1
.line 2
sget-boolean v2, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
if-eqz v1, :cond_62
.line 3
new-instance v16, Lcom/facebook/react/modules/network/a;
move-object/from16 v1, v16
move-object/from16 v2, p0
move-object/from16 v3, p1
move-object/from16 v4, p2
move/from16 v5, p3
move-object/from16 v6, p4
move-object/from16 v7, p5
move-object/from16 v8, p6
move/from16 v9, p7
move/from16 v10, p8
move/from16 v11, p9
invoke-direct/range {v1 .. v11}, Lcom/facebook/react/modules/network/a;-><init>(Lcom/facebook/react/modules/network/NetworkPrefetch;Ljava/lang/String;Ljava/lang/String;ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;ZIZ)V
move-object/from16 v1, p0
move/from16 v2, p3
move-object/from16 v3, p2
move-object/from16 v4, p1
move-object/from16 v5, p5
move-object/from16 v6, v16
invoke-virtual/range {v1 .. v6}, Lcom/facebook/react/modules/network/NetworkPrefetch;->checkPrefetch(ILjava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/Runnable;)I
move-result v0
const/4 v1, 0x2
const/4 v2, 0x1
if-eq v0, v1, :cond_48
const/4 v1, 0x3
if-eq v0, v1, :cond_48
if-ne v0, v2, :cond_46
goto :goto_48
:cond_46
const/4 v1, 0x0
goto :goto_49
:cond_48
:goto_48
const/4 v1, 0x1
.line 4
:goto_49
sget-boolean v3, Lcom/facebook/react/modules/network/NetworkingModule;->DEBUG:Z
.line 5
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "state:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v12, v13, v0, v14}, Lcom/facebook/react/modules/network/NetworkPrefetch;->addMePagePrefetchTracker(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
if-eqz v1, :cond_71
return v2
:cond_62
const-string v0, "enable:false"
.line 6
invoke-direct {v12, v13, v0, v14}, Lcom/facebook/react/modules/network/NetworkPrefetch;->addMePagePrefetchTracker(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
:try_end_67
.catchall {:try_start_9 .. :try_end_67} :catchall_68
goto :goto_71
:catchall_68
move-exception v0
const-string v1, "exception"
.line 7
invoke-direct {v12, v13, v1, v14}, Lcom/facebook/react/modules/network/NetworkPrefetch;->addMePagePrefetchTracker(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.line 8
invoke-static {v0}, Lcom/facebook/react/util/ExceptionReporter;->reportNonFatal(Ljava/lang/Throwable;)V
:cond_71
:goto_71
return v15
.end method