public class android.service.voice.AlwaysOnHotwordDetector
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.service.voice.AlwaysOnHotwordDetector
  super_class: java.lang.Object
{
  private static final int STATE_INVALID;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -3

  public static final int STATE_HARDWARE_UNAVAILABLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  public static final int STATE_KEYPHRASE_UNSUPPORTED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

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

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

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

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

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

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

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

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

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

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

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

  static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "AlwaysOnHotwordDetector"

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

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

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

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

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

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

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

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

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

  private final java.util.Locale mLocale;
    descriptor: Ljava/util/Locale;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.hardware.soundtrigger.KeyphraseMetadata mKeyphraseMetadata;
    descriptor: Landroid/hardware/soundtrigger/KeyphraseMetadata;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.hardware.soundtrigger.KeyphraseEnrollmentInfo mKeyphraseEnrollmentInfo;
    descriptor: Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.service.voice.IVoiceInteractionService mVoiceInteractionService;
    descriptor: Landroid/service/voice/IVoiceInteractionService;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.android.internal.app.IVoiceInteractionManagerService mModelManagementService;
    descriptor: Lcom/android/internal/app/IVoiceInteractionManagerService;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.service.voice.AlwaysOnHotwordDetector$SoundTriggerListener mInternalCallback;
    descriptor: Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.service.voice.AlwaysOnHotwordDetector$Callback mExternalCallback;
    descriptor: Landroid/service/voice/AlwaysOnHotwordDetector$Callback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  public void <init>(java.lang.String, java.util.Locale, android.service.voice.AlwaysOnHotwordDetector$Callback, android.hardware.soundtrigger.KeyphraseEnrollmentInfo, android.service.voice.IVoiceInteractionService, com.android.internal.app.IVoiceInteractionManagerService);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Landroid/service/voice/AlwaysOnHotwordDetector$Callback;Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;Landroid/service/voice/IVoiceInteractionService;Lcom/android/internal/app/IVoiceInteractionManagerService;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=7
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
        start local 1 // java.lang.String text
        start local 2 // java.util.Locale locale
        start local 3 // android.service.voice.AlwaysOnHotwordDetector$Callback callback
        start local 4 // android.hardware.soundtrigger.KeyphraseEnrollmentInfo keyphraseEnrollmentInfo
        start local 5 // android.service.voice.IVoiceInteractionService voiceInteractionService
        start local 6 // com.android.internal.app.IVoiceInteractionManagerService modelManagementService
         0: .line 334
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 195
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
         2: .line 198
            aload 0 /* this */
            iconst_0
            putfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
         3: .line 338
            aload 0 /* this */
            aload 1 /* text */
            putfield android.service.voice.AlwaysOnHotwordDetector.mText:Ljava/lang/String;
         4: .line 339
            aload 0 /* this */
            aload 2 /* locale */
            putfield android.service.voice.AlwaysOnHotwordDetector.mLocale:Ljava/util/Locale;
         5: .line 340
            aload 0 /* this */
            aload 4 /* keyphraseEnrollmentInfo */
            putfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseEnrollmentInfo:Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
         6: .line 341
            aload 0 /* this */
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseEnrollmentInfo:Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
            aload 1 /* text */
            aload 2 /* locale */
            invokevirtual android.hardware.soundtrigger.KeyphraseEnrollmentInfo.getKeyphraseMetadata:(Ljava/lang/String;Ljava/util/Locale;)Landroid/hardware/soundtrigger/KeyphraseMetadata;
            putfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseMetadata:Landroid/hardware/soundtrigger/KeyphraseMetadata;
         7: .line 342
            aload 0 /* this */
            aload 3 /* callback */
            putfield android.service.voice.AlwaysOnHotwordDetector.mExternalCallback:Landroid/service/voice/AlwaysOnHotwordDetector$Callback;
         8: .line 343
            aload 0 /* this */
            new android.service.voice.AlwaysOnHotwordDetector$MyHandler
            dup
            aload 0 /* this */
            invokespecial android.service.voice.AlwaysOnHotwordDetector$MyHandler.<init>:(Landroid/service/voice/AlwaysOnHotwordDetector;)V
            putfield android.service.voice.AlwaysOnHotwordDetector.mHandler:Landroid/os/Handler;
         9: .line 344
            aload 0 /* this */
            new android.service.voice.AlwaysOnHotwordDetector$SoundTriggerListener
            dup
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mHandler:Landroid/os/Handler;
            invokespecial android.service.voice.AlwaysOnHotwordDetector$SoundTriggerListener.<init>:(Landroid/os/Handler;)V
            putfield android.service.voice.AlwaysOnHotwordDetector.mInternalCallback:Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;
        10: .line 345
            aload 0 /* this */
            aload 5 /* voiceInteractionService */
            putfield android.service.voice.AlwaysOnHotwordDetector.mVoiceInteractionService:Landroid/service/voice/IVoiceInteractionService;
        11: .line 346
            aload 0 /* this */
            aload 6 /* modelManagementService */
            putfield android.service.voice.AlwaysOnHotwordDetector.mModelManagementService:Lcom/android/internal/app/IVoiceInteractionManagerService;
        12: .line 347
            new android.service.voice.AlwaysOnHotwordDetector$RefreshAvailabiltyTask
            dup
            aload 0 /* this */
            invokespecial android.service.voice.AlwaysOnHotwordDetector$RefreshAvailabiltyTask.<init>:(Landroid/service/voice/AlwaysOnHotwordDetector;)V
            iconst_0
            anewarray java.lang.Void
            invokevirtual android.service.voice.AlwaysOnHotwordDetector$RefreshAvailabiltyTask.execute:([Ljava/lang/Object;)Landroid/os/AsyncTask;
            pop
        13: .line 348
            return
        end local 6 // com.android.internal.app.IVoiceInteractionManagerService modelManagementService
        end local 5 // android.service.voice.IVoiceInteractionService voiceInteractionService
        end local 4 // android.hardware.soundtrigger.KeyphraseEnrollmentInfo keyphraseEnrollmentInfo
        end local 3 // android.service.voice.AlwaysOnHotwordDetector$Callback callback
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String text
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   14     0                     this  Landroid/service/voice/AlwaysOnHotwordDetector;
            0   14     1                     text  Ljava/lang/String;
            0   14     2                   locale  Ljava/util/Locale;
            0   14     3                 callback  Landroid/service/voice/AlwaysOnHotwordDetector$Callback;
            0   14     4  keyphraseEnrollmentInfo  Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
            0   14     5  voiceInteractionService  Landroid/service/voice/IVoiceInteractionService;
            0   14     6   modelManagementService  Lcom/android/internal/app/IVoiceInteractionManagerService;
    MethodParameters:
                         Name  Flags
      text                     
      locale                   
      callback                 
      keyphraseEnrollmentInfo  
      voiceInteractionService  
      modelManagementService   

  public int getSupportedRecognitionModes();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 365
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 366
            aload 0 /* this */
            invokevirtual android.service.voice.AlwaysOnHotwordDetector.getSupportedRecognitionModesLocked:()I
            aload 1
            monitorexit
         2: ireturn
         3: .line 365
      StackMap locals: android.service.voice.AlwaysOnHotwordDetector java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/service/voice/AlwaysOnHotwordDetector;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  private int getSupportedRecognitionModesLocked();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 371
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            bipush -3
            if_icmpne 4
         1: .line 372
            new java.lang.IllegalStateException
            dup
         2: .line 373
            ldc "getSupportedRecognitionModes called on an invalid detector"
         3: .line 372
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            iconst_2
            if_icmpeq 9
         5: .line 378
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            iconst_1
            if_icmpeq 9
         6: .line 379
            new java.lang.UnsupportedOperationException
            dup
         7: .line 380
            ldc "Getting supported recognition modes for the keyphrase is not supported"
         8: .line 379
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseMetadata:Landroid/hardware/soundtrigger/KeyphraseMetadata;
            getfield android.hardware.soundtrigger.KeyphraseMetadata.recognitionModeFlags:I
            ireturn
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Landroid/service/voice/AlwaysOnHotwordDetector;

  public boolean startRecognition(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
        start local 1 // int recognitionFlags
         0: .line 403
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 404
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            bipush -3
            if_icmpne 3
         2: .line 405
            new java.lang.IllegalStateException
            dup
            ldc "startRecognition called on an invalid detector"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 409
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            iconst_2
            if_icmpeq 7
         4: .line 410
            new java.lang.UnsupportedOperationException
            dup
         5: .line 411
            ldc "Recognition for the given keyphrase is not supported"
         6: .line 410
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* recognitionFlags */
            invokevirtual android.service.voice.AlwaysOnHotwordDetector.startRecognitionLocked:(I)I
            ifne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: aload 2
            monitorexit
        10: ireturn
        11: .line 403
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        12: athrow
        end local 1 // int recognitionFlags
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Landroid/service/voice/AlwaysOnHotwordDetector;
            0   13     1  recognitionFlags  I
      Exception table:
        from    to  target  type
           1    10      11  any
          11    12      11  any
    MethodParameters:
                  Name  Flags
      recognitionFlags  

  public boolean stopRecognition();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 431
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 432
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            bipush -3
            if_icmpne 3
         2: .line 433
            new java.lang.IllegalStateException
            dup
            ldc "stopRecognition called on an invalid detector"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 437
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            iconst_2
            if_icmpeq 7
         4: .line 438
            new java.lang.UnsupportedOperationException
            dup
         5: .line 439
            ldc "Recognition for the given keyphrase is not supported"
         6: .line 438
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.service.voice.AlwaysOnHotwordDetector.stopRecognitionLocked:()I
            ifne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: aload 1
            monitorexit
        10: ireturn
        11: .line 431
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        12: athrow
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Landroid/service/voice/AlwaysOnHotwordDetector;
      Exception table:
        from    to  target  type
           1    10      11  any
          11    12      11  any

  public android.content.Intent createEnrollIntent();
    descriptor: ()Landroid/content/Intent;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 463
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 464
            aload 0 /* this */
            iconst_0
            invokevirtual android.service.voice.AlwaysOnHotwordDetector.getManageIntentLocked:(I)Landroid/content/Intent;
            aload 1
            monitorexit
         2: areturn
         3: .line 463
      StackMap locals: android.service.voice.AlwaysOnHotwordDetector java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/service/voice/AlwaysOnHotwordDetector;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public android.content.Intent createUnEnrollIntent();
    descriptor: ()Landroid/content/Intent;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 484
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 485
            aload 0 /* this */
            iconst_2
            invokevirtual android.service.voice.AlwaysOnHotwordDetector.getManageIntentLocked:(I)Landroid/content/Intent;
            aload 1
            monitorexit
         2: areturn
         3: .line 484
      StackMap locals: android.service.voice.AlwaysOnHotwordDetector java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/service/voice/AlwaysOnHotwordDetector;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public android.content.Intent createReEnrollIntent();
    descriptor: ()Landroid/content/Intent;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 505
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 506
            aload 0 /* this */
            iconst_1
            invokevirtual android.service.voice.AlwaysOnHotwordDetector.getManageIntentLocked:(I)Landroid/content/Intent;
            aload 1
            monitorexit
         2: areturn
         3: .line 505
      StackMap locals: android.service.voice.AlwaysOnHotwordDetector java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/service/voice/AlwaysOnHotwordDetector;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  private android.content.Intent getManageIntentLocked(int);
    descriptor: (I)Landroid/content/Intent;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
        start local 1 // int action
         0: .line 511
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            bipush -3
            if_icmpne 2
         1: .line 512
            new java.lang.IllegalStateException
            dup
            ldc "getManageIntent called on an invalid detector"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            iconst_2
            if_icmpeq 7
         3: .line 517
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            iconst_1
            if_icmpeq 7
         4: .line 518
            new java.lang.UnsupportedOperationException
            dup
         5: .line 519
            ldc "Managing the given keyphrase is not supported"
         6: .line 518
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseEnrollmentInfo:Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
            iload 1 /* action */
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mText:Ljava/lang/String;
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLocale:Ljava/util/Locale;
            invokevirtual android.hardware.soundtrigger.KeyphraseEnrollmentInfo.getManageKeyphraseIntent:(ILjava/lang/String;Ljava/util/Locale;)Landroid/content/Intent;
            areturn
        end local 1 // int action
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Landroid/service/voice/AlwaysOnHotwordDetector;
            0    8     1  action  I
    MethodParameters:
        Name  Flags
      action  

  void invalidate();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 532
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 533
            aload 0 /* this */
            bipush -3
            putfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
         2: .line 534
            aload 0 /* this */
            invokevirtual android.service.voice.AlwaysOnHotwordDetector.notifyStateChangedLocked:()V
         3: .line 532
            aload 1
            monitorexit
         4: goto 7
      StackMap locals: android.service.voice.AlwaysOnHotwordDetector java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 536
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/service/voice/AlwaysOnHotwordDetector;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  void onSoundModelsChanged();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 544
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 545
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            bipush -3
            if_icmpeq 4
         2: .line 546
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            bipush -2
            if_icmpeq 4
         3: .line 547
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            iconst_m1
            if_icmpne 7
         4: .line 548
      StackMap locals: java.lang.Object
      StackMap stack:
            ldc "AlwaysOnHotwordDetector"
            ldc "Received onSoundModelsChanged for an unsupported keyphrase/config"
            invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 549
            aload 1
            monitorexit
         6: return
         7: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.service.voice.AlwaysOnHotwordDetector.stopRecognitionLocked:()I
            pop
         8: .line 560
            new android.service.voice.AlwaysOnHotwordDetector$RefreshAvailabiltyTask
            dup
            aload 0 /* this */
            invokespecial android.service.voice.AlwaysOnHotwordDetector$RefreshAvailabiltyTask.<init>:(Landroid/service/voice/AlwaysOnHotwordDetector;)V
            iconst_0
            anewarray java.lang.Void
            invokevirtual android.service.voice.AlwaysOnHotwordDetector$RefreshAvailabiltyTask.execute:([Ljava/lang/Object;)Landroid/os/AsyncTask;
            pop
         9: .line 544
            aload 1
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 1
            monitorexit
        12: athrow
        13: .line 562
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Landroid/service/voice/AlwaysOnHotwordDetector;
      Exception table:
        from    to  target  type
           1     6      11  any
           7    10      11  any
          11    12      11  any

  private int startRecognitionLocked(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=7, args_size=2
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
        start local 1 // int recognitionFlags
         0: .line 565
            iconst_1
            anewarray android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra
            astore 2 /* recognitionExtra */
        start local 2 // android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra[] recognitionExtra
         1: .line 567
            aload 2 /* recognitionExtra */
            iconst_0
            new android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra
            dup
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseMetadata:Landroid/hardware/soundtrigger/KeyphraseMetadata;
            getfield android.hardware.soundtrigger.KeyphraseMetadata.id:I
         2: .line 568
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseMetadata:Landroid/hardware/soundtrigger/KeyphraseMetadata;
            getfield android.hardware.soundtrigger.KeyphraseMetadata.recognitionModeFlags:I
            iconst_0
            iconst_0
            anewarray android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel
            invokespecial android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra.<init>:(III[Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;)V
         3: .line 567
            aastore
         4: .line 570
            iload 1 /* recognitionFlags */
            iconst_1
            iand
            ifeq 5
            iconst_1
            goto 6
      StackMap locals: android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra[]
      StackMap stack:
         5: iconst_0
         6: .line 569
      StackMap locals:
      StackMap stack: int
            istore 3 /* captureTriggerAudio */
        start local 3 // boolean captureTriggerAudio
         7: .line 572
            iload 1 /* recognitionFlags */
            iconst_2
            iand
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iconst_0
         9: .line 571
      StackMap locals:
      StackMap stack: int
            istore 4 /* allowMultipleTriggers */
        start local 4 // boolean allowMultipleTriggers
        10: .line 573
            ldc -2147483648
            istore 5 /* code */
        start local 5 // int code
        11: .line 575
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mModelManagementService:Lcom/android/internal/app/IVoiceInteractionManagerService;
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mVoiceInteractionService:Landroid/service/voice/IVoiceInteractionService;
        12: .line 576
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseMetadata:Landroid/hardware/soundtrigger/KeyphraseMetadata;
            getfield android.hardware.soundtrigger.KeyphraseMetadata.id:I
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLocale:Ljava/util/Locale;
            invokevirtual java.util.Locale.toLanguageTag:()Ljava/lang/String;
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mInternalCallback:Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;
        13: .line 577
            new android.hardware.soundtrigger.SoundTrigger$RecognitionConfig
            dup
            iload 3 /* captureTriggerAudio */
            iload 4 /* allowMultipleTriggers */
        14: .line 578
            aload 2 /* recognitionExtra */
            aconst_null
        15: .line 577
            invokespecial android.hardware.soundtrigger.SoundTrigger$RecognitionConfig.<init>:(ZZ[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;[B)V
        16: .line 575
            invokeinterface com.android.internal.app.IVoiceInteractionManagerService.startRecognition:(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
            istore 5 /* code */
        17: .line 579
            goto 20
      StackMap locals: android.service.voice.AlwaysOnHotwordDetector int android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra[] int int int
      StackMap stack: android.os.RemoteException
        18: astore 6 /* e */
        start local 6 // android.os.RemoteException e
        19: .line 580
            ldc "AlwaysOnHotwordDetector"
            ldc "RemoteException in startRecognition!"
            aload 6 /* e */
            invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 6 // android.os.RemoteException e
        20: .line 582
      StackMap locals:
      StackMap stack:
            iload 5 /* code */
            ifeq 22
        21: .line 583
            ldc "AlwaysOnHotwordDetector"
            new java.lang.StringBuilder
            dup
            ldc "startRecognition() failed with error code "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* code */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        22: .line 585
      StackMap locals:
      StackMap stack:
            iload 5 /* code */
            ireturn
        end local 5 // int code
        end local 4 // boolean allowMultipleTriggers
        end local 3 // boolean captureTriggerAudio
        end local 2 // android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra[] recognitionExtra
        end local 1 // int recognitionFlags
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   23     0                   this  Landroid/service/voice/AlwaysOnHotwordDetector;
            0   23     1       recognitionFlags  I
            1   23     2       recognitionExtra  [Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
            7   23     3    captureTriggerAudio  Z
           10   23     4  allowMultipleTriggers  Z
           11   23     5                   code  I
           19   20     6                      e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          11    17      18  Class android.os.RemoteException
    MethodParameters:
                  Name  Flags
      recognitionFlags  

  private int stopRecognitionLocked();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 589
            ldc -2147483648
            istore 1 /* code */
        start local 1 // int code
         1: .line 591
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mModelManagementService:Lcom/android/internal/app/IVoiceInteractionManagerService;
         2: .line 592
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mVoiceInteractionService:Landroid/service/voice/IVoiceInteractionService;
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseMetadata:Landroid/hardware/soundtrigger/KeyphraseMetadata;
            getfield android.hardware.soundtrigger.KeyphraseMetadata.id:I
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mInternalCallback:Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;
         3: .line 591
            invokeinterface com.android.internal.app.IVoiceInteractionManagerService.stopRecognition:(Landroid/service/voice/IVoiceInteractionService;ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
            istore 1 /* code */
         4: .line 593
            goto 7
      StackMap locals: android.service.voice.AlwaysOnHotwordDetector int
      StackMap stack: android.os.RemoteException
         5: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         6: .line 594
            ldc "AlwaysOnHotwordDetector"
            ldc "RemoteException in stopRecognition!"
            aload 2 /* e */
            invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException e
         7: .line 597
      StackMap locals:
      StackMap stack:
            iload 1 /* code */
            ifeq 9
         8: .line 598
            ldc "AlwaysOnHotwordDetector"
            new java.lang.StringBuilder
            dup
            ldc "stopRecognition() failed with error code "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* code */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 600
      StackMap locals:
      StackMap stack:
            iload 1 /* code */
            ireturn
        end local 1 // int code
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Landroid/service/voice/AlwaysOnHotwordDetector;
            1   10     1  code  I
            6    7     2     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     4       5  Class android.os.RemoteException

  private void notifyStateChangedLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
         0: .line 604
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mHandler:Landroid/os/Handler;
            iconst_1
            invokestatic android.os.Message.obtain:(Landroid/os/Handler;I)Landroid/os/Message;
            astore 1 /* message */
        start local 1 // android.os.Message message
         1: .line 605
            aload 1 /* message */
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            putfield android.os.Message.arg1:I
         2: .line 606
            aload 1 /* message */
            invokevirtual android.os.Message.sendToTarget:()V
         3: .line 607
            return
        end local 1 // android.os.Message message
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/service/voice/AlwaysOnHotwordDetector;
            1    4     1  message  Landroid/os/Message;

  public void dump(java.lang.String, java.io.PrintWriter);
    descriptor: (Ljava/lang/String;Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // android.service.voice.AlwaysOnHotwordDetector this
        start local 1 // java.lang.String prefix
        start local 2 // java.io.PrintWriter pw
         0: .line 759
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 760
            aload 2 /* pw */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            ldc "Text="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mText:Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         2: .line 761
            aload 2 /* pw */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            ldc "Locale="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mLocale:Ljava/util/Locale;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
         3: .line 762
            aload 2 /* pw */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            ldc "Availability="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mAvailability:I
            invokevirtual java.io.PrintWriter.println:(I)V
         4: .line 763
            aload 2 /* pw */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            ldc "KeyphraseMetadata="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseMetadata:Landroid/hardware/soundtrigger/KeyphraseMetadata;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
         5: .line 764
            aload 2 /* pw */
            aload 1 /* prefix */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            ldc "EnrollmentInfo="
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            aload 2 /* pw */
            aload 0 /* this */
            getfield android.service.voice.AlwaysOnHotwordDetector.mKeyphraseEnrollmentInfo:Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
         6: .line 759
            aload 3
            monitorexit
         7: goto 10
      StackMap locals: android.service.voice.AlwaysOnHotwordDetector java.lang.String java.io.PrintWriter java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        10: .line 766
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.PrintWriter pw
        end local 1 // java.lang.String prefix
        end local 0 // android.service.voice.AlwaysOnHotwordDetector this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Landroid/service/voice/AlwaysOnHotwordDetector;
            0   11     1  prefix  Ljava/lang/String;
            0   11     2      pw  Ljava/io/PrintWriter;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any
    MethodParameters:
        Name  Flags
      prefix  
      pw      
}
SourceFile: "AlwaysOnHotwordDetector.java"
NestMembers:
  android.service.voice.AlwaysOnHotwordDetector$Callback  android.service.voice.AlwaysOnHotwordDetector$EventPayload  android.service.voice.AlwaysOnHotwordDetector$ManageActions  android.service.voice.AlwaysOnHotwordDetector$MyHandler  android.service.voice.AlwaysOnHotwordDetector$RecognitionFlags  android.service.voice.AlwaysOnHotwordDetector$RecognitionModes  android.service.voice.AlwaysOnHotwordDetector$RefreshAvailabiltyTask  android.service.voice.AlwaysOnHotwordDetector$SoundTriggerListener
InnerClasses:
  public ConfidenceLevel = android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel of android.hardware.soundtrigger.SoundTrigger
  public KeyphraseRecognitionExtra = android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra of android.hardware.soundtrigger.SoundTrigger
  public RecognitionConfig = android.hardware.soundtrigger.SoundTrigger$RecognitionConfig of android.hardware.soundtrigger.SoundTrigger
  public abstract Callback = android.service.voice.AlwaysOnHotwordDetector$Callback of android.service.voice.AlwaysOnHotwordDetector
  public EventPayload = android.service.voice.AlwaysOnHotwordDetector$EventPayload of android.service.voice.AlwaysOnHotwordDetector
  private abstract ManageActions = android.service.voice.AlwaysOnHotwordDetector$ManageActions of android.service.voice.AlwaysOnHotwordDetector
  MyHandler = android.service.voice.AlwaysOnHotwordDetector$MyHandler of android.service.voice.AlwaysOnHotwordDetector
  public abstract RecognitionFlags = android.service.voice.AlwaysOnHotwordDetector$RecognitionFlags of android.service.voice.AlwaysOnHotwordDetector
  public abstract RecognitionModes = android.service.voice.AlwaysOnHotwordDetector$RecognitionModes of android.service.voice.AlwaysOnHotwordDetector
  RefreshAvailabiltyTask = android.service.voice.AlwaysOnHotwordDetector$RefreshAvailabiltyTask of android.service.voice.AlwaysOnHotwordDetector
  final SoundTriggerListener = android.service.voice.AlwaysOnHotwordDetector$SoundTriggerListener of android.service.voice.AlwaysOnHotwordDetector