public class com.android.photos.BitmapRegionTileSource implements com.android.photos.views.TiledImageRenderer$TileSource
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.photos.BitmapRegionTileSource
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "BitmapRegionTileSource"

  private static final boolean REUSE_BITMAP;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int GL_SIZE_LIMIT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2048

  public static final int MAX_PREVIEW_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  com.android.photos.SimpleBitmapRegionDecoder mDecoder;
    descriptor: Lcom/android/photos/SimpleBitmapRegionDecoder;
    flags: (0x0000) 

  int mWidth;
    descriptor: I
    flags: (0x0000) 

  int mHeight;
    descriptor: I
    flags: (0x0000) 

  int mTileSize;
    descriptor: I
    flags: (0x0000) 

  private com.android.gallery3d.glrenderer.BasicTexture mPreview;
    descriptor: Lcom/android/gallery3d/glrenderer/BasicTexture;
    flags: (0x0002) ACC_PRIVATE

  private final int mRotation;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.graphics.Rect mWantRegion;
    descriptor: Landroid/graphics/Rect;
    flags: (0x0002) ACC_PRIVATE

  private android.graphics.Rect mOverlapRegion;
    descriptor: Landroid/graphics/Rect;
    flags: (0x0002) ACC_PRIVATE

  private android.graphics.BitmapFactory$Options mOptions;
    descriptor: Landroid/graphics/BitmapFactory$Options;
    flags: (0x0002) ACC_PRIVATE

  private android.graphics.Canvas mCanvas;
    descriptor: Landroid/graphics/Canvas;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 152
            getstatic android.os.Build$VERSION.SDK_INT:I
            bipush 16
            if_icmplt 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
         2: .line 151
      StackMap locals:
      StackMap stack: int
            putstatic com.android.photos.BitmapRegionTileSource.REUSE_BITMAP:Z
         3: .line 156
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.content.Context, com.android.photos.BitmapRegionTileSource$BitmapSource);
    descriptor: (Landroid/content/Context;Lcom/android/photos/BitmapRegionTileSource$BitmapSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.android.photos.BitmapRegionTileSource this
        start local 1 // android.content.Context context
        start local 2 // com.android.photos.BitmapRegionTileSource$BitmapSource source
         0: .line 379
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 374
            aload 0 /* this */
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            putfield com.android.photos.BitmapRegionTileSource.mWantRegion:Landroid/graphics/Rect;
         2: .line 375
            aload 0 /* this */
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            putfield com.android.photos.BitmapRegionTileSource.mOverlapRegion:Landroid/graphics/Rect;
         3: .line 380
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.android.photos.views.TiledImageRenderer.suggestedTileSize:(Landroid/content/Context;)I
            putfield com.android.photos.BitmapRegionTileSource.mTileSize:I
         4: .line 381
            aload 0 /* this */
            aload 2 /* source */
            invokevirtual com.android.photos.BitmapRegionTileSource$BitmapSource.getRotation:()I
            putfield com.android.photos.BitmapRegionTileSource.mRotation:I
         5: .line 382
            aload 0 /* this */
            aload 2 /* source */
            invokevirtual com.android.photos.BitmapRegionTileSource$BitmapSource.getBitmapRegionDecoder:()Lcom/android/photos/SimpleBitmapRegionDecoder;
            putfield com.android.photos.BitmapRegionTileSource.mDecoder:Lcom/android/photos/SimpleBitmapRegionDecoder;
         6: .line 383
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mDecoder:Lcom/android/photos/SimpleBitmapRegionDecoder;
            ifnull 25
         7: .line 384
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mDecoder:Lcom/android/photos/SimpleBitmapRegionDecoder;
            invokeinterface com.android.photos.SimpleBitmapRegionDecoder.getWidth:()I
            putfield com.android.photos.BitmapRegionTileSource.mWidth:I
         8: .line 385
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mDecoder:Lcom/android/photos/SimpleBitmapRegionDecoder;
            invokeinterface com.android.photos.SimpleBitmapRegionDecoder.getHeight:()I
            putfield com.android.photos.BitmapRegionTileSource.mHeight:I
         9: .line 386
            aload 0 /* this */
            new android.graphics.BitmapFactory$Options
            dup
            invokespecial android.graphics.BitmapFactory$Options.<init>:()V
            putfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
        10: .line 387
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            getstatic android.graphics.Bitmap$Config.ARGB_8888:Landroid/graphics/Bitmap$Config;
            putfield android.graphics.BitmapFactory$Options.inPreferredConfig:Landroid/graphics/Bitmap$Config;
        11: .line 388
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            iconst_1
            putfield android.graphics.BitmapFactory$Options.inPreferQualityOverSpeed:Z
        12: .line 389
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            sipush 16384
            newarray 8
            putfield android.graphics.BitmapFactory$Options.inTempStorage:[B
        13: .line 390
            aload 2 /* source */
            invokevirtual com.android.photos.BitmapRegionTileSource$BitmapSource.getPreviewSize:()I
            istore 3 /* previewSize */
        start local 3 // int previewSize
        14: .line 391
            iload 3 /* previewSize */
            ifeq 25
        15: .line 392
            iload 3 /* previewSize */
            sipush 1024
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* previewSize */
        16: .line 396
            aload 0 /* this */
            aload 2 /* source */
            iload 3 /* previewSize */
            invokevirtual com.android.photos.BitmapRegionTileSource.decodePreview:(Lcom/android/photos/BitmapRegionTileSource$BitmapSource;I)Landroid/graphics/Bitmap;
            astore 4 /* preview */
        start local 4 // android.graphics.Bitmap preview
        17: .line 397
            aload 4 /* preview */
            invokevirtual android.graphics.Bitmap.getWidth:()I
            sipush 2048
            if_icmpgt 20
            aload 4 /* preview */
            invokevirtual android.graphics.Bitmap.getHeight:()I
            sipush 2048
            if_icmpgt 20
        18: .line 398
            aload 0 /* this */
            new com.android.gallery3d.glrenderer.BitmapTexture
            dup
            aload 4 /* preview */
            invokespecial com.android.gallery3d.glrenderer.BitmapTexture.<init>:(Landroid/graphics/Bitmap;)V
            putfield com.android.photos.BitmapRegionTileSource.mPreview:Lcom/android/gallery3d/glrenderer/BasicTexture;
        19: .line 399
            goto 25
        20: .line 400
      StackMap locals: com.android.photos.BitmapRegionTileSource android.content.Context com.android.photos.BitmapRegionTileSource$BitmapSource int android.graphics.Bitmap
      StackMap stack:
            ldc "BitmapRegionTileSource"
        21: .line 401
            ldc "Failed to create preview of apropriate size!  in: %dx%d, out: %dx%d"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        22: .line 403
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mWidth:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mHeight:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
        23: .line 404
            aload 4 /* preview */
            invokevirtual android.graphics.Bitmap.getWidth:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 4 /* preview */
            invokevirtual android.graphics.Bitmap.getHeight:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        24: .line 400
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // android.graphics.Bitmap preview
        end local 3 // int previewSize
        25: .line 408
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.android.photos.BitmapRegionTileSource$BitmapSource source
        end local 1 // android.content.Context context
        end local 0 // com.android.photos.BitmapRegionTileSource this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0         this  Lcom/android/photos/BitmapRegionTileSource;
            0   26     1      context  Landroid/content/Context;
            0   26     2       source  Lcom/android/photos/BitmapRegionTileSource$BitmapSource;
           14   25     3  previewSize  I
           17   25     4      preview  Landroid/graphics/Bitmap;
    MethodParameters:
         Name  Flags
      context  
      source   

  public int getTileSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.photos.BitmapRegionTileSource this
         0: .line 412
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mTileSize:I
            ireturn
        end local 0 // com.android.photos.BitmapRegionTileSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/photos/BitmapRegionTileSource;

  public int getImageWidth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.photos.BitmapRegionTileSource this
         0: .line 417
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mWidth:I
            ireturn
        end local 0 // com.android.photos.BitmapRegionTileSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/photos/BitmapRegionTileSource;

  public int getImageHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.photos.BitmapRegionTileSource this
         0: .line 422
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mHeight:I
            ireturn
        end local 0 // com.android.photos.BitmapRegionTileSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/photos/BitmapRegionTileSource;

  public com.android.gallery3d.glrenderer.BasicTexture getPreview();
    descriptor: ()Lcom/android/gallery3d/glrenderer/BasicTexture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.photos.BitmapRegionTileSource this
         0: .line 427
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mPreview:Lcom/android/gallery3d/glrenderer/BasicTexture;
            areturn
        end local 0 // com.android.photos.BitmapRegionTileSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/photos/BitmapRegionTileSource;

  public int getRotation();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.photos.BitmapRegionTileSource this
         0: .line 432
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mRotation:I
            ireturn
        end local 0 // com.android.photos.BitmapRegionTileSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/photos/BitmapRegionTileSource;

  public android.graphics.Bitmap getTile(int, int, int, android.graphics.Bitmap);
    descriptor: (IIILandroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // com.android.photos.BitmapRegionTileSource this
        start local 1 // int level
        start local 2 // int x
        start local 3 // int y
        start local 4 // android.graphics.Bitmap bitmap
         0: .line 437
            aload 0 /* this */
            invokevirtual com.android.photos.BitmapRegionTileSource.getTileSize:()I
            istore 5 /* tileSize */
        start local 5 // int tileSize
         1: .line 438
            getstatic com.android.photos.BitmapRegionTileSource.REUSE_BITMAP:Z
            ifne 3
         2: .line 439
            aload 0 /* this */
            iload 1 /* level */
            iload 2 /* x */
            iload 3 /* y */
            iload 5 /* tileSize */
            invokevirtual com.android.photos.BitmapRegionTileSource.getTileWithoutReusingBitmap:(IIII)Landroid/graphics/Bitmap;
            areturn
         3: .line 442
      StackMap locals: int
      StackMap stack:
            iload 5 /* tileSize */
            iload 1 /* level */
            ishl
            istore 6 /* t */
        start local 6 // int t
         4: .line 443
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mWantRegion:Landroid/graphics/Rect;
            iload 2 /* x */
            iload 3 /* y */
            iload 2 /* x */
            iload 6 /* t */
            iadd
            iload 3 /* y */
            iload 6 /* t */
            iadd
            invokevirtual android.graphics.Rect.set:(IIII)V
         5: .line 445
            aload 4 /* bitmap */
            ifnonnull 7
         6: .line 446
            iload 5 /* tileSize */
            iload 5 /* tileSize */
            getstatic android.graphics.Bitmap$Config.ARGB_8888:Landroid/graphics/Bitmap$Config;
            invokestatic android.graphics.Bitmap.createBitmap:(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
            astore 4 /* bitmap */
         7: .line 449
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            iconst_1
            iload 1 /* level */
            ishl
            putfield android.graphics.BitmapFactory$Options.inSampleSize:I
         8: .line 450
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            aload 4 /* bitmap */
            putfield android.graphics.BitmapFactory$Options.inBitmap:Landroid/graphics/Bitmap;
         9: .line 453
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mDecoder:Lcom/android/photos/SimpleBitmapRegionDecoder;
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mWantRegion:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            invokeinterface com.android.photos.SimpleBitmapRegionDecoder.decodeRegion:(Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
            astore 4 /* bitmap */
        10: .line 454
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 7
        12: .line 455
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            getfield android.graphics.BitmapFactory$Options.inBitmap:Landroid/graphics/Bitmap;
            aload 4 /* bitmap */
            if_acmpeq 14
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            getfield android.graphics.BitmapFactory$Options.inBitmap:Landroid/graphics/Bitmap;
            ifnull 14
        13: .line 456
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            aconst_null
            putfield android.graphics.BitmapFactory$Options.inBitmap:Landroid/graphics/Bitmap;
        14: .line 458
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        15: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            getfield android.graphics.BitmapFactory$Options.inBitmap:Landroid/graphics/Bitmap;
            aload 4 /* bitmap */
            if_acmpeq 17
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            getfield android.graphics.BitmapFactory$Options.inBitmap:Landroid/graphics/Bitmap;
            ifnull 17
        16: .line 456
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            aconst_null
            putfield android.graphics.BitmapFactory$Options.inBitmap:Landroid/graphics/Bitmap;
        17: .line 460
      StackMap locals:
      StackMap stack:
            aload 4 /* bitmap */
            ifnonnull 19
        18: .line 461
            ldc "BitmapRegionTileSource"
            ldc "fail in decoding region"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        19: .line 463
      StackMap locals:
      StackMap stack:
            aload 4 /* bitmap */
            areturn
        end local 6 // int t
        end local 5 // int tileSize
        end local 4 // android.graphics.Bitmap bitmap
        end local 3 // int y
        end local 2 // int x
        end local 1 // int level
        end local 0 // com.android.photos.BitmapRegionTileSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lcom/android/photos/BitmapRegionTileSource;
            0   20     1     level  I
            0   20     2         x  I
            0   20     3         y  I
            0   20     4    bitmap  Landroid/graphics/Bitmap;
            1   20     5  tileSize  I
            4   20     6         t  I
      Exception table:
        from    to  target  type
           9    11      11  any
    MethodParameters:
        Name  Flags
      level   
      x       
      y       
      bitmap  

  private android.graphics.Bitmap getTileWithoutReusingBitmap(int, int, int, int);
    descriptor: (IIII)Landroid/graphics/Bitmap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // com.android.photos.BitmapRegionTileSource this
        start local 1 // int level
        start local 2 // int x
        start local 3 // int y
        start local 4 // int tileSize
         0: .line 469
            iload 4 /* tileSize */
            iload 1 /* level */
            ishl
            istore 5 /* t */
        start local 5 // int t
         1: .line 470
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mWantRegion:Landroid/graphics/Rect;
            iload 2 /* x */
            iload 3 /* y */
            iload 2 /* x */
            iload 5 /* t */
            iadd
            iload 3 /* y */
            iload 5 /* t */
            iadd
            invokevirtual android.graphics.Rect.set:(IIII)V
         2: .line 472
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOverlapRegion:Landroid/graphics/Rect;
            iconst_0
            iconst_0
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mWidth:I
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mHeight:I
            invokevirtual android.graphics.Rect.set:(IIII)V
         3: .line 474
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            iconst_1
            iload 1 /* level */
            ishl
            putfield android.graphics.BitmapFactory$Options.inSampleSize:I
         4: .line 475
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mDecoder:Lcom/android/photos/SimpleBitmapRegionDecoder;
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOverlapRegion:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOptions:Landroid/graphics/BitmapFactory$Options;
            invokeinterface com.android.photos.SimpleBitmapRegionDecoder.decodeRegion:(Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
            astore 6 /* bitmap */
        start local 6 // android.graphics.Bitmap bitmap
         5: .line 477
            aload 6 /* bitmap */
            ifnonnull 7
         6: .line 478
            ldc "BitmapRegionTileSource"
            ldc "fail in decoding region"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         7: .line 481
      StackMap locals: int android.graphics.Bitmap
      StackMap stack:
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mWantRegion:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOverlapRegion:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 482
            aload 6 /* bitmap */
            areturn
         9: .line 485
      StackMap locals:
      StackMap stack:
            iload 4 /* tileSize */
            iload 4 /* tileSize */
            getstatic android.graphics.Bitmap$Config.ARGB_8888:Landroid/graphics/Bitmap$Config;
            invokestatic android.graphics.Bitmap.createBitmap:(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
            astore 7 /* result */
        start local 7 // android.graphics.Bitmap result
        10: .line 486
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mCanvas:Landroid/graphics/Canvas;
            ifnonnull 12
        11: .line 487
            aload 0 /* this */
            new android.graphics.Canvas
            dup
            invokespecial android.graphics.Canvas.<init>:()V
            putfield com.android.photos.BitmapRegionTileSource.mCanvas:Landroid/graphics/Canvas;
        12: .line 489
      StackMap locals: android.graphics.Bitmap
      StackMap stack:
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mCanvas:Landroid/graphics/Canvas;
            aload 7 /* result */
            invokevirtual android.graphics.Canvas.setBitmap:(Landroid/graphics/Bitmap;)V
        13: .line 490
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mCanvas:Landroid/graphics/Canvas;
            aload 6 /* bitmap */
        14: .line 491
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOverlapRegion:Landroid/graphics/Rect;
            getfield android.graphics.Rect.left:I
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mWantRegion:Landroid/graphics/Rect;
            getfield android.graphics.Rect.left:I
            isub
            iload 1 /* level */
            ishr
            i2f
        15: .line 492
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mOverlapRegion:Landroid/graphics/Rect;
            getfield android.graphics.Rect.top:I
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mWantRegion:Landroid/graphics/Rect;
            getfield android.graphics.Rect.top:I
            isub
            iload 1 /* level */
            ishr
            i2f
            aconst_null
        16: .line 490
            invokevirtual android.graphics.Canvas.drawBitmap:(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
        17: .line 493
            aload 0 /* this */
            getfield com.android.photos.BitmapRegionTileSource.mCanvas:Landroid/graphics/Canvas;
            aconst_null
            invokevirtual android.graphics.Canvas.setBitmap:(Landroid/graphics/Bitmap;)V
        18: .line 494
            aload 7 /* result */
            areturn
        end local 7 // android.graphics.Bitmap result
        end local 6 // android.graphics.Bitmap bitmap
        end local 5 // int t
        end local 4 // int tileSize
        end local 3 // int y
        end local 2 // int x
        end local 1 // int level
        end local 0 // com.android.photos.BitmapRegionTileSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lcom/android/photos/BitmapRegionTileSource;
            0   19     1     level  I
            0   19     2         x  I
            0   19     3         y  I
            0   19     4  tileSize  I
            1   19     5         t  I
            5   19     6    bitmap  Landroid/graphics/Bitmap;
           10   19     7    result  Landroid/graphics/Bitmap;
    MethodParameters:
          Name  Flags
      level     
      x         
      y         
      tileSize  

  private android.graphics.Bitmap decodePreview(com.android.photos.BitmapRegionTileSource$BitmapSource, int);
    descriptor: (Lcom/android/photos/BitmapRegionTileSource$BitmapSource;I)Landroid/graphics/Bitmap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.android.photos.BitmapRegionTileSource this
        start local 1 // com.android.photos.BitmapRegionTileSource$BitmapSource source
        start local 2 // int targetSize
         0: .line 502
            aload 1 /* source */
            invokevirtual com.android.photos.BitmapRegionTileSource$BitmapSource.getPreviewBitmap:()Landroid/graphics/Bitmap;
            astore 3 /* result */
        start local 3 // android.graphics.Bitmap result
         1: .line 503
            aload 3 /* result */
            ifnonnull 3
         2: .line 504
            aconst_null
            areturn
         3: .line 509
      StackMap locals: android.graphics.Bitmap
      StackMap stack:
            iload 2 /* targetSize */
            i2f
            aload 3 /* result */
            invokevirtual android.graphics.Bitmap.getWidth:()I
            aload 3 /* result */
            invokevirtual android.graphics.Bitmap.getHeight:()I
            invokestatic java.lang.Math.max:(II)I
            i2f
            fdiv
            fstore 4 /* scale */
        start local 4 // float scale
         4: .line 511
            fload 4 /* scale */
            f2d
            ldc 0.5
            dcmpg
            ifgt 6
         5: .line 512
            aload 3 /* result */
            fload 4 /* scale */
            iconst_1
            invokestatic com.android.gallery3d.common.BitmapUtils.resizeBitmapByScale:(Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap;
            astore 3 /* result */
         6: .line 514
      StackMap locals: float
      StackMap stack:
            aload 3 /* result */
            invokestatic com.android.photos.BitmapRegionTileSource.ensureGLCompatibleBitmap:(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
            areturn
        end local 4 // float scale
        end local 3 // android.graphics.Bitmap result
        end local 2 // int targetSize
        end local 1 // com.android.photos.BitmapRegionTileSource$BitmapSource source
        end local 0 // com.android.photos.BitmapRegionTileSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/android/photos/BitmapRegionTileSource;
            0    7     1      source  Lcom/android/photos/BitmapRegionTileSource$BitmapSource;
            0    7     2  targetSize  I
            1    7     3      result  Landroid/graphics/Bitmap;
            4    7     4       scale  F
    MethodParameters:
            Name  Flags
      source      
      targetSize  

  private static android.graphics.Bitmap ensureGLCompatibleBitmap(android.graphics.Bitmap);
    descriptor: (Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.graphics.Bitmap bitmap
         0: .line 518
            aload 0 /* bitmap */
            ifnull 1
            aload 0 /* bitmap */
            invokevirtual android.graphics.Bitmap.getConfig:()Landroid/graphics/Bitmap$Config;
            ifnull 2
         1: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* bitmap */
            areturn
         2: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* bitmap */
            getstatic android.graphics.Bitmap$Config.ARGB_8888:Landroid/graphics/Bitmap$Config;
            iconst_0
            invokevirtual android.graphics.Bitmap.copy:(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
            astore 1 /* newBitmap */
        start local 1 // android.graphics.Bitmap newBitmap
         3: .line 522
            aload 0 /* bitmap */
            invokevirtual android.graphics.Bitmap.recycle:()V
         4: .line 523
            aload 1 /* newBitmap */
            areturn
        end local 1 // android.graphics.Bitmap newBitmap
        end local 0 // android.graphics.Bitmap bitmap
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0     bitmap  Landroid/graphics/Bitmap;
            3    5     1  newBitmap  Landroid/graphics/Bitmap;
    MethodParameters:
        Name  Flags
      bitmap  
}
SourceFile: "BitmapRegionTileSource.java"
NestMembers:
  com.android.photos.BitmapRegionTileSource$BitmapSource  com.android.photos.BitmapRegionTileSource$BitmapSource$State  com.android.photos.BitmapRegionTileSource$FilePathBitmapSource  com.android.photos.BitmapRegionTileSource$ResourceBitmapSource  com.android.photos.BitmapRegionTileSource$UriBitmapSource
InnerClasses:
  public final Config = android.graphics.Bitmap$Config of android.graphics.Bitmap
  public Options = android.graphics.BitmapFactory$Options of android.graphics.BitmapFactory
  public VERSION = android.os.Build$VERSION of android.os.Build
  public abstract BitmapSource = com.android.photos.BitmapRegionTileSource$BitmapSource of com.android.photos.BitmapRegionTileSource
  public FilePathBitmapSource = com.android.photos.BitmapRegionTileSource$FilePathBitmapSource of com.android.photos.BitmapRegionTileSource
  public ResourceBitmapSource = com.android.photos.BitmapRegionTileSource$ResourceBitmapSource of com.android.photos.BitmapRegionTileSource
  public UriBitmapSource = com.android.photos.BitmapRegionTileSource$UriBitmapSource of com.android.photos.BitmapRegionTileSource
  public abstract TileSource = com.android.photos.views.TiledImageRenderer$TileSource of com.android.photos.views.TiledImageRenderer
    RuntimeInvisibleAnnotations: 
      android.annotation.TargetApi(value = 15)