diff options
-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; } |