diff --git a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java index 843cb155d..7bb2e943d 100644 --- a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java @@ -14,9 +14,11 @@ import android.media.MediaMetadataRetriever; import android.net.Uri; import android.os.Build; import android.os.Environment; +import android.os.FileObserver; import android.os.ParcelFileDescriptor; import android.provider.MediaStore; import android.provider.OpenableColumns; +import android.support.v4.content.FileProvider; import android.system.Os; import android.system.StructStat; import android.util.Base64; @@ -436,10 +438,9 @@ public class FileBackend { pathBuilder.append("Camera"); pathBuilder.append('/'); pathBuilder.append("IMG_" + this.imageDateFormat.format(new Date()) + ".jpg"); - Uri uri = Uri.parse("file://" + pathBuilder.toString()); - File file = new File(uri.toString()); + File file = new File(pathBuilder.toString()); file.getParentFile().mkdirs(); - return uri; + return FileProvider.getUriForFile(mXmppConnectionService,"eu.siacs.conversations.files",file); } public Avatar getPepAvatar(Uri image, int size, Bitmap.CompressFormat format) { diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index 6ee7f7375..8bb1a7f77 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -445,6 +445,7 @@ public class ConversationActivity extends XmppActivity break; case ATTACHMENT_CHOICE_TAKE_PHOTO: Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri(); + intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); mPendingImageUris.clear();