public class com.android.wallpapercropper.WallpaperCropActivity extends android.app.Activity
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.wallpapercropper.WallpaperCropActivity
  super_class: android.app.Activity
{
  private static final java.lang.String LOGTAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Launcher3.CropActivity"

  protected static final java.lang.String WALLPAPER_WIDTH_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "wallpaper.width"

  protected static final java.lang.String WALLPAPER_HEIGHT_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "wallpaper.height"

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

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

  private static final float WALLPAPER_SCREENS_SPAN;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2.0

  protected static android.graphics.Point sDefaultWallpaperSize;
    descriptor: Landroid/graphics/Point;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected com.android.wallpapercropper.CropView mCropView;
    descriptor: Lcom/android/wallpapercropper/CropView;
    flags: (0x0004) ACC_PROTECTED

  protected android.net.Uri mUri;
    descriptor: Landroid/net/Uri;
    flags: (0x0004) ACC_PROTECTED

  private android.view.View mSetWallpaperButton;
    descriptor: Landroid/view/View;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.wallpapercropper.WallpaperCropActivity this
         0: .line 57
            aload 0 /* this */
            invokespecial android.app.Activity.<init>:()V
            return
        end local 0 // com.android.wallpapercropper.WallpaperCropActivity this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/wallpapercropper/WallpaperCropActivity;

  protected void onCreate(android.os.Bundle);
    descriptor: (Landroid/os/Bundle;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.wallpapercropper.WallpaperCropActivity this
        start local 1 // android.os.Bundle savedInstanceState
         0: .line 81
            aload 0 /* this */
            aload 1 /* savedInstanceState */
            invokespecial android.app.Activity.onCreate:(Landroid/os/Bundle;)V
         1: .line 82
            aload 0 /* this */
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity.init:()V
         2: .line 83
            aload 0 /* this */
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity.enableRotation:()Z
            ifne 4
         3: .line 84
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity.setRequestedOrientation:(I)V
         4: .line 86
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.os.Bundle savedInstanceState
        end local 0 // com.android.wallpapercropper.WallpaperCropActivity this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lcom/android/wallpapercropper/WallpaperCropActivity;
            0    5     1  savedInstanceState  Landroid/os/Bundle;
    MethodParameters:
                    Name  Flags
      savedInstanceState  

  protected void init();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.wallpapercropper.WallpaperCropActivity this
         0: .line 89
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.wallpapercropper.WallpaperCropActivity this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/wallpapercropper/WallpaperCropActivity;

  protected void onDestroy();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.wallpapercropper.WallpaperCropActivity this
         0: .line 137
            aload 0 /* this */
            getfield com.android.wallpapercropper.WallpaperCropActivity.mCropView:Lcom/android/wallpapercropper/CropView;
            ifnull 2
         1: .line 138
            aload 0 /* this */
            getfield com.android.wallpapercropper.WallpaperCropActivity.mCropView:Lcom/android/wallpapercropper/CropView;
            invokevirtual com.android.wallpapercropper.CropView.destroy:()V
         2: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial android.app.Activity.onDestroy:()V
         3: .line 141
            return
        end local 0 // com.android.wallpapercropper.WallpaperCropActivity this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/android/wallpapercropper/WallpaperCropActivity;

  public void setCropViewTileSource(com.android.photos.BitmapRegionTileSource$BitmapSource, boolean, boolean, java.lang.Runnable);
    descriptor: (Lcom/android/photos/BitmapRegionTileSource$BitmapSource;ZZLjava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.android.wallpapercropper.WallpaperCropActivity this
         0: .line 147
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.wallpapercropper.WallpaperCropActivity this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/wallpapercropper/WallpaperCropActivity;
    MethodParameters:
              Name  Flags
      bitmapSource  final
      touchEnabled  final
      moveToLeft    final
      postExecute   final

  public boolean enableRotation();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.wallpapercropper.WallpaperCropActivity this
         0: .line 200
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.wallpapercropper.WallpaperCropActivity this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/wallpapercropper/WallpaperCropActivity;

  public static java.lang.String getSharedPreferencesKey();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 204
            ldc Lcom/android/wallpapercropper/WallpaperCropActivity;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static float wallpaperTravelToScreenWidthRatio(int, int);
    descriptor: (II)F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // int width
        start local 1 // int height
         0: .line 210
            iload 0 /* width */
            i2f
            iload 1 /* height */
            i2f
            fdiv
            fstore 2 /* aspectRatio */
        start local 2 // float aspectRatio
         1: .line 231
            ldc 0.30769226
            fload 2 /* aspectRatio */
            fmul
            ldc 1.0076923
            fadd
            freturn
        end local 2 // float aspectRatio
        end local 1 // int height
        end local 0 // int width
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0        width  I
            0    2     1       height  I
            1    2     2  aspectRatio  F
    MethodParameters:
        Name  Flags
      width   
      height  

  protected static android.graphics.Point getDefaultWallpaperSize(android.content.res.Resources, android.view.WindowManager);
    descriptor: (Landroid/content/res/Resources;Landroid/view/WindowManager;)Landroid/graphics/Point;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // android.content.res.Resources res
        start local 1 // android.view.WindowManager windowManager
         0: .line 235
            getstatic com.android.wallpapercropper.WallpaperCropActivity.sDefaultWallpaperSize:Landroid/graphics/Point;
            ifnonnull 18
         1: .line 236
            new android.graphics.Point
            dup
            invokespecial android.graphics.Point.<init>:()V
            astore 2 /* minDims */
        start local 2 // android.graphics.Point minDims
         2: .line 237
            new android.graphics.Point
            dup
            invokespecial android.graphics.Point.<init>:()V
            astore 3 /* maxDims */
        start local 3 // android.graphics.Point maxDims
         3: .line 238
            aload 1 /* windowManager */
            invokeinterface android.view.WindowManager.getDefaultDisplay:()Landroid/view/Display;
            aload 2 /* minDims */
            aload 3 /* maxDims */
            invokevirtual android.view.Display.getCurrentSizeRange:(Landroid/graphics/Point;Landroid/graphics/Point;)V
         4: .line 240
            aload 3 /* maxDims */
            getfield android.graphics.Point.x:I
            aload 3 /* maxDims */
            getfield android.graphics.Point.y:I
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxDim */
        start local 4 // int maxDim
         5: .line 241
            aload 2 /* minDims */
            getfield android.graphics.Point.x:I
            aload 2 /* minDims */
            getfield android.graphics.Point.y:I
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* minDim */
        start local 5 // int minDim
         6: .line 243
            getstatic android.os.Build$VERSION.SDK_INT:I
            bipush 17
            if_icmplt 11
         7: .line 244
            new android.graphics.Point
            dup
            invokespecial android.graphics.Point.<init>:()V
            astore 6 /* realSize */
        start local 6 // android.graphics.Point realSize
         8: .line 245
            aload 1 /* windowManager */
            invokeinterface android.view.WindowManager.getDefaultDisplay:()Landroid/view/Display;
            aload 6 /* realSize */
            invokevirtual android.view.Display.getRealSize:(Landroid/graphics/Point;)V
         9: .line 246
            aload 6 /* realSize */
            getfield android.graphics.Point.x:I
            aload 6 /* realSize */
            getfield android.graphics.Point.y:I
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxDim */
        10: .line 247
            aload 6 /* realSize */
            getfield android.graphics.Point.x:I
            aload 6 /* realSize */
            getfield android.graphics.Point.y:I
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* minDim */
        end local 6 // android.graphics.Point realSize
        11: .line 253
      StackMap locals: android.content.res.Resources android.view.WindowManager android.graphics.Point android.graphics.Point int int
      StackMap stack:
            aload 0 /* res */
            invokestatic com.android.wallpapercropper.WallpaperCropActivity.isScreenLarge:(Landroid/content/res/Resources;)Z
            ifeq 15
        12: .line 254
            iload 4 /* maxDim */
            i2f
            iload 4 /* maxDim */
            iload 5 /* minDim */
            invokestatic com.android.wallpapercropper.WallpaperCropActivity.wallpaperTravelToScreenWidthRatio:(II)F
            fmul
            f2i
            istore 6 /* defaultWidth */
        start local 6 // int defaultWidth
        13: .line 255
            iload 4 /* maxDim */
            istore 7 /* defaultHeight */
        start local 7 // int defaultHeight
        14: .line 256
            goto 17
        end local 7 // int defaultHeight
        end local 6 // int defaultWidth
        15: .line 257
      StackMap locals:
      StackMap stack:
            iload 5 /* minDim */
            i2f
            fconst_2
            fmul
            f2i
            iload 4 /* maxDim */
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* defaultWidth */
        start local 6 // int defaultWidth
        16: .line 258
            iload 4 /* maxDim */
            istore 7 /* defaultHeight */
        start local 7 // int defaultHeight
        17: .line 260
      StackMap locals: int int
      StackMap stack:
            new android.graphics.Point
            dup
            iload 6 /* defaultWidth */
            iload 7 /* defaultHeight */
            invokespecial android.graphics.Point.<init>:(II)V
            putstatic com.android.wallpapercropper.WallpaperCropActivity.sDefaultWallpaperSize:Landroid/graphics/Point;
        end local 7 // int defaultHeight
        end local 6 // int defaultWidth
        end local 5 // int minDim
        end local 4 // int maxDim
        end local 3 // android.graphics.Point maxDims
        end local 2 // android.graphics.Point minDims
        18: .line 262
      StackMap locals: android.content.res.Resources android.view.WindowManager
      StackMap stack:
            getstatic com.android.wallpapercropper.WallpaperCropActivity.sDefaultWallpaperSize:Landroid/graphics/Point;
            areturn
        end local 1 // android.view.WindowManager windowManager
        end local 0 // android.content.res.Resources res
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0            res  Landroid/content/res/Resources;
            0   19     1  windowManager  Landroid/view/WindowManager;
            2   18     2        minDims  Landroid/graphics/Point;
            3   18     3        maxDims  Landroid/graphics/Point;
            5   18     4         maxDim  I
            6   18     5         minDim  I
            8   11     6       realSize  Landroid/graphics/Point;
           13   15     6   defaultWidth  I
           16   18     6   defaultWidth  I
           14   15     7  defaultHeight  I
           17   18     7  defaultHeight  I
    MethodParameters:
               Name  Flags
      res            
      windowManager  

  public static int getRotationFromExif(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String path
         0: .line 266
            aload 0 /* path */
            aconst_null
            iconst_0
            aconst_null
            aconst_null
            invokestatic com.android.wallpapercropper.WallpaperCropActivity.getRotationFromExifHelper:(Ljava/lang/String;Landroid/content/res/Resources;ILandroid/content/Context;Landroid/net/Uri;)I
            ireturn
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public static int getRotationFromExif(android.content.Context, android.net.Uri);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.content.Context context
        start local 1 // android.net.Uri uri
         0: .line 270
            aconst_null
            aconst_null
            iconst_0
            aload 0 /* context */
            aload 1 /* uri */
            invokestatic com.android.wallpapercropper.WallpaperCropActivity.getRotationFromExifHelper:(Ljava/lang/String;Landroid/content/res/Resources;ILandroid/content/Context;Landroid/net/Uri;)I
            ireturn
        end local 1 // android.net.Uri uri
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Landroid/content/Context;
            0    1     1      uri  Landroid/net/Uri;
    MethodParameters:
         Name  Flags
      context  
      uri      

  public static int getRotationFromExif(android.content.res.Resources, int);
    descriptor: (Landroid/content/res/Resources;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.content.res.Resources res
        start local 1 // int resId
         0: .line 274
            aconst_null
            aload 0 /* res */
            iload 1 /* resId */
            aconst_null
            aconst_null
            invokestatic com.android.wallpapercropper.WallpaperCropActivity.getRotationFromExifHelper:(Ljava/lang/String;Landroid/content/res/Resources;ILandroid/content/Context;Landroid/net/Uri;)I
            ireturn
        end local 1 // int resId
        end local 0 // android.content.res.Resources res
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    res  Landroid/content/res/Resources;
            0    1     1  resId  I
    MethodParameters:
       Name  Flags
      res    
      resId  

  private static int getRotationFromExifHelper(java.lang.String, android.content.res.Resources, int, android.content.Context, android.net.Uri);
    descriptor: (Ljava/lang/String;Landroid/content/res/Resources;ILandroid/content/Context;Landroid/net/Uri;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=11, args_size=5
        start local 0 // java.lang.String path
        start local 1 // android.content.res.Resources res
        start local 2 // int resId
        start local 3 // android.content.Context context
        start local 4 // android.net.Uri uri
         0: .line 279
            new com.android.gallery3d.exif.ExifInterface
            dup
            invokespecial com.android.gallery3d.exif.ExifInterface.<init>:()V
            astore 5 /* ei */
        start local 5 // com.android.gallery3d.exif.ExifInterface ei
         1: .line 280
            aconst_null
            astore 6 /* is */
        start local 6 // java.io.InputStream is
         2: .line 281
            aconst_null
            astore 7 /* bis */
        start local 7 // java.io.BufferedInputStream bis
         3: .line 283
            aload 0 /* path */
            ifnull 6
         4: .line 284
            aload 5 /* ei */
            aload 0 /* path */
            invokevirtual com.android.gallery3d.exif.ExifInterface.readExif:(Ljava/lang/String;)V
         5: .line 285
            goto 14
      StackMap locals: com.android.gallery3d.exif.ExifInterface java.io.InputStream java.io.BufferedInputStream
      StackMap stack:
         6: aload 4 /* uri */
            ifnull 11
         7: .line 286
            aload 3 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            aload 4 /* uri */
            invokevirtual android.content.ContentResolver.openInputStream:(Landroid/net/Uri;)Ljava/io/InputStream;
            astore 6 /* is */
         8: .line 287
            new java.io.BufferedInputStream
            dup
            aload 6 /* is */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 7 /* bis */
         9: .line 288
            aload 5 /* ei */
            aload 7 /* bis */
            invokevirtual com.android.gallery3d.exif.ExifInterface.readExif:(Ljava/io/InputStream;)V
        10: .line 289
            goto 14
        11: .line 290
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            iload 2 /* resId */
            invokevirtual android.content.res.Resources.openRawResource:(I)Ljava/io/InputStream;
            astore 6 /* is */
        12: .line 291
            new java.io.BufferedInputStream
            dup
            aload 6 /* is */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 7 /* bis */
        13: .line 292
            aload 5 /* ei */
            aload 7 /* bis */
            invokevirtual com.android.gallery3d.exif.ExifInterface.readExif:(Ljava/io/InputStream;)V
        14: .line 294
      StackMap locals:
      StackMap stack:
            aload 5 /* ei */
            getstatic com.android.gallery3d.exif.ExifInterface.TAG_ORIENTATION:I
            invokevirtual com.android.gallery3d.exif.ExifInterface.getTagIntValue:(I)Ljava/lang/Integer;
            astore 8 /* ori */
        start local 8 // java.lang.Integer ori
        15: .line 295
            aload 8 /* ori */
            ifnull 32
        16: .line 296
            aload 8 /* ori */
            invokevirtual java.lang.Integer.shortValue:()S
            invokestatic com.android.gallery3d.exif.ExifInterface.getRotationForOrientationValue:(S)I
            istore 10
        17: .line 304
            aload 7 /* bis */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
        18: .line 305
            aload 6 /* is */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
        19: .line 296
            iload 10
            ireturn
        end local 8 // java.lang.Integer ori
        20: .line 298
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* e */
        start local 8 // java.io.IOException e
        21: .line 299
            ldc "Launcher3.CropActivity"
            ldc "Getting exif data failed"
            aload 8 /* e */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 8 // java.io.IOException e
        22: .line 304
            aload 7 /* bis */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
        23: .line 305
            aload 6 /* is */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
            goto 34
        24: .line 300
      StackMap locals:
      StackMap stack: java.lang.NullPointerException
            astore 8 /* e */
        start local 8 // java.lang.NullPointerException e
        25: .line 302
            ldc "Launcher3.CropActivity"
            ldc "Getting exif data failed"
            aload 8 /* e */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 8 // java.lang.NullPointerException e
        26: .line 304
            aload 7 /* bis */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
        27: .line 305
            aload 6 /* is */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
            goto 34
        28: .line 303
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        29: .line 304
            aload 7 /* bis */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
        30: .line 305
            aload 6 /* is */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
        31: .line 306
            aload 9
            athrow
        32: .line 304
      StackMap locals:
      StackMap stack:
            aload 7 /* bis */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
        33: .line 305
            aload 6 /* is */
            invokestatic com.android.gallery3d.common.Utils.closeSilently:(Ljava/io/Closeable;)V
        34: .line 307
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // java.io.BufferedInputStream bis
        end local 6 // java.io.InputStream is
        end local 5 // com.android.gallery3d.exif.ExifInterface ei
        end local 4 // android.net.Uri uri
        end local 3 // android.content.Context context
        end local 2 // int resId
        end local 1 // android.content.res.Resources res
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   35     0     path  Ljava/lang/String;
            0   35     1      res  Landroid/content/res/Resources;
            0   35     2    resId  I
            0   35     3  context  Landroid/content/Context;
            0   35     4      uri  Landroid/net/Uri;
            1   35     5       ei  Lcom/android/gallery3d/exif/ExifInterface;
            2   35     6       is  Ljava/io/InputStream;
            3   35     7      bis  Ljava/io/BufferedInputStream;
           15   20     8      ori  Ljava/lang/Integer;
           21   22     8        e  Ljava/io/IOException;
           25   26     8        e  Ljava/lang/NullPointerException;
      Exception table:
        from    to  target  type
           3    17      20  Class java.io.IOException
           3    17      24  Class java.lang.NullPointerException
           3    17      28  any
          20    22      28  any
          24    26      28  any
    MethodParameters:
         Name  Flags
      path     
      res      
      resId    
      context  
      uri      

  protected void setWallpaper(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=6, args_size=3
        start local 0 // com.android.wallpapercropper.WallpaperCropActivity this
        start local 1 // java.lang.String filePath
        start local 2 // boolean finishActivityWhenDone
         0: .line 311
            aload 1 /* filePath */
            invokestatic com.android.wallpapercropper.WallpaperCropActivity.getRotationFromExif:(Ljava/lang/String;)I
            istore 3 /* rotation */
        start local 3 // int rotation
         1: .line 312
            new com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask
            dup
         2: .line 313
            aload 0 /* this */
            aload 1 /* filePath */
            aconst_null
            iload 3 /* rotation */
            iconst_0
            iconst_0
            iconst_1
            iconst_0
            aconst_null
         3: .line 312
            invokespecial com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask.<init>:(Landroid/content/Context;Ljava/lang/String;Landroid/graphics/RectF;IIIZZLjava/lang/Runnable;)V
            astore 4 /* cropTask */
        start local 4 // com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask cropTask
         4: .line 314
            aload 4 /* cropTask */
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask.getImageBounds:()Landroid/graphics/Point;
            pop
         5: .line 315
            new com.android.wallpapercropper.WallpaperCropActivity$1
            dup
            aload 0 /* this */
            iload 2 /* finishActivityWhenDone */
            invokespecial com.android.wallpapercropper.WallpaperCropActivity$1.<init>:(Lcom/android/wallpapercropper/WallpaperCropActivity;Z)V
            astore 5 /* onEndCrop */
        start local 5 // java.lang.Runnable onEndCrop
         6: .line 323
            aload 4 /* cropTask */
            aload 5 /* onEndCrop */
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask.setOnEndRunnable:(Ljava/lang/Runnable;)V
         7: .line 324
            aload 4 /* cropTask */
            iconst_1
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask.setNoCrop:(Z)V
         8: .line 325
            aload 4 /* cropTask */
            iconst_0
            anewarray java.lang.Void
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask.execute:([Ljava/lang/Object;)Landroid/os/AsyncTask;
            pop
         9: .line 326
            return
        end local 5 // java.lang.Runnable onEndCrop
        end local 4 // com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask cropTask
        end local 3 // int rotation
        end local 2 // boolean finishActivityWhenDone
        end local 1 // java.lang.String filePath
        end local 0 // com.android.wallpapercropper.WallpaperCropActivity this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   10     0                    this  Lcom/android/wallpapercropper/WallpaperCropActivity;
            0   10     1                filePath  Ljava/lang/String;
            0   10     2  finishActivityWhenDone  Z
            1   10     3                rotation  I
            4   10     4                cropTask  Lcom/android/wallpapercropper/WallpaperCropActivity$BitmapCropTask;
            6   10     5               onEndCrop  Ljava/lang/Runnable;
    MethodParameters:
                        Name  Flags
      filePath                
      finishActivityWhenDone  final

  protected void cropImageAndSetWallpaper(android.content.res.Resources, int, boolean);
    descriptor: (Landroid/content/res/Resources;IZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=12, locals=10, args_size=4
        start local 0 // com.android.wallpapercropper.WallpaperCropActivity this
        start local 1 // android.content.res.Resources res
        start local 2 // int resId
        start local 3 // boolean finishActivityWhenDone
         0: .line 332
            aload 1 /* res */
            iload 2 /* resId */
            invokestatic com.android.wallpapercropper.WallpaperCropActivity.getRotationFromExif:(Landroid/content/res/Resources;I)I
            istore 4 /* rotation */
        start local 4 // int rotation
         1: .line 333
            aload 0 /* this */
            getfield com.android.wallpapercropper.WallpaperCropActivity.mCropView:Lcom/android/wallpapercropper/CropView;
            invokevirtual com.android.wallpapercropper.CropView.getSourceDimensions:()Landroid/graphics/Point;
            astore 5 /* inSize */
        start local 5 // android.graphics.Point inSize
         2: .line 334
            aload 0 /* this */
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity.getResources:()Landroid/content/res/Resources;
         3: .line 335
            aload 0 /* this */
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity.getWindowManager:()Landroid/view/WindowManager;
         4: .line 334
            invokestatic com.android.wallpapercropper.WallpaperCropActivity.getDefaultWallpaperSize:(Landroid/content/res/Resources;Landroid/view/WindowManager;)Landroid/graphics/Point;
            astore 6 /* outSize */
        start local 6 // android.graphics.Point outSize
         5: .line 337
            aload 5 /* inSize */
            getfield android.graphics.Point.x:I
            aload 5 /* inSize */
            getfield android.graphics.Point.y:I
            aload 6 /* outSize */
            getfield android.graphics.Point.x:I
            aload 6 /* outSize */
            getfield android.graphics.Point.y:I
            iconst_0
         6: .line 336
            invokestatic com.android.wallpapercropper.WallpaperCropActivity.getMaxCropRect:(IIIIZ)Landroid/graphics/RectF;
            astore 7 /* crop */
        start local 7 // android.graphics.RectF crop
         7: .line 338
            new com.android.wallpapercropper.WallpaperCropActivity$2
            dup
            aload 0 /* this */
            iload 3 /* finishActivityWhenDone */
            invokespecial com.android.wallpapercropper.WallpaperCropActivity$2.<init>:(Lcom/android/wallpapercropper/WallpaperCropActivity;Z)V
            astore 8 /* onEndCrop */
        start local 8 // java.lang.Runnable onEndCrop
         8: .line 346
            new com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask
            dup
            aload 0 /* this */
            aload 1 /* res */
            iload 2 /* resId */
         9: .line 347
            aload 7 /* crop */
            iload 4 /* rotation */
            aload 6 /* outSize */
            getfield android.graphics.Point.x:I
            aload 6 /* outSize */
            getfield android.graphics.Point.y:I
            iconst_1
            iconst_0
            aload 8 /* onEndCrop */
        10: .line 346
            invokespecial com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask.<init>:(Landroid/content/Context;Landroid/content/res/Resources;ILandroid/graphics/RectF;IIIZZLjava/lang/Runnable;)V
            astore 9 /* cropTask */
        start local 9 // com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask cropTask
        11: .line 348
            aload 9 /* cropTask */
            iconst_0
            anewarray java.lang.Void
            invokevirtual com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask.execute:([Ljava/lang/Object;)Landroid/os/AsyncTask;
            pop
        12: .line 349
            return
        end local 9 // com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask cropTask
        end local 8 // java.lang.Runnable onEndCrop
        end local 7 // android.graphics.RectF crop
        end local 6 // android.graphics.Point outSize
        end local 5 // android.graphics.Point inSize
        end local 4 // int rotation
        end local 3 // boolean finishActivityWhenDone
        end local 2 // int resId
        end local 1 // android.content.res.Resources res
        end local 0 // com.android.wallpapercropper.WallpaperCropActivity this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   13     0                    this  Lcom/android/wallpapercropper/WallpaperCropActivity;
            0   13     1                     res  Landroid/content/res/Resources;
            0   13     2                   resId  I
            0   13     3  finishActivityWhenDone  Z
            1   13     4                rotation  I
            2   13     5                  inSize  Landroid/graphics/Point;
            5   13     6                 outSize  Landroid/graphics/Point;
            7   13     7                    crop  Landroid/graphics/RectF;
            8   13     8               onEndCrop  Ljava/lang/Runnable;
           11   13     9                cropTask  Lcom/android/wallpapercropper/WallpaperCropActivity$BitmapCropTask;
    MethodParameters:
                        Name  Flags
      res                     
      resId                   
      finishActivityWhenDone  final

  private static boolean isScreenLarge(android.content.res.Resources);
    descriptor: (Landroid/content/res/Resources;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.content.res.Resources res
         0: .line 352
            aload 0 /* res */
            invokevirtual android.content.res.Resources.getConfiguration:()Landroid/content/res/Configuration;
            astore 1 /* config */
        start local 1 // android.content.res.Configuration config
         1: .line 353
            aload 1 /* config */
            getfield android.content.res.Configuration.smallestScreenWidthDp:I
            sipush 720
            if_icmplt 2
            iconst_1
            ireturn
      StackMap locals: android.content.res.Configuration
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // android.content.res.Configuration config
        end local 0 // android.content.res.Resources res
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     res  Landroid/content/res/Resources;
            1    3     1  config  Landroid/content/res/Configuration;
    MethodParameters:
      Name  Flags
      res   

  protected void cropImageAndSetWallpaper(android.net.Uri, com.android.wallpapercropper.WallpaperCropActivity$OnBitmapCroppedHandler, boolean);
    descriptor: (Landroid/net/Uri;Lcom/android/wallpapercropper/WallpaperCropActivity$OnBitmapCroppedHandler;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.android.wallpapercropper.WallpaperCropActivity this
         0: .line 358
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.wallpapercropper.WallpaperCropActivity this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/wallpapercropper/WallpaperCropActivity;
    MethodParameters:
                        Name  Flags
      uri                     
      onBitmapCroppedHandler  
      finishActivityWhenDone  final

  protected static android.graphics.RectF getMaxCropRect(int, int, int, int, boolean);
    descriptor: (IIIIZ)Landroid/graphics/RectF;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // int inWidth
        start local 1 // int inHeight
        start local 2 // int outWidth
        start local 3 // int outHeight
        start local 4 // boolean leftAligned
         0: .line 815
            new android.graphics.RectF
            dup
            invokespecial android.graphics.RectF.<init>:()V
            astore 5 /* cropRect */
        start local 5 // android.graphics.RectF cropRect
         1: .line 817
            iload 0 /* inWidth */
            i2f
            iload 1 /* inHeight */
            i2f
            fdiv
            iload 2 /* outWidth */
            i2f
            iload 3 /* outHeight */
            i2f
            fdiv
            fcmpl
            ifle 10
         2: .line 818
            aload 5 /* cropRect */
            fconst_0
            putfield android.graphics.RectF.top:F
         3: .line 819
            aload 5 /* cropRect */
            iload 1 /* inHeight */
            i2f
            putfield android.graphics.RectF.bottom:F
         4: .line 820
            aload 5 /* cropRect */
            iload 0 /* inWidth */
            i2f
            iload 2 /* outWidth */
            i2f
            iload 3 /* outHeight */
            i2f
            fdiv
            iload 1 /* inHeight */
            i2f
            fmul
            fsub
            fconst_2
            fdiv
            putfield android.graphics.RectF.left:F
         5: .line 821
            aload 5 /* cropRect */
            iload 0 /* inWidth */
            i2f
            aload 5 /* cropRect */
            getfield android.graphics.RectF.left:F
            fsub
            putfield android.graphics.RectF.right:F
         6: .line 822
            iload 4 /* leftAligned */
            ifeq 14
         7: .line 823
            aload 5 /* cropRect */
            dup
            getfield android.graphics.RectF.right:F
            aload 5 /* cropRect */
            getfield android.graphics.RectF.left:F
            fsub
            putfield android.graphics.RectF.right:F
         8: .line 824
            aload 5 /* cropRect */
            fconst_0
            putfield android.graphics.RectF.left:F
         9: .line 826
            goto 14
        10: .line 827
      StackMap locals: android.graphics.RectF
      StackMap stack:
            aload 5 /* cropRect */
            fconst_0
            putfield android.graphics.RectF.left:F
        11: .line 828
            aload 5 /* cropRect */
            iload 0 /* inWidth */
            i2f
            putfield android.graphics.RectF.right:F
        12: .line 829
            aload 5 /* cropRect */
            iload 1 /* inHeight */
            i2f
            iload 3 /* outHeight */
            i2f
            iload 2 /* outWidth */
            i2f
            fdiv
            iload 0 /* inWidth */
            i2f
            fmul
            fsub
            fconst_2
            fdiv
            putfield android.graphics.RectF.top:F
        13: .line 830
            aload 5 /* cropRect */
            iload 1 /* inHeight */
            i2f
            aload 5 /* cropRect */
            getfield android.graphics.RectF.top:F
            fsub
            putfield android.graphics.RectF.bottom:F
        14: .line 832
      StackMap locals:
      StackMap stack:
            aload 5 /* cropRect */
            areturn
        end local 5 // android.graphics.RectF cropRect
        end local 4 // boolean leftAligned
        end local 3 // int outHeight
        end local 2 // int outWidth
        end local 1 // int inHeight
        end local 0 // int inWidth
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0      inWidth  I
            0   15     1     inHeight  I
            0   15     2     outWidth  I
            0   15     3    outHeight  I
            0   15     4  leftAligned  Z
            1   15     5     cropRect  Landroid/graphics/RectF;
    MethodParameters:
             Name  Flags
      inWidth      
      inHeight     
      outWidth     
      outHeight    
      leftAligned  

  protected static android.graphics.Bitmap$CompressFormat convertExtensionToCompressFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/graphics/Bitmap$CompressFormat;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String extension
         0: .line 836
            aload 0 /* extension */
            ldc "png"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            getstatic android.graphics.Bitmap$CompressFormat.PNG:Landroid/graphics/Bitmap$CompressFormat;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic android.graphics.Bitmap$CompressFormat.JPEG:Landroid/graphics/Bitmap$CompressFormat;
      StackMap locals:
      StackMap stack: android.graphics.Bitmap$CompressFormat
         2: areturn
        end local 0 // java.lang.String extension
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  extension  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      extension  

  protected static java.lang.String getFileExtension(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String requestFormat
         0: .line 840
            aload 0 /* requestFormat */
            ifnonnull 2
         1: .line 841
            ldc "jpg"
            goto 3
         2: .line 842
      StackMap locals:
      StackMap stack:
            aload 0 /* requestFormat */
         3: .line 840
      StackMap locals:
      StackMap stack: java.lang.String
            astore 1 /* outputFormat */
        start local 1 // java.lang.String outputFormat
         4: .line 843
            aload 1 /* outputFormat */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 1 /* outputFormat */
         5: .line 844
            aload 1 /* outputFormat */
            ldc "png"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            aload 1 /* outputFormat */
            ldc "gif"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 845
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "png"
            goto 8
         7: .line 846
      StackMap locals:
      StackMap stack:
            ldc "jpg"
         8: .line 844
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // java.lang.String outputFormat
        end local 0 // java.lang.String requestFormat
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0  requestFormat  Ljava/lang/String;
            4    9     1   outputFormat  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      requestFormat  
}
SourceFile: "WallpaperCropActivity.java"
NestMembers:
  com.android.wallpapercropper.WallpaperCropActivity$1  com.android.wallpapercropper.WallpaperCropActivity$2  com.android.wallpapercropper.WallpaperCropActivity$3  com.android.wallpapercropper.WallpaperCropActivity$4  com.android.wallpapercropper.WallpaperCropActivity$5  com.android.wallpapercropper.WallpaperCropActivity$6  com.android.wallpapercropper.WallpaperCropActivity$7  com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask  com.android.wallpapercropper.WallpaperCropActivity$OnBitmapCroppedHandler
InnerClasses:
  public final CompressFormat = android.graphics.Bitmap$CompressFormat of android.graphics.Bitmap
  public VERSION = android.os.Build$VERSION of android.os.Build
  public abstract BitmapSource = com.android.photos.BitmapRegionTileSource$BitmapSource of com.android.photos.BitmapRegionTileSource
  com.android.wallpapercropper.WallpaperCropActivity$1
  com.android.wallpapercropper.WallpaperCropActivity$2
  protected BitmapCropTask = com.android.wallpapercropper.WallpaperCropActivity$BitmapCropTask of com.android.wallpapercropper.WallpaperCropActivity
  public abstract OnBitmapCroppedHandler = com.android.wallpapercropper.WallpaperCropActivity$OnBitmapCroppedHandler of com.android.wallpapercropper.WallpaperCropActivity