public abstract class android.speech.tts.TextToSpeechService extends android.app.Service
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: android.speech.tts.TextToSpeechService
  super_class: android.app.Service
{
  private static final boolean DBG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

  private android.speech.tts.TextToSpeechService$SynthHandler mSynthHandler;
    descriptor: Landroid/speech/tts/TextToSpeechService$SynthHandler;
    flags: (0x0002) ACC_PRIVATE

  private android.speech.tts.AudioPlaybackHandler mAudioPlaybackHandler;
    descriptor: Landroid/speech/tts/AudioPlaybackHandler;
    flags: (0x0002) ACC_PRIVATE

  private android.speech.tts.TtsEngines mEngineHelper;
    descriptor: Landroid/speech/tts/TtsEngines;
    flags: (0x0002) ACC_PRIVATE

  private android.speech.tts.TextToSpeechService$CallbackMap mCallbacks;
    descriptor: Landroid/speech/tts/TextToSpeechService$CallbackMap;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String mPackageName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

  private final android.speech.tts.ITextToSpeechService$Stub mBinder;
    descriptor: Landroid/speech/tts/ITextToSpeechService$Stub;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.speech.tts.TextToSpeechService this
         0: .line 104
            aload 0 /* this */
            invokespecial android.app.Service.<init>:()V
         1: .line 121
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.speech.tts.TextToSpeechService.mVoicesInfoLock:Ljava/lang/Object;
         2: .line 1274
            aload 0 /* this */
         3: .line 1275
            new android.speech.tts.TextToSpeechService$1
            dup
            aload 0 /* this */
            invokespecial android.speech.tts.TextToSpeechService$1.<init>:(Landroid/speech/tts/TextToSpeechService;)V
            putfield android.speech.tts.TextToSpeechService.mBinder:Landroid/speech/tts/ITextToSpeechService$Stub;
         4: .line 104
            return
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/speech/tts/TextToSpeechService;

  public void onCreate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // android.speech.tts.TextToSpeechService this
         0: .line 126
            aload 0 /* this */
            invokespecial android.app.Service.onCreate:()V
         1: .line 128
            new android.speech.tts.TextToSpeechService$SynthThread
            dup
            aload 0 /* this */
            invokespecial android.speech.tts.TextToSpeechService$SynthThread.<init>:(Landroid/speech/tts/TextToSpeechService;)V
            astore 1 /* synthThread */
        start local 1 // android.speech.tts.TextToSpeechService$SynthThread synthThread
         2: .line 129
            aload 1 /* synthThread */
            invokevirtual android.speech.tts.TextToSpeechService$SynthThread.start:()V
         3: .line 130
            aload 0 /* this */
            new android.speech.tts.TextToSpeechService$SynthHandler
            dup
            aload 0 /* this */
            aload 1 /* synthThread */
            invokevirtual android.speech.tts.TextToSpeechService$SynthThread.getLooper:()Landroid/os/Looper;
            invokespecial android.speech.tts.TextToSpeechService$SynthHandler.<init>:(Landroid/speech/tts/TextToSpeechService;Landroid/os/Looper;)V
            putfield android.speech.tts.TextToSpeechService.mSynthHandler:Landroid/speech/tts/TextToSpeechService$SynthHandler;
         4: .line 132
            aload 0 /* this */
            new android.speech.tts.AudioPlaybackHandler
            dup
            invokespecial android.speech.tts.AudioPlaybackHandler.<init>:()V
            putfield android.speech.tts.TextToSpeechService.mAudioPlaybackHandler:Landroid/speech/tts/AudioPlaybackHandler;
         5: .line 133
            aload 0 /* this */
            getfield android.speech.tts.TextToSpeechService.mAudioPlaybackHandler:Landroid/speech/tts/AudioPlaybackHandler;
            invokevirtual android.speech.tts.AudioPlaybackHandler.start:()V
         6: .line 135
            aload 0 /* this */
            new android.speech.tts.TtsEngines
            dup
            aload 0 /* this */
            invokespecial android.speech.tts.TtsEngines.<init>:(Landroid/content/Context;)V
            putfield android.speech.tts.TextToSpeechService.mEngineHelper:Landroid/speech/tts/TtsEngines;
         7: .line 137
            aload 0 /* this */
            new android.speech.tts.TextToSpeechService$CallbackMap
            dup
            aload 0 /* this */
            invokespecial android.speech.tts.TextToSpeechService$CallbackMap.<init>:(Landroid/speech/tts/TextToSpeechService;)V
            putfield android.speech.tts.TextToSpeechService.mCallbacks:Landroid/speech/tts/TextToSpeechService$CallbackMap;
         8: .line 139
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual android.speech.tts.TextToSpeechService.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.packageName:Ljava/lang/String;
            putfield android.speech.tts.TextToSpeechService.mPackageName:Ljava/lang/String;
         9: .line 141
            aload 0 /* this */
            invokevirtual android.speech.tts.TextToSpeechService.getSettingsLocale:()[Ljava/lang/String;
            astore 2 /* defaultLocale */
        start local 2 // java.lang.String[] defaultLocale
        10: .line 144
            aload 0 /* this */
            aload 2 /* defaultLocale */
            iconst_0
            aaload
            aload 2 /* defaultLocale */
            iconst_1
            aaload
            aload 2 /* defaultLocale */
            iconst_2
            aaload
            invokevirtual android.speech.tts.TextToSpeechService.onLoadLanguage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
            pop
        11: .line 145
            return
        end local 2 // java.lang.String[] defaultLocale
        end local 1 // android.speech.tts.TextToSpeechService$SynthThread synthThread
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Landroid/speech/tts/TextToSpeechService;
            2   12     1    synthThread  Landroid/speech/tts/TextToSpeechService$SynthThread;
           10   12     2  defaultLocale  [Ljava/lang/String;

  public void onDestroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.speech.tts.TextToSpeechService this
         0: .line 152
            aload 0 /* this */
            getfield android.speech.tts.TextToSpeechService.mSynthHandler:Landroid/speech/tts/TextToSpeechService$SynthHandler;
            invokevirtual android.speech.tts.TextToSpeechService$SynthHandler.quit:()V
         1: .line 154
            aload 0 /* this */
            getfield android.speech.tts.TextToSpeechService.mAudioPlaybackHandler:Landroid/speech/tts/AudioPlaybackHandler;
            invokevirtual android.speech.tts.AudioPlaybackHandler.quit:()V
         2: .line 156
            aload 0 /* this */
            getfield android.speech.tts.TextToSpeechService.mCallbacks:Landroid/speech/tts/TextToSpeechService$CallbackMap;
            invokevirtual android.speech.tts.TextToSpeechService$CallbackMap.kill:()V
         3: .line 158
            aload 0 /* this */
            invokespecial android.app.Service.onDestroy:()V
         4: .line 159
            return
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/speech/tts/TextToSpeechService;

  protected abstract int onIsLanguageAvailable(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      lang     
      country  
      variant  

  protected abstract java.lang.String[] onGetLanguage();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int onLoadLanguage(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      lang     
      country  
      variant  

  protected abstract void onStop();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract void onSynthesizeText(android.speech.tts.SynthesisRequest, android.speech.tts.SynthesisCallback);
    descriptor: (Landroid/speech/tts/SynthesisRequest;Landroid/speech/tts/SynthesisCallback;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      request   
      callback  

  protected java.util.Set<java.lang.String> onGetFeaturesForLanguage(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // android.speech.tts.TextToSpeechService this
        start local 1 // java.lang.String lang
        start local 2 // java.lang.String country
        start local 3 // java.lang.String variant
         0: .line 249
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 3 // java.lang.String variant
        end local 2 // java.lang.String country
        end local 1 // java.lang.String lang
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Landroid/speech/tts/TextToSpeechService;
            0    1     1     lang  Ljava/lang/String;
            0    1     2  country  Ljava/lang/String;
            0    1     3  variant  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
         Name  Flags
      lang     
      country  
      variant  

  private int getExpectedLanguageAvailableStatus(java.util.Locale);
    descriptor: (Ljava/util/Locale;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // android.speech.tts.TextToSpeechService this
        start local 1 // java.util.Locale locale
         0: .line 253
            iconst_2
            istore 2 /* expectedStatus */
        start local 2 // int expectedStatus
         1: .line 254
            aload 1 /* locale */
            invokevirtual java.util.Locale.getVariant:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 6
         2: .line 255
            aload 1 /* locale */
            invokevirtual java.util.Locale.getCountry:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 5
         3: .line 256
            iconst_0
            istore 2 /* expectedStatus */
         4: .line 257
            goto 6
         5: .line 258
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 2 /* expectedStatus */
         6: .line 261
      StackMap locals:
      StackMap stack:
            iload 2 /* expectedStatus */
            ireturn
        end local 2 // int expectedStatus
        end local 1 // java.util.Locale locale
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Landroid/speech/tts/TextToSpeechService;
            0    7     1          locale  Ljava/util/Locale;
            1    7     2  expectedStatus  I
    MethodParameters:
        Name  Flags
      locale  

  public java.util.List<android.speech.tts.Voice> onGetVoices();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=1
        start local 0 // android.speech.tts.TextToSpeechService this
         0: .line 280
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* voices */
        start local 1 // java.util.ArrayList voices
         1: .line 281
            invokestatic java.util.Locale.getAvailableLocales:()[Ljava/util/Locale;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 21
      StackMap locals: android.speech.tts.TextToSpeechService java.util.ArrayList top int int java.util.Locale[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* locale */
        start local 2 // java.util.Locale locale
         3: .line 282
            aload 0 /* this */
            aload 2 /* locale */
            invokevirtual android.speech.tts.TextToSpeechService.getExpectedLanguageAvailableStatus:(Ljava/util/Locale;)I
            istore 6 /* expectedStatus */
        start local 6 // int expectedStatus
         4: .line 284
            aload 0 /* this */
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Language:()Ljava/lang/String;
         5: .line 285
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Country:()Ljava/lang/String;
            aload 2 /* locale */
            invokevirtual java.util.Locale.getVariant:()Ljava/lang/String;
         6: .line 284
            invokevirtual android.speech.tts.TextToSpeechService.onIsLanguageAvailable:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
            istore 7 /* localeStatus */
        start local 7 // int localeStatus
         7: .line 286
            iload 7 /* localeStatus */
            iload 6 /* expectedStatus */
            if_icmpeq 11
         8: .line 287
            goto 20
        end local 7 // int localeStatus
         9: .line 289
      StackMap locals: android.speech.tts.TextToSpeechService java.util.ArrayList java.util.Locale int int java.util.Locale[] int
      StackMap stack: java.util.MissingResourceException
            pop
        10: .line 291
            goto 20
        11: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Language:()Ljava/lang/String;
        12: .line 294
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Country:()Ljava/lang/String;
            aload 2 /* locale */
            invokevirtual java.util.Locale.getVariant:()Ljava/lang/String;
        13: .line 293
            invokevirtual android.speech.tts.TextToSpeechService.onGetFeaturesForLanguage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;
            astore 7 /* features */
        start local 7 // java.util.Set features
        14: .line 295
            aload 0 /* this */
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Language:()Ljava/lang/String;
        15: .line 296
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Country:()Ljava/lang/String;
            aload 2 /* locale */
            invokevirtual java.util.Locale.getVariant:()Ljava/lang/String;
        16: .line 295
            invokevirtual android.speech.tts.TextToSpeechService.onGetDefaultVoiceNameFor:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* voiceName */
        start local 8 // java.lang.String voiceName
        17: .line 297
            aload 1 /* voices */
            new android.speech.tts.Voice
            dup
            aload 8 /* voiceName */
            aload 2 /* locale */
            sipush 300
        18: .line 298
            sipush 300
            iconst_0
            aload 7 /* features */
            invokespecial android.speech.tts.Voice.<init>:(Ljava/lang/String;Ljava/util/Locale;IIZLjava/util/Set;)V
        19: .line 297
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String voiceName
        end local 7 // java.util.Set features
        end local 6 // int expectedStatus
        end local 2 // java.util.Locale locale
        20: .line 281
      StackMap locals: android.speech.tts.TextToSpeechService java.util.ArrayList top int int java.util.Locale[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        21: iload 3
            iload 4
            if_icmplt 2
        22: .line 300
            aload 1 /* voices */
            areturn
        end local 1 // java.util.ArrayList voices
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Landroid/speech/tts/TextToSpeechService;
            1   23     1          voices  Ljava/util/ArrayList<Landroid/speech/tts/Voice;>;
            3   20     2          locale  Ljava/util/Locale;
            4   20     6  expectedStatus  I
            7    9     7    localeStatus  I
           14   20     7        features  Ljava/util/Set<Ljava/lang/String;>;
           17   20     8       voiceName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           4     8       9  Class java.util.MissingResourceException
    Signature: ()Ljava/util/List<Landroid/speech/tts/Voice;>;

  public java.lang.String onGetDefaultVoiceNameFor(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // android.speech.tts.TextToSpeechService this
        start local 1 // java.lang.String lang
        start local 2 // java.lang.String country
        start local 3 // java.lang.String variant
         0: .line 320
            aload 0 /* this */
            aload 1 /* lang */
            aload 2 /* country */
            aload 3 /* variant */
            invokevirtual android.speech.tts.TextToSpeechService.onIsLanguageAvailable:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
            istore 4 /* localeStatus */
        start local 4 // int localeStatus
         1: .line 321
            aconst_null
            astore 5 /* iso3Locale */
        start local 5 // java.util.Locale iso3Locale
         2: .line 322
            iload 4 /* localeStatus */
            tableswitch { // 0 - 2
                    0: 3
                    1: 5
                    2: 7
              default: 9
          }
         3: .line 324
      StackMap locals: int java.util.Locale
      StackMap stack:
            new java.util.Locale
            dup
            aload 1 /* lang */
            invokespecial java.util.Locale.<init>:(Ljava/lang/String;)V
            astore 5 /* iso3Locale */
         4: .line 325
            goto 10
         5: .line 327
      StackMap locals:
      StackMap stack:
            new java.util.Locale
            dup
            aload 1 /* lang */
            aload 2 /* country */
            invokespecial java.util.Locale.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* iso3Locale */
         6: .line 328
            goto 10
         7: .line 330
      StackMap locals:
      StackMap stack:
            new java.util.Locale
            dup
            aload 1 /* lang */
            aload 2 /* country */
            aload 3 /* variant */
            invokespecial java.util.Locale.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* iso3Locale */
         8: .line 331
            goto 10
         9: .line 333
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        10: .line 335
      StackMap locals:
      StackMap stack:
            aload 5 /* iso3Locale */
            invokestatic android.speech.tts.TtsEngines.normalizeTTSLocale:(Ljava/util/Locale;)Ljava/util/Locale;
            astore 6 /* properLocale */
        start local 6 // java.util.Locale properLocale
        11: .line 336
            aload 6 /* properLocale */
            invokevirtual java.util.Locale.toLanguageTag:()Ljava/lang/String;
            astore 7 /* voiceName */
        start local 7 // java.lang.String voiceName
        12: .line 337
            aload 0 /* this */
            aload 7 /* voiceName */
            invokevirtual android.speech.tts.TextToSpeechService.onIsValidVoiceName:(Ljava/lang/String;)I
            ifne 14
        13: .line 338
            aload 7 /* voiceName */
            areturn
        14: .line 340
      StackMap locals: java.util.Locale java.lang.String
      StackMap stack:
            aconst_null
            areturn
        end local 7 // java.lang.String voiceName
        end local 6 // java.util.Locale properLocale
        end local 5 // java.util.Locale iso3Locale
        end local 4 // int localeStatus
        end local 3 // java.lang.String variant
        end local 2 // java.lang.String country
        end local 1 // java.lang.String lang
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Landroid/speech/tts/TextToSpeechService;
            0   15     1          lang  Ljava/lang/String;
            0   15     2       country  Ljava/lang/String;
            0   15     3       variant  Ljava/lang/String;
            1   15     4  localeStatus  I
            2   15     5    iso3Locale  Ljava/util/Locale;
           11   15     6  properLocale  Ljava/util/Locale;
           12   15     7     voiceName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      lang     
      country  
      variant  

  public int onLoadVoice(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // android.speech.tts.TextToSpeechService this
        start local 1 // java.lang.String voiceName
         0: .line 360
            aload 1 /* voiceName */
            invokestatic java.util.Locale.forLanguageTag:(Ljava/lang/String;)Ljava/util/Locale;
            astore 2 /* locale */
        start local 2 // java.util.Locale locale
         1: .line 361
            aload 2 /* locale */
            ifnonnull 3
         2: .line 362
            iconst_m1
            ireturn
         3: .line 364
      StackMap locals: java.util.Locale
      StackMap stack:
            aload 0 /* this */
            aload 2 /* locale */
            invokevirtual android.speech.tts.TextToSpeechService.getExpectedLanguageAvailableStatus:(Ljava/util/Locale;)I
            istore 3 /* expectedStatus */
        start local 3 // int expectedStatus
         4: .line 366
            aload 0 /* this */
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Language:()Ljava/lang/String;
         5: .line 367
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Country:()Ljava/lang/String;
            aload 2 /* locale */
            invokevirtual java.util.Locale.getVariant:()Ljava/lang/String;
         6: .line 366
            invokevirtual android.speech.tts.TextToSpeechService.onIsLanguageAvailable:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
            istore 4 /* localeStatus */
        start local 4 // int localeStatus
         7: .line 368
            iload 4 /* localeStatus */
            iload 3 /* expectedStatus */
            if_icmpeq 9
         8: .line 369
            iconst_m1
            ireturn
         9: .line 371
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Language:()Ljava/lang/String;
        10: .line 372
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Country:()Ljava/lang/String;
            aload 2 /* locale */
            invokevirtual java.util.Locale.getVariant:()Ljava/lang/String;
        11: .line 371
            invokevirtual android.speech.tts.TextToSpeechService.onLoadLanguage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
            pop
        12: .line 373
            iconst_0
            ireturn
        end local 4 // int localeStatus
        13: .line 374
      StackMap locals: android.speech.tts.TextToSpeechService java.lang.String java.util.Locale int
      StackMap stack: java.util.MissingResourceException
            pop
        14: .line 375
            iconst_m1
            ireturn
        end local 3 // int expectedStatus
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String voiceName
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Landroid/speech/tts/TextToSpeechService;
            0   15     1       voiceName  Ljava/lang/String;
            1   15     2          locale  Ljava/util/Locale;
            4   15     3  expectedStatus  I
            7   13     4    localeStatus  I
      Exception table:
        from    to  target  type
           4     8      13  Class java.util.MissingResourceException
           9    12      13  Class java.util.MissingResourceException
    MethodParameters:
           Name  Flags
      voiceName  

  public int onIsValidVoiceName(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // android.speech.tts.TextToSpeechService this
        start local 1 // java.lang.String voiceName
         0: .line 391
            aload 1 /* voiceName */
            invokestatic java.util.Locale.forLanguageTag:(Ljava/lang/String;)Ljava/util/Locale;
            astore 2 /* locale */
        start local 2 // java.util.Locale locale
         1: .line 392
            aload 2 /* locale */
            ifnonnull 3
         2: .line 393
            iconst_m1
            ireturn
         3: .line 395
      StackMap locals: java.util.Locale
      StackMap stack:
            aload 0 /* this */
            aload 2 /* locale */
            invokevirtual android.speech.tts.TextToSpeechService.getExpectedLanguageAvailableStatus:(Ljava/util/Locale;)I
            istore 3 /* expectedStatus */
        start local 3 // int expectedStatus
         4: .line 397
            aload 0 /* this */
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Language:()Ljava/lang/String;
         5: .line 398
            aload 2 /* locale */
            invokevirtual java.util.Locale.getISO3Country:()Ljava/lang/String;
            aload 2 /* locale */
            invokevirtual java.util.Locale.getVariant:()Ljava/lang/String;
         6: .line 397
            invokevirtual android.speech.tts.TextToSpeechService.onIsLanguageAvailable:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
            istore 4 /* localeStatus */
        start local 4 // int localeStatus
         7: .line 399
            iload 4 /* localeStatus */
            iload 3 /* expectedStatus */
            if_icmpeq 9
         8: .line 400
            iconst_m1
            ireturn
         9: .line 402
      StackMap locals: int int
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // int localeStatus
        10: .line 403
      StackMap locals: android.speech.tts.TextToSpeechService java.lang.String java.util.Locale int
      StackMap stack: java.util.MissingResourceException
            pop
        11: .line 404
            iconst_m1
            ireturn
        end local 3 // int expectedStatus
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String voiceName
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Landroid/speech/tts/TextToSpeechService;
            0   12     1       voiceName  Ljava/lang/String;
            1   12     2          locale  Ljava/util/Locale;
            4   12     3  expectedStatus  I
            7   10     4    localeStatus  I
      Exception table:
        from    to  target  type
           4     8      10  Class java.util.MissingResourceException
    MethodParameters:
           Name  Flags
      voiceName  

  private int getDefaultSpeechRate();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.speech.tts.TextToSpeechService this
         0: .line 409
            aload 0 /* this */
            ldc "tts_default_rate"
            bipush 100
            invokevirtual android.speech.tts.TextToSpeechService.getSecureSettingInt:(Ljava/lang/String;I)I
            ireturn
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/speech/tts/TextToSpeechService;

  private int getDefaultPitch();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.speech.tts.TextToSpeechService this
         0: .line 413
            aload 0 /* this */
            ldc "tts_default_pitch"
            bipush 100
            invokevirtual android.speech.tts.TextToSpeechService.getSecureSettingInt:(Ljava/lang/String;I)I
            ireturn
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/speech/tts/TextToSpeechService;

  private java.lang.String[] getSettingsLocale();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.speech.tts.TextToSpeechService this
         0: .line 417
            aload 0 /* this */
            getfield android.speech.tts.TextToSpeechService.mEngineHelper:Landroid/speech/tts/TtsEngines;
            aload 0 /* this */
            getfield android.speech.tts.TextToSpeechService.mPackageName:Ljava/lang/String;
            invokevirtual android.speech.tts.TtsEngines.getLocalePrefForEngine:(Ljava/lang/String;)Ljava/util/Locale;
            astore 1 /* locale */
        start local 1 // java.util.Locale locale
         1: .line 418
            aload 1 /* locale */
            invokestatic android.speech.tts.TtsEngines.toOldLocaleStringFormat:(Ljava/util/Locale;)[Ljava/lang/String;
            areturn
        end local 1 // java.util.Locale locale
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/speech/tts/TextToSpeechService;
            1    2     1  locale  Ljava/util/Locale;

  private int getSecureSettingInt(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.speech.tts.TextToSpeechService this
        start local 1 // java.lang.String name
        start local 2 // int defaultValue
         0: .line 422
            aload 0 /* this */
            invokevirtual android.speech.tts.TextToSpeechService.getContentResolver:()Landroid/content/ContentResolver;
            aload 1 /* name */
            iload 2 /* defaultValue */
            invokestatic android.provider.Settings$Secure.getInt:(Landroid/content/ContentResolver;Ljava/lang/String;I)I
            ireturn
        end local 2 // int defaultValue
        end local 1 // java.lang.String name
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Landroid/speech/tts/TextToSpeechService;
            0    1     1          name  Ljava/lang/String;
            0    1     2  defaultValue  I
    MethodParameters:
              Name  Flags
      name          
      defaultValue  

  public android.os.IBinder onBind(android.content.Intent);
    descriptor: (Landroid/content/Intent;)Landroid/os/IBinder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.speech.tts.TextToSpeechService this
        start local 1 // android.content.Intent intent
         0: .line 1262
            ldc "android.intent.action.TTS_SERVICE"
            aload 1 /* intent */
            invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1263
            aload 0 /* this */
            getfield android.speech.tts.TextToSpeechService.mBinder:Landroid/speech/tts/ITextToSpeechService$Stub;
            areturn
         2: .line 1265
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // android.content.Intent intent
        end local 0 // android.speech.tts.TextToSpeechService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/speech/tts/TextToSpeechService;
            0    3     1  intent  Landroid/content/Intent;
    MethodParameters:
        Name  Flags
      intent  
}
SourceFile: "TextToSpeechService.java"
NestMembers:
  android.speech.tts.TextToSpeechService$1  android.speech.tts.TextToSpeechService$AudioOutputParams  android.speech.tts.TextToSpeechService$AudioSpeechItem  android.speech.tts.TextToSpeechService$CallbackMap  android.speech.tts.TextToSpeechService$LoadLanguageItem  android.speech.tts.TextToSpeechService$LoadVoiceItem  android.speech.tts.TextToSpeechService$SilenceSpeechItem  android.speech.tts.TextToSpeechService$SpeechItem  android.speech.tts.TextToSpeechService$SynthHandler  android.speech.tts.TextToSpeechService$SynthHandler$1  android.speech.tts.TextToSpeechService$SynthHandler$2  android.speech.tts.TextToSpeechService$SynthHandler$3  android.speech.tts.TextToSpeechService$SynthThread  android.speech.tts.TextToSpeechService$SynthesisSpeechItem  android.speech.tts.TextToSpeechService$SynthesisToFileOutputStreamSpeechItem  android.speech.tts.TextToSpeechService$UtteranceProgressDispatcher  android.speech.tts.TextToSpeechService$UtteranceSpeechItem  android.speech.tts.TextToSpeechService$UtteranceSpeechItemWithParams
InnerClasses:
  public final Secure = android.provider.Settings$Secure of android.provider.Settings
  public abstract Stub = android.speech.tts.ITextToSpeechService$Stub of android.speech.tts.ITextToSpeechService
  android.speech.tts.TextToSpeechService$1
  AudioOutputParams = android.speech.tts.TextToSpeechService$AudioOutputParams of android.speech.tts.TextToSpeechService
  private AudioSpeechItem = android.speech.tts.TextToSpeechService$AudioSpeechItem of android.speech.tts.TextToSpeechService
  private CallbackMap = android.speech.tts.TextToSpeechService$CallbackMap of android.speech.tts.TextToSpeechService
  private LoadLanguageItem = android.speech.tts.TextToSpeechService$LoadLanguageItem of android.speech.tts.TextToSpeechService
  private LoadVoiceItem = android.speech.tts.TextToSpeechService$LoadVoiceItem of android.speech.tts.TextToSpeechService
  private SilenceSpeechItem = android.speech.tts.TextToSpeechService$SilenceSpeechItem of android.speech.tts.TextToSpeechService
  private abstract SpeechItem = android.speech.tts.TextToSpeechService$SpeechItem of android.speech.tts.TextToSpeechService
  private SynthHandler = android.speech.tts.TextToSpeechService$SynthHandler of android.speech.tts.TextToSpeechService
  private SynthThread = android.speech.tts.TextToSpeechService$SynthThread of android.speech.tts.TextToSpeechService
  SynthesisSpeechItem = android.speech.tts.TextToSpeechService$SynthesisSpeechItem of android.speech.tts.TextToSpeechService
  private SynthesisToFileOutputStreamSpeechItem = android.speech.tts.TextToSpeechService$SynthesisToFileOutputStreamSpeechItem of android.speech.tts.TextToSpeechService
  abstract UtteranceProgressDispatcher = android.speech.tts.TextToSpeechService$UtteranceProgressDispatcher of android.speech.tts.TextToSpeechService
  private abstract UtteranceSpeechItem = android.speech.tts.TextToSpeechService$UtteranceSpeechItem of android.speech.tts.TextToSpeechService
  private abstract UtteranceSpeechItemWithParams = android.speech.tts.TextToSpeechService$UtteranceSpeechItemWithParams of android.speech.tts.TextToSpeechService