@@ -12,6 +12,7 @@ import com.bignerdranch.android.multiselector.SwappingHolder
1212import com.bumptech.glide.Glide
1313import com.simplemobiletools.commons.asynctasks.CopyMoveTask
1414import com.simplemobiletools.commons.dialogs.ConfirmationDialog
15+ import com.simplemobiletools.commons.dialogs.FilePickerDialog
1516import com.simplemobiletools.commons.dialogs.PropertiesDialog
1617import com.simplemobiletools.commons.dialogs.RenameItemDialog
1718import com.simplemobiletools.commons.extensions.formatSize
@@ -73,7 +74,8 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
7374 R .id.cab_rename -> displayRenameDialog()
7475 R .id.cab_properties -> showProperties()
7576 R .id.cab_share -> shareFiles()
76- R .id.cab_copy_move -> displayCopyDialog()
77+ R .id.cab_copy_to -> copyMoveTo(true )
78+ R .id.cab_move_to -> copyMoveTo(false )
7779 R .id.cab_delete -> askConfirmDelete()
7880 else -> return false
7981 }
@@ -162,6 +164,22 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
162164 })
163165 }
164166
167+ private fun copyMoveTo (isCopyOperation : Boolean ) {
168+ val files = ArrayList <File >()
169+ val positions = multiSelector.selectedPositions
170+ positions.forEach { files.add(File (mItems[it].path)) }
171+
172+ val source = if (files[0 ].isFile) files[0 ].parent else files[0 ].absolutePath
173+ FilePickerDialog (activity, source, false , config.showHidden, true ) {
174+ activity.copyMoveFilesTo(files, source, it, isCopyOperation, false ) {
175+ if (! isCopyOperation) {
176+ listener?.refreshItems()
177+ }
178+ actMode?.finish()
179+ }
180+ }
181+ }
182+
165183 private fun askConfirmDelete () {
166184 ConfirmationDialog (activity) {
167185 actMode?.finish()
0 commit comments