CacheControl.smali
.class public final Lokhttp3/CacheControl;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lokhttp3/CacheControl$Builder;
}
.end annotation
# static fields
.field public static final FORCE_CACHE:Lokhttp3/CacheControl;
.field public static final FORCE_NETWORK:Lokhttp3/CacheControl;
# instance fields
.field headerValue:Ljava/lang/String;
.field private final isPrivate:Z
.field private final isPublic:Z
.field private final maxAgeSeconds:I
.field private final maxStaleSeconds:I
.field private final minFreshSeconds:I
.field private final mustRevalidate:Z
.field private final noCache:Z
.field private final noStore:Z
.field private final noTransform:Z
.field private final onlyIfCached:Z
.field private final sMaxAgeSeconds:I
# direct methods
.method static constructor <clinit>()V
.registers 3
new-instance v0, Lokhttp3/CacheControl$Builder;
invoke-direct {v0}, Lokhttp3/CacheControl$Builder;-><init>()V
invoke-virtual {v0}, Lokhttp3/CacheControl$Builder;->noCache()Lokhttp3/CacheControl$Builder;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/CacheControl$Builder;->build()Lokhttp3/CacheControl;
move-result-object v0
sput-object v0, Lokhttp3/CacheControl;->FORCE_NETWORK:Lokhttp3/CacheControl;
new-instance v0, Lokhttp3/CacheControl$Builder;
invoke-direct {v0}, Lokhttp3/CacheControl$Builder;-><init>()V
invoke-virtual {v0}, Lokhttp3/CacheControl$Builder;->onlyIfCached()Lokhttp3/CacheControl$Builder;
move-result-object v0
const v1, 0x7fffffff
sget-object v2, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v0, v1, v2}, Lokhttp3/CacheControl$Builder;->maxStale(ILjava/util/concurrent/TimeUnit;)Lokhttp3/CacheControl$Builder;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/CacheControl$Builder;->build()Lokhttp3/CacheControl;
move-result-object v0
sput-object v0, Lokhttp3/CacheControl;->FORCE_CACHE:Lokhttp3/CacheControl;
return-void
.end method
.method constructor <init>(Lokhttp3/CacheControl$Builder;)V
.registers 4
const/4 v1, 0x0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iget-boolean v0, p1, Lokhttp3/CacheControl$Builder;->noCache:Z
iput-boolean v0, p0, Lokhttp3/CacheControl;->noCache:Z
iget-boolean v0, p1, Lokhttp3/CacheControl$Builder;->noStore:Z
iput-boolean v0, p0, Lokhttp3/CacheControl;->noStore:Z
iget v0, p1, Lokhttp3/CacheControl$Builder;->maxAgeSeconds:I
iput v0, p0, Lokhttp3/CacheControl;->maxAgeSeconds:I
const/4 v0, -0x1
iput v0, p0, Lokhttp3/CacheControl;->sMaxAgeSeconds:I
iput-boolean v1, p0, Lokhttp3/CacheControl;->isPrivate:Z
iput-boolean v1, p0, Lokhttp3/CacheControl;->isPublic:Z
iput-boolean v1, p0, Lokhttp3/CacheControl;->mustRevalidate:Z
iget v0, p1, Lokhttp3/CacheControl$Builder;->maxStaleSeconds:I
iput v0, p0, Lokhttp3/CacheControl;->maxStaleSeconds:I
iget v0, p1, Lokhttp3/CacheControl$Builder;->minFreshSeconds:I
iput v0, p0, Lokhttp3/CacheControl;->minFreshSeconds:I
iget-boolean v0, p1, Lokhttp3/CacheControl$Builder;->onlyIfCached:Z
iput-boolean v0, p0, Lokhttp3/CacheControl;->onlyIfCached:Z
iget-boolean v0, p1, Lokhttp3/CacheControl$Builder;->noTransform:Z
iput-boolean v0, p0, Lokhttp3/CacheControl;->noTransform:Z
return-void
.end method
.method private constructor <init>(ZZIIZZZIIZZLjava/lang/String;)V
.registers 13
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-boolean p1, p0, Lokhttp3/CacheControl;->noCache:Z
iput-boolean p2, p0, Lokhttp3/CacheControl;->noStore:Z
iput p3, p0, Lokhttp3/CacheControl;->maxAgeSeconds:I
iput p4, p0, Lokhttp3/CacheControl;->sMaxAgeSeconds:I
iput-boolean p5, p0, Lokhttp3/CacheControl;->isPrivate:Z
iput-boolean p6, p0, Lokhttp3/CacheControl;->isPublic:Z
iput-boolean p7, p0, Lokhttp3/CacheControl;->mustRevalidate:Z
iput p8, p0, Lokhttp3/CacheControl;->maxStaleSeconds:I
iput p9, p0, Lokhttp3/CacheControl;->minFreshSeconds:I
iput-boolean p10, p0, Lokhttp3/CacheControl;->onlyIfCached:Z
iput-boolean p11, p0, Lokhttp3/CacheControl;->noTransform:Z
iput-object p12, p0, Lokhttp3/CacheControl;->headerValue:Ljava/lang/String;
return-void
.end method
.method private headerValue()Ljava/lang/String;
.registers 5
const/4 v3, -0x1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-boolean v1, p0, Lokhttp3/CacheControl;->noCache:Z
if-eqz v1, :cond_10
const-string/jumbo v1, "no-cache, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_10
iget-boolean v1, p0, Lokhttp3/CacheControl;->noStore:Z
if-eqz v1, :cond_1a
const-string/jumbo v1, "no-store, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_1a
iget v1, p0, Lokhttp3/CacheControl;->maxAgeSeconds:I
if-eq v1, v3, :cond_31
const-string/jumbo v1, "max-age="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lokhttp3/CacheControl;->maxAgeSeconds:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, ", "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_31
iget v1, p0, Lokhttp3/CacheControl;->sMaxAgeSeconds:I
if-eq v1, v3, :cond_48
const-string/jumbo v1, "s-maxage="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lokhttp3/CacheControl;->sMaxAgeSeconds:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, ", "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_48
iget-boolean v1, p0, Lokhttp3/CacheControl;->isPrivate:Z
if-eqz v1, :cond_52
const-string/jumbo v1, "private, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_52
iget-boolean v1, p0, Lokhttp3/CacheControl;->isPublic:Z
if-eqz v1, :cond_5c
const-string/jumbo v1, "public, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_5c
iget-boolean v1, p0, Lokhttp3/CacheControl;->mustRevalidate:Z
if-eqz v1, :cond_66
const-string/jumbo v1, "must-revalidate, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_66
iget v1, p0, Lokhttp3/CacheControl;->maxStaleSeconds:I
if-eq v1, v3, :cond_7d
const-string/jumbo v1, "max-stale="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lokhttp3/CacheControl;->maxStaleSeconds:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, ", "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_7d
iget v1, p0, Lokhttp3/CacheControl;->minFreshSeconds:I
if-eq v1, v3, :cond_94
const-string/jumbo v1, "min-fresh="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lokhttp3/CacheControl;->minFreshSeconds:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, ", "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_94
iget-boolean v1, p0, Lokhttp3/CacheControl;->onlyIfCached:Z
if-eqz v1, :cond_9e
const-string/jumbo v1, "only-if-cached, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_9e
iget-boolean v1, p0, Lokhttp3/CacheControl;->noTransform:Z
if-eqz v1, :cond_a8
const-string/jumbo v1, "no-transform, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_a8
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result v1
if-nez v1, :cond_b2
const-string/jumbo v0, ""
:goto_b1
return-object v0
:cond_b2
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result v1
add-int/lit8 v1, v1, -0x2
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result v2
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_b1
.end method
.method public static parse(Lokhttp3/Headers;)Lokhttp3/CacheControl;
.registers 24
const/16 v16, 0x0
const/4 v4, 0x0
const/4 v5, -0x1
const/4 v6, -0x1
const/4 v7, 0x0
const/4 v8, 0x0
const/4 v9, 0x0
const/4 v10, -0x1
const/4 v11, -0x1
const/4 v12, 0x0
const/4 v13, 0x0
const/4 v15, 0x1
const/4 v3, 0x0
const/4 v2, 0x0
invoke-virtual/range {p0 .. p0}, Lokhttp3/Headers;->size()I
move-result v19
move/from16 v18, v2
move-object v2, v3
move/from16 v3, v16
:goto_18
move/from16 v0, v18
move/from16 v1, v19
if-ge v0, v1, :cond_1b5
move-object/from16 v0, p0
move/from16 v1, v18
invoke-virtual {v0, v1}, Lokhttp3/Headers;->name(I)Ljava/lang/String;
move-result-object v16
move-object/from16 v0, p0
move/from16 v1, v18
invoke-virtual {v0, v1}, Lokhttp3/Headers;->value(I)Ljava/lang/String;
move-result-object v14
const-string/jumbo v17, "Cache-Control"
invoke-virtual/range {v16 .. v17}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v17
if-eqz v17, :cond_98
if-eqz v2, :cond_96
const/4 v15, 0x0
:goto_3a
const/16 v16, 0x0
move/from16 v22, v16
move/from16 v16, v3
move/from16 v3, v22
:cond_42
:goto_42
invoke-virtual {v14}, Ljava/lang/String;->length()I
move-result v17
move/from16 v0, v17
if-ge v3, v0, :cond_1ad
const-string/jumbo v17, "=,;"
move-object/from16 v0, v17
invoke-static {v14, v3, v0}, Lokhttp3/internal/http/HttpHeaders;->skipUntil(Ljava/lang/String;ILjava/lang/String;)I
move-result v17
move/from16 v0, v17
invoke-virtual {v14, v3, v0}, 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 v20
invoke-virtual {v14}, Ljava/lang/String;->length()I
move-result v3
move/from16 v0, v17
if-eq v0, v3, :cond_7d
move/from16 v0, v17
invoke-virtual {v14, v0}, Ljava/lang/String;->charAt(I)C
move-result v3
const/16 v21, 0x2c
move/from16 v0, v21
if-eq v3, v0, :cond_7d
move/from16 v0, v17
invoke-virtual {v14, v0}, Ljava/lang/String;->charAt(I)C
move-result v3
const/16 v21, 0x3b
move/from16 v0, v21
if-ne v3, v0, :cond_a3
:cond_7d
add-int/lit8 v17, v17, 0x1
const/4 v3, 0x0
move-object/from16 v22, v3
move/from16 v3, v17
move-object/from16 v17, v22
:goto_86
const-string/jumbo v21, "no-cache"
move-object/from16 v0, v21
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v21
if-eqz v21, :cond_f1
const/16 v16, 0x1
goto :goto_42
:cond_96
move-object v2, v14
goto :goto_3a
:cond_98
const-string/jumbo v17, "Pragma"
invoke-virtual/range {v16 .. v17}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v16
if-eqz v16, :cond_1ab
const/4 v15, 0x0
goto :goto_3a
:cond_a3
add-int/lit8 v3, v17, 0x1
invoke-static {v14, v3}, Lokhttp3/internal/http/HttpHeaders;->skipWhitespace(Ljava/lang/String;I)I
move-result v3
invoke-virtual {v14}, Ljava/lang/String;->length()I
move-result v17
move/from16 v0, v17
if-ge v3, v0, :cond_d7
invoke-virtual {v14, v3}, Ljava/lang/String;->charAt(I)C
move-result v17
const/16 v21, 0x22
move/from16 v0, v17
move/from16 v1, v21
if-ne v0, v1, :cond_d7
add-int/lit8 v3, v3, 0x1
const-string/jumbo v17, "\""
move-object/from16 v0, v17
invoke-static {v14, v3, v0}, Lokhttp3/internal/http/HttpHeaders;->skipUntil(Ljava/lang/String;ILjava/lang/String;)I
move-result v17
move/from16 v0, v17
invoke-virtual {v14, v3, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v3
add-int/lit8 v17, v17, 0x1
move-object/from16 v22, v3
move/from16 v3, v17
move-object/from16 v17, v22
goto :goto_86
:cond_d7
const-string/jumbo v17, ",;"
move-object/from16 v0, v17
invoke-static {v14, v3, v0}, Lokhttp3/internal/http/HttpHeaders;->skipUntil(Ljava/lang/String;ILjava/lang/String;)I
move-result v17
move/from16 v0, v17
invoke-virtual {v14, v3, v0}, 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
move-object/from16 v22, v3
move/from16 v3, v17
move-object/from16 v17, v22
goto :goto_86
:cond_f1
const-string/jumbo v21, "no-store"
move-object/from16 v0, v21
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v21
if-eqz v21, :cond_101
const/4 v4, 0x1
goto/16 :goto_42
:cond_101
const-string/jumbo v21, "max-age"
move-object/from16 v0, v21
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v21
if-eqz v21, :cond_117
const/4 v5, -0x1
move-object/from16 v0, v17
invoke-static {v0, v5}, Lokhttp3/internal/http/HttpHeaders;->parseSeconds(Ljava/lang/String;I)I
move-result v5
goto/16 :goto_42
:cond_117
const-string/jumbo v21, "s-maxage"
move-object/from16 v0, v21
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v21
if-eqz v21, :cond_12d
const/4 v6, -0x1
move-object/from16 v0, v17
invoke-static {v0, v6}, Lokhttp3/internal/http/HttpHeaders;->parseSeconds(Ljava/lang/String;I)I
move-result v6
goto/16 :goto_42
:cond_12d
const-string/jumbo v21, "private"
move-object/from16 v0, v21
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v21
if-eqz v21, :cond_13d
const/4 v7, 0x1
goto/16 :goto_42
:cond_13d
const-string/jumbo v21, "public"
move-object/from16 v0, v21
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v21
if-eqz v21, :cond_14d
const/4 v8, 0x1
goto/16 :goto_42
:cond_14d
const-string/jumbo v21, "must-revalidate"
move-object/from16 v0, v21
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v21
if-eqz v21, :cond_15d
const/4 v9, 0x1
goto/16 :goto_42
:cond_15d
const-string/jumbo v21, "max-stale"
move-object/from16 v0, v21
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v21
if-eqz v21, :cond_175
const v10, 0x7fffffff
move-object/from16 v0, v17
invoke-static {v0, v10}, Lokhttp3/internal/http/HttpHeaders;->parseSeconds(Ljava/lang/String;I)I
move-result v10
goto/16 :goto_42
:cond_175
const-string/jumbo v21, "min-fresh"
move-object/from16 v0, v21
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v21
if-eqz v21, :cond_18b
const/4 v11, -0x1
move-object/from16 v0, v17
invoke-static {v0, v11}, Lokhttp3/internal/http/HttpHeaders;->parseSeconds(Ljava/lang/String;I)I
move-result v11
goto/16 :goto_42
:cond_18b
const-string/jumbo v17, "only-if-cached"
move-object/from16 v0, v17
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v17
if-eqz v17, :cond_19b
const/4 v12, 0x1
goto/16 :goto_42
:cond_19b
const-string/jumbo v17, "no-transform"
move-object/from16 v0, v17
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v17
if-eqz v17, :cond_42
const/4 v13, 0x1
goto/16 :goto_42
:cond_1ab
move/from16 v16, v3
:cond_1ad
add-int/lit8 v3, v18, 0x1
move/from16 v18, v3
move/from16 v3, v16
goto/16 :goto_18
:cond_1b5
if-nez v15, :cond_1be
const/4 v14, 0x0
:goto_1b8
new-instance v2, Lokhttp3/CacheControl;
invoke-direct/range {v2 .. v14}, Lokhttp3/CacheControl;-><init>(ZZIIZZZIIZZLjava/lang/String;)V
return-object v2
:cond_1be
move-object v14, v2
goto :goto_1b8
.end method
# virtual methods
.method public isPrivate()Z
.registers 2
iget-boolean v0, p0, Lokhttp3/CacheControl;->isPrivate:Z
return v0
.end method
.method public isPublic()Z
.registers 2
iget-boolean v0, p0, Lokhttp3/CacheControl;->isPublic:Z
return v0
.end method
.method public maxAgeSeconds()I
.registers 2
iget v0, p0, Lokhttp3/CacheControl;->maxAgeSeconds:I
return v0
.end method
.method public maxStaleSeconds()I
.registers 2
iget v0, p0, Lokhttp3/CacheControl;->maxStaleSeconds:I
return v0
.end method
.method public minFreshSeconds()I
.registers 2
iget v0, p0, Lokhttp3/CacheControl;->minFreshSeconds:I
return v0
.end method
.method public mustRevalidate()Z
.registers 2
iget-boolean v0, p0, Lokhttp3/CacheControl;->mustRevalidate:Z
return v0
.end method
.method public noCache()Z
.registers 2
iget-boolean v0, p0, Lokhttp3/CacheControl;->noCache:Z
return v0
.end method
.method public noStore()Z
.registers 2
iget-boolean v0, p0, Lokhttp3/CacheControl;->noStore:Z
return v0
.end method
.method public noTransform()Z
.registers 2
iget-boolean v0, p0, Lokhttp3/CacheControl;->noTransform:Z
return v0
.end method
.method public onlyIfCached()Z
.registers 2
iget-boolean v0, p0, Lokhttp3/CacheControl;->onlyIfCached:Z
return v0
.end method
.method public sMaxAgeSeconds()I
.registers 2
iget v0, p0, Lokhttp3/CacheControl;->sMaxAgeSeconds:I
return v0
.end method
.method public toString()Ljava/lang/String;
.registers 2
iget-object v0, p0, Lokhttp3/CacheControl;->headerValue:Ljava/lang/String;
if-eqz v0, :cond_5
:goto_4
return-object v0
:cond_5
invoke-direct {p0}, Lokhttp3/CacheControl;->headerValue()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lokhttp3/CacheControl;->headerValue:Ljava/lang/String;
goto :goto_4
.end method