diff options
author | Khalid Zubair <kzubair@cyngn.com> | 2015-11-25 15:07:11 -0800 |
---|---|---|
committer | Khalid Zubair <kzubair@cyngn.com> | 2015-11-25 15:07:11 -0800 |
commit | e34c2cdda8dc96d0891a30535abbc699daca9495 (patch) | |
tree | 886c9594822ab83f67f76441d8adacd12da4dc29 | |
parent | e8eed2cee7709009963875ebdb09b57e3700a9d0 (diff) | |
download | android_packages_apps_Screencast-e34c2cdda8dc96d0891a30535abbc699daca9495.tar.gz android_packages_apps_Screencast-e34c2cdda8dc96d0891a30535abbc699daca9495.tar.bz2 android_packages_apps_Screencast-e34c2cdda8dc96d0891a30535abbc699daca9495.zip |
Ensure recording directory is writable before starting
Add a check and uncaught execption to ensure that the recording dir is
writable. This at least prevents a recording from appearing to start
when it immediately fails because of permission issues.
Change-Id: I70da1e9219ed95fd1b93e4cf179478d9579d55ae
-rw-r--r-- | src/org/cyanogenmod/screencast/RecordingDevice.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/org/cyanogenmod/screencast/RecordingDevice.java b/src/org/cyanogenmod/screencast/RecordingDevice.java index 1424666..4806890 100644 --- a/src/org/cyanogenmod/screencast/RecordingDevice.java +++ b/src/org/cyanogenmod/screencast/RecordingDevice.java @@ -210,7 +210,11 @@ class RecordingDevice extends EncoderDevice { @Override public void encode() throws Exception { - path.getParentFile().mkdirs(); + File recordingDir = path.getParentFile(); + recordingDir.mkdirs(); + if (!(recordingDir.exists() && recordingDir.canWrite())) { + throw new SecurityException("Cannot write to " + recordingDir); + } MediaMuxer muxer = new MediaMuxer(path.getAbsolutePath(), MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4); boolean muxerStarted = false; int trackIndex = -1; |