.class public abstract Lf/g/j/o/b; .super Ljava/lang/Object; .source "DefaultDecoder.java" # interfaces .implements Lf/g/j/o/d; # annotations .annotation build Landroid/annotation/TargetApi; value = 0xb .end annotation # static fields .field public static final d:Ljava/lang/Class; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Class<", "*>;" } .end annotation .end field .field public static final e:[B # instance fields .field public final a:Lf/g/j/m/d; .field public final b:Lcom/facebook/imagepipeline/platform/PreverificationHelper; .field public final c:Landroidx/core/util/Pools$SynchronizedPool; .annotation system Ldalvik/annotation/Signature; value = { "Landroidx/core/util/Pools$SynchronizedPool<", "Ljava/nio/ByteBuffer;", ">;" } .end annotation .end field # direct methods .method public static constructor ()V .locals 1 const-class v0, Lf/g/j/o/b; sput-object v0, Lf/g/j/o/b;->d:Ljava/lang/Class; const/4 v0, 0x2 new-array v0, v0, [B fill-array-data v0, :array_0 sput-object v0, Lf/g/j/o/b;->e:[B return-void nop :array_0 .array-data 1 -0x1t -0x27t .end array-data .end method .method public constructor (Lf/g/j/m/d;ILandroidx/core/util/Pools$SynchronizedPool;)V .locals 2 invoke-direct {p0}, Ljava/lang/Object;->()V sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x1a if-lt v0, v1, :cond_0 new-instance v0, Lcom/facebook/imagepipeline/platform/PreverificationHelper; invoke-direct {v0}, Lcom/facebook/imagepipeline/platform/PreverificationHelper;->()V goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 iput-object v0, p0, Lf/g/j/o/b;->b:Lcom/facebook/imagepipeline/platform/PreverificationHelper; iput-object p1, p0, Lf/g/j/o/b;->a:Lf/g/j/m/d; iput-object p3, p0, Lf/g/j/o/b;->c:Landroidx/core/util/Pools$SynchronizedPool; const/4 p1, 0x0 :goto_1 if-ge p1, p2, :cond_1 iget-object p3, p0, Lf/g/j/o/b;->c:Landroidx/core/util/Pools$SynchronizedPool; const/16 v0, 0x4000 invoke-static {v0}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer; move-result-object v0 invoke-virtual {p3, v0}, Landroidx/core/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z add-int/lit8 p1, p1, 0x1 goto :goto_1 :cond_1 return-void .end method .method public static e(Lcom/facebook/imagepipeline/image/EncodedImage;Landroid/graphics/Bitmap$Config;)Landroid/graphics/BitmapFactory$Options; .locals 3 new-instance v0, Landroid/graphics/BitmapFactory$Options; invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;->()V iget v1, p0, Lcom/facebook/imagepipeline/image/EncodedImage;->k:I iput v1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I const/4 v1, 0x1 iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z invoke-virtual {p0}, Lcom/facebook/imagepipeline/image/EncodedImage;->e()Ljava/io/InputStream; move-result-object p0 const/4 v2, 0x0 invoke-static {p0, v2, v0}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; iget p0, v0, Landroid/graphics/BitmapFactory$Options;->outWidth:I const/4 v2, -0x1 if-eq p0, v2, :cond_0 iget p0, v0, Landroid/graphics/BitmapFactory$Options;->outHeight:I if-eq p0, v2, :cond_0 const/4 p0, 0x0 iput-boolean p0, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inDither:Z iput-object p1, v0, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config; iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inMutable:Z return-object v0 :cond_0 new-instance p0, Ljava/lang/IllegalArgumentException; invoke-direct {p0}, Ljava/lang/IllegalArgumentException;->()V throw p0 .end method # virtual methods .method public a(Lcom/facebook/imagepipeline/image/EncodedImage;Landroid/graphics/Bitmap$Config;Landroid/graphics/Rect;Landroid/graphics/ColorSpace;)Lcom/facebook/common/references/CloseableReference; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/facebook/imagepipeline/image/EncodedImage;", "Landroid/graphics/Bitmap$Config;", "Landroid/graphics/Rect;", "Landroid/graphics/ColorSpace;", ")", "Lcom/facebook/common/references/CloseableReference<", "Landroid/graphics/Bitmap;", ">;" } .end annotation invoke-static {p1, p2}, Lf/g/j/o/b;->e(Lcom/facebook/imagepipeline/image/EncodedImage;Landroid/graphics/Bitmap$Config;)Landroid/graphics/BitmapFactory$Options; move-result-object p2 iget-object v0, p2, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config; sget-object v1, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config; if-eq v0, v1, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 :try_start_0 invoke-virtual {p1}, Lcom/facebook/imagepipeline/image/EncodedImage;->e()Ljava/io/InputStream; move-result-object v1 invoke-virtual {p0, v1, p2, p3, p4}, Lf/g/j/o/b;->c(Ljava/io/InputStream;Landroid/graphics/BitmapFactory$Options;Landroid/graphics/Rect;Landroid/graphics/ColorSpace;)Lcom/facebook/common/references/CloseableReference; move-result-object p1 :try_end_0 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 :catch_0 move-exception p2 if-eqz v0, :cond_1 sget-object p2, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config; invoke-virtual {p0, p1, p2, p3, p4}, Lf/g/j/o/b;->a(Lcom/facebook/imagepipeline/image/EncodedImage;Landroid/graphics/Bitmap$Config;Landroid/graphics/Rect;Landroid/graphics/ColorSpace;)Lcom/facebook/common/references/CloseableReference; move-result-object p1 return-object p1 :cond_1 throw p2 .end method .method public b(Lcom/facebook/imagepipeline/image/EncodedImage;Landroid/graphics/Bitmap$Config;Landroid/graphics/Rect;ILandroid/graphics/ColorSpace;)Lcom/facebook/common/references/CloseableReference; .locals 9 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/facebook/imagepipeline/image/EncodedImage;", "Landroid/graphics/Bitmap$Config;", "Landroid/graphics/Rect;", "I", "Landroid/graphics/ColorSpace;", ")", "Lcom/facebook/common/references/CloseableReference<", "Landroid/graphics/Bitmap;", ">;" } .end annotation iget-object v0, p1, Lcom/facebook/imagepipeline/image/EncodedImage;->f:Lf/g/i/c; sget-object v1, Lf/g/i/b;->a:Lf/g/i/c; const/4 v2, 0x0 const/4 v3, 0x1 if-eq v0, v1, :cond_0 sget-object v1, Lf/g/i/b;->l:Lf/g/i/c; if-eq v0, v1, :cond_0 goto :goto_0 :cond_0 iget-object v0, p1, Lcom/facebook/imagepipeline/image/EncodedImage;->e:Lcom/facebook/common/internal/Supplier; if-eqz v0, :cond_1 goto :goto_0 :cond_1 iget-object v0, p1, Lcom/facebook/imagepipeline/image/EncodedImage;->d:Lcom/facebook/common/references/CloseableReference; invoke-static {v0}, Le0/a/b/b/a;->i(Ljava/lang/Object;)Ljava/lang/Object; iget-object v0, p1, Lcom/facebook/imagepipeline/image/EncodedImage;->d:Lcom/facebook/common/references/CloseableReference; invoke-virtual {v0}, Lcom/facebook/common/references/CloseableReference;->j()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/facebook/common/memory/PooledByteBuffer; add-int/lit8 v1, p4, -0x2 invoke-interface {v0, v1}, Lcom/facebook/common/memory/PooledByteBuffer;->k(I)B move-result v1 const/4 v4, -0x1 if-ne v1, v4, :cond_2 add-int/lit8 v1, p4, -0x1 invoke-interface {v0, v1}, Lcom/facebook/common/memory/PooledByteBuffer;->k(I)B move-result v0 const/16 v1, -0x27 if-ne v0, v1, :cond_2 :goto_0 const/4 v0, 0x1 goto :goto_1 :cond_2 const/4 v0, 0x0 :goto_1 invoke-static {p1, p2}, Lf/g/j/o/b;->e(Lcom/facebook/imagepipeline/image/EncodedImage;Landroid/graphics/Bitmap$Config;)Landroid/graphics/BitmapFactory$Options; move-result-object p2 invoke-virtual {p1}, Lcom/facebook/imagepipeline/image/EncodedImage;->e()Ljava/io/InputStream; move-result-object v1 invoke-static {v1}, Le0/a/b/b/a;->i(Ljava/lang/Object;)Ljava/lang/Object; invoke-virtual {p1}, Lcom/facebook/imagepipeline/image/EncodedImage;->f()I move-result v4 if-le v4, p4, :cond_3 new-instance v4, Lf/g/d/j/a; invoke-direct {v4, v1, p4}, Lf/g/d/j/a;->(Ljava/io/InputStream;I)V move-object v1, v4 :cond_3 if-nez v0, :cond_4 new-instance v0, Lf/g/d/j/b; sget-object v4, Lf/g/j/o/b;->e:[B invoke-direct {v0, v1, v4}, Lf/g/d/j/b;->(Ljava/io/InputStream;[B)V move-object v1, v0 :cond_4 iget-object v0, p2, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config; sget-object v4, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config; if-eq v0, v4, :cond_5 const/4 v2, 0x1 :cond_5 :try_start_0 invoke-virtual {p0, v1, p2, p3, p5}, Lf/g/j/o/b;->c(Ljava/io/InputStream;Landroid/graphics/BitmapFactory$Options;Landroid/graphics/Rect;Landroid/graphics/ColorSpace;)Lcom/facebook/common/references/CloseableReference; move-result-object p1 :try_end_0 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 :catch_0 move-exception p2 if-eqz v2, :cond_6 sget-object v5, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config; move-object v3, p0 move-object v4, p1 move-object v6, p3 move v7, p4 move-object v8, p5 invoke-virtual/range {v3 .. v8}, Lf/g/j/o/b;->b(Lcom/facebook/imagepipeline/image/EncodedImage;Landroid/graphics/Bitmap$Config;Landroid/graphics/Rect;ILandroid/graphics/ColorSpace;)Lcom/facebook/common/references/CloseableReference; move-result-object p1 return-object p1 :cond_6 throw p2 .end method .method public final c(Ljava/io/InputStream;Landroid/graphics/BitmapFactory$Options;Landroid/graphics/Rect;Landroid/graphics/ColorSpace;)Lcom/facebook/common/references/CloseableReference; .locals 8 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/io/InputStream;", "Landroid/graphics/BitmapFactory$Options;", "Landroid/graphics/Rect;", "Landroid/graphics/ColorSpace;", ")", "Lcom/facebook/common/references/CloseableReference<", "Landroid/graphics/Bitmap;", ">;" } .end annotation const/4 v0, 0x0 if-eqz p1, :cond_10 iget v1, p2, Landroid/graphics/BitmapFactory$Options;->outWidth:I iget v2, p2, Landroid/graphics/BitmapFactory$Options;->outHeight:I if-eqz p3, :cond_0 invoke-virtual {p3}, Landroid/graphics/Rect;->width()I move-result v1 iget v2, p2, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I div-int/2addr v1, v2 invoke-virtual {p3}, Landroid/graphics/Rect;->height()I move-result v2 iget v3, p2, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I div-int/2addr v2, v3 :cond_0 sget v3, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v4, 0x1a const/4 v5, 0x0 const/4 v6, 0x1 if-lt v3, v4, :cond_1 iget-object v3, p0, Lf/g/j/o/b;->b:Lcom/facebook/imagepipeline/platform/PreverificationHelper; if-eqz v3, :cond_1 iget-object v7, p2, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config; invoke-virtual {v3, v7}, Lcom/facebook/imagepipeline/platform/PreverificationHelper;->shouldUseHardwareBitmapConfig(Landroid/graphics/Bitmap$Config;)Z move-result v3 if-eqz v3, :cond_1 const/4 v3, 0x1 goto :goto_0 :cond_1 const/4 v3, 0x0 :goto_0 if-nez p3, :cond_2 if-eqz v3, :cond_2 iput-boolean v5, p2, Landroid/graphics/BitmapFactory$Options;->inMutable:Z move-object v3, v0 goto :goto_1 :cond_2 if-eqz p3, :cond_3 if-eqz v3, :cond_3 sget-object v3, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config; iput-object v3, p2, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config; :cond_3 invoke-virtual {p0, v1, v2, p2}, Lf/g/j/o/b;->d(IILandroid/graphics/BitmapFactory$Options;)I move-result v3 iget-object v7, p0, Lf/g/j/o/b;->a:Lf/g/j/m/d; invoke-interface {v7, v3}, Lf/g/d/g/e;->get(I)Ljava/lang/Object; move-result-object v3 check-cast v3, Landroid/graphics/Bitmap; if-eqz v3, :cond_f :goto_1 iput-object v3, p2, Landroid/graphics/BitmapFactory$Options;->inBitmap:Landroid/graphics/Bitmap; sget v7, Landroid/os/Build$VERSION;->SDK_INT:I if-lt v7, v4, :cond_5 if-nez p4, :cond_4 sget-object p4, Landroid/graphics/ColorSpace$Named;->SRGB:Landroid/graphics/ColorSpace$Named; invoke-static {p4}, Landroid/graphics/ColorSpace;->get(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace; move-result-object p4 :cond_4 iput-object p4, p2, Landroid/graphics/BitmapFactory$Options;->inPreferredColorSpace:Landroid/graphics/ColorSpace; :cond_5 iget-object p4, p0, Lf/g/j/o/b;->c:Landroidx/core/util/Pools$SynchronizedPool; invoke-virtual {p4}, Landroidx/core/util/Pools$SynchronizedPool;->acquire()Ljava/lang/Object; move-result-object p4 check-cast p4, Ljava/nio/ByteBuffer; if-nez p4, :cond_6 const/16 p4, 0x4000 invoke-static {p4}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer; move-result-object p4 :cond_6 :try_start_0 invoke-virtual {p4}, Ljava/nio/ByteBuffer;->array()[B move-result-object v4 iput-object v4, p2, Landroid/graphics/BitmapFactory$Options;->inTempStorage:[B :try_end_0 .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_3 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_2 .catchall {:try_start_0 .. :try_end_0} :catchall_2 if-eqz p3, :cond_8 if-eqz v3, :cond_8 :try_start_1 iget-object v4, p2, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config; invoke-virtual {v3, v1, v2, v4}, Landroid/graphics/Bitmap;->reconfigure(IILandroid/graphics/Bitmap$Config;)V invoke-static {p1, v6}, Landroid/graphics/BitmapRegionDecoder;->newInstance(Ljava/io/InputStream;Z)Landroid/graphics/BitmapRegionDecoder; move-result-object v1 :try_end_1 .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 :try_start_2 invoke-virtual {v1, p3, p2}, Landroid/graphics/BitmapRegionDecoder;->decodeRegion(Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; move-result-object p3 :try_end_2 .catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_1 .catchall {:try_start_2 .. :try_end_2} :catchall_1 :try_start_3 invoke-virtual {v1}, Landroid/graphics/BitmapRegionDecoder;->recycle()V :try_end_3 .catch Ljava/lang/IllegalArgumentException; {:try_start_3 .. :try_end_3} :catch_3 .catch Ljava/lang/RuntimeException; {:try_start_3 .. :try_end_3} :catch_2 .catchall {:try_start_3 .. :try_end_3} :catchall_2 goto :goto_4 :catchall_0 move-exception p2 goto :goto_2 :catch_0 move-object v1, v0 :catch_1 :try_start_4 sget-object v2, Lf/g/j/o/b;->d:Ljava/lang/Class; const-string v4, "Could not decode region %s, decoding full bitmap instead." new-array v6, v6, [Ljava/lang/Object; aput-object p3, v6, v5 invoke-static {v2, v4, v6}, Lf/g/d/e/a;->c(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Object;)V :try_end_4 .catchall {:try_start_4 .. :try_end_4} :catchall_1 if-eqz v1, :cond_8 :try_start_5 invoke-virtual {v1}, Landroid/graphics/BitmapRegionDecoder;->recycle()V goto :goto_3 :catchall_1 move-exception p2 move-object v0, v1 :goto_2 if-eqz v0, :cond_7 invoke-virtual {v0}, Landroid/graphics/BitmapRegionDecoder;->recycle()V :cond_7 throw p2 :cond_8 :goto_3 move-object p3, v0 :goto_4 if-nez p3, :cond_9 invoke-static {p1, v0, p2}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; move-result-object p3 :try_end_5 .catch Ljava/lang/IllegalArgumentException; {:try_start_5 .. :try_end_5} :catch_3 .catch Ljava/lang/RuntimeException; {:try_start_5 .. :try_end_5} :catch_2 .catchall {:try_start_5 .. :try_end_5} :catchall_2 :cond_9 iget-object p1, p0, Lf/g/j/o/b;->c:Landroidx/core/util/Pools$SynchronizedPool; invoke-virtual {p1, p4}, Landroidx/core/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z if-eqz v3, :cond_b if-ne v3, p3, :cond_a goto :goto_5 :cond_a iget-object p1, p0, Lf/g/j/o/b;->a:Lf/g/j/m/d; invoke-interface {p1, v3}, Lf/g/d/g/e;->release(Ljava/lang/Object;)V invoke-virtual {p3}, Landroid/graphics/Bitmap;->recycle()V new-instance p1, Ljava/lang/IllegalStateException; invoke-direct {p1}, Ljava/lang/IllegalStateException;->()V throw p1 :cond_b :goto_5 iget-object p1, p0, Lf/g/j/o/b;->a:Lf/g/j/m/d; invoke-static {p3, p1}, Lcom/facebook/common/references/CloseableReference;->v(Ljava/lang/Object;Lf/g/d/h/g;)Lcom/facebook/common/references/CloseableReference; move-result-object p1 return-object p1 :catchall_2 move-exception p1 goto :goto_6 :catch_2 move-exception p1 if-eqz v3, :cond_c :try_start_6 iget-object p2, p0, Lf/g/j/o/b;->a:Lf/g/j/m/d; invoke-interface {p2, v3}, Lf/g/d/g/e;->release(Ljava/lang/Object;)V :cond_c throw p1 :catch_3 move-exception p2 if-eqz v3, :cond_d iget-object p3, p0, Lf/g/j/o/b;->a:Lf/g/j/m/d; invoke-interface {p3, v3}, Lf/g/d/g/e;->release(Ljava/lang/Object;)V :try_end_6 .catchall {:try_start_6 .. :try_end_6} :catchall_2 :cond_d :try_start_7 invoke-virtual {p1}, Ljava/io/InputStream;->reset()V invoke-static {p1}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap; move-result-object p1 if-eqz p1, :cond_e invoke-static {}, Lf/g/j/b/d;->a()Lf/g/j/b/d; move-result-object p3 invoke-static {p1, p3}, Lcom/facebook/common/references/CloseableReference;->v(Ljava/lang/Object;Lf/g/d/h/g;)Lcom/facebook/common/references/CloseableReference; move-result-object p1 :try_end_7 .catch Ljava/io/IOException; {:try_start_7 .. :try_end_7} :catch_4 .catchall {:try_start_7 .. :try_end_7} :catchall_2 iget-object p2, p0, Lf/g/j/o/b;->c:Landroidx/core/util/Pools$SynchronizedPool; invoke-virtual {p2, p4}, Landroidx/core/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z return-object p1 :cond_e :try_start_8 throw p2 :try_end_8 .catch Ljava/io/IOException; {:try_start_8 .. :try_end_8} :catch_4 .catchall {:try_start_8 .. :try_end_8} :catchall_2 :catch_4 :try_start_9 throw p2 :try_end_9 .catchall {:try_start_9 .. :try_end_9} :catchall_2 :goto_6 iget-object p2, p0, Lf/g/j/o/b;->c:Landroidx/core/util/Pools$SynchronizedPool; invoke-virtual {p2, p4}, Landroidx/core/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z throw p1 :cond_f new-instance p1, Ljava/lang/NullPointerException; const-string p2, "BitmapPool.get returned null" invoke-direct {p1, p2}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 :cond_10 throw v0 .end method .method public abstract d(IILandroid/graphics/BitmapFactory$Options;)I .end method