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

Commit f4743a86 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi Committed by Android (Google) Code Review
Browse files

Merge "Fix bug 2481825 When TTS is synthesizing to a file, return an error if...

Merge "Fix bug 2481825 When TTS is synthesizing to a file, return an error if the file cannot be created."
parents 6509662a b21651c1
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1211,9 +1211,8 @@ public class TextToSpeech {
                        mCachedParams[Engine.PARAM_POSITION_ENGINE + 1] = extra;
                    }
                }
                if (mITts.synthesizeToFile(mPackageName, text, mCachedParams, filename)){
                    result = SUCCESS;
                }
                result = mITts.synthesizeToFile(mPackageName, text, mCachedParams, filename) ?
                        SUCCESS : ERROR;
            } catch (RemoteException e) {
                // TTS died; restart it.
                Log.e("TextToSpeech.java - synthesizeToFile", "RemoteException");
+18 −1
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.speech.tts.TextToSpeech;
import android.util.Log;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -1112,7 +1113,7 @@ public class TtsService extends Service implements OnCompletionListener {
     * @param filename
     *            The string that gives the full output filename; it should be
     *            something like "/sdcard/myappsounds/mysound.wav".
     * @return A boolean that indicates if the synthesis succeeded
     * @return A boolean that indicates if the synthesis can be started
     */
    private boolean synthesizeToFile(String callingApp, String text, ArrayList<String> params,
            String filename) {
@@ -1125,6 +1126,22 @@ public class TtsService extends Service implements OnCompletionListener {
        if (text.length() >= MAX_SPEECH_ITEM_CHAR_LENGTH){
            return false;
        }
        // Check that the output file can be created
        try {
            File tempFile = new File(filename);
            if (tempFile.exists()) {
                Log.v("TtsService", "File " + filename + " exists, deleting.");
                tempFile.delete();
            }
            if (!tempFile.createNewFile()) {
                Log.e("TtsService", "Unable to synthesize to file: can't create " + filename);
                return false;
            }
            tempFile.delete();
        } catch (IOException e) {
            Log.e("TtsService", "Can't create " + filename + " due to exception " + e);
            return false;
        }
        mSpeechQueue.add(new SpeechItem(callingApp, text, params, SpeechItem.TEXT_TO_FILE, filename));
        if (!mIsSpeaking) {
            processSpeechQueue();