HttpDnsCompletion.smali
.class public Lio/rong/imlib/httpdns/HttpDnsCompletion;
.super Ljava/lang/Object;
.source "HttpDnsCompletion.java"
# interfaces
.implements Lio/rong/imlib/httpdns/HttpDnsClient$AsyncHttpDnsCompletion;
# static fields
.field private static final TAG:Ljava/lang/String; = "HttpDnsCompletion"
# instance fields
.field private final cachePolicy:Lio/rong/imlib/httpdns/RongHttpDns$CachePolicy;
.field private final httpDns:Lio/rong/imlib/httpdns/RongHttpDns;
.field private final httpDnsCache:Lio/rong/imlib/httpdns/HostCacheManager;
.field private final httpDnsClient:Lio/rong/imlib/httpdns/HttpDnsClient;
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.registers 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {p1}, Lio/rong/imlib/httpdns/RongHttpDns;->getService(Landroid/content/Context;)Lio/rong/imlib/httpdns/RongHttpDns;
move-result-object p1
iput-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDns:Lio/rong/imlib/httpdns/RongHttpDns;
.line 3
iget-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDns:Lio/rong/imlib/httpdns/RongHttpDns;
invoke-virtual {p1}, Lio/rong/imlib/httpdns/RongHttpDns;->getHttpDnsCache()Lio/rong/imlib/httpdns/HostCacheManager;
move-result-object p1
iput-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDnsCache:Lio/rong/imlib/httpdns/HostCacheManager;
.line 4
iget-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDns:Lio/rong/imlib/httpdns/RongHttpDns;
invoke-virtual {p1}, Lio/rong/imlib/httpdns/RongHttpDns;->getCachePolicy()Lio/rong/imlib/httpdns/RongHttpDns$CachePolicy;
move-result-object p1
iput-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->cachePolicy:Lio/rong/imlib/httpdns/RongHttpDns$CachePolicy;
.line 5
iget-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDns:Lio/rong/imlib/httpdns/RongHttpDns;
invoke-virtual {p1}, Lio/rong/imlib/httpdns/RongHttpDns;->getHttpDnsClient()Lio/rong/imlib/httpdns/HttpDnsClient;
move-result-object p1
iput-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDnsClient:Lio/rong/imlib/httpdns/HttpDnsClient;
return-void
.end method
# virtual methods
.method public callback(ILio/rong/imlib/httpdns/HttpDnsClient$RequestParamType;Ljava/util/Map;Ljava/lang/String;)V
.registers 12
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Lio/rong/imlib/httpdns/HttpDnsClient$RequestParamType;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Lio/rong/imlib/httpdns/HttpDnsClient$Result;",
">;",
"Ljava/lang/String;",
")V"
}
.end annotation
const/4 v0, 0x0
const/4 v1, 0x1
const/4 v2, -0x1
if-eq p1, v2, :cond_7b
if-eqz p1, :cond_19
.line 1
invoke-virtual {p0, v2}, Lio/rong/imlib/httpdns/HttpDnsCompletion;->onFailed(I)V
.line 2
new-array p2, v1, [Ljava/lang/Object;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, p2, v0
const-string p1, "Internal error: async httpdns resolve completion get error ret(%d)"
invoke-static {p1, p2}, Lio/rong/imlib/httpdns/Logger;->printLog(Ljava/lang/String;[Ljava/lang/Object;)V
goto/16 :goto_a0
.line 3
:cond_19
invoke-interface {p3}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object p1
invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p1
:goto_21
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result p2
if-eqz p2, :cond_a0
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/util/Map$Entry;
.line 4
invoke-interface {p2}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object p3
check-cast p3, Ljava/lang/String;
.line 5
invoke-interface {p2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object p2
check-cast p2, Lio/rong/imlib/httpdns/HttpDnsClient$Result;
if-eqz p2, :cond_6c
.line 6
new-instance p4, Lio/rong/imlib/httpdns/HostCacheManager$HostEntry;
invoke-direct {p4}, Lio/rong/imlib/httpdns/HostCacheManager$HostEntry;-><init>()V
.line 7
invoke-virtual {p2}, Lio/rong/imlib/httpdns/HttpDnsClient$Result;->getTtl()J
move-result-wide v3
invoke-virtual {p4, v3, v4}, Lio/rong/imlib/httpdns/HostCacheManager$HostEntry;->setTtl(J)V
.line 8
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v3
const-wide/16 v5, 0x3e8
div-long/2addr v3, v5
invoke-virtual {p4, v3, v4}, Lio/rong/imlib/httpdns/HostCacheManager$HostEntry;->setQueryTime(J)V
.line 9
invoke-virtual {p2}, Lio/rong/imlib/httpdns/HttpDnsClient$Result;->getIpv4List()Ljava/util/ArrayList;
move-result-object v3
invoke-virtual {p4, v3}, Lio/rong/imlib/httpdns/HostCacheManager$HostEntry;->setIpv4List(Ljava/util/ArrayList;)V
.line 10
invoke-virtual {p2}, Lio/rong/imlib/httpdns/HttpDnsClient$Result;->getClientIp()Ljava/lang/String;
move-result-object v3
invoke-virtual {p4, v3}, Lio/rong/imlib/httpdns/HostCacheManager$HostEntry;->setClientIp(Ljava/lang/String;)V
.line 11
iget-object v3, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDnsCache:Lio/rong/imlib/httpdns/HostCacheManager;
invoke-virtual {v3, p3, p4}, Lio/rong/imlib/httpdns/HostCacheManager;->setHostCacheEntry(Ljava/lang/String;Lio/rong/imlib/httpdns/HostCacheManager$HostEntry;)V
.line 12
invoke-virtual {p2}, Lio/rong/imlib/httpdns/HttpDnsClient$Result;->getIpv4List()Ljava/util/ArrayList;
move-result-object p2
invoke-virtual {p0, p2}, Lio/rong/imlib/httpdns/HttpDnsCompletion;->onSuccess(Ljava/util/ArrayList;)V
goto :goto_21
.line 13
:cond_6c
iget-object p2, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->cachePolicy:Lio/rong/imlib/httpdns/RongHttpDns$CachePolicy;
sget-object p4, Lio/rong/imlib/httpdns/RongHttpDns$CachePolicy;->POLICY_TOLERANT:Lio/rong/imlib/httpdns/RongHttpDns$CachePolicy;
if-ne p2, p4, :cond_77
.line 14
iget-object p2, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDnsCache:Lio/rong/imlib/httpdns/HostCacheManager;
invoke-virtual {p2, p3}, Lio/rong/imlib/httpdns/HostCacheManager;->removeExpiredEntry(Ljava/lang/String;)V
.line 15
:cond_77
invoke-virtual {p0, v2}, Lio/rong/imlib/httpdns/HttpDnsCompletion;->onFailed(I)V
goto :goto_21
.line 16
:cond_7b
sget-object p1, Lio/rong/imlib/httpdns/HttpDnsClient$RequestParamType;->DNLIST_HOSTS:Lio/rong/imlib/httpdns/HttpDnsClient$RequestParamType;
invoke-virtual {p2, p1}, Ljava/lang/Enum;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_9d
.line 17
iget-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->cachePolicy:Lio/rong/imlib/httpdns/RongHttpDns$CachePolicy;
sget-object p2, Lio/rong/imlib/httpdns/RongHttpDns$CachePolicy;->POLICY_TOLERANT:Lio/rong/imlib/httpdns/RongHttpDns$CachePolicy;
if-ne p1, p2, :cond_9d
const-string p1, ","
.line 18
invoke-virtual {p4, p1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object p1
.line 19
array-length p2, p1
const/4 p3, 0x0
:goto_91
if-ge p3, p2, :cond_9d
aget-object p4, p1, p3
.line 20
iget-object v3, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDnsCache:Lio/rong/imlib/httpdns/HostCacheManager;
invoke-virtual {v3, p4}, Lio/rong/imlib/httpdns/HostCacheManager;->removeExpiredEntry(Ljava/lang/String;)V
add-int/lit8 p3, p3, 0x1
goto :goto_91
.line 21
:cond_9d
invoke-virtual {p0, v2}, Lio/rong/imlib/httpdns/HttpDnsCompletion;->onFailed(I)V
.line 22
:cond_a0
:goto_a0
iget-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDns:Lio/rong/imlib/httpdns/RongHttpDns;
invoke-virtual {p1}, Lio/rong/imlib/httpdns/RongHttpDns;->getPreResolveNum()I
move-result p1
if-lez p1, :cond_bc
iget-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDnsClient:Lio/rong/imlib/httpdns/HttpDnsClient;
invoke-virtual {p1}, Lio/rong/imlib/httpdns/HttpDnsClient;->getPreResolveFinish()Z
move-result p1
if-nez p1, :cond_bc
.line 23
iget-object p1, p0, Lio/rong/imlib/httpdns/HttpDnsCompletion;->httpDnsClient:Lio/rong/imlib/httpdns/HttpDnsClient;
invoke-virtual {p1, v1}, Lio/rong/imlib/httpdns/HttpDnsClient;->setPreResolveFinish(Z)V
.line 24
new-array p1, v0, [Ljava/lang/Object;
const-string p2, "preResolve has finished"
invoke-static {p2, p1}, Lio/rong/imlib/httpdns/Logger;->printLog(Ljava/lang/String;[Ljava/lang/Object;)V
:cond_bc
return-void
.end method
.method protected onFailed(I)V
.registers 3
const-string p1, "HttpDnsCompletion"
const-string v0, "onFailed()"
.line 1
invoke-static {p1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method
.method protected onSuccess(Ljava/util/ArrayList;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;)V"
}
.end annotation
const-string p1, "HttpDnsCompletion"
const-string v0, "onSuccess()"
.line 1
invoke-static {p1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method