mirror of
https://github.com/SimpleMobileTools/Simple-Camera.git
synced 2025-06-27 09:02:59 +02:00
fix saving photos on SD card
This commit is contained in:
@ -12,8 +12,7 @@ import android.view.View
|
||||
import android.widget.AdapterView
|
||||
import com.simplemobiletools.camera.R
|
||||
import com.simplemobiletools.camera.dialogs.WritePermissionDialog
|
||||
import com.simplemobiletools.camera.extensions.isKitkat
|
||||
import com.simplemobiletools.camera.extensions.isPathOnSD
|
||||
import com.simplemobiletools.camera.extensions.needsStupidWritePermissions
|
||||
import com.simplemobiletools.filepicker.dialogs.FilePickerDialog
|
||||
import kotlinx.android.synthetic.main.activity_settings.*
|
||||
import java.io.File
|
||||
@ -68,7 +67,7 @@ class SettingsActivity : SimpleActivity() {
|
||||
|
||||
override fun onSuccess(pickedPath: String) {
|
||||
mCurrPath = pickedPath.trimEnd('/')
|
||||
if (!File(pickedPath).canWrite() && isPathOnSD(pickedPath) && isKitkat() && mConfig.treeUri.isEmpty()) {
|
||||
if (!File(pickedPath).canWrite() && needsStupidWritePermissions(pickedPath) && mConfig.treeUri.isEmpty()) {
|
||||
WritePermissionDialog(this@SettingsActivity, object : WritePermissionDialog.OnWritePermissionListener {
|
||||
override fun onCancelled() {
|
||||
mCurrPath = mConfig.savePhotosFolder
|
||||
|
@ -15,7 +15,7 @@ class WritePermissionDialog(val context: Context, val listener: OnWritePermissio
|
||||
.setTitle(context.resources.getString(R.string.confirm_storage_access_title))
|
||||
.setView(view)
|
||||
.setPositiveButton(R.string.ok, { dialog, which -> dialogConfirmed() })
|
||||
.setOnCancelListener { listener?.onCancelled() }
|
||||
.setOnCancelListener { listener.onCancelled() }
|
||||
.create()
|
||||
|
||||
dialog?.show()
|
||||
|
@ -1,9 +1,26 @@
|
||||
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()
|
||||
|
||||
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
|
||||
}
|
||||
|
Reference in New Issue
Block a user