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

Commit b79370aa authored by Charles Chen's avatar Charles Chen
Browse files

Making sure that there are no calls made to the native TTS

layer if the utterance is in the process of being canceled.
parent aad0fcc9
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) {