diff options
author | Tom Taylor <tomtaylor@google.com> | 2013-05-31 10:07:56 -0700 |
---|---|---|
committer | Tom Taylor <tomtaylor@google.com> | 2013-05-31 10:07:56 -0700 |
commit | aabb0893321d3c557abbbb06cafd6974f2ff3c21 (patch) | |
tree | 262056be1875d9bddb29c5d80e0cbba7831e3cd9 | |
parent | 7189e68cf595a979d8b088c860fdd9d4878d582e (diff) | |
download | Mms-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.java | 17 |
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; } |