mirror of
https://github.com/FossifyOrg/Camera.git
synced 2026-06-12 18:17:28 -04:00
add some checks to avoid saving to sd card without permission
This commit is contained in:
@@ -2,6 +2,7 @@ package com.simplemobiletools.camera
|
||||
|
||||
import android.net.Uri
|
||||
import android.os.AsyncTask
|
||||
import android.os.Environment
|
||||
import android.util.Log
|
||||
import com.simplemobiletools.camera.activities.MainActivity
|
||||
import com.simplemobiletools.camera.extensions.getFileDocument
|
||||
@@ -35,6 +36,14 @@ class PhotoProcessor(val activity: MainActivity, val uri: Uri?) : AsyncTask<Byte
|
||||
|
||||
val photoFile = File(path)
|
||||
if (activity.needsStupidWritePermissions(path)) {
|
||||
val config = Config.newInstance(activity)
|
||||
if (config.treeUri.isEmpty()) {
|
||||
activity.runOnUiThread {
|
||||
Utils.showToast(activity, R.string.save_error_internal_storage)
|
||||
}
|
||||
config.savePhotosFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString()
|
||||
return ""
|
||||
}
|
||||
var document = activity.getFileDocument(path)
|
||||
document = document.createFile("", path.substring(path.lastIndexOf('/') + 1))
|
||||
fos = activity.contentResolver.openOutputStream(document.uri)
|
||||
|
||||
@@ -10,6 +10,7 @@ import android.media.MediaPlayer;
|
||||
import android.media.MediaRecorder;
|
||||
import android.media.MediaScannerConnection;
|
||||
import android.net.Uri;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.support.v4.provider.DocumentFile;
|
||||
@@ -664,6 +665,13 @@ public class Preview extends ViewGroup
|
||||
mRecorder.setProfile(cpHigh);
|
||||
|
||||
if (Utils.Companion.needsStupidWritePermissions(getContext(), mCurrVideoPath)) {
|
||||
final Config config = Config.newInstance(getContext());
|
||||
if (config.getTreeUri().isEmpty()) {
|
||||
Utils.Companion.showToast(mContext, R.string.save_error_internal_storage);
|
||||
config.setSavePhotosFolder(Environment.getExternalStorageDirectory().toString());
|
||||
releaseCamera();
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
DocumentFile document = Utils.Companion.getFileDocument(getContext(), mCurrVideoPath);
|
||||
document = document.createFile("", mCurrVideoPath.substring(mCurrVideoPath.lastIndexOf('/') + 1));
|
||||
|
||||
Reference in New Issue
Block a user