ResponseBody$BomAwareReader.smali
.class final Lokhttp3/ResponseBody$BomAwareReader;
.super Ljava/io/Reader;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/ResponseBody;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x18
name = "BomAwareReader"
.end annotation
# instance fields
.field private final charset:Ljava/nio/charset/Charset;
.field private closed:Z
.field private delegate:Ljava/io/Reader;
.field private final source:Lokio/e;
# direct methods
.method constructor <init>(Lokio/e;Ljava/nio/charset/Charset;)V
.registers 3
invoke-direct {p0}, Ljava/io/Reader;-><init>()V
iput-object p1, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/e;
iput-object p2, p0, Lokhttp3/ResponseBody$BomAwareReader;->charset:Ljava/nio/charset/Charset;
return-void
.end method
# virtual methods
.method public close()V
.registers 2
const/4 v0, 0x1
iput-boolean v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->closed:Z
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
if-eqz v0, :cond_d
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
invoke-virtual {v0}, Ljava/io/Reader;->close()V
:goto_c
return-void
:cond_d
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/e;
invoke-interface {v0}, Lokio/e;->close()V
goto :goto_c
.end method
.method public read([CII)I
.registers 7
iget-boolean v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->closed:Z
if-eqz v0, :cond_d
new-instance v0, Ljava/io/IOException;
const-string/jumbo v1, "Stream closed"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
:cond_d
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
if-nez v0, :cond_26
iget-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/e;
iget-object v1, p0, Lokhttp3/ResponseBody$BomAwareReader;->charset:Ljava/nio/charset/Charset;
invoke-static {v0, v1}, Lokhttp3/internal/Util;->bomAwareCharset(Lokio/e;Ljava/nio/charset/Charset;)Ljava/nio/charset/Charset;
move-result-object v1
new-instance v0, Ljava/io/InputStreamReader;
iget-object v2, p0, Lokhttp3/ResponseBody$BomAwareReader;->source:Lokio/e;
invoke-interface {v2}, Lokio/e;->g()Ljava/io/InputStream;
move-result-object v2
invoke-direct {v0, v2, v1}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
iput-object v0, p0, Lokhttp3/ResponseBody$BomAwareReader;->delegate:Ljava/io/Reader;
:cond_26
invoke-virtual {v0, p1, p2, p3}, Ljava/io/Reader;->read([CII)I
move-result v0
return v0
.end method