mirror of
https://github.com/SimpleMobileTools/Simple-Camera.git
synced 2025-02-08 15:38:50 +01:00
get use of some filepicker extensions
This commit is contained in:
parent
60d46d2f56
commit
5e93e4225a
@ -5,8 +5,8 @@ import android.os.AsyncTask
|
|||||||
import android.os.Environment
|
import android.os.Environment
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import com.simplemobiletools.camera.activities.MainActivity
|
import com.simplemobiletools.camera.activities.MainActivity
|
||||||
import com.simplemobiletools.camera.extensions.getFileDocument
|
import com.simplemobiletools.filepicker.extensions.getFileDocument
|
||||||
import com.simplemobiletools.camera.extensions.needsStupidWritePermissions
|
import com.simplemobiletools.filepicker.extensions.needsStupidWritePermissions
|
||||||
import java.io.*
|
import java.io.*
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ class PhotoProcessor(val activity: MainActivity, val uri: Uri?) : AsyncTask<Byte
|
|||||||
config.savePhotosFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString()
|
config.savePhotosFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString()
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
var document = activity.getFileDocument(path)
|
var document = activity.getFileDocument(path, config.treeUri)
|
||||||
document = document.createFile("", path.substring(path.lastIndexOf('/') + 1))
|
document = document.createFile("", path.substring(path.lastIndexOf('/') + 1))
|
||||||
fos = activity.contentResolver.openOutputStream(document.uri)
|
fos = activity.contentResolver.openOutputStream(document.uri)
|
||||||
} else {
|
} else {
|
||||||
|
@ -673,7 +673,7 @@ public class Preview extends ViewGroup
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
DocumentFile document = Utils.Companion.getFileDocument(getContext(), mCurrVideoPath);
|
DocumentFile document = Utils.Companion.getFileDocument(getContext(), mCurrVideoPath, config.getTreeUri());
|
||||||
document = document.createFile("", mCurrVideoPath.substring(mCurrVideoPath.lastIndexOf('/') + 1));
|
document = document.createFile("", mCurrVideoPath.substring(mCurrVideoPath.lastIndexOf('/') + 1));
|
||||||
final Uri uri = document.getUri();
|
final Uri uri = document.getUri();
|
||||||
final ParcelFileDescriptor fileDescriptor = getContext().getContentResolver().openFileDescriptor(uri, "rw");
|
final ParcelFileDescriptor fileDescriptor = getContext().getContentResolver().openFileDescriptor(uri, "rw");
|
||||||
|
@ -8,10 +8,10 @@ import android.content.res.Resources
|
|||||||
import android.graphics.Point
|
import android.graphics.Point
|
||||||
import android.hardware.Camera
|
import android.hardware.Camera
|
||||||
import android.support.v4.content.ContextCompat
|
import android.support.v4.content.ContextCompat
|
||||||
import android.widget.Toast
|
import com.simplemobiletools.filepicker.extensions.getFileDocument
|
||||||
import com.simplemobiletools.camera.extensions.getFileDocument
|
import com.simplemobiletools.filepicker.extensions.hasStoragePermission
|
||||||
import com.simplemobiletools.camera.extensions.isKitkat
|
import com.simplemobiletools.filepicker.extensions.needsStupidWritePermissions
|
||||||
import com.simplemobiletools.camera.extensions.isPathOnSD
|
import com.simplemobiletools.filepicker.extensions.toast
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@ -24,9 +24,7 @@ class Utils {
|
|||||||
return info
|
return info
|
||||||
}
|
}
|
||||||
|
|
||||||
fun showToast(context: Context, resId: Int) {
|
fun showToast(context: Context, resId: Int) = context.toast(resId)
|
||||||
Toast.makeText(context, context.resources.getString(resId), Toast.LENGTH_SHORT).show()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun hasFlash(camera: Camera?): Boolean {
|
fun hasFlash(camera: Camera?): Boolean {
|
||||||
if (camera == null) {
|
if (camera == null) {
|
||||||
@ -58,10 +56,10 @@ class Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val timestamp = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
|
val timestamp = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
|
||||||
if (isPhoto) {
|
return if (isPhoto) {
|
||||||
return mediaStorageDir.path + File.separator + "IMG_" + timestamp + ".jpg"
|
mediaStorageDir.path + File.separator + "IMG_" + timestamp + ".jpg"
|
||||||
} else {
|
} else {
|
||||||
return mediaStorageDir.path + File.separator + "VID_" + timestamp + ".mp4"
|
mediaStorageDir.path + File.separator + "VID_" + timestamp + ".mp4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,11 +89,10 @@ class Utils {
|
|||||||
|
|
||||||
fun getNavBarHeight(res: Resources): Int {
|
fun getNavBarHeight(res: Resources): Int {
|
||||||
val id = res.getIdentifier("navigation_bar_height", "dimen", "android")
|
val id = res.getIdentifier("navigation_bar_height", "dimen", "android")
|
||||||
if (id > 0 && hasNavBar(res)) {
|
return if (id > 0 && hasNavBar(res)) {
|
||||||
return res.getDimensionPixelSize(id)
|
res.getDimensionPixelSize(id)
|
||||||
}
|
} else
|
||||||
|
0
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun hasNavBar(res: Resources): Boolean {
|
fun hasNavBar(res: Resources): Boolean {
|
||||||
@ -103,20 +100,14 @@ class Utils {
|
|||||||
return id > 0 && res.getBoolean(id)
|
return id > 0 && res.getBoolean(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun hasCameraPermission(cxt: Context): Boolean {
|
fun hasCameraPermission(context: Context) = ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED
|
||||||
return ContextCompat.checkSelfPermission(cxt, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED
|
|
||||||
}
|
|
||||||
|
|
||||||
fun hasStoragePermission(cxt: Context): Boolean {
|
fun hasStoragePermission(context: Context) = context.hasStoragePermission()
|
||||||
return ContextCompat.checkSelfPermission(cxt, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
|
|
||||||
}
|
|
||||||
|
|
||||||
fun hasAudioPermission(cxt: Context): Boolean {
|
fun hasAudioPermission(cxt: Context) = ContextCompat.checkSelfPermission(cxt, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
|
||||||
return ContextCompat.checkSelfPermission(cxt, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
|
|
||||||
}
|
|
||||||
|
|
||||||
fun needsStupidWritePermissions(context: Context, path: String) = context.isPathOnSD(path) && context.isKitkat()
|
fun needsStupidWritePermissions(context: Context, path: String) = context.needsStupidWritePermissions(path)
|
||||||
|
|
||||||
fun getFileDocument(context: Context, path: String) = context.getFileDocument(path)
|
fun getFileDocument(context: Context, path: String, treeUri: String) = context.getFileDocument(path, treeUri)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,10 +13,10 @@ import android.widget.AdapterView
|
|||||||
import com.simplemobiletools.camera.Constants
|
import com.simplemobiletools.camera.Constants
|
||||||
import com.simplemobiletools.camera.R
|
import com.simplemobiletools.camera.R
|
||||||
import com.simplemobiletools.camera.dialogs.WritePermissionDialog
|
import com.simplemobiletools.camera.dialogs.WritePermissionDialog
|
||||||
import com.simplemobiletools.camera.extensions.needsStupidWritePermissions
|
|
||||||
import com.simplemobiletools.filepicker.dialogs.FilePickerDialog
|
import com.simplemobiletools.filepicker.dialogs.FilePickerDialog
|
||||||
import com.simplemobiletools.filepicker.extensions.getBasePath
|
import com.simplemobiletools.filepicker.extensions.getBasePath
|
||||||
import com.simplemobiletools.filepicker.extensions.getHumanReadablePath
|
import com.simplemobiletools.filepicker.extensions.getHumanReadablePath
|
||||||
|
import com.simplemobiletools.filepicker.extensions.needsStupidWritePermissions
|
||||||
import kotlinx.android.synthetic.main.activity_settings.*
|
import kotlinx.android.synthetic.main.activity_settings.*
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@ -100,9 +100,7 @@ class SettingsActivity : SimpleActivity() {
|
|||||||
path
|
path
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getStorageName(basePath: String): String {
|
private fun getStorageName(basePath: String) = getHumanReadablePath(basePath) + "/"
|
||||||
return getHumanReadablePath(basePath) + "/"
|
|
||||||
}
|
|
||||||
|
|
||||||
@TargetApi(Build.VERSION_CODES.KITKAT)
|
@TargetApi(Build.VERSION_CODES.KITKAT)
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
package com.simplemobiletools.camera.extensions
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.net.Uri
|
|
||||||
import android.os.Build
|
|
||||||
import android.support.v4.provider.DocumentFile
|
|
||||||
import com.simplemobiletools.camera.Config
|
|
||||||
import com.simplemobiletools.filepicker.extensions.getSDCardPath
|
|
||||||
|
|
||||||
fun Context.needsStupidWritePermissions(path: String) = isPathOnSD(path) && isKitkat() && !getSDCardPath().isEmpty()
|
|
||||||
|
|
||||||
fun Context.isPathOnSD(path: String) = path.startsWith(getSDCardPath())
|
|
||||||
|
|
||||||
fun Context.isKitkat() = Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT
|
|
||||||
|
|
||||||
fun Context.getFileDocument(path: String): DocumentFile {
|
|
||||||
val relativePath = path.substring(getSDCardPath().length + 1)
|
|
||||||
var document = DocumentFile.fromTreeUri(this, Uri.parse(Config.newInstance(this).treeUri))
|
|
||||||
val parts = relativePath.split("/")
|
|
||||||
for (part in parts) {
|
|
||||||
val currDocument = document.findFile(part)
|
|
||||||
if (currDocument != null)
|
|
||||||
document = currDocument
|
|
||||||
}
|
|
||||||
return document
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user