diff --git a/app/build.gradle b/app/build.gradle index 3ac92ba5..b3b6a0fd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,6 +40,8 @@ dependencies { compile 'com.simplemobiletools:commons:2.27.7' compile 'com.bignerdranch.android:recyclerview-multiselect:0.2' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + + compile files('../libs/RootTools.jar') } buildscript { diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/helpers/RootHelpers.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/helpers/RootHelpers.kt new file mode 100644 index 00000000..3131a938 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/helpers/RootHelpers.kt @@ -0,0 +1,33 @@ +package com.simplemobiletools.filemanager.helpers + +import com.simplemobiletools.commons.models.FileDirItem +import com.stericson.RootShell.execution.Command +import com.stericson.RootTools.RootTools + +class RootHelpers { + fun getFiles(path: String, callback: (fileDirItems: ArrayList) -> Unit) { + val command = object : Command(0, "ls -la $path | awk '{print \$1,\$NF}'") { + override fun commandOutput(id: Int, line: String) { + super.commandOutput(id, line) + val parts = line.split(" ") + + val files = ArrayList() + val filename = parts[1] + val filePath = "${path.trimEnd('/')}/$filename" + val isDirectory = parts[0].startsWith("d") + val fileDirItem = FileDirItem(filePath, filename, isDirectory, 0, 0) + files.add(fileDirItem) + callback(files) + } + + override fun commandTerminated(id: Int, reason: String?) { + super.commandTerminated(id, reason) + } + + override fun commandCompleted(id: Int, exitcode: Int) { + super.commandCompleted(id, exitcode) + } + } + RootTools.getShell(true).add(command) + } +} diff --git a/libs/RootTools.jar b/libs/RootTools.jar new file mode 100644 index 00000000..794fcde5 Binary files /dev/null and b/libs/RootTools.jar differ