summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhalid Zubair <kzubair@cyngn.com>2015-11-25 15:07:11 -0800
committerKhalid Zubair <kzubair@cyngn.com>2015-11-25 15:07:11 -0800
commite34c2cdda8dc96d0891a30535abbc699daca9495 (patch)
tree886c9594822ab83f67f76441d8adacd12da4dc29
parente8eed2cee7709009963875ebdb09b57e3700a9d0 (diff)
downloadandroid_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.java6
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;