summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Taylor <tomtaylor@google.com>2013-05-31 10:07:56 -0700
committerTom Taylor <tomtaylor@google.com>2013-05-31 10:07:56 -0700
commitaabb0893321d3c557abbbb06cafd6974f2ff3c21 (patch)
tree262056be1875d9bddb29c5d80e0cbba7831e3cd9
parent7189e68cf595a979d8b088c860fdd9d4878d582e (diff)
downloadMms-android-4.3_r0.9.1.tar.gz
Unable to playback the captured video in Messaging app, displays "Can't play this video"android-4.3_r2android-4.3_r1.1android-4.3_r1android-4.3_r0.9.1android-4.3_r0.9jb-mr2-release
Bug 9193742 The TempFileProvider's getTempStoreFd needs to respect the file mode. Before this change, the file was always truncated when opened. When the user tried to playback the freshly captured video in the video camera, the video player would go through the provider to open the file to playback. However, the file was truncated so nothing could be played back. With this change, the file isn't truncated when opened for just reading. Change-Id: Ifcfe8d586c345271186856c61d5f6e4fa32d130e
-rw-r--r--src/com/android/mms/TempFileProvider.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/com/android/mms/TempFileProvider.java b/src/com/android/mms/TempFileProvider.java
index 4e73a6a1..016c55d6 100644
--- a/src/com/android/mms/TempFileProvider.java
+++ b/src/com/android/mms/TempFileProvider.java
@@ -60,7 +60,7 @@ public class TempFileProvider extends ContentProvider {
return 0;
}
- private ParcelFileDescriptor getTempStoreFd() {
+ private ParcelFileDescriptor getTempStoreFd(String mode) {
String fileName = getScrapPath(getContext());
ParcelFileDescriptor pfd = null;
@@ -75,10 +75,15 @@ public class TempFileProvider extends ContentProvider {
return null;
}
- pfd = ParcelFileDescriptor.open(file,
- ParcelFileDescriptor.MODE_READ_WRITE
- | android.os.ParcelFileDescriptor.MODE_CREATE |
- ParcelFileDescriptor.MODE_TRUNCATE);
+ int modeFlags;
+ if (mode.equals("r")) {
+ modeFlags = ParcelFileDescriptor.MODE_READ_ONLY;
+ } else {
+ modeFlags = ParcelFileDescriptor.MODE_READ_WRITE
+ | ParcelFileDescriptor.MODE_CREATE
+ | ParcelFileDescriptor.MODE_TRUNCATE;
+ }
+ pfd = ParcelFileDescriptor.open(file, modeFlags);
} catch (Exception ex) {
Log.e(TAG, "getTempStoreFd: error creating pfd for " + fileName, ex);
}
@@ -105,7 +110,7 @@ public class TempFileProvider extends ContentProvider {
switch (match) {
case MMS_SCRAP_SPACE:
- fd = getTempStoreFd();
+ fd = getTempStoreFd(mode);
break;
}