summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/data
diff options
context:
space:
mode:
authorAshok Raj Deenadayalan <adeena@codeaurora.org>2013-11-28 12:47:01 +0530
committerAshok Raj Deenadayalan <adeena@codeaurora.org>2013-11-28 12:47:01 +0530
commit7539f9e5bc6386e0812becfd8c4763b24b0f1ee6 (patch)
tree911b5fb8d23d8c29906d987a22ef7430adf983e9 /src/com/android/camera/data
parent1c7734057201ffd1b6d165d9e24793ef3d213043 (diff)
downloadandroid_packages_apps_Snap-7539f9e5bc6386e0812becfd8c4763b24b0f1ee6.tar.gz
android_packages_apps_Snap-7539f9e5bc6386e0812becfd8c4763b24b0f1ee6.tar.bz2
android_packages_apps_Snap-7539f9e5bc6386e0812becfd8c4763b24b0f1ee6.zip
Camera: Check file existence before update
Recorded file must exist for updation. Check if the file exists before you update to avoid crash. Treat file non-existence as a error case and proceed further. Change-Id: I31954d51f0c34ef3d0ee25cb30d243804bc93fc3 CRs-Fixed: 573040
Diffstat (limited to 'src/com/android/camera/data')
-rw-r--r--src/com/android/camera/data/CameraDataAdapter.java14
-rw-r--r--src/com/android/camera/data/LocalMediaData.java8
2 files changed, 17 insertions, 5 deletions
diff --git a/src/com/android/camera/data/CameraDataAdapter.java b/src/com/android/camera/data/CameraDataAdapter.java
index f59b2099c..24a1ff75c 100644
--- a/src/com/android/camera/data/CameraDataAdapter.java
+++ b/src/com/android/camera/data/CameraDataAdapter.java
@@ -141,12 +141,16 @@ public class CameraDataAdapter implements LocalDataAdapter {
}
int pos = findDataByContentUri(uri);
LocalMediaData.VideoData newData = LocalMediaData.VideoData.buildFromCursor(c);
- if (pos != -1) {
- // A duplicate one, just do a substitute.
- updateData(pos, newData);
+ if (newData != null) {
+ if (pos != -1) {
+ // A duplicate one, just do a substitute.
+ updateData(pos, newData);
+ } else {
+ // A new data.
+ insertData(newData);
+ }
} else {
- // A new data.
- insertData(newData);
+ Log.e(TAG, "video data not found");
}
}
diff --git a/src/com/android/camera/data/LocalMediaData.java b/src/com/android/camera/data/LocalMediaData.java
index 1f9c725d0..bb451fa0f 100644
--- a/src/com/android/camera/data/LocalMediaData.java
+++ b/src/com/android/camera/data/LocalMediaData.java
@@ -636,6 +636,14 @@ public abstract class LocalMediaData implements LocalData {
int height = c.getInt(COL_HEIGHT);
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
String rotation = null;
+
+ File origFile = new File(path);
+ if (!origFile.exists() || origFile.length() <= 0) {
+ Log.e(TAG, "Invalid video file");
+ retriever.release();
+ return null;
+ }
+
try {
retriever.setDataSource(path);
} catch (RuntimeException ex) {