.class public final Landroidx/core/os/CancellationSignal; .super Ljava/lang/Object; .source "CancellationSignal.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/core/os/CancellationSignal$OnCancelListener; } .end annotation # instance fields .field private mCancelInProgress:Z .field private mCancellationSignalObj:Ljava/lang/Object; .field private mIsCanceled:Z .field private mOnCancelListener:Landroidx/core/os/CancellationSignal$OnCancelListener; # direct methods .method public constructor ()V .registers 1 .line 35 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method private waitForCancelFinishedLocked()V .registers 2 .line 150 :catch_0 :goto_0 iget-boolean v0, p0, Landroidx/core/os/CancellationSignal;->mCancelInProgress:Z if-eqz v0, :cond_8 .line 152 :try_start_4 invoke-virtual {p0}, Ljava/lang/Object;->wait()V :try_end_7 .catch Ljava/lang/InterruptedException; {:try_start_4 .. :try_end_7} :catch_0 goto :goto_0 :cond_8 return-void .end method # virtual methods .method public cancel()V .registers 4 .line 67 monitor-enter p0 .line 68 :try_start_1 iget-boolean v0, p0, Landroidx/core/os/CancellationSignal;->mIsCanceled:Z if-eqz v0, :cond_7 .line 69 monitor-exit p0 return-void :cond_7 const/4 v0, 0x1 .line 71 iput-boolean v0, p0, Landroidx/core/os/CancellationSignal;->mIsCanceled:Z .line 72 iput-boolean v0, p0, Landroidx/core/os/CancellationSignal;->mCancelInProgress:Z .line 73 iget-object v0, p0, Landroidx/core/os/CancellationSignal;->mOnCancelListener:Landroidx/core/os/CancellationSignal$OnCancelListener; .line 74 iget-object v1, p0, Landroidx/core/os/CancellationSignal;->mCancellationSignalObj:Ljava/lang/Object; .line 75 monitor-exit p0 :try_end_11 .catchall {:try_start_1 .. :try_end_11} :catchall_38 const/4 v2, 0x0 if-eqz v0, :cond_1a .line 79 :try_start_14 invoke-interface {v0}, Landroidx/core/os/CancellationSignal$OnCancelListener;->onCancel()V goto :goto_1a :catchall_18 move-exception v0 goto :goto_22 :cond_1a :goto_1a if-eqz v1, :cond_2d .line 82 check-cast v1, Landroid/os/CancellationSignal; invoke-virtual {v1}, Landroid/os/CancellationSignal;->cancel()V :try_end_21 .catchall {:try_start_14 .. :try_end_21} :catchall_18 goto :goto_2d .line 85 :goto_22 monitor-enter p0 .line 86 :try_start_23 iput-boolean v2, p0, Landroidx/core/os/CancellationSignal;->mCancelInProgress:Z .line 87 invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V .line 88 monitor-exit p0 :try_end_29 .catchall {:try_start_23 .. :try_end_29} :catchall_2a throw v0 :catchall_2a move-exception v0 :try_start_2b monitor-exit p0 :try_end_2c .catchall {:try_start_2b .. :try_end_2c} :catchall_2a throw v0 .line 85 :cond_2d :goto_2d monitor-enter p0 .line 86 :try_start_2e iput-boolean v2, p0, Landroidx/core/os/CancellationSignal;->mCancelInProgress:Z .line 87 invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V .line 88 monitor-exit p0 return-void :catchall_35 move-exception v0 monitor-exit p0 :try_end_37 .catchall {:try_start_2e .. :try_end_37} :catchall_35 throw v0 :catchall_38 move-exception v0 .line 75 :try_start_39 monitor-exit p0 :try_end_3a .catchall {:try_start_39 .. :try_end_3a} :catchall_38 throw v0 .end method .method public getCancellationSignalObject()Ljava/lang/Object; .registers 3 .line 138 monitor-enter p0 .line 139 :try_start_1 iget-object v0, p0, Landroidx/core/os/CancellationSignal;->mCancellationSignalObj:Ljava/lang/Object; if-nez v0, :cond_16 .line 140 new-instance v0, Landroid/os/CancellationSignal; invoke-direct {v0}, Landroid/os/CancellationSignal;->()V iput-object v0, p0, Landroidx/core/os/CancellationSignal;->mCancellationSignalObj:Ljava/lang/Object; .line 141 iget-boolean v1, p0, Landroidx/core/os/CancellationSignal;->mIsCanceled:Z if-eqz v1, :cond_16 .line 142 move-object v1, v0 check-cast v1, Landroid/os/CancellationSignal; invoke-virtual {v0}, Landroid/os/CancellationSignal;->cancel()V .line 145 :cond_16 iget-object v0, p0, Landroidx/core/os/CancellationSignal;->mCancellationSignalObj:Ljava/lang/Object; monitor-exit p0 return-object v0 :catchall_1a move-exception v0 .line 146 monitor-exit p0 :try_end_1c .catchall {:try_start_1 .. :try_end_1c} :catchall_1a throw v0 .end method .method public isCanceled()Z .registers 2 .line 44 monitor-enter p0 .line 45 :try_start_1 iget-boolean v0, p0, Landroidx/core/os/CancellationSignal;->mIsCanceled:Z monitor-exit p0 return v0 :catchall_5 move-exception v0 .line 46 monitor-exit p0 :try_end_7 .catchall {:try_start_1 .. :try_end_7} :catchall_5 throw v0 .end method .method public setOnCancelListener(Landroidx/core/os/CancellationSignal$OnCancelListener;)V .registers 3 .line 109 monitor-enter p0 .line 110 :try_start_1 invoke-direct {p0}, Landroidx/core/os/CancellationSignal;->waitForCancelFinishedLocked()V .line 112 iget-object v0, p0, Landroidx/core/os/CancellationSignal;->mOnCancelListener:Landroidx/core/os/CancellationSignal$OnCancelListener; if-ne v0, p1, :cond_a .line 113 monitor-exit p0 return-void .line 115 :cond_a iput-object p1, p0, Landroidx/core/os/CancellationSignal;->mOnCancelListener:Landroidx/core/os/CancellationSignal$OnCancelListener; .line 116 iget-boolean v0, p0, Landroidx/core/os/CancellationSignal;->mIsCanceled:Z if-eqz v0, :cond_18 if-nez p1, :cond_13 goto :goto_18 .line 119 :cond_13 monitor-exit p0 :try_end_14 .catchall {:try_start_1 .. :try_end_14} :catchall_1a .line 120 invoke-interface {p1}, Landroidx/core/os/CancellationSignal$OnCancelListener;->onCancel()V return-void .line 117 :cond_18 :goto_18 :try_start_18 monitor-exit p0 return-void :catchall_1a move-exception p1 .line 119 monitor-exit p0 :try_end_1c .catchall {:try_start_18 .. :try_end_1c} :catchall_1a throw p1 .end method .method public throwIfCanceled()V .registers 2 .line 55 invoke-virtual {p0}, Landroidx/core/os/CancellationSignal;->isCanceled()Z move-result v0 if-nez v0, :cond_7 return-void .line 56 :cond_7 new-instance v0, Landroidx/core/os/OperationCanceledException; invoke-direct {v0}, Landroidx/core/os/OperationCanceledException;->()V throw v0 .end method