DefaultDrmSession$PostRequestHandler.smali

.class Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;
.super Landroid/os/Handler;
.source "DefaultDrmSession.java"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/google/android/exoplayer2/drm/DefaultDrmSession;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x2
    name = "PostRequestHandler"
.end annotation


# instance fields
.field final synthetic this$0:Lcom/google/android/exoplayer2/drm/DefaultDrmSession;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>(Lcom/google/android/exoplayer2/drm/DefaultDrmSession;Landroid/os/Looper;)V
    .registers 3
    .param p2, "backgroundLooper"    # Landroid/os/Looper;

    .line 492
    .local p0, "this":Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;, "Lcom/google/android/exoplayer2/drm/DefaultDrmSession<TT;>.PostRequestHandler;"
    iput-object p1, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->this$0:Lcom/google/android/exoplayer2/drm/DefaultDrmSession;

    .line 493
    invoke-direct {p0, p2}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    .line 494
    return-void
.end method

.method private getRetryDelayMillis(I)J
    .registers 4
    .param p1, "errorCount"    # I

    .line 543
    .local p0, "this":Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;, "Lcom/google/android/exoplayer2/drm/DefaultDrmSession<TT;>.PostRequestHandler;"
    add-int/lit8 v0, p1, -0x1

    mul-int/lit16 v0, v0, 0x3e8

    const/16 v1, 0x1388

    invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I

    move-result v0

    int-to-long v0, v0

    return-wide v0
.end method

.method private maybeRetryRequest(Landroid/os/Message;)Z
    .registers 8
    .param p1, "originalMsg"    # Landroid/os/Message;

    .line 528
    .local p0, "this":Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;, "Lcom/google/android/exoplayer2/drm/DefaultDrmSession<TT;>.PostRequestHandler;"
    iget v0, p1, Landroid/os/Message;->arg1:I

    const/4 v1, 0x0

    const/4 v2, 0x1

    if-ne v0, v2, :cond_8

    const/4 v0, 0x1

    goto :goto_9

    :cond_8
    const/4 v0, 0x0

    .line 529
    .local v0, "allowRetry":Z
    :goto_9
    if-nez v0, :cond_c

    .line 530
    return v1

    .line 532
    :cond_c
    iget v3, p1, Landroid/os/Message;->arg2:I

    add-int/2addr v3, v2

    .line 533
    .local v3, "errorCount":I
    iget-object v4, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->this$0:Lcom/google/android/exoplayer2/drm/DefaultDrmSession;

    invoke-static {v4}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->access$200(Lcom/google/android/exoplayer2/drm/DefaultDrmSession;)I

    move-result v4

    if-le v3, v4, :cond_18

    .line 534
    return v1

    .line 536
    :cond_18
    invoke-static {p1}, Landroid/os/Message;->obtain(Landroid/os/Message;)Landroid/os/Message;

    move-result-object v1

    .line 537
    .local v1, "retryMsg":Landroid/os/Message;
    iput v3, v1, Landroid/os/Message;->arg2:I

    .line 538
    invoke-direct {p0, v3}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->getRetryDelayMillis(I)J

    move-result-wide v4

    invoke-virtual {p0, v1, v4, v5}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->sendMessageDelayed(Landroid/os/Message;J)Z

    .line 539
    return v2
.end method


