public abstract class android.widget.Filter
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: android.widget.Filter
  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: "Filter"

  private static final java.lang.String THREAD_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Filter"

  private static final int FILTER_TOKEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -791613427

  private static final int FINISH_TOKEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -559038737

  private android.os.Handler mThreadHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0002) ACC_PRIVATE

  private android.os.Handler mResultHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0002) ACC_PRIVATE

  private android.widget.Filter$Delayer mDelayer;
    descriptor: Landroid/widget/Filter$Delayer;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object mLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.widget.Filter this
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.widget.Filter.mLock:Ljava/lang/Object;
         2: .line 57
            aload 0 /* this */
            new android.widget.Filter$ResultsHandler
            dup
            aload 0 /* this */
            invokespecial android.widget.Filter$ResultsHandler.<init>:(Landroid/widget/Filter;)V
            putfield android.widget.Filter.mResultHandler:Landroid/os/Handler;
         3: .line 58
            return
        end local 0 // android.widget.Filter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/widget/Filter;

  public void setDelayer(android.widget.Filter$Delayer);
    descriptor: (Landroid/widget/Filter$Delayer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.widget.Filter this
        start local 1 // android.widget.Filter$Delayer delayer
         0: .line 69
            aload 0 /* this */
            getfield android.widget.Filter.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 70
            aload 0 /* this */
            aload 1 /* delayer */
            putfield android.widget.Filter.mDelayer:Landroid/widget/Filter$Delayer;
         2: .line 69
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.widget.Filter android.widget.Filter$Delayer java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 72
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.widget.Filter$Delayer delayer
        end local 0 // android.widget.Filter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/widget/Filter;
            0    7     1  delayer  Landroid/widget/Filter$Delayer;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
         Name  Flags
      delayer  

  public final void filter(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.Filter this
        start local 1 // java.lang.CharSequence constraint
         0: .line 84
            aload 0 /* this */
            aload 1 /* constraint */
            aconst_null
            invokevirtual android.widget.Filter.filter:(Ljava/lang/CharSequence;Landroid/widget/Filter$FilterListener;)V
         1: .line 85
            return
        end local 1 // java.lang.CharSequence constraint
        end local 0 // android.widget.Filter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/widget/Filter;
            0    2     1  constraint  Ljava/lang/CharSequence;
    MethodParameters:
            Name  Flags
      constraint  

  public final void filter(java.lang.CharSequence, android.widget.Filter$FilterListener);
    descriptor: (Ljava/lang/CharSequence;Landroid/widget/Filter$FilterListener;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // android.widget.Filter this
        start local 1 // java.lang.CharSequence constraint
        start local 2 // android.widget.Filter$FilterListener listener
         0: .line 102
            aload 0 /* this */
            getfield android.widget.Filter.mLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 103
            aload 0 /* this */
            getfield android.widget.Filter.mThreadHandler:Landroid/os/Handler;
            ifnonnull 7
         2: .line 104
            new android.os.HandlerThread
            dup
         3: .line 105
            ldc "Filter"
            bipush 10
         4: .line 104
            invokespecial android.os.HandlerThread.<init>:(Ljava/lang/String;I)V
            astore 4 /* thread */
        start local 4 // android.os.HandlerThread thread
         5: .line 106
            aload 4 /* thread */
            invokevirtual android.os.HandlerThread.start:()V
         6: .line 107
            aload 0 /* this */
            new android.widget.Filter$RequestHandler
            dup
            aload 0 /* this */
            aload 4 /* thread */
            invokevirtual android.os.HandlerThread.getLooper:()Landroid/os/Looper;
            invokespecial android.widget.Filter$RequestHandler.<init>:(Landroid/widget/Filter;Landroid/os/Looper;)V
            putfield android.widget.Filter.mThreadHandler:Landroid/os/Handler;
        end local 4 // android.os.HandlerThread thread
         7: .line 110
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Filter.mDelayer:Landroid/widget/Filter$Delayer;
            ifnonnull 8
            lconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 0 /* this */
            getfield android.widget.Filter.mDelayer:Landroid/widget/Filter$Delayer;
            aload 1 /* constraint */
            invokeinterface android.widget.Filter$Delayer.getPostingDelay:(Ljava/lang/CharSequence;)J
      StackMap locals:
      StackMap stack: long
         9: lstore 4 /* delay */
        start local 4 // long delay
        10: .line 112
            aload 0 /* this */
            getfield android.widget.Filter.mThreadHandler:Landroid/os/Handler;
            ldc -791613427
            invokevirtual android.os.Handler.obtainMessage:(I)Landroid/os/Message;
            astore 6 /* message */
        start local 6 // android.os.Message message
        11: .line 114
            new android.widget.Filter$RequestArguments
            dup
            invokespecial android.widget.Filter$RequestArguments.<init>:()V
            astore 7 /* args */
        start local 7 // android.widget.Filter$RequestArguments args
        12: .line 117
            aload 7 /* args */
            aload 1 /* constraint */
            ifnull 13
            aload 1 /* constraint */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            goto 14
      StackMap locals: android.widget.Filter java.lang.CharSequence android.widget.Filter$FilterListener java.lang.Object long android.os.Message android.widget.Filter$RequestArguments
      StackMap stack: android.widget.Filter$RequestArguments
        13: aconst_null
      StackMap locals: android.widget.Filter java.lang.CharSequence android.widget.Filter$FilterListener java.lang.Object long android.os.Message android.widget.Filter$RequestArguments
      StackMap stack: android.widget.Filter$RequestArguments java.lang.String
        14: putfield android.widget.Filter$RequestArguments.constraint:Ljava/lang/CharSequence;
        15: .line 118
            aload 7 /* args */
            aload 2 /* listener */
            putfield android.widget.Filter$RequestArguments.listener:Landroid/widget/Filter$FilterListener;
        16: .line 119
            aload 6 /* message */
            aload 7 /* args */
            putfield android.os.Message.obj:Ljava/lang/Object;
        17: .line 121
            aload 0 /* this */
            getfield android.widget.Filter.mThreadHandler:Landroid/os/Handler;
            ldc -791613427
            invokevirtual android.os.Handler.removeMessages:(I)V
        18: .line 122
            aload 0 /* this */
            getfield android.widget.Filter.mThreadHandler:Landroid/os/Handler;
            ldc -559038737
            invokevirtual android.os.Handler.removeMessages:(I)V
        19: .line 123
            aload 0 /* this */
            getfield android.widget.Filter.mThreadHandler:Landroid/os/Handler;
            aload 6 /* message */
            lload 4 /* delay */
            invokevirtual android.os.Handler.sendMessageDelayed:(Landroid/os/Message;J)Z
            pop
        end local 7 // android.widget.Filter$RequestArguments args
        end local 6 // android.os.Message message
        end local 4 // long delay
        20: .line 102
            aload 3
            monitorexit
        21: goto 24
      StackMap locals: android.widget.Filter java.lang.CharSequence android.widget.Filter$FilterListener java.lang.Object
      StackMap stack: java.lang.Throwable
        22: aload 3
            monitorexit
        23: athrow
        24: .line 125
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.widget.Filter$FilterListener listener
        end local 1 // java.lang.CharSequence constraint
        end local 0 // android.widget.Filter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0        this  Landroid/widget/Filter;
            0   25     1  constraint  Ljava/lang/CharSequence;
            0   25     2    listener  Landroid/widget/Filter$FilterListener;
            5    7     4      thread  Landroid/os/HandlerThread;
           10   20     4       delay  J
           11   20     6     message  Landroid/os/Message;
           12   20     7        args  Landroid/widget/Filter$RequestArguments;
      Exception table:
        from    to  target  type
           1    21      22  any
          22    23      22  any
    MethodParameters:
            Name  Flags
      constraint  
      listener    

  protected abstract android.widget.Filter$FilterResults performFiltering(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)Landroid/widget/Filter$FilterResults;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      constraint  

  protected abstract void publishResults(java.lang.CharSequence, android.widget.Filter$FilterResults);
    descriptor: (Ljava/lang/CharSequence;Landroid/widget/Filter$FilterResults;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      constraint  
      results     

  public java.lang.CharSequence convertResultToString(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.widget.Filter this
        start local 1 // java.lang.Object resultValue
         0: .line 173
            aload 1 /* resultValue */
            ifnonnull 1
            ldc ""
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* resultValue */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 1 // java.lang.Object resultValue
        end local 0 // android.widget.Filter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Landroid/widget/Filter;
            0    3     1  resultValue  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      resultValue  
}
SourceFile: "Filter.java"
NestMembers:
  android.widget.Filter$Delayer  android.widget.Filter$FilterListener  android.widget.Filter$FilterResults  android.widget.Filter$RequestArguments  android.widget.Filter$RequestHandler  android.widget.Filter$ResultsHandler
InnerClasses:
  public abstract Delayer = android.widget.Filter$Delayer of android.widget.Filter
  public abstract FilterListener = android.widget.Filter$FilterListener of android.widget.Filter
  protected FilterResults = android.widget.Filter$FilterResults of android.widget.Filter
  private RequestArguments = android.widget.Filter$RequestArguments of android.widget.Filter
  private RequestHandler = android.widget.Filter$RequestHandler of android.widget.Filter
  private ResultsHandler = android.widget.Filter$ResultsHandler of android.widget.Filter