.class Lcom/squareup/picasso/DeferredRequestCreator; .super Ljava/lang/Object; .source "DeferredRequestCreator.java" # interfaces .implements Landroid/view/ViewTreeObserver$OnPreDrawListener; .implements Landroid/view/View$OnAttachStateChangeListener; # instance fields .field callback:Lcom/squareup/picasso/Callback; .field private final creator:Lcom/squareup/picasso/RequestCreator; .field final target:Ljava/lang/ref/WeakReference; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ref/WeakReference<", "Landroid/widget/ImageView;", ">;" } .end annotation .end field # direct methods .method constructor (Lcom/squareup/picasso/RequestCreator;Landroid/widget/ImageView;Lcom/squareup/picasso/Callback;)V .registers 4 .line 31 invoke-direct {p0}, Ljava/lang/Object;->()V .line 32 iput-object p1, p0, Lcom/squareup/picasso/DeferredRequestCreator;->creator:Lcom/squareup/picasso/RequestCreator; .line 33 new-instance p1, Ljava/lang/ref/WeakReference; invoke-direct {p1, p2}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V iput-object p1, p0, Lcom/squareup/picasso/DeferredRequestCreator;->target:Ljava/lang/ref/WeakReference; .line 34 iput-object p3, p0, Lcom/squareup/picasso/DeferredRequestCreator;->callback:Lcom/squareup/picasso/Callback; .line 36 invoke-virtual {p2, p0}, Landroid/widget/ImageView;->addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V .line 40 invoke-virtual {p2}, Landroid/widget/ImageView;->getWindowToken()Landroid/os/IBinder; move-result-object p1 if-eqz p1, :cond_1a .line 41 invoke-virtual {p0, p2}, Lcom/squareup/picasso/DeferredRequestCreator;->onViewAttachedToWindow(Landroid/view/View;)V :cond_1a return-void .end method # virtual methods .method cancel()V .registers 3 .line 80 iget-object v0, p0, Lcom/squareup/picasso/DeferredRequestCreator;->creator:Lcom/squareup/picasso/RequestCreator; invoke-virtual {v0}, Lcom/squareup/picasso/RequestCreator;->clearTag()Lcom/squareup/picasso/RequestCreator; const/4 v0, 0x0 .line 81 iput-object v0, p0, Lcom/squareup/picasso/DeferredRequestCreator;->callback:Lcom/squareup/picasso/Callback; .line 83 iget-object v0, p0, Lcom/squareup/picasso/DeferredRequestCreator;->target:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/widget/ImageView; if-nez v0, :cond_13 return-void .line 87 :cond_13 iget-object v1, p0, Lcom/squareup/picasso/DeferredRequestCreator;->target:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->clear()V .line 89 invoke-virtual {v0, p0}, Landroid/widget/ImageView;->removeOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V .line 91 invoke-virtual {v0}, Landroid/widget/ImageView;->getViewTreeObserver()Landroid/view/ViewTreeObserver; move-result-object v0 .line 92 invoke-virtual {v0}, Landroid/view/ViewTreeObserver;->isAlive()Z move-result v1 if-eqz v1, :cond_28 .line 93 invoke-virtual {v0, p0}, Landroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V :cond_28 return-void .end method .method getTag()Ljava/lang/Object; .registers 2 .line 98 iget-object v0, p0, Lcom/squareup/picasso/DeferredRequestCreator;->creator:Lcom/squareup/picasso/RequestCreator; invoke-virtual {v0}, Lcom/squareup/picasso/RequestCreator;->getTag()Ljava/lang/Object; move-result-object v0 return-object v0 .end method .method public onPreDraw()Z .registers 6 .line 54 iget-object v0, p0, Lcom/squareup/picasso/DeferredRequestCreator;->target:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/widget/ImageView; const/4 v1, 0x1 if-nez v0, :cond_c return v1 .line 59 :cond_c invoke-virtual {v0}, Landroid/widget/ImageView;->getViewTreeObserver()Landroid/view/ViewTreeObserver; move-result-object v2 .line 60 invoke-virtual {v2}, Landroid/view/ViewTreeObserver;->isAlive()Z move-result v3 if-nez v3, :cond_17 return v1 .line 64 :cond_17 invoke-virtual {v0}, Landroid/widget/ImageView;->getWidth()I move-result v3 .line 65 invoke-virtual {v0}, Landroid/widget/ImageView;->getHeight()I move-result v4 if-lez v3, :cond_3e if-gtz v4, :cond_24 goto :goto_3e .line 71 :cond_24 invoke-virtual {v0, p0}, Landroid/widget/ImageView;->removeOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V .line 72 invoke-virtual {v2, p0}, Landroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V .line 73 iget-object v2, p0, Lcom/squareup/picasso/DeferredRequestCreator;->target:Ljava/lang/ref/WeakReference; invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->clear()V .line 75 iget-object v2, p0, Lcom/squareup/picasso/DeferredRequestCreator;->creator:Lcom/squareup/picasso/RequestCreator; invoke-virtual {v2}, Lcom/squareup/picasso/RequestCreator;->unfit()Lcom/squareup/picasso/RequestCreator; move-result-object v2 invoke-virtual {v2, v3, v4}, Lcom/squareup/picasso/RequestCreator;->resize(II)Lcom/squareup/picasso/RequestCreator; move-result-object v2 iget-object v3, p0, Lcom/squareup/picasso/DeferredRequestCreator;->callback:Lcom/squareup/picasso/Callback; invoke-virtual {v2, v0, v3}, Lcom/squareup/picasso/RequestCreator;->into(Landroid/widget/ImageView;Lcom/squareup/picasso/Callback;)V :cond_3e :goto_3e return v1 .end method .method public onViewAttachedToWindow(Landroid/view/View;)V .registers 2 .line 46 invoke-virtual {p1}, Landroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver; move-result-object p1 invoke-virtual {p1, p0}, Landroid/view/ViewTreeObserver;->addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V return-void .end method .method public onViewDetachedFromWindow(Landroid/view/View;)V .registers 2 .line 50 invoke-virtual {p1}, Landroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver; move-result-object p1 invoke-virtual {p1, p0}, Landroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V return-void .end method