public final class android.print.PrinterDiscoverySession
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.print.PrinterDiscoverySession
  super_class: java.lang.Object
{
  private static final java.lang.String LOG_TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PrinterDiscoverySession"

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

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

  private final java.util.LinkedHashMap<android.print.PrinterId, android.print.PrinterInfo> mPrinters;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/LinkedHashMap<Landroid/print/PrinterId;Landroid/print/PrinterInfo;>;

  private final android.print.IPrintManager mPrintManager;
    descriptor: Landroid/print/IPrintManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final android.os.Handler mHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.print.IPrinterDiscoveryObserver mObserver;
    descriptor: Landroid/print/IPrinterDiscoveryObserver;
    flags: (0x0002) ACC_PRIVATE

  private android.print.PrinterDiscoverySession$OnPrintersChangeListener mListener;
    descriptor: Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;
    flags: (0x0002) ACC_PRIVATE

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

  void <init>(android.print.IPrintManager, android.content.Context, int);
    descriptor: (Landroid/print/IPrintManager;Landroid/content/Context;I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // android.print.PrinterDiscoverySession this
        start local 1 // android.print.IPrintManager printManager
        start local 2 // android.content.Context context
        start local 3 // int userId
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
         2: .line 47
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
         3: .line 66
            aload 0 /* this */
            aload 1 /* printManager */
            putfield android.print.PrinterDiscoverySession.mPrintManager:Landroid/print/IPrintManager;
         4: .line 67
            aload 0 /* this */
            iload 3 /* userId */
            putfield android.print.PrinterDiscoverySession.mUserId:I
         5: .line 68
            aload 0 /* this */
            new android.print.PrinterDiscoverySession$SessionHandler
            dup
            aload 0 /* this */
            aload 2 /* context */
            invokevirtual android.content.Context.getMainLooper:()Landroid/os/Looper;
            invokespecial android.print.PrinterDiscoverySession$SessionHandler.<init>:(Landroid/print/PrinterDiscoverySession;Landroid/os/Looper;)V
            putfield android.print.PrinterDiscoverySession.mHandler:Landroid/os/Handler;
         6: .line 69
            aload 0 /* this */
            new android.print.PrinterDiscoverySession$PrinterDiscoveryObserver
            dup
            aload 0 /* this */
            invokespecial android.print.PrinterDiscoverySession$PrinterDiscoveryObserver.<init>:(Landroid/print/PrinterDiscoverySession;)V
            putfield android.print.PrinterDiscoverySession.mObserver:Landroid/print/IPrinterDiscoveryObserver;
         7: .line 71
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrintManager:Landroid/print/IPrintManager;
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mObserver:Landroid/print/IPrinterDiscoveryObserver;
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mUserId:I
            invokeinterface android.print.IPrintManager.createPrinterDiscoverySession:(Landroid/print/IPrinterDiscoveryObserver;I)V
         8: .line 72
            goto 11
      StackMap locals: android.print.PrinterDiscoverySession android.print.IPrintManager android.content.Context int
      StackMap stack: android.os.RemoteException
         9: astore 4 /* re */
        start local 4 // android.os.RemoteException re
        10: .line 73
            ldc "PrinterDiscoverySession"
            ldc "Error creating printer discovery session"
            aload 4 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 4 // android.os.RemoteException re
        11: .line 75
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int userId
        end local 2 // android.content.Context context
        end local 1 // android.print.IPrintManager printManager
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Landroid/print/PrinterDiscoverySession;
            0   12     1  printManager  Landroid/print/IPrintManager;
            0   12     2       context  Landroid/content/Context;
            0   12     3        userId  I
           10   11     4            re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           7     8       9  Class android.os.RemoteException
    MethodParameters:
              Name  Flags
      printManager  
      context       
      userId        

  public final void startPrinterDiscovery(java.util.List<android.print.PrinterId>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.print.PrinterDiscoverySession this
        start local 1 // java.util.List priorityList
         0: .line 78
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyed:()Z
            ifeq 3
         1: .line 79
            ldc "PrinterDiscoverySession"
            ldc "Ignoring start printers discovery - session destroyed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 80
            return
         3: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mIsPrinterDiscoveryStarted:Z
            ifne 9
         4: .line 83
            aload 0 /* this */
            iconst_1
            putfield android.print.PrinterDiscoverySession.mIsPrinterDiscoveryStarted:Z
         5: .line 85
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrintManager:Landroid/print/IPrintManager;
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mObserver:Landroid/print/IPrinterDiscoveryObserver;
            aload 1 /* priorityList */
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mUserId:I
            invokeinterface android.print.IPrintManager.startPrinterDiscovery:(Landroid/print/IPrinterDiscoveryObserver;Ljava/util/List;I)V
         6: .line 86
            goto 9
      StackMap locals:
      StackMap stack: android.os.RemoteException
         7: astore 2 /* re */
        start local 2 // android.os.RemoteException re
         8: .line 87
            ldc "PrinterDiscoverySession"
            ldc "Error starting printer discovery"
            aload 2 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException re
         9: .line 90
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List priorityList
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Landroid/print/PrinterDiscoverySession;
            0   10     1  priorityList  Ljava/util/List<Landroid/print/PrinterId;>;
            8    9     2            re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           5     6       7  Class android.os.RemoteException
    Signature: (Ljava/util/List<Landroid/print/PrinterId;>;)V
    MethodParameters:
              Name  Flags
      priorityList  

  public final void stopPrinterDiscovery();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.print.PrinterDiscoverySession this
         0: .line 93
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyed:()Z
            ifeq 3
         1: .line 94
            ldc "PrinterDiscoverySession"
            ldc "Ignoring stop printers discovery - session destroyed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 95
            return
         3: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mIsPrinterDiscoveryStarted:Z
            ifeq 9
         4: .line 98
            aload 0 /* this */
            iconst_0
            putfield android.print.PrinterDiscoverySession.mIsPrinterDiscoveryStarted:Z
         5: .line 100
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrintManager:Landroid/print/IPrintManager;
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mObserver:Landroid/print/IPrinterDiscoveryObserver;
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mUserId:I
            invokeinterface android.print.IPrintManager.stopPrinterDiscovery:(Landroid/print/IPrinterDiscoveryObserver;I)V
         6: .line 101
            goto 9
      StackMap locals:
      StackMap stack: android.os.RemoteException
         7: astore 1 /* re */
        start local 1 // android.os.RemoteException re
         8: .line 102
            ldc "PrinterDiscoverySession"
            ldc "Error stopping printer discovery"
            aload 1 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 1 // android.os.RemoteException re
         9: .line 105
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Landroid/print/PrinterDiscoverySession;
            8    9     1    re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           5     6       7  Class android.os.RemoteException

  public final void startPrinterStateTracking(android.print.PrinterId);
    descriptor: (Landroid/print/PrinterId;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.print.PrinterDiscoverySession this
        start local 1 // android.print.PrinterId printerId
         0: .line 108
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyed:()Z
            ifeq 3
         1: .line 109
            ldc "PrinterDiscoverySession"
            ldc "Ignoring start printer state tracking - session destroyed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 110
            return
         3: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrintManager:Landroid/print/IPrintManager;
            aload 1 /* printerId */
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mUserId:I
            invokeinterface android.print.IPrintManager.startPrinterStateTracking:(Landroid/print/PrinterId;I)V
         4: .line 114
            goto 7
      StackMap locals:
      StackMap stack: android.os.RemoteException
         5: astore 2 /* re */
        start local 2 // android.os.RemoteException re
         6: .line 115
            ldc "PrinterDiscoverySession"
            ldc "Error starting printer state tracking"
            aload 2 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException re
         7: .line 117
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.print.PrinterId printerId
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/print/PrinterDiscoverySession;
            0    8     1  printerId  Landroid/print/PrinterId;
            6    7     2         re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     4       5  Class android.os.RemoteException
    MethodParameters:
           Name  Flags
      printerId  

  public final void stopPrinterStateTracking(android.print.PrinterId);
    descriptor: (Landroid/print/PrinterId;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.print.PrinterDiscoverySession this
        start local 1 // android.print.PrinterId printerId
         0: .line 120
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyed:()Z
            ifeq 3
         1: .line 121
            ldc "PrinterDiscoverySession"
            ldc "Ignoring stop printer state tracking - session destroyed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 122
            return
         3: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrintManager:Landroid/print/IPrintManager;
            aload 1 /* printerId */
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mUserId:I
            invokeinterface android.print.IPrintManager.stopPrinterStateTracking:(Landroid/print/PrinterId;I)V
         4: .line 126
            goto 7
      StackMap locals:
      StackMap stack: android.os.RemoteException
         5: astore 2 /* re */
        start local 2 // android.os.RemoteException re
         6: .line 127
            ldc "PrinterDiscoverySession"
            ldc "Error stopping printer state tracking"
            aload 2 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException re
         7: .line 129
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.print.PrinterId printerId
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/print/PrinterDiscoverySession;
            0    8     1  printerId  Landroid/print/PrinterId;
            6    7     2         re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     4       5  Class android.os.RemoteException
    MethodParameters:
           Name  Flags
      printerId  

  public final void validatePrinters(java.util.List<android.print.PrinterId>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.print.PrinterDiscoverySession this
        start local 1 // java.util.List printerIds
         0: .line 132
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyed:()Z
            ifeq 3
         1: .line 133
            ldc "PrinterDiscoverySession"
            ldc "Ignoring validate printers - session destroyed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 134
            return
         3: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrintManager:Landroid/print/IPrintManager;
            aload 1 /* printerIds */
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mUserId:I
            invokeinterface android.print.IPrintManager.validatePrinters:(Ljava/util/List;I)V
         4: .line 138
            goto 7
      StackMap locals:
      StackMap stack: android.os.RemoteException
         5: astore 2 /* re */
        start local 2 // android.os.RemoteException re
         6: .line 139
            ldc "PrinterDiscoverySession"
            ldc "Error validating printers"
            aload 2 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException re
         7: .line 141
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List printerIds
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Landroid/print/PrinterDiscoverySession;
            0    8     1  printerIds  Ljava/util/List<Landroid/print/PrinterId;>;
            6    7     2          re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     4       5  Class android.os.RemoteException
    Signature: (Ljava/util/List<Landroid/print/PrinterId;>;)V
    MethodParameters:
            Name  Flags
      printerIds  

  public final void destroy();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.print.PrinterDiscoverySession this
         0: .line 144
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyed:()Z
            ifeq 2
         1: .line 145
            ldc "PrinterDiscoverySession"
            ldc "Ignoring destroy - session destroyed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.destroyNoCheck:()V
         3: .line 148
            return
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/print/PrinterDiscoverySession;

  public final java.util.List<android.print.PrinterInfo> getPrinters();
    descriptor: ()Ljava/util/List;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.print.PrinterDiscoverySession this
         0: .line 151
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyed:()Z
            ifeq 3
         1: .line 152
            ldc "PrinterDiscoverySession"
            ldc "Ignoring get printers - session destroyed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 153
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         3: .line 155
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            areturn
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/print/PrinterDiscoverySession;
    Signature: ()Ljava/util/List<Landroid/print/PrinterInfo;>;

  public final boolean isDestroyed();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.print.PrinterDiscoverySession this
         0: .line 159
            invokestatic android.print.PrinterDiscoverySession.throwIfNotCalledOnMainThread:()V
         1: .line 160
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyedNoCheck:()Z
            ireturn
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/print/PrinterDiscoverySession;

  public final boolean isPrinterDiscoveryStarted();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.print.PrinterDiscoverySession this
         0: .line 164
            invokestatic android.print.PrinterDiscoverySession.throwIfNotCalledOnMainThread:()V
         1: .line 165
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mIsPrinterDiscoveryStarted:Z
            ireturn
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/print/PrinterDiscoverySession;

  public final void setOnPrintersChangeListener(android.print.PrinterDiscoverySession$OnPrintersChangeListener);
    descriptor: (Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.print.PrinterDiscoverySession this
        start local 1 // android.print.PrinterDiscoverySession$OnPrintersChangeListener listener
         0: .line 169
            invokestatic android.print.PrinterDiscoverySession.throwIfNotCalledOnMainThread:()V
         1: .line 170
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.print.PrinterDiscoverySession.mListener:Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;
         2: .line 171
            return
        end local 1 // android.print.PrinterDiscoverySession$OnPrintersChangeListener listener
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Landroid/print/PrinterDiscoverySession;
            0    3     1  listener  Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;
    MethodParameters:
          Name  Flags
      listener  

  protected final void finalize();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.print.PrinterDiscoverySession this
         0: .line 175
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyedNoCheck:()Z
            ifne 3
         1: .line 176
            ldc "PrinterDiscoverySession"
            ldc "Destroying leaked printer discovery session"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 177
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.destroyNoCheck:()V
         3: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         4: .line 180
            return
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/print/PrinterDiscoverySession;
    Exceptions:
      throws java.lang.Throwable

  private boolean isDestroyedNoCheck();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.print.PrinterDiscoverySession this
         0: .line 183
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mObserver:Landroid/print/IPrinterDiscoveryObserver;
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/print/PrinterDiscoverySession;

  private void destroyNoCheck();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.print.PrinterDiscoverySession this
         0: .line 187
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.stopPrinterDiscovery:()V
         1: .line 189
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrintManager:Landroid/print/IPrintManager;
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mObserver:Landroid/print/IPrinterDiscoveryObserver;
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mUserId:I
            invokeinterface android.print.IPrintManager.destroyPrinterDiscoverySession:(Landroid/print/IPrinterDiscoveryObserver;I)V
         2: .line 190
            goto 11
      StackMap locals:
      StackMap stack: android.os.RemoteException
         3: astore 1 /* re */
        start local 1 // android.os.RemoteException re
         4: .line 191
            ldc "PrinterDiscoverySession"
            ldc "Error destroying printer discovery session"
            aload 1 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 1 // android.os.RemoteException re
         5: .line 193
            aload 0 /* this */
            aconst_null
            putfield android.print.PrinterDiscoverySession.mObserver:Landroid/print/IPrinterDiscoveryObserver;
         6: .line 194
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.clear:()V
            goto 13
         7: .line 192
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         8: .line 193
            aload 0 /* this */
            aconst_null
            putfield android.print.PrinterDiscoverySession.mObserver:Landroid/print/IPrinterDiscoveryObserver;
         9: .line 194
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.clear:()V
        10: .line 195
            aload 2
            athrow
        11: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.print.PrinterDiscoverySession.mObserver:Landroid/print/IPrinterDiscoveryObserver;
        12: .line 194
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.clear:()V
        13: .line 196
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Landroid/print/PrinterDiscoverySession;
            4    5     1    re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
           1     5       7  any

  private void handlePrintersAdded(java.util.List<android.print.PrinterInfo>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // android.print.PrinterDiscoverySession this
        start local 1 // java.util.List addedPrinters
         0: .line 199
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyed:()Z
            ifeq 2
         1: .line 200
            return
         2: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.isEmpty:()Z
            ifeq 12
         3: .line 205
            aload 1 /* addedPrinters */
            invokeinterface java.util.List.size:()I
            istore 2 /* printerCount */
        start local 2 // int printerCount
         4: .line 206
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 9
         6: .line 207
      StackMap locals: int int
      StackMap stack:
            aload 1 /* addedPrinters */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.print.PrinterInfo
            astore 4 /* printer */
        start local 4 // android.print.PrinterInfo printer
         7: .line 208
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            aload 4 /* printer */
            invokevirtual android.print.PrinterInfo.getId:()Landroid/print/PrinterId;
            aload 4 /* printer */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // android.print.PrinterInfo printer
         8: .line 206
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iload 2 /* printerCount */
            if_icmplt 6
        end local 3 // int i
        10: .line 210
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.notifyOnPrintersChanged:()V
        11: .line 211
            return
        end local 2 // int printerCount
        12: .line 216
      StackMap locals:
      StackMap stack:
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
        13: .line 215
            astore 2 /* addedPrintersMap */
        start local 2 // android.util.ArrayMap addedPrintersMap
        14: .line 217
            aload 1 /* addedPrinters */
            invokeinterface java.util.List.size:()I
            istore 3 /* printerCount */
        start local 3 // int printerCount
        15: .line 218
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        16: goto 20
        17: .line 219
      StackMap locals: android.util.ArrayMap int int
      StackMap stack:
            aload 1 /* addedPrinters */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.print.PrinterInfo
            astore 5 /* printer */
        start local 5 // android.print.PrinterInfo printer
        18: .line 220
            aload 2 /* addedPrintersMap */
            aload 5 /* printer */
            invokevirtual android.print.PrinterInfo.getId:()Landroid/print/PrinterId;
            aload 5 /* printer */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // android.print.PrinterInfo printer
        19: .line 218
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 4 /* i */
            iload 3 /* printerCount */
            if_icmplt 17
        end local 4 // int i
        21: .line 224
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 26
      StackMap locals: android.print.PrinterDiscoverySession java.util.List android.util.ArrayMap int top java.util.Iterator
      StackMap stack:
        22: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.print.PrinterId
            astore 4 /* oldPrinterId */
        start local 4 // android.print.PrinterId oldPrinterId
        23: .line 225
            aload 2 /* addedPrintersMap */
            aload 4 /* oldPrinterId */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.print.PrinterInfo
            astore 6 /* updatedPrinter */
        start local 6 // android.print.PrinterInfo updatedPrinter
        24: .line 226
            aload 6 /* updatedPrinter */
            ifnull 26
        25: .line 227
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            aload 4 /* oldPrinterId */
            aload 6 /* updatedPrinter */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // android.print.PrinterInfo updatedPrinter
        end local 4 // android.print.PrinterId oldPrinterId
        26: .line 224
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        27: .line 232
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            aload 2 /* addedPrintersMap */
            invokevirtual java.util.LinkedHashMap.putAll:(Ljava/util/Map;)V
        28: .line 235
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.notifyOnPrintersChanged:()V
        29: .line 236
            return
        end local 3 // int printerCount
        end local 2 // android.util.ArrayMap addedPrintersMap
        end local 1 // java.util.List addedPrinters
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   30     0              this  Landroid/print/PrinterDiscoverySession;
            0   30     1     addedPrinters  Ljava/util/List<Landroid/print/PrinterInfo;>;
            4   12     2      printerCount  I
            5   10     3                 i  I
            7    8     4           printer  Landroid/print/PrinterInfo;
           14   30     2  addedPrintersMap  Landroid/util/ArrayMap<Landroid/print/PrinterId;Landroid/print/PrinterInfo;>;
           15   30     3      printerCount  I
           16   21     4                 i  I
           18   19     5           printer  Landroid/print/PrinterInfo;
           23   26     4      oldPrinterId  Landroid/print/PrinterId;
           24   26     6    updatedPrinter  Landroid/print/PrinterInfo;
    Signature: (Ljava/util/List<Landroid/print/PrinterInfo;>;)V
    MethodParameters:
               Name  Flags
      addedPrinters  

  private void handlePrintersRemoved(java.util.List<android.print.PrinterId>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // android.print.PrinterDiscoverySession this
        start local 1 // java.util.List printerIds
         0: .line 239
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.isDestroyed:()Z
            ifeq 2
         1: .line 240
            return
         2: .line 242
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* printersChanged */
        start local 2 // boolean printersChanged
         3: .line 243
            aload 1 /* printerIds */
            invokeinterface java.util.List.size:()I
            istore 3 /* removedPrinterIdCount */
        start local 3 // int removedPrinterIdCount
         4: .line 244
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 10
         6: .line 245
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* printerIds */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.print.PrinterId
            astore 5 /* removedPrinterId */
        start local 5 // android.print.PrinterId removedPrinterId
         7: .line 246
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mPrinters:Ljava/util/LinkedHashMap;
            aload 5 /* removedPrinterId */
            invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 9
         8: .line 247
            iconst_1
            istore 2 /* printersChanged */
        end local 5 // android.print.PrinterId removedPrinterId
         9: .line 244
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            iload 3 /* removedPrinterIdCount */
            if_icmplt 6
        end local 4 // int i
        11: .line 250
            iload 2 /* printersChanged */
            ifeq 13
        12: .line 251
            aload 0 /* this */
            invokevirtual android.print.PrinterDiscoverySession.notifyOnPrintersChanged:()V
        13: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int removedPrinterIdCount
        end local 2 // boolean printersChanged
        end local 1 // java.util.List printerIds
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   14     0                   this  Landroid/print/PrinterDiscoverySession;
            0   14     1             printerIds  Ljava/util/List<Landroid/print/PrinterId;>;
            3   14     2        printersChanged  Z
            4   14     3  removedPrinterIdCount  I
            5   11     4                      i  I
            7    9     5       removedPrinterId  Landroid/print/PrinterId;
    Signature: (Ljava/util/List<Landroid/print/PrinterId;>;)V
    MethodParameters:
            Name  Flags
      printerIds  

  private void notifyOnPrintersChanged();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.print.PrinterDiscoverySession this
         0: .line 256
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mListener:Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;
            ifnull 2
         1: .line 257
            aload 0 /* this */
            getfield android.print.PrinterDiscoverySession.mListener:Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;
            invokeinterface android.print.PrinterDiscoverySession$OnPrintersChangeListener.onPrintersChanged:()V
         2: .line 259
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.print.PrinterDiscoverySession this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/print/PrinterDiscoverySession;

  private static void throwIfNotCalledOnMainThread();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 262
            invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
            invokevirtual android.os.Looper.isCurrentThread:()Z
            ifne 2
         1: .line 263
            new java.lang.IllegalAccessError
            dup
            ldc "must be called from the main thread"
            invokespecial java.lang.IllegalAccessError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 265
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "PrinterDiscoverySession.java"
NestMembers:
  android.print.PrinterDiscoverySession$OnPrintersChangeListener  android.print.PrinterDiscoverySession$PrinterDiscoveryObserver  android.print.PrinterDiscoverySession$SessionHandler
InnerClasses:
  public abstract OnPrintersChangeListener = android.print.PrinterDiscoverySession$OnPrintersChangeListener of android.print.PrinterDiscoverySession
  public final PrinterDiscoveryObserver = android.print.PrinterDiscoverySession$PrinterDiscoveryObserver of android.print.PrinterDiscoverySession
  private final SessionHandler = android.print.PrinterDiscoverySession$SessionHandler of android.print.PrinterDiscoverySession