ScribeBackoffPolicy.smali

.class public Lcom/tradplus/ads/network/ScribeBackoffPolicy;
.super Lcom/tradplus/ads/network/BackoffPolicy;


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

    const v0, 0xea60

    const/4 v1, 0x5

    const/4 v2, 0x2

    invoke-direct {p0, v0, v1, v2}, Lcom/tradplus/ads/network/ScribeBackoffPolicy;-><init>(III)V

    return-void
.end method

.method constructor <init>(III)V
    .registers 4
    .annotation build Lcom/tradplus/ads/common/VisibleForTesting;
    .end annotation

    invoke-direct {p0}, Lcom/tradplus/ads/network/BackoffPolicy;-><init>()V

    iput p1, p0, Lcom/tradplus/ads/network/BackoffPolicy;->c:I

    iput p2, p0, Lcom/tradplus/ads/network/BackoffPolicy;->e:I

    iput p3, p0, Lcom/tradplus/ads/network/BackoffPolicy;->b:I

    return-void
.end method

.method private a()V
    .registers 5

    iget v0, p0, Lcom/tradplus/ads/network/BackoffPolicy;->b:I

    int-to-double v0, v0

    iget v2, p0, Lcom/tradplus/ads/network/BackoffPolicy;->d:I

    int-to-double v2, v2

    invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->pow(DD)D

    move-result-wide v0

    iget v2, p0, Lcom/tradplus/ads/network/BackoffPolicy;->c:I

    int-to-double v2, v2

    invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z

    mul-double v2, v2, v0

    double-to-int v0, v2

    iput v0, p0, Lcom/tradplus/ads/network/BackoffPolicy;->a:I

    iget v0, p0, Lcom/tradplus/ads/network/BackoffPolicy;->d:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/tradplus/ads/network/BackoffPolicy;->d:I

    return-void
.end method


# virtual methods
.method public backoff(Lcom/tradplus/ads/volley/VolleyError;)V
    .registers 4

    invoke-virtual {p0}, Lcom/tradplus/ads/network/BackoffPolicy;->hasAttemptRemaining()Z

    move-result v0

    if-eqz v0, :cond_21

    instance-of v0, p1, Lcom/tradplus/ads/volley/NoConnectionError;

    if-eqz v0, :cond_e

    invoke-direct {p0}, Lcom/tradplus/ads/network/ScribeBackoffPolicy;->a()V

    return-void

    :cond_e
    iget-object v0, p1, Lcom/tradplus/ads/volley/VolleyError;->networkResponse:Lcom/tradplus/ads/volley/NetworkResponse;

    if-eqz v0, :cond_20

    iget v0, v0, Lcom/tradplus/ads/volley/NetworkResponse;->statusCode:I

    const/16 v1, 0x1f7

    if-eq v0, v1, :cond_1c

    const/16 v1, 0x1f8

    if-ne v0, v1, :cond_20

    :cond_1c
    invoke-direct {p0}, Lcom/tradplus/ads/network/ScribeBackoffPolicy;->a()V

    return-void

    :cond_20
    throw p1

    :cond_21
    throw p1
.end method