public final class android.app.VoiceInteractor
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.app.VoiceInteractor
  super_class: java.lang.Object
{
  static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "VoiceInteractor"

  static final boolean DEBUG;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final android.app.VoiceInteractor$Request[] NO_REQUESTS;
    descriptor: [Landroid/app/VoiceInteractor$Request;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  final com.android.internal.app.IVoiceInteractor mInteractor;
    descriptor: Lcom/android/internal/app/IVoiceInteractor;
    flags: (0x0010) ACC_FINAL

  android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0000) 

  android.app.Activity mActivity;
    descriptor: Landroid/app/Activity;
    flags: (0x0000) 

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

  final com.android.internal.os.HandlerCaller mHandlerCaller;
    descriptor: Lcom/android/internal/os/HandlerCaller;
    flags: (0x0010) ACC_FINAL

  final com.android.internal.os.HandlerCaller$Callback mHandlerCallerCallback;
    descriptor: Lcom/android/internal/os/HandlerCaller$Callback;
    flags: (0x0010) ACC_FINAL

  final com.android.internal.app.IVoiceInteractorCallback$Stub mCallback;
    descriptor: Lcom/android/internal/app/IVoiceInteractorCallback$Stub;
    flags: (0x0010) ACC_FINAL

  final android.util.ArrayMap<android.os.IBinder, android.app.VoiceInteractor$Request> mActiveRequests;
    descriptor: Landroid/util/ArrayMap;
    flags: (0x0010) ACC_FINAL
    Signature: Landroid/util/ArrayMap<Landroid/os/IBinder;Landroid/app/VoiceInteractor$Request;>;

  static final int MSG_CONFIRMATION_RESULT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int MSG_PICK_OPTION_RESULT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int MSG_COMPLETE_VOICE_RESULT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int MSG_ABORT_VOICE_RESULT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int MSG_COMMAND_RESULT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final int MSG_CANCEL_RESULT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 68
            iconst_0
            anewarray android.app.VoiceInteractor$Request
            putstatic android.app.VoiceInteractor.NO_REQUESTS:[Landroid/app/VoiceInteractor$Request;
         1: .line 205
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.android.internal.app.IVoiceInteractor, android.content.Context, android.app.Activity, android.os.Looper);
    descriptor: (Lcom/android/internal/app/IVoiceInteractor;Landroid/content/Context;Landroid/app/Activity;Landroid/os/Looper;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // android.app.VoiceInteractor this
        start local 1 // com.android.internal.app.IVoiceInteractor interactor
        start local 2 // android.content.Context context
        start local 3 // android.app.Activity activity
        start local 4 // android.os.Looper looper
         0: .line 884
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 77
            aload 0 /* this */
            new android.app.VoiceInteractor$1
            dup
            aload 0 /* this */
            invokespecial android.app.VoiceInteractor$1.<init>:(Landroid/app/VoiceInteractor;)V
            putfield android.app.VoiceInteractor.mHandlerCallerCallback:Lcom/android/internal/os/HandlerCaller$Callback;
         2: .line 157
            aload 0 /* this */
            new android.app.VoiceInteractor$2
            dup
            aload 0 /* this */
            invokespecial android.app.VoiceInteractor$2.<init>:(Landroid/app/VoiceInteractor;)V
            putfield android.app.VoiceInteractor.mCallback:Lcom/android/internal/app/IVoiceInteractorCallback$Stub;
         3: .line 198
            aload 0 /* this */
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
         4: .line 886
            aload 0 /* this */
            aload 1 /* interactor */
            putfield android.app.VoiceInteractor.mInteractor:Lcom/android/internal/app/IVoiceInteractor;
         5: .line 887
            aload 0 /* this */
            aload 2 /* context */
            putfield android.app.VoiceInteractor.mContext:Landroid/content/Context;
         6: .line 888
            aload 0 /* this */
            aload 3 /* activity */
            putfield android.app.VoiceInteractor.mActivity:Landroid/app/Activity;
         7: .line 889
            aload 0 /* this */
            new com.android.internal.os.HandlerCaller
            dup
            aload 2 /* context */
            aload 4 /* looper */
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mHandlerCallerCallback:Lcom/android/internal/os/HandlerCaller$Callback;
            iconst_1
            invokespecial com.android.internal.os.HandlerCaller.<init>:(Landroid/content/Context;Landroid/os/Looper;Lcom/android/internal/os/HandlerCaller$Callback;Z)V
            putfield android.app.VoiceInteractor.mHandlerCaller:Lcom/android/internal/os/HandlerCaller;
         8: .line 890
            return
        end local 4 // android.os.Looper looper
        end local 3 // android.app.Activity activity
        end local 2 // android.content.Context context
        end local 1 // com.android.internal.app.IVoiceInteractor interactor
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Landroid/app/VoiceInteractor;
            0    9     1  interactor  Lcom/android/internal/app/IVoiceInteractor;
            0    9     2     context  Landroid/content/Context;
            0    9     3    activity  Landroid/app/Activity;
            0    9     4      looper  Landroid/os/Looper;
    MethodParameters:
            Name  Flags
      interactor  
      context     
      activity    
      looper      

  android.app.VoiceInteractor$Request pullRequest(com.android.internal.app.IVoiceInteractorRequest, boolean);
    descriptor: (Lcom/android/internal/app/IVoiceInteractorRequest;Z)Landroid/app/VoiceInteractor$Request;
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // android.app.VoiceInteractor this
        start local 1 // com.android.internal.app.IVoiceInteractorRequest request
        start local 2 // boolean complete
         0: .line 893
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            dup
            astore 3
            monitorenter
         1: .line 894
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            aload 1 /* request */
            invokeinterface com.android.internal.app.IVoiceInteractorRequest.asBinder:()Landroid/os/IBinder;
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.app.VoiceInteractor$Request
            astore 4 /* req */
        start local 4 // android.app.VoiceInteractor$Request req
         2: .line 895
            aload 4 /* req */
            ifnull 4
            iload 2 /* complete */
            ifeq 4
         3: .line 896
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            aload 1 /* request */
            invokeinterface com.android.internal.app.IVoiceInteractorRequest.asBinder:()Landroid/os/IBinder;
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 898
      StackMap locals: android.util.ArrayMap android.app.VoiceInteractor$Request
      StackMap stack:
            aload 4 /* req */
            aload 3
            monitorexit
         5: areturn
        end local 4 // android.app.VoiceInteractor$Request req
         6: .line 893
      StackMap locals: android.app.VoiceInteractor com.android.internal.app.IVoiceInteractorRequest int android.util.ArrayMap
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
         7: athrow
        end local 2 // boolean complete
        end local 1 // com.android.internal.app.IVoiceInteractorRequest request
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/app/VoiceInteractor;
            0    8     1   request  Lcom/android/internal/app/IVoiceInteractorRequest;
            0    8     2  complete  Z
            2    6     4       req  Landroid/app/VoiceInteractor$Request;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
          Name  Flags
      request   
      complete  

  private java.util.ArrayList<android.app.VoiceInteractor$Request> makeRequestList();
    descriptor: ()Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // android.app.VoiceInteractor this
         0: .line 903
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            istore 1 /* N */
        start local 1 // int N
         1: .line 904
            iload 1 /* N */
            iconst_1
            if_icmpge 3
         2: .line 905
            aconst_null
            areturn
         3: .line 907
      StackMap locals: int
      StackMap stack:
            new java.util.ArrayList
            dup
            iload 1 /* N */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* list */
        start local 2 // java.util.ArrayList list
         4: .line 908
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 909
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 2 /* list */
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            iload 3 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.app.VoiceInteractor$Request
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 908
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 1 /* N */
            if_icmplt 6
        end local 3 // int i
         9: .line 911
            aload 2 /* list */
            areturn
        end local 2 // java.util.ArrayList list
        end local 1 // int N
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Landroid/app/VoiceInteractor;
            1   10     1     N  I
            4   10     2  list  Ljava/util/ArrayList<Landroid/app/VoiceInteractor$Request;>;
            5    9     3     i  I
    Signature: ()Ljava/util/ArrayList<Landroid/app/VoiceInteractor$Request;>;

  void attachActivity(android.app.Activity);
    descriptor: (Landroid/app/Activity;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // android.app.VoiceInteractor this
        start local 1 // android.app.Activity activity
         0: .line 915
            aload 0 /* this */
            iconst_0
            putfield android.app.VoiceInteractor.mRetaining:Z
         1: .line 916
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActivity:Landroid/app/Activity;
            aload 1 /* activity */
            if_acmpne 3
         2: .line 917
            return
         3: .line 919
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* activity */
            putfield android.app.VoiceInteractor.mContext:Landroid/content/Context;
         4: .line 920
            aload 0 /* this */
            aload 1 /* activity */
            putfield android.app.VoiceInteractor.mActivity:Landroid/app/Activity;
         5: .line 921
            aload 0 /* this */
            invokevirtual android.app.VoiceInteractor.makeRequestList:()Ljava/util/ArrayList;
            astore 2 /* reqs */
        start local 2 // java.util.ArrayList reqs
         6: .line 922
            aload 2 /* reqs */
            ifnull 15
         7: .line 923
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: goto 14
         9: .line 924
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 2 /* reqs */
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.app.VoiceInteractor$Request
            astore 4 /* req */
        start local 4 // android.app.VoiceInteractor$Request req
        10: .line 925
            aload 4 /* req */
            aload 1 /* activity */
            putfield android.app.VoiceInteractor$Request.mContext:Landroid/content/Context;
        11: .line 926
            aload 4 /* req */
            aload 1 /* activity */
            putfield android.app.VoiceInteractor$Request.mActivity:Landroid/app/Activity;
        12: .line 927
            aload 4 /* req */
            aload 1 /* activity */
            invokevirtual android.app.VoiceInteractor$Request.onAttached:(Landroid/app/Activity;)V
        end local 4 // android.app.VoiceInteractor$Request req
        13: .line 923
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            aload 2 /* reqs */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 9
        end local 3 // int i
        15: .line 930
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.ArrayList reqs
        end local 1 // android.app.Activity activity
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Landroid/app/VoiceInteractor;
            0   16     1  activity  Landroid/app/Activity;
            6   16     2      reqs  Ljava/util/ArrayList<Landroid/app/VoiceInteractor$Request;>;
            8   15     3         i  I
           10   13     4       req  Landroid/app/VoiceInteractor$Request;
    MethodParameters:
          Name  Flags
      activity  

  void retainInstance();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.app.VoiceInteractor this
         0: .line 933
            aload 0 /* this */
            iconst_1
            putfield android.app.VoiceInteractor.mRetaining:Z
         1: .line 934
            return
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/app/VoiceInteractor;

  void detachActivity();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.app.VoiceInteractor this
         0: .line 937
            aload 0 /* this */
            invokevirtual android.app.VoiceInteractor.makeRequestList:()Ljava/util/ArrayList;
            astore 1 /* reqs */
        start local 1 // java.util.ArrayList reqs
         1: .line 938
            aload 1 /* reqs */
            ifnull 10
         2: .line 939
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 9
         4: .line 940
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 1 /* reqs */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.app.VoiceInteractor$Request
            astore 3 /* req */
        start local 3 // android.app.VoiceInteractor$Request req
         5: .line 941
            aload 3 /* req */
            invokevirtual android.app.VoiceInteractor$Request.onDetached:()V
         6: .line 942
            aload 3 /* req */
            aconst_null
            putfield android.app.VoiceInteractor$Request.mActivity:Landroid/app/Activity;
         7: .line 943
            aload 3 /* req */
            aconst_null
            putfield android.app.VoiceInteractor$Request.mContext:Landroid/content/Context;
        end local 3 // android.app.VoiceInteractor$Request req
         8: .line 939
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 1 /* reqs */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 4
        end local 2 // int i
        10: .line 946
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mRetaining:Z
            ifne 20
        11: .line 947
            aload 0 /* this */
            invokevirtual android.app.VoiceInteractor.makeRequestList:()Ljava/util/ArrayList;
            astore 1 /* reqs */
        12: .line 948
            aload 1 /* reqs */
            ifnull 19
        13: .line 949
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        14: goto 18
        15: .line 950
      StackMap locals: int
      StackMap stack:
            aload 1 /* reqs */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.app.VoiceInteractor$Request
            astore 3 /* req */
        start local 3 // android.app.VoiceInteractor$Request req
        16: .line 951
            aload 3 /* req */
            invokevirtual android.app.VoiceInteractor$Request.cancel:()V
        end local 3 // android.app.VoiceInteractor$Request req
        17: .line 949
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 2 /* i */
            aload 1 /* reqs */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 15
        end local 2 // int i
        19: .line 954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.clear:()V
        20: .line 956
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.app.VoiceInteractor.mContext:Landroid/content/Context;
        21: .line 957
            aload 0 /* this */
            aconst_null
            putfield android.app.VoiceInteractor.mActivity:Landroid/app/Activity;
        22: .line 958
            return
        end local 1 // java.util.ArrayList reqs
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   23     0  this  Landroid/app/VoiceInteractor;
            1   23     1  reqs  Ljava/util/ArrayList<Landroid/app/VoiceInteractor$Request;>;
            3   10     2     i  I
            5    8     3   req  Landroid/app/VoiceInteractor$Request;
           14   19     2     i  I
           16   17     3   req  Landroid/app/VoiceInteractor$Request;

  public boolean submitRequest(android.app.VoiceInteractor$Request);
    descriptor: (Landroid/app/VoiceInteractor$Request;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.app.VoiceInteractor this
        start local 1 // android.app.VoiceInteractor$Request request
         0: .line 961
            aload 0 /* this */
            aload 1 /* request */
            aconst_null
            invokevirtual android.app.VoiceInteractor.submitRequest:(Landroid/app/VoiceInteractor$Request;Ljava/lang/String;)Z
            ireturn
        end local 1 // android.app.VoiceInteractor$Request request
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Landroid/app/VoiceInteractor;
            0    1     1  request  Landroid/app/VoiceInteractor$Request;
    MethodParameters:
         Name  Flags
      request  

  public boolean submitRequest(android.app.VoiceInteractor$Request, java.lang.String);
    descriptor: (Landroid/app/VoiceInteractor$Request;Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.app.VoiceInteractor this
        start local 1 // android.app.VoiceInteractor$Request request
        start local 2 // java.lang.String name
         0: .line 977
            aload 1 /* request */
            getfield android.app.VoiceInteractor$Request.mRequestInterface:Lcom/android/internal/app/IVoiceInteractorRequest;
            ifnull 2
         1: .line 978
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Given "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* request */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is already active"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 980
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mInteractor:Lcom/android/internal/app/IVoiceInteractor;
         3: .line 981
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mCallback:Lcom/android/internal/app/IVoiceInteractorCallback$Stub;
         4: .line 980
            invokevirtual android.app.VoiceInteractor$Request.submit:(Lcom/android/internal/app/IVoiceInteractor;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;)Lcom/android/internal/app/IVoiceInteractorRequest;
            astore 3 /* ireq */
        start local 3 // com.android.internal.app.IVoiceInteractorRequest ireq
         5: .line 982
            aload 1 /* request */
            aload 3 /* ireq */
            putfield android.app.VoiceInteractor$Request.mRequestInterface:Lcom/android/internal/app/IVoiceInteractorRequest;
         6: .line 983
            aload 1 /* request */
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mContext:Landroid/content/Context;
            putfield android.app.VoiceInteractor$Request.mContext:Landroid/content/Context;
         7: .line 984
            aload 1 /* request */
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActivity:Landroid/app/Activity;
            putfield android.app.VoiceInteractor$Request.mActivity:Landroid/app/Activity;
         8: .line 985
            aload 1 /* request */
            aload 2 /* name */
            putfield android.app.VoiceInteractor$Request.mName:Ljava/lang/String;
         9: .line 986
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            dup
            astore 4
            monitorenter
        10: .line 987
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            aload 3 /* ireq */
            invokeinterface com.android.internal.app.IVoiceInteractorRequest.asBinder:()Landroid/os/IBinder;
            aload 1 /* request */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 986
            aload 4
            monitorexit
        12: goto 15
      StackMap locals: android.app.VoiceInteractor android.app.VoiceInteractor$Request java.lang.String com.android.internal.app.IVoiceInteractorRequest android.util.ArrayMap
      StackMap stack: java.lang.Throwable
        13: aload 4
            monitorexit
        14: athrow
        15: .line 989
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // com.android.internal.app.IVoiceInteractorRequest ireq
        16: .line 990
      StackMap locals: android.app.VoiceInteractor android.app.VoiceInteractor$Request java.lang.String
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
        17: .line 991
            ldc "VoiceInteractor"
            ldc "Remove voice interactor service died"
            aload 3 /* e */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        18: .line 992
            iconst_0
            ireturn
        end local 3 // android.os.RemoteException e
        end local 2 // java.lang.String name
        end local 1 // android.app.VoiceInteractor$Request request
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Landroid/app/VoiceInteractor;
            0   19     1  request  Landroid/app/VoiceInteractor$Request;
            0   19     2     name  Ljava/lang/String;
            5   16     3     ireq  Lcom/android/internal/app/IVoiceInteractorRequest;
           17   19     3        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          10    12      13  any
          13    14      13  any
           0    15      16  Class android.os.RemoteException
    MethodParameters:
         Name  Flags
      request  
      name     

  public android.app.VoiceInteractor$Request[] getActiveRequests();
    descriptor: ()[Landroid/app/VoiceInteractor$Request;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // android.app.VoiceInteractor this
         0: .line 1000
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            dup
            astore 1
            monitorenter
         1: .line 1001
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            istore 2 /* N */
        start local 2 // int N
         2: .line 1002
            iload 2 /* N */
            ifgt 5
         3: .line 1003
            getstatic android.app.VoiceInteractor.NO_REQUESTS:[Landroid/app/VoiceInteractor$Request;
            aload 1
            monitorexit
         4: areturn
         5: .line 1005
      StackMap locals: android.util.ArrayMap int
      StackMap stack:
            iload 2 /* N */
            anewarray android.app.VoiceInteractor$Request
            astore 3 /* requests */
        start local 3 // android.app.VoiceInteractor$Request[] requests
         6: .line 1006
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 10
         8: .line 1007
      StackMap locals: android.app.VoiceInteractor$Request[] int
      StackMap stack:
            aload 3 /* requests */
            iload 4 /* i */
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            iload 4 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.app.VoiceInteractor$Request
            aastore
         9: .line 1006
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            iload 2 /* N */
            if_icmplt 8
        end local 4 // int i
        11: .line 1009
            aload 3 /* requests */
            aload 1
            monitorexit
        12: areturn
        end local 3 // android.app.VoiceInteractor$Request[] requests
        end local 2 // int N
        13: .line 1000
      StackMap locals: android.app.VoiceInteractor android.util.ArrayMap
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        14: athrow
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Landroid/app/VoiceInteractor;
            2   13     2         N  I
            6   13     3  requests  [Landroid/app/VoiceInteractor$Request;
            7   11     4         i  I
      Exception table:
        from    to  target  type
           1     4      13  any
           5    12      13  any
          13    14      13  any

  public android.app.VoiceInteractor$Request getActiveRequest(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/app/VoiceInteractor$Request;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // android.app.VoiceInteractor this
        start local 1 // java.lang.String name
         0: .line 1021
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            dup
            astore 2
            monitorenter
         1: .line 1022
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            istore 3 /* N */
        start local 3 // int N
         2: .line 1023
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 9
         4: .line 1024
      StackMap locals: android.util.ArrayMap int int
      StackMap stack:
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            iload 4 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.app.VoiceInteractor$Request
            astore 5 /* req */
        start local 5 // android.app.VoiceInteractor$Request req
         5: .line 1025
            aload 1 /* name */
            aload 5 /* req */
            invokevirtual android.app.VoiceInteractor$Request.getName:()Ljava/lang/String;
            if_acmpeq 6
            aload 1 /* name */
            ifnull 8
            aload 1 /* name */
            aload 5 /* req */
            invokevirtual android.app.VoiceInteractor$Request.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 1026
      StackMap locals: android.app.VoiceInteractor$Request
      StackMap stack:
            aload 5 /* req */
            aload 2
            monitorexit
         7: areturn
        end local 5 // android.app.VoiceInteractor$Request req
         8: .line 1023
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 3 /* N */
            if_icmplt 4
        end local 4 // int i
        end local 3 // int N
        10: .line 1021
            aload 2
            monitorexit
        11: goto 14
      StackMap locals: android.app.VoiceInteractor java.lang.String android.util.ArrayMap
      StackMap stack: java.lang.Throwable
        12: aload 2
            monitorexit
        13: athrow
        14: .line 1030
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Landroid/app/VoiceInteractor;
            0   15     1  name  Ljava/lang/String;
            2   10     3     N  I
            3   10     4     i  I
            5    8     5   req  Landroid/app/VoiceInteractor$Request;
      Exception table:
        from    to  target  type
           1     7      12  any
           8    11      12  any
          12    13      12  any
    MethodParameters:
      Name  Flags
      name  

  public boolean[] supportsCommands(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.app.VoiceInteractor this
        start local 1 // java.lang.String[] commands
         0: .line 1044
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mInteractor:Lcom/android/internal/app/IVoiceInteractor;
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
            aload 1 /* commands */
            invokeinterface com.android.internal.app.IVoiceInteractor.supportsCommands:(Ljava/lang/String;[Ljava/lang/String;)[Z
            astore 2 /* res */
        start local 2 // boolean[] res
         1: .line 1046
            aload 2 /* res */
         2: areturn
        end local 2 // boolean[] res
         3: .line 1047
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 1048
            new java.lang.RuntimeException
            dup
            ldc "Voice interactor has died"
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // java.lang.String[] commands
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/app/VoiceInteractor;
            0    5     1  commands  [Ljava/lang/String;
            1    3     2       res  [Z
            4    5     2         e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     2       3  Class android.os.RemoteException
    MethodParameters:
          Name  Flags
      commands  

  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: (0x0000) 
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // android.app.VoiceInteractor this
        start local 1 // java.lang.String prefix
        start local 2 // java.io.FileDescriptor fd
        start local 3 // java.io.PrintWriter writer
        start local 4 // java.lang.String[] args
         0: .line 1053
            new java.lang.StringBuilder
            dup
            aload 1 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* innerPrefix */
        start local 5 // java.lang.String innerPrefix
         1: .line 1054
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            ifle 12
         2: .line 1055
            aload 3 /* writer */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* writer */
            ldc "Active voice requests:"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         3: .line 1056
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 11
         5: .line 1057
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            iload 6 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.app.VoiceInteractor$Request
            astore 7 /* req */
        start local 7 // android.app.VoiceInteractor$Request req
         6: .line 1058
            aload 3 /* writer */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* writer */
            ldc "  #"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* writer */
            iload 6 /* i */
            invokevirtual java.io.PrintWriter.print:(I)V
         7: .line 1059
            aload 3 /* writer */
            ldc ": "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         8: .line 1060
            aload 3 /* writer */
            aload 7 /* req */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
         9: .line 1061
            aload 7 /* req */
            aload 5 /* innerPrefix */
            aload 2 /* fd */
            aload 3 /* writer */
            aload 4 /* args */
            invokevirtual android.app.VoiceInteractor$Request.dump:(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
        end local 7 // android.app.VoiceInteractor$Request req
        10: .line 1056
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActiveRequests:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            if_icmplt 5
        end local 6 // int i
        12: .line 1064
      StackMap locals:
      StackMap stack:
            aload 3 /* writer */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* writer */
            ldc "VoiceInteractor misc state:"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        13: .line 1065
            aload 3 /* writer */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* writer */
            ldc "  mInteractor="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        14: .line 1066
            aload 3 /* writer */
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mInteractor:Lcom/android/internal/app/IVoiceInteractor;
            invokeinterface com.android.internal.app.IVoiceInteractor.asBinder:()Landroid/os/IBinder;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
        15: .line 1067
            aload 3 /* writer */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* writer */
            ldc "  mActivity="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 3 /* writer */
            aload 0 /* this */
            getfield android.app.VoiceInteractor.mActivity:Landroid/app/Activity;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
        16: .line 1068
            return
        end local 5 // java.lang.String innerPrefix
        end local 4 // java.lang.String[] args
        end local 3 // java.io.PrintWriter writer
        end local 2 // java.io.FileDescriptor fd
        end local 1 // java.lang.String prefix
        end local 0 // android.app.VoiceInteractor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Landroid/app/VoiceInteractor;
            0   17     1       prefix  Ljava/lang/String;
            0   17     2           fd  Ljava/io/FileDescriptor;
            0   17     3       writer  Ljava/io/PrintWriter;
            0   17     4         args  [Ljava/lang/String;
            1   17     5  innerPrefix  Ljava/lang/String;
            4   12     6            i  I
            6   10     7          req  Landroid/app/VoiceInteractor$Request;
    MethodParameters:
        Name  Flags
      prefix  
      fd      
      writer  
      args    
}
SourceFile: "VoiceInteractor.java"
NestMembers:
  android.app.VoiceInteractor$1  android.app.VoiceInteractor$2  android.app.VoiceInteractor$AbortVoiceRequest  android.app.VoiceInteractor$CommandRequest  android.app.VoiceInteractor$CompleteVoiceRequest  android.app.VoiceInteractor$ConfirmationRequest  android.app.VoiceInteractor$PickOptionRequest  android.app.VoiceInteractor$PickOptionRequest$Option  android.app.VoiceInteractor$PickOptionRequest$Option$1  android.app.VoiceInteractor$Prompt  android.app.VoiceInteractor$Prompt$1  android.app.VoiceInteractor$Request
InnerClasses:
  android.app.VoiceInteractor$1
  android.app.VoiceInteractor$2
  public AbortVoiceRequest = android.app.VoiceInteractor$AbortVoiceRequest of android.app.VoiceInteractor
  public CommandRequest = android.app.VoiceInteractor$CommandRequest of android.app.VoiceInteractor
  public CompleteVoiceRequest = android.app.VoiceInteractor$CompleteVoiceRequest of android.app.VoiceInteractor
  public ConfirmationRequest = android.app.VoiceInteractor$ConfirmationRequest of android.app.VoiceInteractor
  public PickOptionRequest = android.app.VoiceInteractor$PickOptionRequest of android.app.VoiceInteractor
  public Prompt = android.app.VoiceInteractor$Prompt of android.app.VoiceInteractor
  public abstract Request = android.app.VoiceInteractor$Request of android.app.VoiceInteractor
  public abstract Stub = com.android.internal.app.IVoiceInteractorCallback$Stub of com.android.internal.app.IVoiceInteractorCallback
  public abstract Callback = com.android.internal.os.HandlerCaller$Callback of com.android.internal.os.HandlerCaller