Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 980eec06 authored by tibbi's avatar tibbi
Browse files

properly allow selecting the OTG root folder

parent f26d1f5e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ buildscript {
        propMinSdkVersion = 16
        propTargetSdkVersion = propCompileSdkVersion
        propVersionCode = 1
        propVersionName = '3.11.41'
        propVersionName = '3.11.42'
        kotlin_version = '1.2.21'
        support_libs = '27.0.2'
    }
+1 −1
Original line number Diff line number Diff line
@@ -184,7 +184,7 @@ open class BaseSimpleActivity : AppCompatActivity() {
        }

        val destinationFolder = File(destination)
        if (!destinationFolder.exists() && getDocumentFile(destination) == null) {
        if (!destinationFolder.exists() && getSomeDocumentFile(destination) == null) {
            toast(R.string.invalid_destination)
            return
        }
+1 −1
Original line number Diff line number Diff line
@@ -219,7 +219,7 @@ class CopyMoveTask(val activity: BaseSimpleActivity, val copyOnly: Boolean = fal
        var out: OutputStream? = null
        try {
            if (!mDocuments.containsKey(directory) && activity.needsStupidWritePermissions(destination.path)) {
                mDocuments[directory] = activity.getDocumentFile(directory)
                mDocuments[directory] = activity.getSomeDocumentFile(directory)
            }

            out = activity.getFileOutputStreamSync(directory, source.path.getMimeType(), mDocuments[directory])
+6 −4
Original line number Diff line number Diff line
@@ -150,16 +150,18 @@ class FilePickerDialog(val activity: BaseSimpleActivity,
    }

    private fun verifyPath() {
        val file = File(currPath)
        if (currPath.startsWith(OTG_PATH)) {
            val fileDocument = activity.getDocumentFile(currPath) ?: return
            val fileDocument = activity.getSomeDocumentFile(currPath) ?: return
            if ((pickFile && fileDocument.isFile) || (!pickFile && fileDocument.isDirectory)) {
                sendSuccess(fileDocument.uri.toString())
            }
        } else if ((pickFile && file.isFile) || (!pickFile && file.isDirectory)) {
        } else {
            val file = File(currPath)
            if ((pickFile && file.isFile) || (!pickFile && file.isDirectory)) {
                sendSuccess(currPath)
            }
        }
    }

    private fun sendSuccess(path: String) {
        callback(if (path.length == 1) path else path.trimEnd('/'))
+1 −1
Original line number Diff line number Diff line
@@ -177,7 +177,7 @@ fun Context.getDocumentFile(path: String): DocumentFile? {
    }

    var document = DocumentFile.fromTreeUri(applicationContext, Uri.parse(if (isOTG) baseConfig.OTGTreeUri else baseConfig.treeUri))
    val parts = relativePath.split("/")
    val parts = relativePath.split("/").filter { it.isNotEmpty() }
    for (part in parts) {
        document = document?.findFile(part)
    }