class com.android.systemui.ImageWallpaper$DrawableEngine extends android.service.wallpaper.WallpaperService$Engine
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.android.systemui.ImageWallpaper$DrawableEngine
  super_class: android.service.wallpaper.WallpaperService$Engine
{
  private final java.lang.Runnable mUnloadWallpaperCallback;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  android.graphics.Bitmap mBackground;
    descriptor: Landroid/graphics/Bitmap;
    flags: (0x0000) 

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

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

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

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

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

  float mXOffset;
    descriptor: F
    flags: (0x0000) 

  float mYOffset;
    descriptor: F
    flags: (0x0000) 

  float mScale;
    descriptor: F
    flags: (0x0000) 

  private android.view.Display mDefaultDisplay;
    descriptor: Landroid/view/Display;
    flags: (0x0002) ACC_PRIVATE

  private final android.view.DisplayInfo mTmpDisplayInfo;
    descriptor: Landroid/view/DisplayInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  boolean mVisible;
    descriptor: Z
    flags: (0x0000) 

  boolean mOffsetsChanged;
    descriptor: Z
    flags: (0x0000) 

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

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

  private int mRotationAtLastSurfaceSizeUpdate;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mDisplayWidthAtLastSurfaceSizeUpdate;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mDisplayHeightAtLastSurfaceSizeUpdate;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mLastRequestedWidth;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mLastRequestedHeight;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private android.os.AsyncTask<java.lang.Void, java.lang.Void, android.graphics.Bitmap> mLoader;
    descriptor: Landroid/os/AsyncTask;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/os/AsyncTask<Ljava/lang/Void;Ljava/lang/Void;Landroid/graphics/Bitmap;>;

  private boolean mNeedsDrawAfterLoadingWallpaper;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mSurfaceValid;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mSurfaceRedrawNeeded;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  final com.android.systemui.ImageWallpaper this$0;
    descriptor: Lcom/android/systemui/ImageWallpaper;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.android.systemui.ImageWallpaper);
    descriptor: (Lcom/android/systemui/ImageWallpaper;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
         0: .line 106
            aload 0 /* this */
            aload 1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.this$0:Lcom/android/systemui/ImageWallpaper;
         1: .line 107
            aload 0 /* this */
            aload 1
            invokespecial android.service.wallpaper.WallpaperService$Engine.<init>:(Landroid/service/wallpaper/WallpaperService;)V
         2: .line 75
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic run(Lcom/android/systemui/ImageWallpaper$DrawableEngine;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  com/android/systemui/ImageWallpaper$DrawableEngine.lambda$0()V (7)
                  ()V
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mUnloadWallpaperCallback:Ljava/lang/Runnable;
         3: .line 80
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundWidth:I
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundHeight:I
         4: .line 81
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceWidth:I
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceHeight:I
         5: .line 82
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRotation:I
         6: .line 83
            aload 0 /* this */
            fconst_0
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mXOffset:F
         7: .line 84
            aload 0 /* this */
            fconst_0
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mYOffset:F
         8: .line 85
            aload 0 /* this */
            fconst_1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mScale:F
         9: .line 88
            aload 0 /* this */
            new android.view.DisplayInfo
            dup
            invokespecial android.view.DisplayInfo.<init>:()V
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mTmpDisplayInfo:Landroid/view/DisplayInfo;
        10: .line 90
            aload 0 /* this */
            iconst_1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mVisible:Z
        11: .line 95
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mRotationAtLastSurfaceSizeUpdate:I
        12: .line 96
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mDisplayWidthAtLastSurfaceSizeUpdate:I
        13: .line 97
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mDisplayHeightAtLastSurfaceSizeUpdate:I
        14: .line 99
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRequestedWidth:I
        15: .line 100
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRequestedHeight:I
        16: .line 108
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.setFixedSizeAllowed:(Z)V
        17: .line 109
            return
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
    MethodParameters:
        Name  Flags
      this$0  final

  void trimMemory(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // int level
         0: .line 112
            iload 1 /* level */
            bipush 10
            if_icmplt 4
         1: .line 113
            iload 1 /* level */
            bipush 15
            if_icmpgt 4
         2: .line 114
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            ifnull 4
         3: .line 118
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.unloadWallpaper:(Z)V
         4: .line 120
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int level
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0    5     1  level  I
    MethodParameters:
       Name  Flags
      level  

  public void onCreate(android.view.SurfaceHolder);
    descriptor: (Landroid/view/SurfaceHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // android.view.SurfaceHolder surfaceHolder
         0: .line 128
            aload 0 /* this */
            aload 1 /* surfaceHolder */
            invokespecial android.service.wallpaper.WallpaperService$Engine.onCreate:(Landroid/view/SurfaceHolder;)V
         1: .line 131
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.this$0:Lcom/android/systemui/ImageWallpaper;
            ldc Landroid/view/WindowManager;
            invokevirtual com.android.systemui.ImageWallpaper.getSystemService:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast android.view.WindowManager
            invokeinterface android.view.WindowManager.getDefaultDisplay:()Landroid/view/Display;
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mDefaultDisplay:Landroid/view/Display;
         2: .line 132
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.setOffsetNotificationsEnabled:(Z)V
         3: .line 134
            aload 0 /* this */
            aload 1 /* surfaceHolder */
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.getDefaultDisplayInfo:()Landroid/view/DisplayInfo;
            iconst_0
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.updateSurfaceSize:(Landroid/view/SurfaceHolder;Landroid/view/DisplayInfo;Z)Z
            pop
         4: .line 135
            return
        end local 1 // android.view.SurfaceHolder surfaceHolder
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0    5     1  surfaceHolder  Landroid/view/SurfaceHolder;
    MethodParameters:
               Name  Flags
      surfaceHolder  

  public void onDestroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
         0: .line 139
            aload 0 /* this */
            invokespecial android.service.wallpaper.WallpaperService$Engine.onDestroy:()V
         1: .line 140
            aload 0 /* this */
            aconst_null
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
         2: .line 141
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.unloadWallpaper:(Z)V
         3: .line 142
            return
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;

  boolean updateSurfaceSize(android.view.SurfaceHolder, android.view.DisplayInfo, boolean);
    descriptor: (Landroid/view/SurfaceHolder;Landroid/view/DisplayInfo;Z)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // android.view.SurfaceHolder surfaceHolder
        start local 2 // android.view.DisplayInfo displayInfo
        start local 3 // boolean forDraw
         0: .line 146
            iconst_1
            istore 4 /* hasWallpaper */
        start local 4 // boolean hasWallpaper
         1: .line 149
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundWidth:I
            ifle 2
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundHeight:I
            ifgt 4
         2: .line 151
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* forDraw */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.loadWallpaper:(Z)V
         3: .line 155
            iconst_0
            istore 4 /* hasWallpaper */
         4: .line 159
      StackMap locals:
      StackMap stack:
            aload 2 /* displayInfo */
            getfield android.view.DisplayInfo.logicalWidth:I
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundWidth:I
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* surfaceWidth */
        start local 5 // int surfaceWidth
         5: .line 160
            aload 2 /* displayInfo */
            getfield android.view.DisplayInfo.logicalHeight:I
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundHeight:I
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* surfaceHeight */
        start local 6 // int surfaceHeight
         6: .line 165
            aload 1 /* surfaceHolder */
            iload 5 /* surfaceWidth */
            iload 6 /* surfaceHeight */
            invokeinterface android.view.SurfaceHolder.setFixedSize:(II)V
         7: .line 166
            aload 0 /* this */
            iload 5 /* surfaceWidth */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRequestedWidth:I
         8: .line 167
            aload 0 /* this */
            iload 6 /* surfaceHeight */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRequestedHeight:I
         9: .line 169
            iload 4 /* hasWallpaper */
            ireturn
        end local 6 // int surfaceHeight
        end local 5 // int surfaceWidth
        end local 4 // boolean hasWallpaper
        end local 3 // boolean forDraw
        end local 2 // android.view.DisplayInfo displayInfo
        end local 1 // android.view.SurfaceHolder surfaceHolder
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0   10     1  surfaceHolder  Landroid/view/SurfaceHolder;
            0   10     2    displayInfo  Landroid/view/DisplayInfo;
            0   10     3        forDraw  Z
            1   10     4   hasWallpaper  Z
            5   10     5   surfaceWidth  I
            6   10     6  surfaceHeight  I
    MethodParameters:
               Name  Flags
      surfaceHolder  
      displayInfo    
      forDraw        

  public void onVisibilityChanged(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // boolean visible
         0: .line 178
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mVisible:Z
            iload 1 /* visible */
            if_icmpeq 4
         1: .line 182
            aload 0 /* this */
            iload 1 /* visible */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mVisible:Z
         2: .line 183
            iload 1 /* visible */
            ifeq 4
         3: .line 184
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.drawFrame:()V
         4: .line 187
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean visible
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0    5     1  visible  Z
    MethodParameters:
         Name  Flags
      visible  

  public void onOffsetsChanged(float, float, float, float, int, int);
    descriptor: (FFFFII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // float xOffset
        start local 2 // float yOffset
        start local 3 // float xOffsetStep
        start local 4 // float yOffsetStep
        start local 5 // int xPixels
        start local 6 // int yPixels
         0: .line 199
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mXOffset:F
            fload 1 /* xOffset */
            fcmpl
            ifne 1
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mYOffset:F
            fload 2 /* yOffset */
            fcmpl
            ifeq 4
         1: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fload 1 /* xOffset */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mXOffset:F
         2: .line 204
            aload 0 /* this */
            fload 2 /* yOffset */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mYOffset:F
         3: .line 205
            aload 0 /* this */
            iconst_1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mOffsetsChanged:Z
         4: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.drawFrame:()V
         5: .line 208
            return
        end local 6 // int yPixels
        end local 5 // int xPixels
        end local 4 // float yOffsetStep
        end local 3 // float xOffsetStep
        end local 2 // float yOffset
        end local 1 // float xOffset
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0    6     1      xOffset  F
            0    6     2      yOffset  F
            0    6     3  xOffsetStep  F
            0    6     4  yOffsetStep  F
            0    6     5      xPixels  I
            0    6     6      yPixels  I
    MethodParameters:
             Name  Flags
      xOffset      
      yOffset      
      xOffsetStep  
      yOffsetStep  
      xPixels      
      yPixels      

  public void onSurfaceChanged(android.view.SurfaceHolder, int, int, int);
    descriptor: (Landroid/view/SurfaceHolder;III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // android.view.SurfaceHolder holder
        start local 2 // int format
        start local 3 // int width
        start local 4 // int height
         0: .line 216
            aload 0 /* this */
            aload 1 /* holder */
            iload 2 /* format */
            iload 3 /* width */
            iload 4 /* height */
            invokespecial android.service.wallpaper.WallpaperService$Engine.onSurfaceChanged:(Landroid/view/SurfaceHolder;III)V
         1: .line 218
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.drawFrame:()V
         2: .line 219
            return
        end local 4 // int height
        end local 3 // int width
        end local 2 // int format
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0    3     1  holder  Landroid/view/SurfaceHolder;
            0    3     2  format  I
            0    3     3   width  I
            0    3     4  height  I
    MethodParameters:
        Name  Flags
      holder  
      format  
      width   
      height  

  public void onSurfaceDestroyed(android.view.SurfaceHolder);
    descriptor: (Landroid/view/SurfaceHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // android.view.SurfaceHolder holder
         0: .line 223
            aload 0 /* this */
            aload 1 /* holder */
            invokespecial android.service.wallpaper.WallpaperService$Engine.onSurfaceDestroyed:(Landroid/view/SurfaceHolder;)V
         1: .line 228
            aload 0 /* this */
            aload 0 /* this */
            iconst_m1
            dup_x1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceHeight:I
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceWidth:I
         2: .line 229
            aload 0 /* this */
            iconst_0
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mSurfaceValid:Z
         3: .line 230
            return
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0    4     1  holder  Landroid/view/SurfaceHolder;
    MethodParameters:
        Name  Flags
      holder  

  public void onSurfaceCreated(android.view.SurfaceHolder);
    descriptor: (Landroid/view/SurfaceHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // android.view.SurfaceHolder holder
         0: .line 234
            aload 0 /* this */
            aload 1 /* holder */
            invokespecial android.service.wallpaper.WallpaperService$Engine.onSurfaceCreated:(Landroid/view/SurfaceHolder;)V
         1: .line 239
            aload 0 /* this */
            aload 0 /* this */
            iconst_m1
            dup_x1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceHeight:I
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceWidth:I
         2: .line 240
            aload 0 /* this */
            iconst_1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mSurfaceValid:Z
         3: .line 241
            return
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0    4     1  holder  Landroid/view/SurfaceHolder;
    MethodParameters:
        Name  Flags
      holder  

  public void onSurfaceRedrawNeeded(android.view.SurfaceHolder);
    descriptor: (Landroid/view/SurfaceHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // android.view.SurfaceHolder holder
         0: .line 248
            aload 0 /* this */
            aload 1 /* holder */
            invokespecial android.service.wallpaper.WallpaperService$Engine.onSurfaceRedrawNeeded:(Landroid/view/SurfaceHolder;)V
         1: .line 252
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            ifnonnull 3
         2: .line 253
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.this$0:Lcom/android/systemui/ImageWallpaper;
            getfield com.android.systemui.ImageWallpaper.mWallpaperManager:Landroid/app/WallpaperManager;
            iconst_1
            invokevirtual android.app.WallpaperManager.getBitmap:(Z)Landroid/graphics/Bitmap;
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.updateBitmap:(Landroid/graphics/Bitmap;)V
         3: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mSurfaceRedrawNeeded:Z
         4: .line 256
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.drawFrame:()V
         5: .line 257
            return
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0    6     1  holder  Landroid/view/SurfaceHolder;
    MethodParameters:
        Name  Flags
      holder  

  private android.view.DisplayInfo getDefaultDisplayInfo();
    descriptor: ()Landroid/view/DisplayInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
         0: .line 260
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mDefaultDisplay:Landroid/view/Display;
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mTmpDisplayInfo:Landroid/view/DisplayInfo;
            invokevirtual android.view.Display.getDisplayInfo:(Landroid/view/DisplayInfo;)Z
            pop
         1: .line 261
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mTmpDisplayInfo:Landroid/view/DisplayInfo;
            areturn
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;

  void drawFrame();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=14, args_size=1
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
         0: .line 265
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mSurfaceValid:Z
            ifne 2
         1: .line 266
            return
         2: .line 269
      StackMap locals:
      StackMap stack:
            ldc 8
            ldc "drawWallpaper"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
         3: .line 270
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.getDefaultDisplayInfo:()Landroid/view/DisplayInfo;
            astore 1 /* displayInfo */
        start local 1 // android.view.DisplayInfo displayInfo
         4: .line 271
            aload 1 /* displayInfo */
            getfield android.view.DisplayInfo.rotation:I
            istore 2 /* newRotation */
        start local 2 // int newRotation
         5: .line 276
            iload 2 /* newRotation */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRotation:I
            if_icmpeq 12
         6: .line 278
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.getSurfaceHolder:()Landroid/view/SurfaceHolder;
            aload 1 /* displayInfo */
            iconst_1
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.updateSurfaceSize:(Landroid/view/SurfaceHolder;Landroid/view/DisplayInfo;Z)Z
            ifne 9
         7: .line 343
            ldc 8
            invokestatic android.os.Trace.traceEnd:(J)V
         8: .line 279
            return
         9: .line 281
      StackMap locals: android.view.DisplayInfo int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* newRotation */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mRotationAtLastSurfaceSizeUpdate:I
        10: .line 282
            aload 0 /* this */
            aload 1 /* displayInfo */
            getfield android.view.DisplayInfo.logicalWidth:I
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mDisplayWidthAtLastSurfaceSizeUpdate:I
        11: .line 283
            aload 0 /* this */
            aload 1 /* displayInfo */
            getfield android.view.DisplayInfo.logicalHeight:I
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mDisplayHeightAtLastSurfaceSizeUpdate:I
        12: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.getSurfaceHolder:()Landroid/view/SurfaceHolder;
            astore 3 /* sh */
        start local 3 // android.view.SurfaceHolder sh
        13: .line 286
            aload 3 /* sh */
            invokeinterface android.view.SurfaceHolder.getSurfaceFrame:()Landroid/graphics/Rect;
            astore 4 /* frame */
        start local 4 // android.graphics.Rect frame
        14: .line 287
            aload 4 /* frame */
            invokevirtual android.graphics.Rect.width:()I
            istore 5 /* dw */
        start local 5 // int dw
        15: .line 288
            aload 4 /* frame */
            invokevirtual android.graphics.Rect.height:()I
            istore 6 /* dh */
        start local 6 // int dh
        16: .line 289
            iload 5 /* dw */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceWidth:I
            if_icmpne 19
        17: .line 290
            iload 6 /* dh */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceHeight:I
            if_icmpne 19
        18: .line 289
            iconst_0
            goto 20
      StackMap locals: com.android.systemui.ImageWallpaper$DrawableEngine android.view.DisplayInfo int android.view.SurfaceHolder android.graphics.Rect int int
      StackMap stack:
        19: iconst_1
      StackMap locals:
      StackMap stack: int
        20: istore 7 /* surfaceDimensionsChanged */
        start local 7 // boolean surfaceDimensionsChanged
        21: .line 292
            iload 7 /* surfaceDimensionsChanged */
            ifne 24
            iload 2 /* newRotation */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRotation:I
            if_icmpne 24
        22: .line 293
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mSurfaceRedrawNeeded:Z
            ifne 24
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mNeedsDrawAfterLoadingWallpaper:Z
            ifne 24
        23: .line 292
            iconst_0
            goto 25
      StackMap locals: int
      StackMap stack:
        24: iconst_1
      StackMap locals:
      StackMap stack: int
        25: istore 8 /* redrawNeeded */
        start local 8 // boolean redrawNeeded
        26: .line 294
            iload 8 /* redrawNeeded */
            ifne 29
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mOffsetsChanged:Z
            ifne 29
        27: .line 343
            ldc 8
            invokestatic android.os.Trace.traceEnd:(J)V
        28: .line 299
            return
        29: .line 301
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* newRotation */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRotation:I
        30: .line 302
            aload 0 /* this */
            iconst_0
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mSurfaceRedrawNeeded:Z
        31: .line 305
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            ifnonnull 35
        32: .line 306
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.loadWallpaper:(Z)V
        33: .line 343
            ldc 8
            invokestatic android.os.Trace.traceEnd:(J)V
        34: .line 310
            return
        35: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fconst_1
            iload 5 /* dw */
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            invokevirtual android.graphics.Bitmap.getWidth:()I
            i2f
            fdiv
        36: .line 315
            iload 6 /* dh */
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            invokevirtual android.graphics.Bitmap.getHeight:()I
            i2f
            fdiv
        37: .line 314
            invokestatic java.lang.Math.max:(FF)F
            invokestatic java.lang.Math.max:(FF)F
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mScale:F
        38: .line 316
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            invokevirtual android.graphics.Bitmap.getWidth:()I
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mScale:F
            fmul
            f2i
            iload 5 /* dw */
            isub
            istore 9 /* availw */
        start local 9 // int availw
        39: .line 317
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            invokevirtual android.graphics.Bitmap.getHeight:()I
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mScale:F
            fmul
            f2i
            iload 6 /* dh */
            isub
            istore 10 /* availh */
        start local 10 // int availh
        40: .line 318
            iload 9 /* availw */
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mXOffset:F
            fmul
            f2i
            istore 11 /* xPixels */
        start local 11 // int xPixels
        41: .line 319
            iload 10 /* availh */
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mYOffset:F
            fmul
            f2i
            istore 12 /* yPixels */
        start local 12 // int yPixels
        42: .line 321
            aload 0 /* this */
            iconst_0
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mOffsetsChanged:Z
        43: .line 322
            iload 7 /* surfaceDimensionsChanged */
            ifeq 46
        44: .line 323
            aload 0 /* this */
            iload 5 /* dw */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceWidth:I
        45: .line 324
            aload 0 /* this */
            iload 6 /* dh */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceHeight:I
        46: .line 326
      StackMap locals: com.android.systemui.ImageWallpaper$DrawableEngine android.view.DisplayInfo int android.view.SurfaceHolder android.graphics.Rect int int int int int int int int
      StackMap stack:
            iload 8 /* redrawNeeded */
            ifne 49
            iload 11 /* xPixels */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastXTranslation:I
            if_icmpne 49
            iload 12 /* yPixels */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastYTranslation:I
            if_icmpne 49
        47: .line 343
            ldc 8
            invokestatic android.os.Trace.traceEnd:(J)V
        48: .line 331
            return
        49: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 11 /* xPixels */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastXTranslation:I
        50: .line 334
            aload 0 /* this */
            iload 12 /* yPixels */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastYTranslation:I
        51: .line 340
            aload 0 /* this */
            aload 3 /* sh */
            iload 9 /* availw */
            iload 10 /* availh */
            iload 11 /* xPixels */
            iload 12 /* yPixels */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.drawWallpaperWithCanvas:(Landroid/view/SurfaceHolder;IIII)V
        52: .line 341
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.scheduleUnloadWallpaper:()V
        end local 12 // int yPixels
        end local 11 // int xPixels
        end local 10 // int availh
        end local 9 // int availw
        end local 8 // boolean redrawNeeded
        end local 7 // boolean surfaceDimensionsChanged
        end local 6 // int dh
        end local 5 // int dw
        end local 4 // android.graphics.Rect frame
        end local 3 // android.view.SurfaceHolder sh
        end local 2 // int newRotation
        end local 1 // android.view.DisplayInfo displayInfo
        53: .line 342
            goto 57
      StackMap locals: com.android.systemui.ImageWallpaper$DrawableEngine
      StackMap stack: java.lang.Throwable
        54: astore 13
        55: .line 343
            ldc 8
            invokestatic android.os.Trace.traceEnd:(J)V
        56: .line 344
            aload 13
            athrow
        57: .line 343
      StackMap locals:
      StackMap stack:
            ldc 8
            invokestatic android.os.Trace.traceEnd:(J)V
        58: .line 345
            return
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   59     0                      this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            4   53     1               displayInfo  Landroid/view/DisplayInfo;
            5   53     2               newRotation  I
           13   53     3                        sh  Landroid/view/SurfaceHolder;
           14   53     4                     frame  Landroid/graphics/Rect;
           15   53     5                        dw  I
           16   53     6                        dh  I
           21   53     7  surfaceDimensionsChanged  Z
           26   53     8              redrawNeeded  Z
           39   53     9                    availw  I
           40   53    10                    availh  I
           41   53    11                   xPixels  I
           42   53    12                   yPixels  I
      Exception table:
        from    to  target  type
           2     7      54  any
           9    27      54  any
          29    33      54  any
          35    47      54  any
          49    54      54  any

  private void loadWallpaper(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // boolean needsDraw
         0: .line 357
            aload 0 /* this */
            dup
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mNeedsDrawAfterLoadingWallpaper:Z
            iload 1 /* needsDraw */
            ior
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mNeedsDrawAfterLoadingWallpaper:Z
         1: .line 358
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLoader:Landroid/os/AsyncTask;
            ifnull 3
         2: .line 362
            return
         3: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.android.systemui.ImageWallpaper$DrawableEngine$1
            dup
            aload 0 /* this */
            invokespecial com.android.systemui.ImageWallpaper$DrawableEngine$1.<init>:(Lcom/android/systemui/ImageWallpaper$DrawableEngine;)V
         4: .line 412
            getstatic android.os.AsyncTask.THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;
            iconst_0
            anewarray java.lang.Void
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine$1.executeOnExecutor:(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask;
         5: .line 364
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLoader:Landroid/os/AsyncTask;
         6: .line 413
            return
        end local 1 // boolean needsDraw
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0    7     1  needsDraw  Z
    MethodParameters:
           Name  Flags
      needsDraw  

  private void updateBitmap(android.graphics.Bitmap);
    descriptor: (Landroid/graphics/Bitmap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // android.graphics.Bitmap bitmap
         0: .line 416
            aload 0 /* this */
            aconst_null
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
         1: .line 417
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundWidth:I
         2: .line 418
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundHeight:I
         3: .line 420
            aload 1 /* bitmap */
            ifnull 7
         4: .line 421
            aload 0 /* this */
            aload 1 /* bitmap */
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
         5: .line 422
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            invokevirtual android.graphics.Bitmap.getWidth:()I
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundWidth:I
         6: .line 423
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            invokevirtual android.graphics.Bitmap.getHeight:()I
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundHeight:I
         7: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.getSurfaceHolder:()Landroid/view/SurfaceHolder;
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.getDefaultDisplayInfo:()Landroid/view/DisplayInfo;
         8: .line 430
            iconst_0
         9: .line 429
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.updateSurfaceSize:(Landroid/view/SurfaceHolder;Landroid/view/DisplayInfo;Z)Z
            pop
        10: .line 431
            return
        end local 1 // android.graphics.Bitmap bitmap
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0   11     1  bitmap  Landroid/graphics/Bitmap;
    MethodParameters:
        Name  Flags
      bitmap  

  private void unloadWallpaper(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // boolean forgetSize
         0: .line 434
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLoader:Landroid/os/AsyncTask;
            ifnull 3
         1: .line 435
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLoader:Landroid/os/AsyncTask;
            iconst_0
            invokevirtual android.os.AsyncTask.cancel:(Z)Z
            pop
         2: .line 436
            aload 0 /* this */
            aconst_null
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mLoader:Landroid/os/AsyncTask;
         3: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
         4: .line 439
            iload 1 /* forgetSize */
            ifeq 7
         5: .line 440
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundWidth:I
         6: .line 441
            aload 0 /* this */
            iconst_m1
            putfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundHeight:I
         7: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.getSurfaceHolder:()Landroid/view/SurfaceHolder;
            invokeinterface android.view.SurfaceHolder.getSurface:()Landroid/view/Surface;
            astore 2 /* surface */
        start local 2 // android.view.Surface surface
         8: .line 445
            aload 2 /* surface */
            invokevirtual android.view.Surface.hwuiDestroy:()V
         9: .line 447
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.this$0:Lcom/android/systemui/ImageWallpaper;
            getfield com.android.systemui.ImageWallpaper.mWallpaperManager:Landroid/app/WallpaperManager;
            invokevirtual android.app.WallpaperManager.forgetLoadedWallpaper:()V
        10: .line 448
            return
        end local 2 // android.view.Surface surface
        end local 1 // boolean forgetSize
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0   11     1  forgetSize  Z
            8   11     2     surface  Landroid/view/Surface;
    MethodParameters:
            Name  Flags
      forgetSize  

  private void scheduleUnloadWallpaper();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
         0: .line 451
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.this$0:Lcom/android/systemui/ImageWallpaper;
            invokevirtual com.android.systemui.ImageWallpaper.getMainThreadHandler:()Landroid/os/Handler;
            astore 1 /* handler */
        start local 1 // android.os.Handler handler
         1: .line 452
            aload 1 /* handler */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mUnloadWallpaperCallback:Ljava/lang/Runnable;
            invokevirtual android.os.Handler.removeCallbacks:(Ljava/lang/Runnable;)V
         2: .line 453
            aload 1 /* handler */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mUnloadWallpaperCallback:Ljava/lang/Runnable;
            ldc 5000
            invokevirtual android.os.Handler.postDelayed:(Ljava/lang/Runnable;J)Z
            pop
         3: .line 454
            return
        end local 1 // android.os.Handler handler
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            1    4     1  handler  Landroid/os/Handler;

  protected void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // java.lang.String prefix
        start local 2 // java.io.FileDescriptor fd
        start local 3 // java.io.PrintWriter out
        start local 4 // java.lang.String[] args
         0: .line 458
            aload 0 /* this */
            aload 1 /* prefix */
            aload 2 /* fd */
            aload 3 /* out */
            aload 4 /* args */
            invokespecial android.service.wallpaper.WallpaperService$Engine.dump:(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
         1: .line 460
            aload 3 /* out */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            ldc "ImageWallpaper.DrawableEngine:"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         2: .line 461
            aload 3 /* out */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            ldc " mBackground="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/Object;)V
         3: .line 462
            aload 3 /* out */
            ldc " mBackgroundWidth="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundWidth:I
            invokevirtual java.io.PrintWriter.print:(I)V
         4: .line 463
            aload 3 /* out */
            ldc " mBackgroundHeight="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackgroundHeight:I
            invokevirtual java.io.PrintWriter.println:(I)V
         5: .line 465
            aload 3 /* out */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            ldc " mLastRotation="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRotation:I
            invokevirtual java.io.PrintWriter.print:(I)V
         6: .line 466
            aload 3 /* out */
            ldc " mLastSurfaceWidth="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceWidth:I
            invokevirtual java.io.PrintWriter.print:(I)V
         7: .line 467
            aload 3 /* out */
            ldc " mLastSurfaceHeight="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastSurfaceHeight:I
            invokevirtual java.io.PrintWriter.println:(I)V
         8: .line 469
            aload 3 /* out */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            ldc " mXOffset="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mXOffset:F
            invokevirtual java.io.PrintWriter.print:(F)V
         9: .line 470
            aload 3 /* out */
            ldc " mYOffset="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mYOffset:F
            invokevirtual java.io.PrintWriter.println:(F)V
        10: .line 472
            aload 3 /* out */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            ldc " mVisible="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mVisible:Z
            invokevirtual java.io.PrintWriter.print:(Z)V
        11: .line 473
            aload 3 /* out */
            ldc " mOffsetsChanged="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mOffsetsChanged:Z
            invokevirtual java.io.PrintWriter.println:(Z)V
        12: .line 475
            aload 3 /* out */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            ldc " mLastXTranslation="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastXTranslation:I
            invokevirtual java.io.PrintWriter.print:(I)V
        13: .line 476
            aload 3 /* out */
            ldc " mLastYTranslation="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastYTranslation:I
            invokevirtual java.io.PrintWriter.print:(I)V
        14: .line 477
            aload 3 /* out */
            ldc " mScale="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mScale:F
            invokevirtual java.io.PrintWriter.println:(F)V
        15: .line 479
            aload 3 /* out */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            ldc " mLastRequestedWidth="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRequestedWidth:I
            invokevirtual java.io.PrintWriter.print:(I)V
        16: .line 480
            aload 3 /* out */
            ldc " mLastRequestedHeight="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRequestedHeight:I
            invokevirtual java.io.PrintWriter.println:(I)V
        17: .line 482
            aload 3 /* out */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            ldc " DisplayInfo at last updateSurfaceSize:"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        18: .line 483
            aload 3 /* out */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        19: .line 484
            aload 3 /* out */
            ldc "  rotation="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mRotationAtLastSurfaceSizeUpdate:I
            invokevirtual java.io.PrintWriter.print:(I)V
        20: .line 485
            aload 3 /* out */
            ldc "  width="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mDisplayWidthAtLastSurfaceSizeUpdate:I
            invokevirtual java.io.PrintWriter.print:(I)V
        21: .line 486
            aload 3 /* out */
            ldc "  height="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* out */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mDisplayHeightAtLastSurfaceSizeUpdate:I
            invokevirtual java.io.PrintWriter.println:(I)V
        22: .line 487
            return
        end local 4 // java.lang.String[] args
        end local 3 // java.io.PrintWriter out
        end local 2 // java.io.FileDescriptor fd
        end local 1 // java.lang.String prefix
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0   23     1  prefix  Ljava/lang/String;
            0   23     2      fd  Ljava/io/FileDescriptor;
            0   23     3     out  Ljava/io/PrintWriter;
            0   23     4    args  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      prefix  
      fd      
      out     
      args    

  private void drawWallpaperWithCanvas(android.view.SurfaceHolder, int, int, int, int);
    descriptor: (Landroid/view/SurfaceHolder;IIII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=6
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
        start local 1 // android.view.SurfaceHolder sh
        start local 2 // int w
        start local 3 // int h
        start local 4 // int left
        start local 5 // int top
         0: .line 490
            aload 1 /* sh */
            invokeinterface android.view.SurfaceHolder.lockHardwareCanvas:()Landroid/graphics/Canvas;
            astore 6 /* c */
        start local 6 // android.graphics.Canvas c
         1: .line 491
            aload 6 /* c */
            ifnull 22
         2: .line 497
            iload 4 /* left */
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            invokevirtual android.graphics.Bitmap.getWidth:()I
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mScale:F
            fmul
            fadd
            fstore 7 /* right */
        start local 7 // float right
         3: .line 498
            iload 5 /* top */
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            invokevirtual android.graphics.Bitmap.getHeight:()I
            i2f
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mScale:F
            fmul
            fadd
            fstore 8 /* bottom */
        start local 8 // float bottom
         4: .line 499
            iload 2 /* w */
            iflt 5
            iload 3 /* h */
            ifge 11
         5: .line 500
      StackMap locals: android.graphics.Canvas float float
      StackMap stack:
            aload 6 /* c */
            iconst_2
            invokevirtual android.graphics.Canvas.save:(I)I
            pop
         6: .line 501
            aload 6 /* c */
            iload 4 /* left */
            i2f
            iload 5 /* top */
            i2f
            fload 7 /* right */
            fload 8 /* bottom */
         7: .line 502
            getstatic android.graphics.Region$Op.DIFFERENCE:Landroid/graphics/Region$Op;
         8: .line 501
            invokevirtual android.graphics.Canvas.clipRect:(FFFFLandroid/graphics/Region$Op;)Z
            pop
         9: .line 503
            aload 6 /* c */
            ldc -16777216
            invokevirtual android.graphics.Canvas.drawColor:(I)V
        10: .line 504
            aload 6 /* c */
            invokevirtual android.graphics.Canvas.restore:()V
        11: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            ifnull 21
        12: .line 507
            new android.graphics.RectF
            dup
            iload 4 /* left */
            i2f
            iload 5 /* top */
            i2f
            fload 7 /* right */
            fload 8 /* bottom */
            invokespecial android.graphics.RectF.<init>:(FFFF)V
            astore 9 /* dest */
        start local 9 // android.graphics.RectF dest
        13: .line 508
            ldc "ImageWallpaper"
            new java.lang.StringBuilder
            dup
            ldc "Redrawing in rect: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* dest */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " with surface size: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 509
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRequestedWidth:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mLastRequestedHeight:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 508
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        16: .line 510
            aload 6 /* c */
            aload 0 /* this */
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.mBackground:Landroid/graphics/Bitmap;
            aconst_null
            aload 9 /* dest */
            aconst_null
            invokevirtual android.graphics.Canvas.drawBitmap:(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
        end local 9 // android.graphics.RectF dest
        end local 8 // float bottom
        end local 7 // float right
        17: .line 512
            goto 21
      StackMap locals: com.android.systemui.ImageWallpaper$DrawableEngine android.view.SurfaceHolder int int int int android.graphics.Canvas
      StackMap stack: java.lang.Throwable
        18: astore 10
        19: .line 513
            aload 1 /* sh */
            aload 6 /* c */
            invokeinterface android.view.SurfaceHolder.unlockCanvasAndPost:(Landroid/graphics/Canvas;)V
        20: .line 514
            aload 10
            athrow
        21: .line 513
      StackMap locals:
      StackMap stack:
            aload 1 /* sh */
            aload 6 /* c */
            invokeinterface android.view.SurfaceHolder.unlockCanvasAndPost:(Landroid/graphics/Canvas;)V
        22: .line 516
      StackMap locals:
      StackMap stack:
            return
        end local 6 // android.graphics.Canvas c
        end local 5 // int top
        end local 4 // int left
        end local 3 // int h
        end local 2 // int w
        end local 1 // android.view.SurfaceHolder sh
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;
            0   23     1      sh  Landroid/view/SurfaceHolder;
            0   23     2       w  I
            0   23     3       h  I
            0   23     4    left  I
            0   23     5     top  I
            1   23     6       c  Landroid/graphics/Canvas;
            3   17     7   right  F
            4   17     8  bottom  F
           13   17     9    dest  Landroid/graphics/RectF;
      Exception table:
        from    to  target  type
           2    18      18  any
    MethodParameters:
      Name  Flags
      sh    
      w     
      h     
      left  
      top   

  private void lambda$0();
    descriptor: ()V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
         0: .line 76
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.systemui.ImageWallpaper$DrawableEngine.unloadWallpaper:(Z)V
         1: .line 77
            return
        end local 0 // com.android.systemui.ImageWallpaper$DrawableEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/systemui/ImageWallpaper$DrawableEngine;

  static com.android.systemui.ImageWallpaper access$1(com.android.systemui.ImageWallpaper$DrawableEngine);
    descriptor: (Lcom/android/systemui/ImageWallpaper$DrawableEngine;)Lcom/android/systemui/ImageWallpaper;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 74
            aload 0
            getfield com.android.systemui.ImageWallpaper$DrawableEngine.this$0:Lcom/android/systemui/ImageWallpaper;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ImageWallpaper.java"
NestHost: com.android.systemui.ImageWallpaper
InnerClasses:
  public final Op = android.graphics.Region$Op of android.graphics.Region
  public Engine = android.service.wallpaper.WallpaperService$Engine of android.service.wallpaper.WallpaperService
  DrawableEngine = com.android.systemui.ImageWallpaper$DrawableEngine of com.android.systemui.ImageWallpaper
  com.android.systemui.ImageWallpaper$DrawableEngine$1
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles