j.smali

.class Lcom/proxy/ad/impl/video/a/j;
.super Ljava/lang/Object;


# instance fields
.field private final a:Ljava/lang/Object;

.field b:Lcom/proxy/ad/impl/video/a/a;

.field final c:Ljava/lang/Object;

.field volatile d:Z

.field public e:Lcom/proxy/ad/c/a;


# direct methods
.method public constructor <init>()V
    .registers 2

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    new-instance v0, Ljava/lang/Object;

    invoke-direct {v0}, Ljava/lang/Object;-><init>()V

    iput-object v0, p0, Lcom/proxy/ad/impl/video/a/j;->a:Ljava/lang/Object;

    new-instance v0, Ljava/lang/Object;

    invoke-direct {v0}, Ljava/lang/Object;-><init>()V

    iput-object v0, p0, Lcom/proxy/ad/impl/video/a/j;->c:Ljava/lang/Object;

    return-void
.end method


# virtual methods
.method public final a([BJ)I
    .registers 10

    const/4 v0, 0x0

    const-wide/16 v1, 0x0

    cmp-long v3, p2, v1

    if-gez v3, :cond_f

    const-string p1, "ads-proxycache"

    const-string p2, "buffer or offset or length is wrong"

    invoke-static {p1, p2}, Lcom/proxy/ad/log/Logger;->e(Ljava/lang/String;Ljava/lang/String;)V

    return v0

    :cond_f
    :goto_f
    iget-object v1, p0, Lcom/proxy/ad/impl/video/a/j;->b:Lcom/proxy/ad/impl/video/a/a;

    invoke-interface {v1}, Lcom/proxy/ad/impl/video/a/a;->c()Z

    move-result v1

    if-nez v1, :cond_a6

    iget-object v1, p0, Lcom/proxy/ad/impl/video/a/j;->b:Lcom/proxy/ad/impl/video/a/a;

    invoke-interface {v1}, Lcom/proxy/ad/impl/video/a/a;->a()J

    move-result-wide v1

    const-wide/16 v3, 0x2000

    add-long/2addr v3, p2

    cmp-long v5, v1, v3

    if-gez v5, :cond_a6

    iget-boolean v1, p0, Lcom/proxy/ad/impl/video/a/j;->d:Z

    if-nez v1, :cond_a6

    add-int/lit8 v0, v0, 0x1

    iget-object v1, p0, Lcom/proxy/ad/impl/video/a/j;->a:Ljava/lang/Object;

    monitor-enter v1

    :try_start_2d
    const-string v2, "ads-proxycache"

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "wait for downloading. thread="

    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/Thread;->getName()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v4, ",url="

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v4, p0, Lcom/proxy/ad/impl/video/a/j;->e:Lcom/proxy/ad/c/a;

    iget-object v4, v4, Lcom/proxy/ad/c/a;->b:Ljava/lang/String;

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v4, ",count="

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-static {v2, v3}, Lcom/proxy/ad/log/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V

    iget-object v2, p0, Lcom/proxy/ad/impl/video/a/j;->a:Ljava/lang/Object;

    const-wide/16 v3, 0x3e8

    invoke-virtual {v2, v3, v4}, Ljava/lang/Object;->wait(J)V
    :try_end_63
    .catch Ljava/lang/InterruptedException; {:try_start_2d .. :try_end_63} :catch_66
    .catchall {:try_start_2d .. :try_end_63} :catchall_64

    goto :goto_7e

    :catchall_64
    move-exception p1

    goto :goto_a4

    :catch_66
    move-exception v2

    :try_start_67
    const-string v3, "ads-proxycache"

    new-instance v4, Ljava/lang/StringBuilder;

    const-string v5, "Waiting source data is interrupted!"

    invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v2}, Ljava/lang/InterruptedException;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v3, v2}, Lcom/proxy/ad/log/Logger;->e(Ljava/lang/String;Ljava/lang/String;)V

    :goto_7e
    monitor-exit v1
    :try_end_7f
    .catchall {:try_start_67 .. :try_end_7f} :catchall_64

    const/16 v1, 0xf

    if-ge v0, v1, :cond_84

    goto :goto_f

    :cond_84
    const-string p1, "ads-proxycache"

    const-string p2, "wait for downloading more than 15s."

    invoke-static {p1, p2}, Lcom/proxy/ad/log/Logger;->e(Ljava/lang/String;Ljava/lang/String;)V

    new-instance p1, Lcom/proxy/ad/impl/video/a/k;

    new-instance p2, Ljava/lang/StringBuilder;

    const-string p3, "Error reading source "

    invoke-direct {p2, p3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string p3, " times"

    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-direct {p1, p2}, Lcom/proxy/ad/impl/video/a/k;-><init>(Ljava/lang/String;)V

    throw p1

    :goto_a4
    :try_start_a4
    monitor-exit v1
    :try_end_a5
    .catchall {:try_start_a4 .. :try_end_a5} :catchall_64

    throw p1

    :cond_a6
    iget-object v0, p0, Lcom/proxy/ad/impl/video/a/j;->b:Lcom/proxy/ad/impl/video/a/a;

    invoke-interface {v0, p1, p2, p3}, Lcom/proxy/ad/impl/video/a/a;->a([BJ)I

    move-result p1

    if-gtz p1, :cond_bd

    invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object p2

    const-string p3, "read end, size = "

    invoke-virtual {p3, p2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p2

    const-string p3, "ads-proxycache"

    invoke-static {p3, p2}, Lcom/proxy/ad/log/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V

    :cond_bd
    return p1
.end method