.class Lcom/squareup/picasso/BitmapHunter; .super Ljava/lang/Object; .source "BitmapHunter.java" # interfaces .implements Ljava/lang/Runnable; # static fields .field private static final DECODE_LOCK:Ljava/lang/Object; .field private static final ERRORING_HANDLER:Lcom/squareup/picasso/RequestHandler; .field private static final NAME_BUILDER:Ljava/lang/ThreadLocal; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ThreadLocal<", "Ljava/lang/StringBuilder;", ">;" } .end annotation .end field .field private static final SEQUENCE_GENERATOR:Ljava/util/concurrent/atomic/AtomicInteger; # instance fields .field action:Lcom/squareup/picasso/Action; .field actions:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Lcom/squareup/picasso/Action;", ">;" } .end annotation .end field .field final cache:Lcom/squareup/picasso/Cache; .field final data:Lcom/squareup/picasso/Request; .field final dispatcher:Lcom/squareup/picasso/Dispatcher; .field exception:Ljava/lang/Exception; .field exifOrientation:I .field future:Ljava/util/concurrent/Future; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/concurrent/Future<", "*>;" } .end annotation .end field .field final key:Ljava/lang/String; .field loadedFrom:Lcom/squareup/picasso/Picasso$LoadedFrom; .field final memoryPolicy:I .field networkPolicy:I .field final picasso:Lcom/squareup/picasso/Picasso; .field priority:Lcom/squareup/picasso/Picasso$Priority; .field final requestHandler:Lcom/squareup/picasso/RequestHandler; .field result:Landroid/graphics/Bitmap; .field retryCount:I .field final sequence:I .field final stats:Lcom/squareup/picasso/Stats; # direct methods .method static constructor ()V .registers 1 .line 62 new-instance v0, Ljava/lang/Object; invoke-direct {v0}, Ljava/lang/Object;->()V sput-object v0, Lcom/squareup/picasso/BitmapHunter;->DECODE_LOCK:Ljava/lang/Object; .line 64 new-instance v0, Lcom/squareup/picasso/BitmapHunter$1; invoke-direct {v0}, Lcom/squareup/picasso/BitmapHunter$1;->()V sput-object v0, Lcom/squareup/picasso/BitmapHunter;->NAME_BUILDER:Ljava/lang/ThreadLocal; .line 70 new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger; invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->()V sput-object v0, Lcom/squareup/picasso/BitmapHunter;->SEQUENCE_GENERATOR:Ljava/util/concurrent/atomic/AtomicInteger; .line 72 new-instance v0, Lcom/squareup/picasso/BitmapHunter$2; invoke-direct {v0}, Lcom/squareup/picasso/BitmapHunter$2;->()V sput-object v0, Lcom/squareup/picasso/BitmapHunter;->ERRORING_HANDLER:Lcom/squareup/picasso/RequestHandler; return-void .end method .method constructor (Lcom/squareup/picasso/Picasso;Lcom/squareup/picasso/Dispatcher;Lcom/squareup/picasso/Cache;Lcom/squareup/picasso/Stats;Lcom/squareup/picasso/Action;Lcom/squareup/picasso/RequestHandler;)V .registers 8 .line 104 invoke-direct {p0}, Ljava/lang/Object;->()V .line 105 sget-object v0, Lcom/squareup/picasso/BitmapHunter;->SEQUENCE_GENERATOR:Ljava/util/concurrent/atomic/AtomicInteger; invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->incrementAndGet()I move-result v0 iput v0, p0, Lcom/squareup/picasso/BitmapHunter;->sequence:I .line 106 iput-object p1, p0, Lcom/squareup/picasso/BitmapHunter;->picasso:Lcom/squareup/picasso/Picasso; .line 107 iput-object p2, p0, Lcom/squareup/picasso/BitmapHunter;->dispatcher:Lcom/squareup/picasso/Dispatcher; .line 108 iput-object p3, p0, Lcom/squareup/picasso/BitmapHunter;->cache:Lcom/squareup/picasso/Cache; .line 109 iput-object p4, p0, Lcom/squareup/picasso/BitmapHunter;->stats:Lcom/squareup/picasso/Stats; .line 110 iput-object p5, p0, Lcom/squareup/picasso/BitmapHunter;->action:Lcom/squareup/picasso/Action; .line 111 invoke-virtual {p5}, Lcom/squareup/picasso/Action;->getKey()Ljava/lang/String; move-result-object p1 iput-object p1, p0, Lcom/squareup/picasso/BitmapHunter;->key:Ljava/lang/String; .line 112 invoke-virtual {p5}, Lcom/squareup/picasso/Action;->getRequest()Lcom/squareup/picasso/Request; move-result-object p1 iput-object p1, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; .line 113 invoke-virtual {p5}, Lcom/squareup/picasso/Action;->getPriority()Lcom/squareup/picasso/Picasso$Priority; move-result-object p1 iput-object p1, p0, Lcom/squareup/picasso/BitmapHunter;->priority:Lcom/squareup/picasso/Picasso$Priority; .line 114 invoke-virtual {p5}, Lcom/squareup/picasso/Action;->getMemoryPolicy()I move-result p1 iput p1, p0, Lcom/squareup/picasso/BitmapHunter;->memoryPolicy:I .line 115 invoke-virtual {p5}, Lcom/squareup/picasso/Action;->getNetworkPolicy()I move-result p1 iput p1, p0, Lcom/squareup/picasso/BitmapHunter;->networkPolicy:I .line 116 iput-object p6, p0, Lcom/squareup/picasso/BitmapHunter;->requestHandler:Lcom/squareup/picasso/RequestHandler; .line 117 invoke-virtual {p6}, Lcom/squareup/picasso/RequestHandler;->getRetryCount()I move-result p1 iput p1, p0, Lcom/squareup/picasso/BitmapHunter;->retryCount:I return-void .end method .method static applyCustomTransformations(Ljava/util/List;Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap; .registers 8 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/List<", "Lcom/squareup/picasso/Transformation;", ">;", "Landroid/graphics/Bitmap;", ")", "Landroid/graphics/Bitmap;" } .end annotation .line 441 invoke-interface {p0}, Ljava/util/List;->size()I move-result v0 const/4 v1, 0x0 :goto_5 if-ge v1, v0, :cond_97 .line 442 invoke-interface {p0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/squareup/picasso/Transformation; const/4 v3, 0x0 .line 445 :try_start_e invoke-interface {v2, p1}, Lcom/squareup/picasso/Transformation;->transform(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap; move-result-object v4 :try_end_12 .catch Ljava/lang/RuntimeException; {:try_start_e .. :try_end_12} :catch_8b if-nez v4, :cond_60 .line 457 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1}, Ljava/lang/StringBuilder;->()V const-string v0, "Transformation " .line 458 invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 .line 459 invoke-interface {v2}, Lcom/squareup/picasso/Transformation;->key()Ljava/lang/String; move-result-object v0 invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 const-string v0, " returned null after " .line 460 invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 .line 461 invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p1 const-string v0, " previous transformation(s).\n\nTransformation list:\n" .line 462 invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 .line 463 invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object p0 :goto_3b invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_55 invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/squareup/picasso/Transformation; .line 464 invoke-interface {v0}, Lcom/squareup/picasso/Transformation;->key()Ljava/lang/String; move-result-object v0 invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const/16 v1, 0xa invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; goto :goto_3b .line 466 :cond_55 sget-object p0, Lcom/squareup/picasso/Picasso;->HANDLER:Landroid/os/Handler; new-instance v0, Lcom/squareup/picasso/BitmapHunter$4; invoke-direct {v0, p1}, Lcom/squareup/picasso/BitmapHunter$4;->(Ljava/lang/StringBuilder;)V invoke-virtual {p0, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z return-object v3 :cond_60 if-ne v4, p1, :cond_73 .line 474 invoke-virtual {p1}, Landroid/graphics/Bitmap;->isRecycled()Z move-result v5 if-eqz v5, :cond_73 .line 475 sget-object p0, Lcom/squareup/picasso/Picasso;->HANDLER:Landroid/os/Handler; new-instance p1, Lcom/squareup/picasso/BitmapHunter$5; invoke-direct {p1, v2}, Lcom/squareup/picasso/BitmapHunter$5;->(Lcom/squareup/picasso/Transformation;)V invoke-virtual {p0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z return-object v3 :cond_73 if-eq v4, p1, :cond_86 .line 486 invoke-virtual {p1}, Landroid/graphics/Bitmap;->isRecycled()Z move-result p1 if-nez p1, :cond_86 .line 487 sget-object p0, Lcom/squareup/picasso/Picasso;->HANDLER:Landroid/os/Handler; new-instance p1, Lcom/squareup/picasso/BitmapHunter$6; invoke-direct {p1, v2}, Lcom/squareup/picasso/BitmapHunter$6;->(Lcom/squareup/picasso/Transformation;)V invoke-virtual {p0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z return-object v3 :cond_86 add-int/lit8 v1, v1, 0x1 move-object p1, v4 goto/16 :goto_5 :catch_8b move-exception p0 .line 447 sget-object p1, Lcom/squareup/picasso/Picasso;->HANDLER:Landroid/os/Handler; new-instance v0, Lcom/squareup/picasso/BitmapHunter$3; invoke-direct {v0, v2, p0}, Lcom/squareup/picasso/BitmapHunter$3;->(Lcom/squareup/picasso/Transformation;Ljava/lang/RuntimeException;)V invoke-virtual {p1, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z return-object v3 :cond_97 return-object p1 .end method .method private computeNewPriority()Lcom/squareup/picasso/Picasso$Priority; .registers 7 .line 322 sget-object v0, Lcom/squareup/picasso/Picasso$Priority;->LOW:Lcom/squareup/picasso/Picasso$Priority; .line 324 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; const/4 v2, 0x0 if-eqz v1, :cond_f invoke-interface {v1}, Ljava/util/List;->isEmpty()Z move-result v1 if-nez v1, :cond_f const/4 v1, 0x1 goto :goto_10 :cond_f move v1, v2 .line 325 :goto_10 iget-object v3, p0, Lcom/squareup/picasso/BitmapHunter;->action:Lcom/squareup/picasso/Action; if-nez v3, :cond_18 if-eqz v1, :cond_17 goto :goto_18 :cond_17 return-object v0 :cond_18 :goto_18 if-eqz v3, :cond_1e .line 333 invoke-virtual {v3}, Lcom/squareup/picasso/Action;->getPriority()Lcom/squareup/picasso/Picasso$Priority; move-result-object v0 :cond_1e if-eqz v1, :cond_42 .line 338 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; invoke-interface {v1}, Ljava/util/List;->size()I move-result v1 :goto_26 if-ge v2, v1, :cond_42 .line 339 iget-object v3, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; invoke-interface {v3, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v3 check-cast v3, Lcom/squareup/picasso/Action; invoke-virtual {v3}, Lcom/squareup/picasso/Action;->getPriority()Lcom/squareup/picasso/Picasso$Priority; move-result-object v3 .line 340 invoke-virtual {v3}, Lcom/squareup/picasso/Picasso$Priority;->ordinal()I move-result v4 invoke-virtual {v0}, Lcom/squareup/picasso/Picasso$Priority;->ordinal()I move-result v5 if-le v4, v5, :cond_3f move-object v0, v3 :cond_3f add-int/lit8 v2, v2, 0x1 goto :goto_26 :cond_42 return-object v0 .end method .method static decodeStream(Lokio/Source;Lcom/squareup/picasso/Request;)Landroid/graphics/Bitmap; .registers 8 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 126 invoke-static {p0}, Lokio/Okio;->buffer(Lokio/Source;)Lokio/BufferedSource; move-result-object p0 .line 128 invoke-static {p0}, Lcom/squareup/picasso/Utils;->isWebPFile(Lokio/BufferedSource;)Z move-result v0 .line 129 iget-boolean v1, p1, Lcom/squareup/picasso/Request;->purgeable:Z .line 130 invoke-static {p1}, Lcom/squareup/picasso/RequestHandler;->createBitmapOptions(Lcom/squareup/picasso/Request;)Landroid/graphics/BitmapFactory$Options; move-result-object v1 .line 131 invoke-static {v1}, Lcom/squareup/picasso/RequestHandler;->requiresInSampleSize(Landroid/graphics/BitmapFactory$Options;)Z move-result v2 const/4 v3, 0x0 if-nez v0, :cond_4b .line 145 invoke-interface {p0}, Lokio/BufferedSource;->inputStream()Ljava/io/InputStream; move-result-object p0 const/4 v0, 0x0 if-eqz v2, :cond_3c .line 148 new-instance v2, Lcom/squareup/picasso/MarkableInputStream; invoke-direct {v2, p0}, Lcom/squareup/picasso/MarkableInputStream;->(Ljava/io/InputStream;)V .line 150 invoke-virtual {v2, v3}, Lcom/squareup/picasso/MarkableInputStream;->allowMarksToExpire(Z)V const/16 p0, 0x400 .line 151 invoke-virtual {v2, p0}, Lcom/squareup/picasso/MarkableInputStream;->savePosition(I)J move-result-wide v3 .line 152 invoke-static {v2, v0, v1}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; .line 153 iget p0, p1, Lcom/squareup/picasso/Request;->targetWidth:I iget v5, p1, Lcom/squareup/picasso/Request;->targetHeight:I invoke-static {p0, v5, v1, p1}, Lcom/squareup/picasso/RequestHandler;->calculateInSampleSize(IILandroid/graphics/BitmapFactory$Options;Lcom/squareup/picasso/Request;)V .line 155 invoke-virtual {v2, v3, v4}, Lcom/squareup/picasso/MarkableInputStream;->reset(J)V const/4 p0, 0x1 .line 156 invoke-virtual {v2, p0}, Lcom/squareup/picasso/MarkableInputStream;->allowMarksToExpire(Z)V move-object p0, v2 .line 158 :cond_3c invoke-static {p0, v0, v1}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; move-result-object p0 if-eqz p0, :cond_43 return-object p0 .line 161 :cond_43 new-instance p0, Ljava/io/IOException; const-string p1, "Failed to decode stream." invoke-direct {p0, p1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p0 .line 137 :cond_4b invoke-interface {p0}, Lokio/BufferedSource;->readByteArray()[B move-result-object p0 if-eqz v2, :cond_5c .line 139 array-length v0, p0 invoke-static {p0, v3, v0, v1}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; .line 140 iget v0, p1, Lcom/squareup/picasso/Request;->targetWidth:I iget v2, p1, Lcom/squareup/picasso/Request;->targetHeight:I invoke-static {v0, v2, v1, p1}, Lcom/squareup/picasso/RequestHandler;->calculateInSampleSize(IILandroid/graphics/BitmapFactory$Options;Lcom/squareup/picasso/Request;)V .line 143 :cond_5c array-length p1, p0 invoke-static {p0, v3, p1, v1}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; move-result-object p0 return-object p0 .end method .method static forRequest(Lcom/squareup/picasso/Picasso;Lcom/squareup/picasso/Dispatcher;Lcom/squareup/picasso/Cache;Lcom/squareup/picasso/Stats;Lcom/squareup/picasso/Action;)Lcom/squareup/picasso/BitmapHunter; .registers 17 .line 425 invoke-virtual/range {p4 .. p4}, Lcom/squareup/picasso/Action;->getRequest()Lcom/squareup/picasso/Request; move-result-object v0 .line 426 invoke-virtual {p0}, Lcom/squareup/picasso/Picasso;->getRequestHandlers()Ljava/util/List; move-result-object v1 .line 430 invoke-interface {v1}, Ljava/util/List;->size()I move-result v2 const/4 v3, 0x0 :goto_d if-ge v3, v2, :cond_2c .line 431 invoke-interface {v1, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v4 move-object v11, v4 check-cast v11, Lcom/squareup/picasso/RequestHandler; .line 432 invoke-virtual {v11, v0}, Lcom/squareup/picasso/RequestHandler;->canHandleRequest(Lcom/squareup/picasso/Request;)Z move-result v4 if-eqz v4, :cond_29 .line 433 new-instance v0, Lcom/squareup/picasso/BitmapHunter; move-object v5, v0 move-object v6, p0 move-object v7, p1 move-object v8, p2 move-object v9, p3 move-object/from16 v10, p4 invoke-direct/range {v5 .. v11}, Lcom/squareup/picasso/BitmapHunter;->(Lcom/squareup/picasso/Picasso;Lcom/squareup/picasso/Dispatcher;Lcom/squareup/picasso/Cache;Lcom/squareup/picasso/Stats;Lcom/squareup/picasso/Action;Lcom/squareup/picasso/RequestHandler;)V return-object v0 :cond_29 add-int/lit8 v3, v3, 0x1 goto :goto_d .line 437 :cond_2c new-instance v0, Lcom/squareup/picasso/BitmapHunter; sget-object v10, Lcom/squareup/picasso/BitmapHunter;->ERRORING_HANDLER:Lcom/squareup/picasso/RequestHandler; move-object v4, v0 move-object v5, p0 move-object v6, p1 move-object v7, p2 move-object v8, p3 move-object/from16 v9, p4 invoke-direct/range {v4 .. v10}, Lcom/squareup/picasso/BitmapHunter;->(Lcom/squareup/picasso/Picasso;Lcom/squareup/picasso/Dispatcher;Lcom/squareup/picasso/Cache;Lcom/squareup/picasso/Stats;Lcom/squareup/picasso/Action;Lcom/squareup/picasso/RequestHandler;)V return-object v0 .end method .method static getExifRotation(I)I .registers 1 packed-switch p0, :pswitch_data_e const/4 p0, 0x0 goto :goto_d :pswitch_5 const/16 p0, 0x10e goto :goto_d :pswitch_8 const/16 p0, 0x5a goto :goto_d :pswitch_b const/16 p0, 0xb4 :goto_d return p0 :pswitch_data_e .packed-switch 0x3 :pswitch_b :pswitch_b :pswitch_8 :pswitch_8 :pswitch_5 :pswitch_5 .end packed-switch .end method .method static getExifTranslation(I)I .registers 2 const/4 v0, 0x2 if-eq p0, v0, :cond_e const/4 v0, 0x7 if-eq p0, v0, :cond_e const/4 v0, 0x4 if-eq p0, v0, :cond_e const/4 v0, 0x5 if-eq p0, v0, :cond_e const/4 p0, 0x1 goto :goto_f :cond_e const/4 p0, -0x1 :goto_f return p0 .end method .method private static shouldResize(ZIIII)Z .registers 5 if-eqz p0, :cond_d if-eqz p3, :cond_6 if-gt p1, p3, :cond_d :cond_6 if-eqz p4, :cond_b if-le p2, p4, :cond_b goto :goto_d :cond_b const/4 p0, 0x0 goto :goto_e :cond_d :goto_d const/4 p0, 0x1 :goto_e return p0 .end method .method static transformResult(Lcom/squareup/picasso/Request;Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap; .registers 31 move-object/from16 v0, p0 .line 503 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Bitmap;->getWidth()I move-result v1 .line 504 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Bitmap;->getHeight()I move-result v2 .line 505 iget-boolean v3, v0, Lcom/squareup/picasso/Request;->onlyScaleDown:Z .line 512 new-instance v9, Landroid/graphics/Matrix; invoke-direct {v9}, Landroid/graphics/Matrix;->()V .line 514 invoke-virtual/range {p0 .. p0}, Lcom/squareup/picasso/Request;->needsMatrixTransform()Z move-result v4 if-nez v4, :cond_1f if-eqz p2, :cond_1a goto :goto_1f :cond_1a move v5, v2 move-object v3, v9 move v2, v1 goto/16 :goto_25b .line 515 :cond_1f :goto_1f iget v4, v0, Lcom/squareup/picasso/Request;->targetWidth:I .line 516 iget v6, v0, Lcom/squareup/picasso/Request;->targetHeight:I .line 518 iget v7, v0, Lcom/squareup/picasso/Request;->rotationDegrees:F const/4 v8, 0x0 cmpl-float v8, v7, v8 if-eqz v8, :cond_145 float-to-double v10, v7 .line 520 invoke-static {v10, v11}, Ljava/lang/Math;->toRadians(D)D move-result-wide v12 invoke-static {v12, v13}, Ljava/lang/Math;->cos(D)D move-result-wide v12 .line 521 invoke-static {v10, v11}, Ljava/lang/Math;->toRadians(D)D move-result-wide v10 invoke-static {v10, v11}, Ljava/lang/Math;->sin(D)D move-result-wide v10 .line 522 iget-boolean v4, v0, Lcom/squareup/picasso/Request;->hasRotationPivot:Z if-eqz v4, :cond_d6 .line 523 iget v4, v0, Lcom/squareup/picasso/Request;->rotationPivotX:F iget v6, v0, Lcom/squareup/picasso/Request;->rotationPivotY:F invoke-virtual {v9, v7, v4, v6}, Landroid/graphics/Matrix;->setRotate(FFF)V .line 525 iget v4, v0, Lcom/squareup/picasso/Request;->rotationPivotX:F float-to-double v6, v4 const-wide/high16 v14, 0x3ff0000000000000L # 1.0 sub-double/2addr v14, v12 mul-double/2addr v6, v14 iget v4, v0, Lcom/squareup/picasso/Request;->rotationPivotY:F float-to-double v4, v4 mul-double/2addr v4, v10 add-double/2addr v6, v4 .line 526 iget v4, v0, Lcom/squareup/picasso/Request;->rotationPivotY:F float-to-double v4, v4 mul-double/2addr v4, v14 iget v14, v0, Lcom/squareup/picasso/Request;->rotationPivotX:F float-to-double v14, v14 mul-double/2addr v14, v10 sub-double/2addr v4, v14 .line 527 iget v14, v0, Lcom/squareup/picasso/Request;->targetWidth:I int-to-double v14, v14 mul-double/2addr v14, v12 add-double/2addr v14, v6 .line 528 iget v8, v0, Lcom/squareup/picasso/Request;->targetWidth:I move/from16 v17, v2 move/from16 v18, v3 int-to-double v2, v8 mul-double/2addr v2, v10 add-double/2addr v2, v4 .line 529 iget v8, v0, Lcom/squareup/picasso/Request;->targetWidth:I move-object/from16 v19, v9 int-to-double v8, v8 mul-double/2addr v8, v12 add-double/2addr v8, v6 move/from16 v20, v1 iget v1, v0, Lcom/squareup/picasso/Request;->targetHeight:I move-wide/from16 v21, v2 int-to-double v1, v1 mul-double/2addr v1, v10 sub-double/2addr v8, v1 .line 530 iget v1, v0, Lcom/squareup/picasso/Request;->targetWidth:I int-to-double v1, v1 mul-double/2addr v1, v10 add-double/2addr v1, v4 iget v3, v0, Lcom/squareup/picasso/Request;->targetHeight:I move-wide/from16 v23, v8 int-to-double v8, v3 mul-double/2addr v8, v12 add-double/2addr v1, v8 .line 531 iget v3, v0, Lcom/squareup/picasso/Request;->targetHeight:I int-to-double v8, v3 mul-double/2addr v8, v10 sub-double v8, v6, v8 .line 532 iget v3, v0, Lcom/squareup/picasso/Request;->targetHeight:I int-to-double v10, v3 mul-double/2addr v10, v12 add-double/2addr v10, v4 .line 534 invoke-static {v6, v7, v14, v15}, Ljava/lang/Math;->max(DD)D move-result-wide v12 move-wide/from16 v25, v10 move-wide/from16 v10, v23 invoke-static {v10, v11, v12, v13}, Ljava/lang/Math;->max(DD)D move-result-wide v12 invoke-static {v8, v9, v12, v13}, Ljava/lang/Math;->max(DD)D move-result-wide v12 .line 535 invoke-static {v6, v7, v14, v15}, Ljava/lang/Math;->min(DD)D move-result-wide v6 invoke-static {v10, v11, v6, v7}, Ljava/lang/Math;->min(DD)D move-result-wide v6 invoke-static {v8, v9, v6, v7}, Ljava/lang/Math;->min(DD)D move-result-wide v6 move-wide/from16 v8, v21 .line 536 invoke-static {v4, v5, v8, v9}, Ljava/lang/Math;->max(DD)D move-result-wide v10 invoke-static {v1, v2, v10, v11}, Ljava/lang/Math;->max(DD)D move-result-wide v10 move-wide/from16 v14, v25 invoke-static {v14, v15, v10, v11}, Ljava/lang/Math;->max(DD)D move-result-wide v10 .line 537 invoke-static {v4, v5, v8, v9}, Ljava/lang/Math;->min(DD)D move-result-wide v3 invoke-static {v1, v2, v3, v4}, Ljava/lang/Math;->min(DD)D move-result-wide v1 invoke-static {v14, v15, v1, v2}, Ljava/lang/Math;->min(DD)D move-result-wide v1 sub-double/2addr v12, v6 .line 538 invoke-static {v12, v13}, Ljava/lang/Math;->floor(D)D move-result-wide v3 double-to-int v4, v3 sub-double/2addr v10, v1 .line 539 invoke-static {v10, v11}, Ljava/lang/Math;->floor(D)D move-result-wide v1 double-to-int v6, v1 goto/16 :goto_14d :cond_d6 move/from16 v20, v1 move/from16 v17, v2 move/from16 v18, v3 move-object v1, v9 .line 541 invoke-virtual {v1, v7}, Landroid/graphics/Matrix;->setRotate(F)V .line 545 iget v2, v0, Lcom/squareup/picasso/Request;->targetWidth:I int-to-double v2, v2 mul-double/2addr v2, v12 .line 546 iget v4, v0, Lcom/squareup/picasso/Request;->targetWidth:I int-to-double v4, v4 mul-double/2addr v4, v10 .line 547 iget v6, v0, Lcom/squareup/picasso/Request;->targetWidth:I int-to-double v6, v6 mul-double/2addr v6, v12 iget v8, v0, Lcom/squareup/picasso/Request;->targetHeight:I int-to-double v8, v8 mul-double/2addr v8, v10 sub-double/2addr v6, v8 .line 548 iget v8, v0, Lcom/squareup/picasso/Request;->targetWidth:I int-to-double v8, v8 mul-double/2addr v8, v10 iget v14, v0, Lcom/squareup/picasso/Request;->targetHeight:I int-to-double v14, v14 mul-double/2addr v14, v12 add-double/2addr v8, v14 .line 549 iget v14, v0, Lcom/squareup/picasso/Request;->targetHeight:I int-to-double v14, v14 mul-double/2addr v14, v10 neg-double v10, v14 .line 550 iget v14, v0, Lcom/squareup/picasso/Request;->targetHeight:I int-to-double v14, v14 mul-double/2addr v14, v12 const-wide/16 v12, 0x0 move-object/from16 v19, v1 .line 552 invoke-static {v12, v13, v2, v3}, Ljava/lang/Math;->max(DD)D move-result-wide v0 invoke-static {v6, v7, v0, v1}, Ljava/lang/Math;->max(DD)D move-result-wide v0 invoke-static {v10, v11, v0, v1}, Ljava/lang/Math;->max(DD)D move-result-wide v0 .line 553 invoke-static {v12, v13, v2, v3}, Ljava/lang/Math;->min(DD)D move-result-wide v2 invoke-static {v6, v7, v2, v3}, Ljava/lang/Math;->min(DD)D move-result-wide v2 invoke-static {v10, v11, v2, v3}, Ljava/lang/Math;->min(DD)D move-result-wide v2 .line 554 invoke-static {v12, v13, v4, v5}, Ljava/lang/Math;->max(DD)D move-result-wide v6 invoke-static {v8, v9, v6, v7}, Ljava/lang/Math;->max(DD)D move-result-wide v6 invoke-static {v14, v15, v6, v7}, Ljava/lang/Math;->max(DD)D move-result-wide v6 .line 555 invoke-static {v12, v13, v4, v5}, Ljava/lang/Math;->min(DD)D move-result-wide v4 invoke-static {v8, v9, v4, v5}, Ljava/lang/Math;->min(DD)D move-result-wide v4 invoke-static {v14, v15, v4, v5}, Ljava/lang/Math;->min(DD)D move-result-wide v4 sub-double/2addr v0, v2 .line 556 invoke-static {v0, v1}, Ljava/lang/Math;->floor(D)D move-result-wide v0 double-to-int v0, v0 sub-double/2addr v6, v4 .line 557 invoke-static {v6, v7}, Ljava/lang/Math;->floor(D)D move-result-wide v1 double-to-int v6, v1 move v4, v0 goto :goto_14d :cond_145 move/from16 v20, v1 move/from16 v17, v2 move/from16 v18, v3 move-object/from16 v19, v9 :goto_14d if-eqz p2, :cond_179 .line 564 invoke-static/range {p2 .. p2}, Lcom/squareup/picasso/BitmapHunter;->getExifRotation(I)I move-result v0 .line 565 invoke-static/range {p2 .. p2}, Lcom/squareup/picasso/BitmapHunter;->getExifTranslation(I)I move-result v1 if-eqz v0, :cond_16d int-to-float v2, v0 move-object/from16 v3, v19 .line 567 invoke-virtual {v3, v2}, Landroid/graphics/Matrix;->preRotate(F)Z const/16 v2, 0x5a if-eq v0, v2, :cond_167 const/16 v2, 0x10e if-ne v0, v2, :cond_16f :cond_167 move/from16 v27, v6 move v6, v4 move/from16 v4, v27 goto :goto_16f :cond_16d move-object/from16 v3, v19 :cond_16f :goto_16f const/4 v0, 0x1 if-eq v1, v0, :cond_17b int-to-float v0, v1 const/high16 v1, 0x3f800000 # 1.0f .line 576 invoke-virtual {v3, v0, v1}, Landroid/graphics/Matrix;->postScale(FF)Z goto :goto_17b :cond_179 move-object/from16 v3, v19 :cond_17b :goto_17b move-object/from16 v0, p0 .line 580 iget-boolean v1, v0, Lcom/squareup/picasso/Request;->centerCrop:Z if-eqz v1, :cond_210 if-eqz v4, :cond_18b int-to-float v1, v4 move/from16 v2, v20 int-to-float v5, v2 div-float/2addr v1, v5 move/from16 v5, v17 goto :goto_192 :cond_18b move/from16 v2, v20 int-to-float v1, v6 move/from16 v5, v17 int-to-float v7, v5 div-float/2addr v1, v7 :goto_192 if-eqz v6, :cond_197 int-to-float v7, v6 int-to-float v8, v5 goto :goto_199 :cond_197 int-to-float v7, v4 int-to-float v8, v2 :goto_199 div-float/2addr v7, v8 cmpl-float v8, v1, v7 if-lez v8, :cond_1c9 int-to-float v8, v5 div-float/2addr v7, v1 mul-float/2addr v8, v7 float-to-double v7, v8 .line 588 invoke-static {v7, v8}, Ljava/lang/Math;->ceil(D)D move-result-wide v7 double-to-int v7, v7 .line 589 iget v8, v0, Lcom/squareup/picasso/Request;->centerCropGravity:I const/16 v9, 0x30 and-int/2addr v8, v9 if-ne v8, v9, :cond_1b0 const/4 v0, 0x0 goto :goto_1be .line 591 :cond_1b0 iget v0, v0, Lcom/squareup/picasso/Request;->centerCropGravity:I const/16 v8, 0x50 and-int/2addr v0, v8 if-ne v0, v8, :cond_1ba sub-int v0, v5, v7 goto :goto_1be :cond_1ba sub-int v0, v5, v7 .line 594 div-int/lit8 v0, v0, 0x2 :goto_1be int-to-float v8, v6 int-to-float v9, v7 div-float/2addr v8, v9 move v9, v7 move/from16 v10, v18 const/16 v16, 0x0 move v7, v0 move v0, v2 goto :goto_201 :cond_1c9 cmpg-float v8, v1, v7 if-gez v8, :cond_1f8 int-to-float v8, v2 div-float/2addr v1, v7 mul-float/2addr v8, v1 float-to-double v8, v8 .line 600 invoke-static {v8, v9}, Ljava/lang/Math;->ceil(D)D move-result-wide v8 double-to-int v1, v8 .line 601 iget v8, v0, Lcom/squareup/picasso/Request;->centerCropGravity:I const/4 v9, 0x3 and-int/2addr v8, v9 if-ne v8, v9, :cond_1de const/4 v0, 0x0 goto :goto_1eb .line 603 :cond_1de iget v0, v0, Lcom/squareup/picasso/Request;->centerCropGravity:I const/4 v8, 0x5 and-int/2addr v0, v8 if-ne v0, v8, :cond_1e7 sub-int v0, v2, v1 goto :goto_1eb :cond_1e7 sub-int v0, v2, v1 .line 606 div-int/lit8 v0, v0, 0x2 :goto_1eb int-to-float v8, v4 int-to-float v9, v1 div-float/2addr v8, v9 move/from16 v16, v0 move v0, v1 move v9, v5 move v1, v8 move/from16 v10, v18 move v8, v7 const/4 v7, 0x0 goto :goto_201 :cond_1f8 move v0, v2 move v9, v5 move v1, v7 move v8, v1 move/from16 v10, v18 const/4 v7, 0x0 const/16 v16, 0x0 .line 616 :goto_201 invoke-static {v10, v2, v5, v4, v6}, Lcom/squareup/picasso/BitmapHunter;->shouldResize(ZIIII)Z move-result v2 if-eqz v2, :cond_20a .line 617 invoke-virtual {v3, v1, v8}, Landroid/graphics/Matrix;->preScale(FF)Z :cond_20a move v6, v7 move v8, v9 move/from16 v5, v16 move v7, v0 goto :goto_25f :cond_210 move/from16 v5, v17 move/from16 v10, v18 move/from16 v2, v20 .line 619 iget-boolean v0, v0, Lcom/squareup/picasso/Request;->centerInside:Z if-eqz v0, :cond_23a if-eqz v4, :cond_21f int-to-float v0, v4 int-to-float v1, v2 goto :goto_221 :cond_21f int-to-float v0, v6 int-to-float v1, v5 :goto_221 div-float/2addr v0, v1 if-eqz v6, :cond_227 int-to-float v1, v6 int-to-float v7, v5 goto :goto_229 :cond_227 int-to-float v1, v4 int-to-float v7, v2 :goto_229 div-float/2addr v1, v7 cmpg-float v7, v0, v1 if-gez v7, :cond_22f goto :goto_230 :cond_22f move v0, v1 .line 626 :goto_230 invoke-static {v10, v2, v5, v4, v6}, Lcom/squareup/picasso/BitmapHunter;->shouldResize(ZIIII)Z move-result v1 if-eqz v1, :cond_25b .line 627 invoke-virtual {v3, v0, v0}, Landroid/graphics/Matrix;->preScale(FF)Z goto :goto_25b :cond_23a if-nez v4, :cond_23e if-eqz v6, :cond_25b :cond_23e if-ne v4, v2, :cond_242 if-eq v6, v5, :cond_25b :cond_242 if-eqz v4, :cond_247 int-to-float v0, v4 int-to-float v1, v2 goto :goto_249 :cond_247 int-to-float v0, v6 int-to-float v1, v5 :goto_249 div-float/2addr v0, v1 if-eqz v6, :cond_24f int-to-float v1, v6 int-to-float v7, v5 goto :goto_251 :cond_24f int-to-float v1, v4 int-to-float v7, v2 :goto_251 div-float/2addr v1, v7 .line 638 invoke-static {v10, v2, v5, v4, v6}, Lcom/squareup/picasso/BitmapHunter;->shouldResize(ZIIII)Z move-result v4 if-eqz v4, :cond_25b .line 639 invoke-virtual {v3, v0, v1}, Landroid/graphics/Matrix;->preScale(FF)Z :cond_25b :goto_25b move v7, v2 move v8, v5 const/4 v5, 0x0 const/4 v6, 0x0 :goto_25f const/4 v10, 0x1 move-object/from16 v4, p1 move-object v9, v3 .line 645 invoke-static/range {v4 .. v10}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap; move-result-object v0 move-object/from16 v1, p1 if-eq v0, v1, :cond_26f .line 647 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Bitmap;->recycle()V goto :goto_270 :cond_26f move-object v0, v1 :goto_270 return-object v0 .end method .method static updateThreadName(Lcom/squareup/picasso/Request;)V .registers 5 .line 414 invoke-virtual {p0}, Lcom/squareup/picasso/Request;->getName()Ljava/lang/String; move-result-object p0 .line 416 sget-object v0, Lcom/squareup/picasso/BitmapHunter;->NAME_BUILDER:Ljava/lang/ThreadLocal; invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/StringBuilder; .line 417 const-string v1, "Picasso-" invoke-virtual {v1}, Ljava/lang/String;->length()I move-result v2 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v3 add-int/2addr v2, v3 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->ensureCapacity(I)V .line 418 invoke-virtual {v1}, Ljava/lang/String;->length()I move-result v1 invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I move-result v2 invoke-virtual {v0, v1, v2, p0}, Ljava/lang/StringBuilder;->replace(IILjava/lang/String;)Ljava/lang/StringBuilder; .line 420 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object p0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-virtual {p0, v0}, Ljava/lang/Thread;->setName(Ljava/lang/String;)V return-void .end method # virtual methods .method attach(Lcom/squareup/picasso/Action;)V .registers 9 .line 270 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->picasso:Lcom/squareup/picasso/Picasso; iget-boolean v0, v0, Lcom/squareup/picasso/Picasso;->loggingEnabled:Z .line 271 iget-object v1, p1, Lcom/squareup/picasso/Action;->request:Lcom/squareup/picasso/Request; .line 273 iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->action:Lcom/squareup/picasso/Action; const-string v3, "to " const-string v4, "joined" const-string v5, "Hunter" if-nez v2, :cond_35 .line 274 iput-object p1, p0, Lcom/squareup/picasso/BitmapHunter;->action:Lcom/squareup/picasso/Action; if-eqz v0, :cond_34 .line 276 iget-object p1, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; if-eqz p1, :cond_2b invoke-interface {p1}, Ljava/util/List;->isEmpty()Z move-result p1 if-eqz p1, :cond_1f goto :goto_2b .line 279 :cond_1f invoke-virtual {v1}, Lcom/squareup/picasso/Request;->logId()Ljava/lang/String; move-result-object p1 invoke-static {p0, v3}, Lcom/squareup/picasso/Utils;->getLogIdsForHunter(Lcom/squareup/picasso/BitmapHunter;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 invoke-static {v5, v4, p1, v0}, Lcom/squareup/picasso/Utils;->log(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_34 .line 277 :cond_2b :goto_2b invoke-virtual {v1}, Lcom/squareup/picasso/Request;->logId()Ljava/lang/String; move-result-object p1 const-string v0, "to empty hunter" invoke-static {v5, v4, p1, v0}, Lcom/squareup/picasso/Utils;->log(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :cond_34 :goto_34 return-void .line 285 :cond_35 iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; if-nez v2, :cond_41 .line 286 new-instance v2, Ljava/util/ArrayList; const/4 v6, 0x3 invoke-direct {v2, v6}, Ljava/util/ArrayList;->(I)V iput-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; .line 289 :cond_41 iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; invoke-interface {v2, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z if-eqz v0, :cond_53 .line 292 invoke-virtual {v1}, Lcom/squareup/picasso/Request;->logId()Ljava/lang/String; move-result-object v0 invoke-static {p0, v3}, Lcom/squareup/picasso/Utils;->getLogIdsForHunter(Lcom/squareup/picasso/BitmapHunter;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-static {v5, v4, v0, v1}, Lcom/squareup/picasso/Utils;->log(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 295 :cond_53 invoke-virtual {p1}, Lcom/squareup/picasso/Action;->getPriority()Lcom/squareup/picasso/Picasso$Priority; move-result-object p1 .line 296 invoke-virtual {p1}, Lcom/squareup/picasso/Picasso$Priority;->ordinal()I move-result v0 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->priority:Lcom/squareup/picasso/Picasso$Priority; invoke-virtual {v1}, Lcom/squareup/picasso/Picasso$Priority;->ordinal()I move-result v1 if-le v0, v1, :cond_65 .line 297 iput-object p1, p0, Lcom/squareup/picasso/BitmapHunter;->priority:Lcom/squareup/picasso/Picasso$Priority; :cond_65 return-void .end method .method cancel()Z .registers 3 .line 350 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->action:Lcom/squareup/picasso/Action; const/4 v1, 0x0 if-nez v0, :cond_1a iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; if-eqz v0, :cond_f .line 351 invoke-interface {v0}, Ljava/util/List;->isEmpty()Z move-result v0 if-eqz v0, :cond_1a :cond_f iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->future:Ljava/util/concurrent/Future; if-eqz v0, :cond_1a .line 353 invoke-interface {v0, v1}, Ljava/util/concurrent/Future;->cancel(Z)Z move-result v0 if-eqz v0, :cond_1a const/4 v1, 0x1 :cond_1a return v1 .end method .method detach(Lcom/squareup/picasso/Action;)V .registers 5 .line 303 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->action:Lcom/squareup/picasso/Action; if-ne v0, p1, :cond_9 const/4 v0, 0x0 .line 304 iput-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->action:Lcom/squareup/picasso/Action; const/4 v0, 0x1 goto :goto_13 .line 306 :cond_9 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; if-eqz v0, :cond_12 .line 307 invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z move-result v0 goto :goto_13 :cond_12 const/4 v0, 0x0 :goto_13 if-eqz v0, :cond_23 .line 312 invoke-virtual {p1}, Lcom/squareup/picasso/Action;->getPriority()Lcom/squareup/picasso/Picasso$Priority; move-result-object v0 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->priority:Lcom/squareup/picasso/Picasso$Priority; if-ne v0, v1, :cond_23 .line 313 invoke-direct {p0}, Lcom/squareup/picasso/BitmapHunter;->computeNewPriority()Lcom/squareup/picasso/Picasso$Priority; move-result-object v0 iput-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->priority:Lcom/squareup/picasso/Picasso$Priority; .line 316 :cond_23 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->picasso:Lcom/squareup/picasso/Picasso; iget-boolean v0, v0, Lcom/squareup/picasso/Picasso;->loggingEnabled:Z if-eqz v0, :cond_3c .line 317 iget-object p1, p1, Lcom/squareup/picasso/Action;->request:Lcom/squareup/picasso/Request; invoke-virtual {p1}, Lcom/squareup/picasso/Request;->logId()Ljava/lang/String; move-result-object p1 const-string v0, "from " invoke-static {p0, v0}, Lcom/squareup/picasso/Utils;->getLogIdsForHunter(Lcom/squareup/picasso/BitmapHunter;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "Hunter" const-string v2, "removed" invoke-static {v1, v2, p1, v0}, Lcom/squareup/picasso/Utils;->log(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :cond_3c return-void .end method .method getAction()Lcom/squareup/picasso/Action; .registers 2 .line 390 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->action:Lcom/squareup/picasso/Action; return-object v0 .end method .method getActions()Ljava/util/List; .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/List<", "Lcom/squareup/picasso/Action;", ">;" } .end annotation .line 398 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->actions:Ljava/util/List; return-object v0 .end method .method getData()Lcom/squareup/picasso/Request; .registers 2 .line 386 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; return-object v0 .end method .method getException()Ljava/lang/Exception; .registers 2 .line 402 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->exception:Ljava/lang/Exception; return-object v0 .end method .method getKey()Ljava/lang/String; .registers 2 .line 378 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->key:Ljava/lang/String; return-object v0 .end method .method getLoadedFrom()Lcom/squareup/picasso/Picasso$LoadedFrom; .registers 2 .line 406 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->loadedFrom:Lcom/squareup/picasso/Picasso$LoadedFrom; return-object v0 .end method .method getMemoryPolicy()I .registers 2 .line 382 iget v0, p0, Lcom/squareup/picasso/BitmapHunter;->memoryPolicy:I return v0 .end method .method getPicasso()Lcom/squareup/picasso/Picasso; .registers 2 .line 394 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->picasso:Lcom/squareup/picasso/Picasso; return-object v0 .end method .method getPriority()Lcom/squareup/picasso/Picasso$Priority; .registers 2 .line 410 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->priority:Lcom/squareup/picasso/Picasso$Priority; return-object v0 .end method .method getResult()Landroid/graphics/Bitmap; .registers 2 .line 374 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->result:Landroid/graphics/Bitmap; return-object v0 .end method .method hunt()Landroid/graphics/Bitmap; .registers 7 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 206 iget v0, p0, Lcom/squareup/picasso/BitmapHunter;->memoryPolicy:I invoke-static {v0}, Lcom/squareup/picasso/MemoryPolicy;->shouldReadFromMemoryCache(I)Z move-result v0 if-eqz v0, :cond_31 .line 207 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->cache:Lcom/squareup/picasso/Cache; iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->key:Ljava/lang/String; invoke-interface {v0, v1}, Lcom/squareup/picasso/Cache;->get(Ljava/lang/String;)Landroid/graphics/Bitmap; move-result-object v0 if-eqz v0, :cond_32 .line 209 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->stats:Lcom/squareup/picasso/Stats; invoke-virtual {v1}, Lcom/squareup/picasso/Stats;->dispatchCacheHit()V .line 210 sget-object v1, Lcom/squareup/picasso/Picasso$LoadedFrom;->MEMORY:Lcom/squareup/picasso/Picasso$LoadedFrom; iput-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->loadedFrom:Lcom/squareup/picasso/Picasso$LoadedFrom; .line 211 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->picasso:Lcom/squareup/picasso/Picasso; iget-boolean v1, v1, Lcom/squareup/picasso/Picasso;->loggingEnabled:Z if-eqz v1, :cond_30 .line 212 const-string v1, "Hunter" const-string v2, "decoded" iget-object v3, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-virtual {v3}, Lcom/squareup/picasso/Request;->logId()Ljava/lang/String; move-result-object v3 const-string v4, "from cache" invoke-static {v1, v2, v3, v4}, Lcom/squareup/picasso/Utils;->log(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :cond_30 return-object v0 :cond_31 const/4 v0, 0x0 .line 218 :cond_32 iget v1, p0, Lcom/squareup/picasso/BitmapHunter;->retryCount:I if-nez v1, :cond_3b sget-object v1, Lcom/squareup/picasso/NetworkPolicy;->OFFLINE:Lcom/squareup/picasso/NetworkPolicy; iget v1, v1, Lcom/squareup/picasso/NetworkPolicy;->index:I goto :goto_3d :cond_3b iget v1, p0, Lcom/squareup/picasso/BitmapHunter;->networkPolicy:I :goto_3d iput v1, p0, Lcom/squareup/picasso/BitmapHunter;->networkPolicy:I .line 219 iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->requestHandler:Lcom/squareup/picasso/RequestHandler; iget-object v3, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-virtual {v2, v3, v1}, Lcom/squareup/picasso/RequestHandler;->load(Lcom/squareup/picasso/Request;I)Lcom/squareup/picasso/RequestHandler$Result; move-result-object v1 if-eqz v1, :cond_6f .line 221 invoke-virtual {v1}, Lcom/squareup/picasso/RequestHandler$Result;->getLoadedFrom()Lcom/squareup/picasso/Picasso$LoadedFrom; move-result-object v0 iput-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->loadedFrom:Lcom/squareup/picasso/Picasso$LoadedFrom; .line 222 invoke-virtual {v1}, Lcom/squareup/picasso/RequestHandler$Result;->getExifOrientation()I move-result v0 iput v0, p0, Lcom/squareup/picasso/BitmapHunter;->exifOrientation:I .line 223 invoke-virtual {v1}, Lcom/squareup/picasso/RequestHandler$Result;->getBitmap()Landroid/graphics/Bitmap; move-result-object v0 if-nez v0, :cond_6f .line 227 invoke-virtual {v1}, Lcom/squareup/picasso/RequestHandler$Result;->getSource()Lokio/Source; move-result-object v0 .line 229 :try_start_5f iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-static {v0, v1}, Lcom/squareup/picasso/BitmapHunter;->decodeStream(Lokio/Source;Lcom/squareup/picasso/Request;)Landroid/graphics/Bitmap; move-result-object v1 :try_end_65 .catchall {:try_start_5f .. :try_end_65} :catchall_6a .line 233 :try_start_65 invoke-interface {v0}, Lokio/Source;->close()V :try_end_68 .catch Ljava/io/IOException; {:try_start_65 .. :try_end_68} :catch_68 :catch_68 move-object v0, v1 goto :goto_6f :catchall_6a move-exception v1 :try_start_6b invoke-interface {v0}, Lokio/Source;->close()V :try_end_6e .catch Ljava/io/IOException; {:try_start_6b .. :try_end_6e} :catch_6e .line 235 :catch_6e throw v1 :cond_6f :goto_6f if-eqz v0, :cond_f0 .line 241 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->picasso:Lcom/squareup/picasso/Picasso; iget-boolean v1, v1, Lcom/squareup/picasso/Picasso;->loggingEnabled:Z if-eqz v1, :cond_84 .line 242 const-string v1, "Hunter" const-string v2, "decoded" iget-object v3, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-virtual {v3}, Lcom/squareup/picasso/Request;->logId()Ljava/lang/String; move-result-object v3 invoke-static {v1, v2, v3}, Lcom/squareup/picasso/Utils;->log(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 244 :cond_84 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->stats:Lcom/squareup/picasso/Stats; invoke-virtual {v1, v0}, Lcom/squareup/picasso/Stats;->dispatchBitmapDecoded(Landroid/graphics/Bitmap;)V .line 245 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-virtual {v1}, Lcom/squareup/picasso/Request;->needsTransformation()Z move-result v1 if-nez v1, :cond_95 iget v1, p0, Lcom/squareup/picasso/BitmapHunter;->exifOrientation:I if-eqz v1, :cond_f0 .line 246 :cond_95 sget-object v1, Lcom/squareup/picasso/BitmapHunter;->DECODE_LOCK:Ljava/lang/Object; monitor-enter v1 .line 247 :try_start_98 iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-virtual {v2}, Lcom/squareup/picasso/Request;->needsMatrixTransform()Z move-result v2 if-nez v2, :cond_a4 iget v2, p0, Lcom/squareup/picasso/BitmapHunter;->exifOrientation:I if-eqz v2, :cond_bf .line 248 :cond_a4 iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; iget v3, p0, Lcom/squareup/picasso/BitmapHunter;->exifOrientation:I invoke-static {v2, v0, v3}, Lcom/squareup/picasso/BitmapHunter;->transformResult(Lcom/squareup/picasso/Request;Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap; move-result-object v0 .line 249 iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->picasso:Lcom/squareup/picasso/Picasso; iget-boolean v2, v2, Lcom/squareup/picasso/Picasso;->loggingEnabled:Z if-eqz v2, :cond_bf .line 250 const-string v2, "Hunter" const-string v3, "transformed" iget-object v4, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-virtual {v4}, Lcom/squareup/picasso/Request;->logId()Ljava/lang/String; move-result-object v4 invoke-static {v2, v3, v4}, Lcom/squareup/picasso/Utils;->log(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 253 :cond_bf iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-virtual {v2}, Lcom/squareup/picasso/Request;->hasCustomTransformations()Z move-result v2 if-eqz v2, :cond_e4 .line 254 iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; iget-object v2, v2, Lcom/squareup/picasso/Request;->transformations:Ljava/util/List; invoke-static {v2, v0}, Lcom/squareup/picasso/BitmapHunter;->applyCustomTransformations(Ljava/util/List;Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap; move-result-object v0 .line 255 iget-object v2, p0, Lcom/squareup/picasso/BitmapHunter;->picasso:Lcom/squareup/picasso/Picasso; iget-boolean v2, v2, Lcom/squareup/picasso/Picasso;->loggingEnabled:Z if-eqz v2, :cond_e4 .line 256 const-string v2, "Hunter" const-string v3, "transformed" iget-object v4, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-virtual {v4}, Lcom/squareup/picasso/Request;->logId()Ljava/lang/String; move-result-object v4 const-string v5, "from custom transformations" invoke-static {v2, v3, v4, v5}, Lcom/squareup/picasso/Utils;->log(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 259 :cond_e4 monitor-exit v1 :try_end_e5 .catchall {:try_start_98 .. :try_end_e5} :catchall_ed if-eqz v0, :cond_f0 .line 261 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->stats:Lcom/squareup/picasso/Stats; invoke-virtual {v1, v0}, Lcom/squareup/picasso/Stats;->dispatchBitmapTransformed(Landroid/graphics/Bitmap;)V goto :goto_f0 :catchall_ed move-exception v0 .line 259 :try_start_ee monitor-exit v1 :try_end_ef .catchall {:try_start_ee .. :try_end_ef} :catchall_ed throw v0 :cond_f0 :goto_f0 return-object v0 .end method .method isCancelled()Z .registers 2 .line 357 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->future:Ljava/util/concurrent/Future; if-eqz v0, :cond_c invoke-interface {v0}, Ljava/util/concurrent/Future;->isCancelled()Z move-result v0 if-eqz v0, :cond_c const/4 v0, 0x1 goto :goto_d :cond_c const/4 v0, 0x0 :goto_d return v0 .end method .method public run()V .registers 6 .line 169 const-string v0, "Picasso-Idle" :try_start_2 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->data:Lcom/squareup/picasso/Request; invoke-static {v1}, Lcom/squareup/picasso/BitmapHunter;->updateThreadName(Lcom/squareup/picasso/Request;)V .line 171 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->picasso:Lcom/squareup/picasso/Picasso; iget-boolean v1, v1, Lcom/squareup/picasso/Picasso;->loggingEnabled:Z if-eqz v1, :cond_18 .line 172 const-string v1, "Hunter" const-string v2, "executing" invoke-static {p0}, Lcom/squareup/picasso/Utils;->getLogIdsForHunter(Lcom/squareup/picasso/BitmapHunter;)Ljava/lang/String; move-result-object v3 invoke-static {v1, v2, v3}, Lcom/squareup/picasso/Utils;->log(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 175 :cond_18 invoke-virtual {p0}, Lcom/squareup/picasso/BitmapHunter;->hunt()Landroid/graphics/Bitmap; move-result-object v1 iput-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->result:Landroid/graphics/Bitmap; if-nez v1, :cond_26 .line 178 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->dispatcher:Lcom/squareup/picasso/Dispatcher; invoke-virtual {v1, p0}, Lcom/squareup/picasso/Dispatcher;->dispatchFailed(Lcom/squareup/picasso/BitmapHunter;)V goto :goto_64 .line 180 :cond_26 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->dispatcher:Lcom/squareup/picasso/Dispatcher; invoke-virtual {v1, p0}, Lcom/squareup/picasso/Dispatcher;->dispatchComplete(Lcom/squareup/picasso/BitmapHunter;)V :try_end_2b .catch Lcom/squareup/picasso/NetworkRequestHandler$ResponseException; {:try_start_2 .. :try_end_2b} :catch_6c .catch Ljava/io/IOException; {:try_start_2 .. :try_end_2b} :catch_5c .catch Ljava/lang/OutOfMemoryError; {:try_start_2 .. :try_end_2b} :catch_37 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2b} :catch_2e .catchall {:try_start_2 .. :try_end_2b} :catchall_2c goto :goto_64 :catchall_2c move-exception v1 goto :goto_84 :catch_2e move-exception v1 .line 196 :try_start_2f iput-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->exception:Ljava/lang/Exception; .line 197 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->dispatcher:Lcom/squareup/picasso/Dispatcher; invoke-virtual {v1, p0}, Lcom/squareup/picasso/Dispatcher;->dispatchFailed(Lcom/squareup/picasso/BitmapHunter;)V goto :goto_64 :catch_37 move-exception v1 .line 191 new-instance v2, Ljava/io/StringWriter; invoke-direct {v2}, Ljava/io/StringWriter;->()V .line 192 iget-object v3, p0, Lcom/squareup/picasso/BitmapHunter;->stats:Lcom/squareup/picasso/Stats; invoke-virtual {v3}, Lcom/squareup/picasso/Stats;->createSnapshot()Lcom/squareup/picasso/StatsSnapshot; move-result-object v3 new-instance v4, Ljava/io/PrintWriter; invoke-direct {v4, v2}, Ljava/io/PrintWriter;->(Ljava/io/Writer;)V invoke-virtual {v3, v4}, Lcom/squareup/picasso/StatsSnapshot;->dump(Ljava/io/PrintWriter;)V .line 193 new-instance v3, Ljava/lang/RuntimeException; invoke-virtual {v2}, Ljava/io/StringWriter;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v3, v2, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V iput-object v3, p0, Lcom/squareup/picasso/BitmapHunter;->exception:Ljava/lang/Exception; .line 194 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->dispatcher:Lcom/squareup/picasso/Dispatcher; invoke-virtual {v1, p0}, Lcom/squareup/picasso/Dispatcher;->dispatchFailed(Lcom/squareup/picasso/BitmapHunter;)V goto :goto_64 :catch_5c move-exception v1 .line 188 iput-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->exception:Ljava/lang/Exception; .line 189 iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->dispatcher:Lcom/squareup/picasso/Dispatcher; invoke-virtual {v1, p0}, Lcom/squareup/picasso/Dispatcher;->dispatchRetry(Lcom/squareup/picasso/BitmapHunter;)V :try_end_64 .catchall {:try_start_2f .. :try_end_64} :catchall_2c .line 199 :goto_64 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object v1 invoke-virtual {v1, v0}, Ljava/lang/Thread;->setName(Ljava/lang/String;)V goto :goto_83 :catch_6c move-exception v1 .line 183 :try_start_6d iget v2, v1, Lcom/squareup/picasso/NetworkRequestHandler$ResponseException;->networkPolicy:I invoke-static {v2}, Lcom/squareup/picasso/NetworkPolicy;->isOfflineOnly(I)Z move-result v2 if-eqz v2, :cond_7b iget v2, v1, Lcom/squareup/picasso/NetworkRequestHandler$ResponseException;->code:I const/16 v3, 0x1f8 if-eq v2, v3, :cond_7d .line 184 :cond_7b iput-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->exception:Ljava/lang/Exception; .line 186 :cond_7d iget-object v1, p0, Lcom/squareup/picasso/BitmapHunter;->dispatcher:Lcom/squareup/picasso/Dispatcher; invoke-virtual {v1, p0}, Lcom/squareup/picasso/Dispatcher;->dispatchFailed(Lcom/squareup/picasso/BitmapHunter;)V :try_end_82 .catchall {:try_start_6d .. :try_end_82} :catchall_2c goto :goto_64 :goto_83 return-void .line 199 :goto_84 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object v2 invoke-virtual {v2, v0}, Ljava/lang/Thread;->setName(Ljava/lang/String;)V throw v1 .end method .method shouldRetry(ZLandroid/net/NetworkInfo;)Z .registers 4 .line 361 iget v0, p0, Lcom/squareup/picasso/BitmapHunter;->retryCount:I if-lez v0, :cond_f add-int/lit8 v0, v0, -0x1 .line 365 iput v0, p0, Lcom/squareup/picasso/BitmapHunter;->retryCount:I .line 366 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->requestHandler:Lcom/squareup/picasso/RequestHandler; invoke-virtual {v0, p1, p2}, Lcom/squareup/picasso/RequestHandler;->shouldRetry(ZLandroid/net/NetworkInfo;)Z move-result p1 return p1 :cond_f const/4 p1, 0x0 return p1 .end method .method supportsReplay()Z .registers 2 .line 370 iget-object v0, p0, Lcom/squareup/picasso/BitmapHunter;->requestHandler:Lcom/squareup/picasso/RequestHandler; invoke-virtual {v0}, Lcom/squareup/picasso/RequestHandler;->supportsReplay()Z move-result v0 return v0 .end method