mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-06-05 22:09:15 +02:00
add some handling for copying root items
This commit is contained in:
@ -25,7 +25,9 @@ import com.simplemobiletools.filemanager.R
|
|||||||
import com.simplemobiletools.filemanager.activities.SimpleActivity
|
import com.simplemobiletools.filemanager.activities.SimpleActivity
|
||||||
import com.simplemobiletools.filemanager.dialogs.CompressAsDialog
|
import com.simplemobiletools.filemanager.dialogs.CompressAsDialog
|
||||||
import com.simplemobiletools.filemanager.extensions.config
|
import com.simplemobiletools.filemanager.extensions.config
|
||||||
|
import com.simplemobiletools.filemanager.extensions.isPathOnRoot
|
||||||
import com.simplemobiletools.filemanager.extensions.isZipFile
|
import com.simplemobiletools.filemanager.extensions.isZipFile
|
||||||
|
import com.stericson.RootTools.RootTools
|
||||||
import kotlinx.android.synthetic.main.list_item.view.*
|
import kotlinx.android.synthetic.main.list_item.view.*
|
||||||
import java.io.Closeable
|
import java.io.Closeable
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@ -207,12 +209,39 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
|
|||||||
|
|
||||||
val source = if (files[0].isFile) files[0].parent else files[0].absolutePath
|
val source = if (files[0].isFile) files[0].parent else files[0].absolutePath
|
||||||
FilePickerDialog(activity, source, false, config.shouldShowHidden, true) {
|
FilePickerDialog(activity, source, false, config.shouldShowHidden, true) {
|
||||||
|
if (activity.isPathOnRoot(source)) {
|
||||||
|
copyRootItems(files, it)
|
||||||
|
} else {
|
||||||
activity.copyMoveFilesTo(files, source, it, isCopyOperation, false) {
|
activity.copyMoveFilesTo(files, source, it, isCopyOperation, false) {
|
||||||
listener?.refreshItems()
|
listener?.refreshItems()
|
||||||
actMode?.finish()
|
actMode?.finish()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun copyRootItems(files: ArrayList<File>, destinationPath: String) {
|
||||||
|
activity.toast(R.string.copying)
|
||||||
|
Thread({
|
||||||
|
var fileCnt = files.count()
|
||||||
|
files.forEach {
|
||||||
|
if (RootTools.copyFile(it.absolutePath, destinationPath, false, true)) {
|
||||||
|
fileCnt--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
when {
|
||||||
|
fileCnt <= 0 -> activity.toast(R.string.copying_success)
|
||||||
|
fileCnt == files.count() -> activity.toast(R.string.copy_failed)
|
||||||
|
else -> activity.toast(R.string.copying_success_partial)
|
||||||
|
}
|
||||||
|
|
||||||
|
activity.runOnUiThread {
|
||||||
|
listener?.refreshItems()
|
||||||
|
actMode?.finish()
|
||||||
|
}
|
||||||
|
}).start()
|
||||||
|
}
|
||||||
|
|
||||||
private fun compressSelection() {
|
private fun compressSelection() {
|
||||||
if (selectedPositions.isEmpty())
|
if (selectedPositions.isEmpty())
|
||||||
|
@ -75,6 +75,7 @@ class RootHelpers {
|
|||||||
super.commandCompleted(id, exitcode)
|
super.commandCompleted(id, exitcode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
RootTools.getShell(true).add(command)
|
RootTools.getShell(true).add(command)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
Reference in New Issue
Block a user