HeaderUtils.smali
.class public Lcom/h/q/HeaderUtils;
.super Ljava/lang/Object;
# static fields
.field public static final FORMAT_HTTP_DATA:Ljava/lang/String; = "EEE, dd MMM y HH:mm:ss \'GMT\'"
.field public static final GMT_TIME_ZONE:Ljava/util/TimeZone;
.field private static acceptLanguageInstance:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
const-string/jumbo v0, "GMT"
invoke-static {v0}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
move-result-object v0
sput-object v0, Lcom/h/q/HeaderUtils;->GMT_TIME_ZONE:Ljava/util/TimeZone;
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static formatMillisToGMT(J)Ljava/lang/String;
.registers 6
new-instance v0, Ljava/util/Date;
invoke-direct {v0, p0, p1}, Ljava/util/Date;-><init>(J)V
new-instance v1, Ljava/text/SimpleDateFormat;
const-string/jumbo v2, "EEE, dd MMM y HH:mm:ss \'GMT\'"
sget-object v3, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-direct {v1, v2, v3}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
sget-object v2, Lcom/h/q/HeaderUtils;->GMT_TIME_ZONE:Ljava/util/TimeZone;
invoke-virtual {v1, v2}, Ljava/text/SimpleDateFormat;->setTimeZone(Ljava/util/TimeZone;)V
invoke-virtual {v1, v0}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getLocalExpires(Lcom/h/r/Headers;)J
.registers 15
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v6
invoke-virtual {p0}, Lcom/h/r/Headers;->getDate()J
move-result-wide v8
invoke-virtual {p0}, Lcom/h/r/Headers;->getExpiration()J
move-result-wide v10
const-wide/16 v2, 0x0
const-wide/16 v0, 0x0
invoke-virtual {p0}, Lcom/h/r/Headers;->getCacheControl()Ljava/lang/String;
move-result-object v12
invoke-static {v12}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-nez v4, :cond_75
new-instance v4, Ljava/util/StringTokenizer;
const-string/jumbo v5, ","
invoke-direct {v4, v12, v5}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
:cond_22
:goto_22
invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreTokens()Z
move-result v5
if-eqz v5, :cond_75
invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v5
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v13
invoke-virtual {v5, v13}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v5
const-string/jumbo v13, "no-cache"
invoke-virtual {v13, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v13
if-nez v13, :cond_4a
const-string/jumbo v13, "no-store"
invoke-virtual {v13, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v13
if-eqz v13, :cond_4d
:cond_4a
const-wide/16 v0, 0x0
:cond_4c
:goto_4c
return-wide v0
:cond_4d
const-string/jumbo v13, "max-age="
invoke-virtual {v5, v13}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v13
if-eqz v13, :cond_61
const/16 v13, 0x8
:try_start_58
invoke-virtual {v5, v13}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
:try_end_5f
.catch Ljava/lang/Exception; {:try_start_58 .. :try_end_5f} :catch_a6
move-result-wide v2
goto :goto_22
:cond_61
const-string/jumbo v13, "stale-while-revalidate="
invoke-virtual {v5, v13}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v13
if-eqz v13, :cond_22
const/16 v13, 0x17
:try_start_6c
invoke-virtual {v5, v13}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
:try_end_73
.catch Ljava/lang/Exception; {:try_start_6c .. :try_end_73} :catch_a3
move-result-wide v0
goto :goto_22
:cond_75
const-wide/16 v4, 0x0
invoke-static {v12}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v12
if-nez v12, :cond_ab
const-wide/16 v4, 0x3e8
mul-long/2addr v2, v4
add-long/2addr v2, v6
const-wide/16 v4, 0x0
cmp-long v4, v0, v4
if-lez v4, :cond_a9
const-wide/16 v4, 0x3e8
mul-long/2addr v0, v4
add-long/2addr v0, v2
:goto_8b
const-wide/16 v2, 0x0
cmp-long v2, v0, v2
if-eqz v2, :cond_95
cmp-long v2, v0, v6
if-nez v2, :cond_4c
:cond_95
const-wide/16 v2, 0x0
cmp-long v2, v8, v2
if-lez v2, :cond_4c
cmp-long v2, v10, v8
if-ltz v2, :cond_4c
sub-long v0, v10, v8
add-long/2addr v0, v6
goto :goto_4c
:catch_a3
move-exception v5
goto/16 :goto_22
:catch_a6
move-exception v5
goto/16 :goto_22
:cond_a9
move-wide v0, v2
goto :goto_8b
:cond_ab
move-wide v0, v4
goto :goto_8b
.end method
.method public static getMaxExpiryMillis()J
.registers 4
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
const-wide v2, 0x2de41353000L
add-long/2addr v0, v2
return-wide v0
.end method
.method public static isGzipContent(Ljava/lang/String;)Z
.registers 2
if-eqz p0, :cond_d
const-string/jumbo v0, "gzip"
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_d
const/4 v0, 0x1
:goto_c
return v0
:cond_d
const/4 v0, 0x0
goto :goto_c
.end method
.method public static parseGMTToMillis(Ljava/lang/String;)J
.registers 4
new-instance v0, Ljava/text/SimpleDateFormat;
const-string/jumbo v1, "EEE, dd MMM y HH:mm:ss \'GMT\'"
sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-direct {v0, v1, v2}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
sget-object v1, Lcom/h/q/HeaderUtils;->GMT_TIME_ZONE:Ljava/util/TimeZone;
invoke-virtual {v0, v1}, Ljava/text/SimpleDateFormat;->setTimeZone(Ljava/util/TimeZone;)V
invoke-virtual {v0, p0}, Ljava/text/SimpleDateFormat;->parse(Ljava/lang/String;)Ljava/util/Date;
move-result-object v0
invoke-virtual {v0}, Ljava/util/Date;->getTime()J
move-result-wide v0
return-wide v0
.end method
.method public static parseHeadValue(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 7
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_3f
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_3f
new-instance v0, Ljava/util/StringTokenizer;
const-string/jumbo v1, ";"
invoke-direct {v0, p0, v1}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
:cond_14
invoke-virtual {v0}, Ljava/util/StringTokenizer;->hasMoreElements()Z
move-result v1
if-eqz v1, :cond_3f
invoke-virtual {v0}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
move-result-object v1
const/16 v2, 0x3d
invoke-virtual {v1, v2}, Ljava/lang/String;->indexOf(I)I
move-result v2
if-lez v2, :cond_14
const/4 v3, 0x0
invoke-virtual {v1, v3, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v3
invoke-virtual {p1, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_14
add-int/lit8 v0, v2, 0x1
invoke-virtual {v1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object p2
:cond_3f
return-object p2
.end method
.method public static systemAcceptLanguage()Ljava/lang/String;
.registers 4
sget-object v0, Lcom/h/q/HeaderUtils;->acceptLanguageInstance:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_38
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-virtual {v0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0}, Ljava/util/Locale;->getCountry()Ljava/lang/String;
move-result-object v0
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v3
if-nez v3, :cond_32
const/16 v3, 0x2d
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const/16 v3, 0x2c
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_32
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/h/q/HeaderUtils;->acceptLanguageInstance:Ljava/lang/String;
:cond_38
sget-object v0, Lcom/h/q/HeaderUtils;->acceptLanguageInstance:Ljava/lang/String;
return-object v0
.end method