.class public Lcom/bumptech/glide/request/RequestFutureTarget; .super Ljava/lang/Object; .source "RequestFutureTarget.java" # interfaces .implements Lcom/bumptech/glide/request/FutureTarget; .implements Lcom/bumptech/glide/request/RequestListener; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Ljava/lang/Object;", "Lcom/bumptech/glide/request/FutureTarget<", "TR;>;", "Lcom/bumptech/glide/request/RequestListener<", "TR;>;" } .end annotation # static fields .field private static final DEFAULT_WAITER:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; # instance fields .field private final assertBackgroundThread:Z .field private exception:Lcom/bumptech/glide/load/engine/GlideException; .field private final height:I .field private isCancelled:Z .field private loadFailed:Z .field private request:Lcom/bumptech/glide/request/Request; .field private resource:Ljava/lang/Object; .annotation system Ldalvik/annotation/Signature; value = { "TR;" } .end annotation .end field .field private resultReceived:Z .field private final waiter:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; .field private final width:I # direct methods .method static constructor ()V .registers 1 .line 54 new-instance v0, Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; invoke-direct {v0}, Lcom/bumptech/glide/request/RequestFutureTarget$Waiter;->()V sput-object v0, Lcom/bumptech/glide/request/RequestFutureTarget;->DEFAULT_WAITER:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; return-void .end method .method public constructor (II)V .registers 5 const/4 v0, 0x1 .line 71 sget-object v1, Lcom/bumptech/glide/request/RequestFutureTarget;->DEFAULT_WAITER:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; invoke-direct {p0, p1, p2, v0, v1}, Lcom/bumptech/glide/request/RequestFutureTarget;->(IIZLcom/bumptech/glide/request/RequestFutureTarget$Waiter;)V return-void .end method .method constructor (IIZLcom/bumptech/glide/request/RequestFutureTarget$Waiter;)V .registers 5 .line 74 invoke-direct {p0}, Ljava/lang/Object;->()V .line 75 iput p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->width:I .line 76 iput p2, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->height:I .line 77 iput-boolean p3, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->assertBackgroundThread:Z .line 78 iput-object p4, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->waiter:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; return-void .end method .method private declared-synchronized doGet(Ljava/lang/Long;)Ljava/lang/Object; .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Long;", ")TR;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/util/concurrent/ExecutionException;, Ljava/lang/InterruptedException;, Ljava/util/concurrent/TimeoutException; } .end annotation monitor-enter p0 .line 179 :try_start_1 iget-boolean v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->assertBackgroundThread:Z if-eqz v0, :cond_e invoke-virtual {p0}, Lcom/bumptech/glide/request/RequestFutureTarget;->isDone()Z move-result v0 if-nez v0, :cond_e .line 180 invoke-static {}, Lcom/bumptech/glide/util/Util;->assertBackgroundThread()V .line 183 :cond_e iget-boolean v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->isCancelled:Z if-nez v0, :cond_87 .line 185 iget-boolean v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->loadFailed:Z if-nez v0, :cond_7f .line 187 iget-boolean v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->resultReceived:Z if-eqz v0, :cond_1e .line 188 iget-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->resource:Ljava/lang/Object; :try_end_1c .catchall {:try_start_1 .. :try_end_1c} :catchall_8d monitor-exit p0 return-object p1 :cond_1e const-wide/16 v0, 0x0 if-nez p1, :cond_28 .line 192 :try_start_22 iget-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->waiter:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; invoke-virtual {p1, p0, v0, v1}, Lcom/bumptech/glide/request/RequestFutureTarget$Waiter;->waitForTimeout(Ljava/lang/Object;J)V goto :goto_4f .line 193 :cond_28 invoke-virtual {p1}, Ljava/lang/Long;->longValue()J move-result-wide v2 cmp-long v0, v2, v0 if-lez v0, :cond_4f .line 194 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v0 .line 195 invoke-virtual {p1}, Ljava/lang/Long;->longValue()J move-result-wide v2 add-long/2addr v2, v0 .line 196 :goto_39 invoke-virtual {p0}, Lcom/bumptech/glide/request/RequestFutureTarget;->isDone()Z move-result p1 if-nez p1, :cond_4f cmp-long p1, v0, v2 if-gez p1, :cond_4f .line 197 iget-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->waiter:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; sub-long v0, v2, v0 invoke-virtual {p1, p0, v0, v1}, Lcom/bumptech/glide/request/RequestFutureTarget$Waiter;->waitForTimeout(Ljava/lang/Object;J)V .line 198 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v0 goto :goto_39 .line 202 :cond_4f :goto_4f invoke-static {}, Ljava/lang/Thread;->interrupted()Z move-result p1 if-nez p1, :cond_79 .line 204 iget-boolean p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->loadFailed:Z if-nez p1, :cond_71 .line 206 iget-boolean p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->isCancelled:Z if-nez p1, :cond_6b .line 208 iget-boolean p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->resultReceived:Z if-eqz p1, :cond_65 .line 212 iget-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->resource:Ljava/lang/Object; :try_end_63 .catchall {:try_start_22 .. :try_end_63} :catchall_8d monitor-exit p0 return-object p1 .line 209 :cond_65 :try_start_65 new-instance p1, Ljava/util/concurrent/TimeoutException; invoke-direct {p1}, Ljava/util/concurrent/TimeoutException;->()V throw p1 .line 207 :cond_6b new-instance p1, Ljava/util/concurrent/CancellationException; invoke-direct {p1}, Ljava/util/concurrent/CancellationException;->()V throw p1 .line 205 :cond_71 new-instance p1, Ljava/util/concurrent/ExecutionException; iget-object v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->exception:Lcom/bumptech/glide/load/engine/GlideException; invoke-direct {p1, v0}, Ljava/util/concurrent/ExecutionException;->(Ljava/lang/Throwable;)V throw p1 .line 203 :cond_79 new-instance p1, Ljava/lang/InterruptedException; invoke-direct {p1}, Ljava/lang/InterruptedException;->()V throw p1 .line 186 :cond_7f new-instance p1, Ljava/util/concurrent/ExecutionException; iget-object v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->exception:Lcom/bumptech/glide/load/engine/GlideException; invoke-direct {p1, v0}, Ljava/util/concurrent/ExecutionException;->(Ljava/lang/Throwable;)V throw p1 .line 184 :cond_87 new-instance p1, Ljava/util/concurrent/CancellationException; invoke-direct {p1}, Ljava/util/concurrent/CancellationException;->()V throw p1 :catchall_8d move-exception p1 monitor-exit p0 :try_end_8f .catchall {:try_start_65 .. :try_end_8f} :catchall_8d throw p1 .end method # virtual methods .method public declared-synchronized cancel(Z)Z .registers 4 monitor-enter p0 .line 83 :try_start_1 invoke-virtual {p0}, Lcom/bumptech/glide/request/RequestFutureTarget;->isDone()Z move-result v0 :try_end_5 .catchall {:try_start_1 .. :try_end_5} :catchall_20 if-eqz v0, :cond_a .line 84 monitor-exit p0 const/4 p1, 0x0 return p1 :cond_a const/4 v0, 0x1 .line 86 :try_start_b iput-boolean v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->isCancelled:Z .line 87 iget-object v1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->waiter:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; invoke-virtual {v1, p0}, Lcom/bumptech/glide/request/RequestFutureTarget$Waiter;->notifyAll(Ljava/lang/Object;)V if-eqz p1, :cond_1e .line 88 iget-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->request:Lcom/bumptech/glide/request/Request; if-eqz p1, :cond_1e .line 89 invoke-interface {p1}, Lcom/bumptech/glide/request/Request;->clear()V const/4 p1, 0x0 .line 90 iput-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->request:Lcom/bumptech/glide/request/Request; :try_end_1e .catchall {:try_start_b .. :try_end_1e} :catchall_20 .line 92 :cond_1e monitor-exit p0 return v0 :catchall_20 move-exception p1 :try_start_21 monitor-exit p0 :try_end_22 .catchall {:try_start_21 .. :try_end_22} :catchall_20 throw p1 .end method .method public get()Ljava/lang/Object; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "()TR;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/InterruptedException;, Ljava/util/concurrent/ExecutionException; } .end annotation const/4 v0, 0x0 .line 108 :try_start_1 invoke-direct {p0, v0}, Lcom/bumptech/glide/request/RequestFutureTarget;->doGet(Ljava/lang/Long;)Ljava/lang/Object; move-result-object v0 :try_end_5 .catch Ljava/util/concurrent/TimeoutException; {:try_start_1 .. :try_end_5} :catch_6 return-object v0 :catch_6 move-exception v0 .line 110 new-instance v1, Ljava/lang/AssertionError; invoke-direct {v1, v0}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V throw v1 .end method .method public get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(J", "Ljava/util/concurrent/TimeUnit;", ")TR;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/InterruptedException;, Ljava/util/concurrent/ExecutionException;, Ljava/util/concurrent/TimeoutException; } .end annotation .line 117 invoke-virtual {p3, p1, p2}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J move-result-wide p1 invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object p1 invoke-direct {p0, p1}, Lcom/bumptech/glide/request/RequestFutureTarget;->doGet(Ljava/lang/Long;)Ljava/lang/Object; move-result-object p1 return-object p1 .end method .method public declared-synchronized getRequest()Lcom/bumptech/glide/request/Request; .registers 2 monitor-enter p0 .line 141 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->request:Lcom/bumptech/glide/request/Request; :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_5 monitor-exit p0 return-object v0 :catchall_5 move-exception v0 :try_start_6 monitor-exit p0 :try_end_7 .catchall {:try_start_6 .. :try_end_7} :catchall_5 throw v0 .end method .method public getSize(Lcom/bumptech/glide/request/target/SizeReadyCallback;)V .registers 4 .line 125 iget v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->width:I iget v1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->height:I invoke-interface {p1, v0, v1}, Lcom/bumptech/glide/request/target/SizeReadyCallback;->onSizeReady(II)V return-void .end method .method public declared-synchronized isCancelled()Z .registers 2 monitor-enter p0 .line 97 :try_start_1 iget-boolean v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->isCancelled:Z :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_5 monitor-exit p0 return v0 :catchall_5 move-exception v0 :try_start_6 monitor-exit p0 :try_end_7 .catchall {:try_start_6 .. :try_end_7} :catchall_5 throw v0 .end method .method public declared-synchronized isDone()Z .registers 2 monitor-enter p0 .line 102 :try_start_1 iget-boolean v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->isCancelled:Z if-nez v0, :cond_10 iget-boolean v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->resultReceived:Z if-nez v0, :cond_10 iget-boolean v0, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->loadFailed:Z :try_end_b .catchall {:try_start_1 .. :try_end_b} :catchall_13 if-eqz v0, :cond_e goto :goto_10 :cond_e const/4 v0, 0x0 goto :goto_11 :cond_10 :goto_10 const/4 v0, 0x1 :goto_11 monitor-exit p0 return v0 :catchall_13 move-exception v0 :try_start_14 monitor-exit p0 :try_end_15 .catchall {:try_start_14 .. :try_end_15} :catchall_13 throw v0 .end method .method public onDestroy()V .registers 1 return-void .end method .method public onLoadCleared(Landroid/graphics/drawable/Drawable;)V .registers 2 return-void .end method .method public declared-synchronized onLoadFailed(Landroid/graphics/drawable/Drawable;)V .registers 2 monitor-enter p0 .line 166 monitor-exit p0 return-void .end method .method public declared-synchronized onLoadFailed(Lcom/bumptech/glide/load/engine/GlideException;Ljava/lang/Object;Lcom/bumptech/glide/request/target/Target;Z)Z .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/GlideException;", "Ljava/lang/Object;", "Lcom/bumptech/glide/request/target/Target<", "TR;>;Z)Z" } .end annotation monitor-enter p0 const/4 p2, 0x1 .line 233 :try_start_2 iput-boolean p2, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->loadFailed:Z .line 234 iput-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->exception:Lcom/bumptech/glide/load/engine/GlideException; .line 235 iget-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->waiter:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; invoke-virtual {p1, p0}, Lcom/bumptech/glide/request/RequestFutureTarget$Waiter;->notifyAll(Ljava/lang/Object;)V :try_end_b .catchall {:try_start_2 .. :try_end_b} :catchall_e .line 236 monitor-exit p0 const/4 p1, 0x0 return p1 :catchall_e move-exception p1 :try_start_f monitor-exit p0 :try_end_10 .catchall {:try_start_f .. :try_end_10} :catchall_e throw p1 .end method .method public onLoadStarted(Landroid/graphics/drawable/Drawable;)V .registers 2 return-void .end method .method public declared-synchronized onResourceReady(Ljava/lang/Object;Lcom/bumptech/glide/request/transition/Transition;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(TR;", "Lcom/bumptech/glide/request/transition/Transition<", "-TR;>;)V" } .end annotation monitor-enter p0 .line 175 monitor-exit p0 return-void .end method .method public declared-synchronized onResourceReady(Ljava/lang/Object;Ljava/lang/Object;Lcom/bumptech/glide/request/target/Target;Lcom/bumptech/glide/load/DataSource;Z)Z .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(TR;", "Ljava/lang/Object;", "Lcom/bumptech/glide/request/target/Target<", "TR;>;", "Lcom/bumptech/glide/load/DataSource;", "Z)Z" } .end annotation monitor-enter p0 const/4 p2, 0x1 .line 243 :try_start_2 iput-boolean p2, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->resultReceived:Z .line 244 iput-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->resource:Ljava/lang/Object; .line 245 iget-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->waiter:Lcom/bumptech/glide/request/RequestFutureTarget$Waiter; invoke-virtual {p1, p0}, Lcom/bumptech/glide/request/RequestFutureTarget$Waiter;->notifyAll(Ljava/lang/Object;)V :try_end_b .catchall {:try_start_2 .. :try_end_b} :catchall_e .line 246 monitor-exit p0 const/4 p1, 0x0 return p1 :catchall_e move-exception p1 :try_start_f monitor-exit p0 :try_end_10 .catchall {:try_start_f .. :try_end_10} :catchall_e throw p1 .end method .method public onStart()V .registers 1 return-void .end method .method public onStop()V .registers 1 return-void .end method .method public removeCallback(Lcom/bumptech/glide/request/target/SizeReadyCallback;)V .registers 2 return-void .end method .method public declared-synchronized setRequest(Lcom/bumptech/glide/request/Request;)V .registers 2 monitor-enter p0 .line 135 :try_start_1 iput-object p1, p0, Lcom/bumptech/glide/request/RequestFutureTarget;->request:Lcom/bumptech/glide/request/Request; :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_5 .line 136 monitor-exit p0 return-void :catchall_5 move-exception p1 :try_start_6 monitor-exit p0 :try_end_7 .catchall {:try_start_6 .. :try_end_7} :catchall_5 throw p1 .end method