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.dialogs.CompressAsDialog | ||||
| import com.simplemobiletools.filemanager.extensions.config | ||||
| import com.simplemobiletools.filemanager.extensions.isPathOnRoot | ||||
| import com.simplemobiletools.filemanager.extensions.isZipFile | ||||
| import com.stericson.RootTools.RootTools | ||||
| import kotlinx.android.synthetic.main.list_item.view.* | ||||
| import java.io.Closeable | ||||
| 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 | ||||
|         FilePickerDialog(activity, source, false, config.shouldShowHidden, true) { | ||||
|             if (activity.isPathOnRoot(source)) { | ||||
|                 copyRootItems(files, it) | ||||
|             } else { | ||||
|                 activity.copyMoveFilesTo(files, source, it, isCopyOperation, false) { | ||||
|                     listener?.refreshItems() | ||||
|                     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() { | ||||
|         if (selectedPositions.isEmpty()) | ||||
|   | ||||
| @@ -75,6 +75,7 @@ class RootHelpers { | ||||
|                 super.commandCompleted(id, exitcode) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         try { | ||||
|             RootTools.getShell(true).add(command) | ||||
|         } catch (e: Exception) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user