Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b897aa9 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 7829 into donut

* changes:
  Making sure that there are no calls made to the native TTS layer if the utterance is in the process of being canceled.
parents 39846e69 b79370aa
Loading
Loading
Loading
Loading
+24 −18
Original line number Diff line number Diff line
@@ -551,16 +551,16 @@ public class TtsService extends Service implements OnCompletionListener {
                        return;
                    }
                    int streamType = DEFAULT_STREAM_TYPE;
                    if (speechItem.mParams != null){
                    String language = "";
                    String country = "";
                    String variant = "";
                    String speechRate = "";
                    if (speechItem.mParams != null){
                        for (int i = 0; i < speechItem.mParams.size() - 1; i = i + 2){
                            String param = speechItem.mParams.get(i);
                            if (param != null) {
                                if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_RATE)) {
                                    setSpeechRate("",
                                            Integer.parseInt(speechItem.mParams.get(i+1)));
                                    speechRate = speechItem.mParams.get(i+1);
                                } else if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_LANGUAGE)){
                                    language = speechItem.mParams.get(i+1);
                                } else if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_COUNTRY)){
@@ -579,12 +579,15 @@ public class TtsService extends Service implements OnCompletionListener {
                                }
                            }
                        }
                    }
                    // Only do the synthesis if it has not been killed by a subsequent utterance.
                    if (mKillList.get(speechItem) == null) {
                        if (language.length() > 0){
                            setLanguage("", language, country, variant);
                        }
                        if (speechRate.length() > 0){
                            setSpeechRate("", Integer.parseInt(speechRate));
                        }
                    // Only do the synthesis if it has not been killed by a subsequent utterance.
                    if (mKillList.get(speechItem) == null){
                        nativeSynth.speak(speechItem.mText, streamType);
                    }
                } catch (InterruptedException e) {
@@ -624,16 +627,16 @@ public class TtsService extends Service implements OnCompletionListener {
                        synth.start();
                        return;
                    }
                    if (speechItem.mParams != null){
                    String language = "";
                    String country = "";
                    String variant = "";
                    String speechRate = "";
                    if (speechItem.mParams != null){
                        for (int i = 0; i < speechItem.mParams.size() - 1; i = i + 2){
                            String param = speechItem.mParams.get(i);
                            if (param != null) {
                                if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_RATE)) {
                                    setSpeechRate("",
                                            Integer.parseInt(speechItem.mParams.get(i+1)));
                                    speechRate = speechItem.mParams.get(i+1);
                                } else if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_LANGUAGE)){
                                    language = speechItem.mParams.get(i+1);
                                } else if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_COUNTRY)){
@@ -645,12 +648,15 @@ public class TtsService extends Service implements OnCompletionListener {
                                }
                            }
                        }
                    }
                    // Only do the synthesis if it has not been killed by a subsequent utterance.
                    if (mKillList.get(speechItem) == null){
                        if (language.length() > 0){
                            setLanguage("", language, country, variant);
                        }
                        if (speechRate.length() > 0){
                            setSpeechRate("", Integer.parseInt(speechRate));
                        }
                    // Only do the synthesis if it has not been killed by a subsequent utterance.
                    if (mKillList.get(speechItem) == null){
                        nativeSynth.synthesizeToFile(speechItem.mText, speechItem.mFilename);
                    }
                } catch (InterruptedException e) {