# virtual methods
.method public handleMessage(Landroid/os/Message;)V
    .registers 7
    .param p1, "msg"    # Landroid/os/Message;

    .line 505
    .local p0, "this":Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;, "Lcom/google/android/exoplayer2/drm/DefaultDrmSession<TT;>.PostRequestHandler;"
    iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;

    .line 508
    .local v0, "request":Ljava/lang/Object;
    :try_start_2
    iget v1, p1, Landroid/os/Message;->what:I

    if-eqz v1, :cond_1f

    const/4 v2, 0x1

    if-ne v1, v2, :cond_19

    .line 513
    iget-object v1, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->this$0:Lcom/google/android/exoplayer2/drm/DefaultDrmSession;

    iget-object v1, v1, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->callback:Lcom/google/android/exoplayer2/drm/MediaDrmCallback;

    iget-object v2, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->this$0:Lcom/google/android/exoplayer2/drm/DefaultDrmSession;

    iget-object v2, v2, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->uuid:Ljava/util/UUID;

    move-object v3, v0

    check-cast v3, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$KeyRequest;

    invoke-interface {v1, v2, v3}, Lcom/google/android/exoplayer2/drm/MediaDrmCallback;->executeKeyRequest(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/ExoMediaDrm$KeyRequest;)[B

    move-result-object v1

    .line 514
    .local v1, "response":Ljava/lang/Object;
    goto :goto_2f

    .line 516
    .end local v1    # "response":Ljava/lang/Object;
    :cond_19
    new-instance v1, Ljava/lang/RuntimeException;

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

    .end local v0    # "request":Ljava/lang/Object;
    .end local p1    # "msg":Landroid/os/Message;
    throw v1

    .line 510
    .restart local v0    # "request":Ljava/lang/Object;
    .restart local p1    # "msg":Landroid/os/Message;
    :cond_1f
    iget-object v1, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->this$0:Lcom/google/android/exoplayer2/drm/DefaultDrmSession;

    iget-object v1, v1, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->callback:Lcom/google/android/exoplayer2/drm/MediaDrmCallback;

    iget-object v2, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->this$0:Lcom/google/android/exoplayer2/drm/DefaultDrmSession;

    iget-object v2, v2, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->uuid:Ljava/util/UUID;

    move-object v3, v0

    check-cast v3, Lcom/google/android/exoplayer2/drm/ExoMediaDrm$ProvisionRequest;

    invoke-interface {v1, v2, v3}, Lcom/google/android/exoplayer2/drm/MediaDrmCallback;->executeProvisionRequest(Ljava/util/UUID;Lcom/google/android/exoplayer2/drm/ExoMediaDrm$ProvisionRequest;)[B

    move-result-object v1
    :try_end_2e
    .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2e} :catch_30

    .line 511
    .restart local v1    # "response":Ljava/lang/Object;
    nop

    .line 523
    :goto_2f
    goto :goto_39

    .line 518
    .end local v1    # "response":Ljava/lang/Object;
    :catch_30
    move-exception v1

    .line 519
    .local v1, "e":Ljava/lang/Exception;
    invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->maybeRetryRequest(Landroid/os/Message;)Z

    move-result v2

    if-eqz v2, :cond_38

    .line 520
    return-void

    .line 522
    :cond_38
    move-object v2, v1

    .line 524
    .local v1, "response":Ljava/lang/Object;
    :goto_39
    iget-object v2, p0, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->this$0:Lcom/google/android/exoplayer2/drm/DefaultDrmSession;

    iget-object v2, v2, Lcom/google/android/exoplayer2/drm/DefaultDrmSession;->postResponseHandler:Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostResponseHandler;

    iget v3, p1, Landroid/os/Message;->what:I

    invoke-static {v0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;

    move-result-object v4

    invoke-virtual {v2, v3, v4}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostResponseHandler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;

    move-result-object v2

    invoke-virtual {v2}, Landroid/os/Message;->sendToTarget()V

    .line 525
    return-void
.end method

.method post(ILjava/lang/Object;Z)V
    .registers 7
    .param p1, "what"    # I
    .param p2, "request"    # Ljava/lang/Object;
    .param p3, "allowRetry"    # Z

    .line 497
    .local p0, "this":Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;, "Lcom/google/android/exoplayer2/drm/DefaultDrmSession<TT;>.PostRequestHandler;"
    move v0, p3

    .line 498
    .local v0, "allowRetryInt":I
    const/4 v1, 0x0

    .line 499
    .local v1, "errorCount":I
    invoke-virtual {p0, p1, v0, v1, p2}, Lcom/google/android/exoplayer2/drm/DefaultDrmSession$PostRequestHandler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;

    move-result-object v2

    invoke-virtual {v2}, Landroid/os/Message;->sendToTarget()V

    .line 500
    return-void
.end method