Merge "Widen permissions on synthesized files." into ics-mr1
This commit is contained in:
committed by
Android (Google) Code Review
commit
7a2f6f38fe
@@ -16,10 +16,10 @@
|
||||
package android.speech.tts;
|
||||
|
||||
import android.media.AudioFormat;
|
||||
import android.os.FileUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.RandomAccessFile;
|
||||
import java.nio.ByteBuffer;
|
||||
@@ -63,7 +63,7 @@ class FileSynthesisCallback extends AbstractSynthesisCallback {
|
||||
* Must be called while holding the monitor on {@link #mStateLock}.
|
||||
*/
|
||||
private void cleanUp() {
|
||||
closeFile();
|
||||
closeFileAndWidenPermissions();
|
||||
if (mFile != null) {
|
||||
mFileName.delete();
|
||||
}
|
||||
@@ -72,7 +72,7 @@ class FileSynthesisCallback extends AbstractSynthesisCallback {
|
||||
/**
|
||||
* Must be called while holding the monitor on {@link #mStateLock}.
|
||||
*/
|
||||
private void closeFile() {
|
||||
private void closeFileAndWidenPermissions() {
|
||||
try {
|
||||
if (mFile != null) {
|
||||
mFile.close();
|
||||
@@ -81,6 +81,18 @@ class FileSynthesisCallback extends AbstractSynthesisCallback {
|
||||
} catch (IOException ex) {
|
||||
Log.e(TAG, "Failed to close " + mFileName + ": " + ex);
|
||||
}
|
||||
|
||||
try {
|
||||
// Make the written file readable and writeable by everyone.
|
||||
// This allows the app that requested synthesis to read the file.
|
||||
//
|
||||
// Note that the directory this file was written must have already
|
||||
// been world writeable in order it to have been
|
||||
// written to in the first place.
|
||||
FileUtils.setPermissions(mFileName.getAbsolutePath(), 0666, -1, -1); //-rw-rw-rw
|
||||
} catch (SecurityException se) {
|
||||
Log.e(TAG, "Security exception setting rw permissions on : " + mFileName);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -168,7 +180,7 @@ class FileSynthesisCallback extends AbstractSynthesisCallback {
|
||||
int dataLength = (int) (mFile.length() - WAV_HEADER_LENGTH);
|
||||
mFile.write(
|
||||
makeWavHeader(mSampleRateInHz, mAudioFormat, mChannelCount, dataLength));
|
||||
closeFile();
|
||||
closeFileAndWidenPermissions();
|
||||
mDone = true;
|
||||
return TextToSpeech.SUCCESS;
|
||||
} catch (IOException ex) {
|
||||
|
||||
Reference in New Issue
Block a user