.class public Lcom/moji/httpdns/cache/DnsCache; .super Ljava/lang/Object; .source "DnsCache.java" # interfaces .implements Lcom/moji/httpdns/cache/IDnsCache; # instance fields .field private a:Lcom/moji/httpdns/cache/DNSCacheDatabaseHelper; .field private b:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/String;", "Lcom/moji/httpdns/model/DnsResult;", ">;" } .end annotation .end field # direct methods .method public constructor (Landroid/content/Context;)V .locals 1 .line 31 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x0 .line 28 iput-object v0, p0, Lcom/moji/httpdns/cache/DnsCache;->a:Lcom/moji/httpdns/cache/DNSCacheDatabaseHelper; .line 29 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V invoke-static {v0}, Ljava/util/Collections;->synchronizedMap(Ljava/util/Map;)Ljava/util/Map; move-result-object v0 iput-object v0, p0, Lcom/moji/httpdns/cache/DnsCache;->b:Ljava/util/Map; .line 32 new-instance v0, Lcom/moji/httpdns/cache/DNSCacheDatabaseHelper; invoke-direct {v0, p1}, Lcom/moji/httpdns/cache/DNSCacheDatabaseHelper;->(Landroid/content/Context;)V iput-object v0, p0, Lcom/moji/httpdns/cache/DnsCache;->a:Lcom/moji/httpdns/cache/DNSCacheDatabaseHelper; return-void .end method .method private a(Lcom/moji/httpdns/model/DomainModel;)Lcom/moji/httpdns/model/DnsResult; .locals 4 .line 100 new-instance v0, Lcom/moji/httpdns/model/DnsResult; invoke-direct {v0}, Lcom/moji/httpdns/model/DnsResult;->()V .line 101 iget-wide v1, p1, Lcom/moji/httpdns/model/DomainModel;->ttl:J invoke-virtual {v0, v1, v2}, Lcom/moji/httpdns/model/DnsResult;->setTtl(J)V .line 102 sget-object v1, Lcom/moji/httpdns/model/DnsResult$SOURCE;->DATA_BASE:Lcom/moji/httpdns/model/DnsResult$SOURCE; invoke-virtual {v0, v1}, Lcom/moji/httpdns/model/DnsResult;->setSource(Lcom/moji/httpdns/model/DnsResult$SOURCE;)V .line 103 iget-wide v1, p1, Lcom/moji/httpdns/model/DomainModel;->updateTime:J invoke-virtual {v0, v1, v2}, Lcom/moji/httpdns/model/DnsResult;->setUpdateTime(J)V .line 105 new-instance v1, Ljava/util/ArrayList; invoke-direct {v1}, Ljava/util/ArrayList;->()V .line 106 iget-object v2, p1, Lcom/moji/httpdns/model/DomainModel;->ipModelArr:Ljava/util/ArrayList; new-instance v3, Lcom/moji/httpdns/cache/DnsCache$1; invoke-direct {v3, p0}, Lcom/moji/httpdns/cache/DnsCache$1;->(Lcom/moji/httpdns/cache/DnsCache;)V invoke-static {v2, v3}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V const/4 v2, 0x0 .line 112 :goto_0 iget-object v3, p1, Lcom/moji/httpdns/model/DomainModel;->ipModelArr:Ljava/util/ArrayList; invoke-virtual {v3}, Ljava/util/ArrayList;->size()I move-result v3 if-ge v2, v3, :cond_0 .line 114 :try_start_0 iget-object v3, p1, Lcom/moji/httpdns/model/DomainModel;->ipModelArr:Ljava/util/ArrayList; invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v3 check-cast v3, Lcom/moji/httpdns/model/IpModel; iget-object v3, v3, Lcom/moji/httpdns/model/IpModel;->ip:Ljava/lang/String; invoke-static {v3}, Ljava/net/InetAddress;->getByName(Ljava/lang/String;)Ljava/net/InetAddress; move-result-object v3 .line 115 invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z :try_end_0 .catch Ljava/net/UnknownHostException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_1 :catch_0 move-exception v3 .line 117 invoke-virtual {v3}, Ljava/net/UnknownHostException;->printStackTrace()V :goto_1 add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 121 :cond_0 invoke-virtual {v0, v1}, Lcom/moji/httpdns/model/DnsResult;->setAddressList(Ljava/util/List;)V return-object v0 .end method # virtual methods .method public a(Ljava/lang/String;)Lcom/moji/httpdns/model/DnsResult; .locals 2 .annotation build Landroid/support/annotation/Nullable; .end annotation .line 68 invoke-static {}, Lcom/moji/httpdns/nettype/NetworkManager;->a()Lcom/moji/httpdns/nettype/NetworkManager; move-result-object v0 invoke-virtual {v0}, Lcom/moji/httpdns/nettype/NetworkManager;->b()Ljava/lang/String; move-result-object v0 invoke-static {p1, v0}, Lcom/moji/httpdns/model/DomainModel;->ID(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p1 .line 70 iget-object v0, p0, Lcom/moji/httpdns/cache/DnsCache;->b:Ljava/util/Map; invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 if-eqz v0, :cond_0 .line 71 iget-object v0, p0, Lcom/moji/httpdns/cache/DnsCache;->b:Ljava/util/Map; invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lcom/moji/httpdns/model/DnsResult; return-object p1 .line 74 :cond_0 iget-object v0, p0, Lcom/moji/httpdns/cache/DnsCache;->a:Lcom/moji/httpdns/cache/DNSCacheDatabaseHelper; invoke-virtual {v0, p1}, Lcom/moji/httpdns/cache/DNSCacheDatabaseHelper;->a(Ljava/lang/String;)Lcom/moji/httpdns/model/DomainModel; move-result-object v0 if-eqz v0, :cond_1 .line 75 iget-object v1, v0, Lcom/moji/httpdns/model/DomainModel;->ipModelArr:Ljava/util/ArrayList; if-eqz v1, :cond_1 iget-object v1, v0, Lcom/moji/httpdns/model/DomainModel;->ipModelArr:Ljava/util/ArrayList; invoke-virtual {v1}, Ljava/util/ArrayList;->size()I move-result v1 if-lez v1, :cond_1 .line 76 invoke-direct {p0, v0}, Lcom/moji/httpdns/cache/DnsCache;->a(Lcom/moji/httpdns/model/DomainModel;)Lcom/moji/httpdns/model/DnsResult; move-result-object v0 .line 77 iget-object v1, p0, Lcom/moji/httpdns/cache/DnsCache;->b:Ljava/util/Map; invoke-interface {v1, p1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; return-object v0 :cond_1 const/4 p1, 0x0 return-object p1 .end method .method public a()V .locals 1 .line 96 iget-object v0, p0, Lcom/moji/httpdns/cache/DnsCache;->b:Ljava/util/Map; invoke-interface {v0}, Ljava/util/Map;->clear()V return-void .end method .method public a(Lcom/moji/httpdns/model/HttpDnsPack;)Z .locals 8 .line 39 new-instance v0, Lcom/moji/httpdns/model/DomainModel; invoke-direct {v0}, Lcom/moji/httpdns/model/DomainModel;->()V .line 40 iget-object v1, p1, Lcom/moji/httpdns/model/HttpDnsPack;->domain:Ljava/lang/String; iget-object v2, p1, Lcom/moji/httpdns/model/HttpDnsPack;->device_sp:Ljava/lang/String; invoke-static {v1, v2}, Lcom/moji/httpdns/model/DomainModel;->ID(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 iput-object v1, v0, Lcom/moji/httpdns/model/DomainModel;->id:Ljava/lang/String; .line 41 iget-object v1, p1, Lcom/moji/httpdns/model/HttpDnsPack;->domain:Ljava/lang/String; iput-object v1, v0, Lcom/moji/httpdns/model/DomainModel;->domain:Ljava/lang/String; .line 42 iget-object v1, p1, Lcom/moji/httpdns/model/HttpDnsPack;->device_sp:Ljava/lang/String; iput-object v1, v0, Lcom/moji/httpdns/model/DomainModel;->sp:Ljava/lang/String; .line 43 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v1 iput-wide v1, v0, Lcom/moji/httpdns/model/DomainModel;->updateTime:J const-wide/16 v1, 0x0 .line 44 iput-wide v1, v0, Lcom/moji/httpdns/model/DomainModel;->lastFailTime:J .line 45 new-instance v1, Ljava/util/ArrayList; invoke-direct {v1}, Ljava/util/ArrayList;->()V iput-object v1, v0, Lcom/moji/httpdns/model/DomainModel;->ipModelArr:Ljava/util/ArrayList; .line 47 iget-object v1, p1, Lcom/moji/httpdns/model/HttpDnsPack;->dns:[Lcom/moji/httpdns/model/HttpDnsPack$IP; array-length v2, v1 const/4 v3, 0x0 const/4 v4, 0x0 :goto_0 if-ge v4, v2, :cond_0 aget-object v5, v1, v4 .line 48 new-instance v6, Lcom/moji/httpdns/model/IpModel; invoke-direct {v6}, Lcom/moji/httpdns/model/IpModel;->()V .line 49 iget-object v7, v5, Lcom/moji/httpdns/model/HttpDnsPack$IP;->a:Ljava/lang/String; iput-object v7, v6, Lcom/moji/httpdns/model/IpModel;->ip:Ljava/lang/String; .line 50 iget v5, v5, Lcom/moji/httpdns/model/HttpDnsPack$IP;->b:I iput v5, v6, Lcom/moji/httpdns/model/IpModel;->priority:I .line 51 iget-object v5, v0, Lcom/moji/httpdns/model/DomainModel;->ipModelArr:Ljava/util/ArrayList; invoke-virtual {v5, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z add-int/lit8 v4, v4, 0x1 goto :goto_0 .line 53 :cond_0 iget-wide v1, p1, Lcom/moji/httpdns/model/HttpDnsPack;->ttl:J iput-wide v1, v0, Lcom/moji/httpdns/model/DomainModel;->ttl:J .line 55 iget-object p1, v0, Lcom/moji/httpdns/model/DomainModel;->ipModelArr:Ljava/util/ArrayList; if-eqz p1, :cond_1 iget-object p1, v0, Lcom/moji/httpdns/model/DomainModel;->ipModelArr:Ljava/util/ArrayList; invoke-virtual {p1}, Ljava/util/ArrayList;->size()I move-result p1 if-lez p1, :cond_1 .line 56 iget-object p1, p0, Lcom/moji/httpdns/cache/DnsCache;->a:Lcom/moji/httpdns/cache/DNSCacheDatabaseHelper; invoke-virtual {p1, v0}, Lcom/moji/httpdns/cache/DNSCacheDatabaseHelper;->a(Lcom/moji/httpdns/model/DomainModel;)Z .line 57 iget-object p1, p0, Lcom/moji/httpdns/cache/DnsCache;->b:Ljava/util/Map; iget-object v1, v0, Lcom/moji/httpdns/model/DomainModel;->id:Ljava/lang/String; invoke-direct {p0, v0}, Lcom/moji/httpdns/cache/DnsCache;->a(Lcom/moji/httpdns/model/DomainModel;)Lcom/moji/httpdns/model/DnsResult; move-result-object v0 invoke-interface {p1, v1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; const/4 p1, 0x1 return p1 :cond_1 return v3 .end method