Skip to content

Commit 9a555cc

Browse files
committed
add copy/move
1 parent 9ea00c3 commit 9a555cc

File tree

3 files changed

+29
-49
lines changed

3 files changed

+29
-49
lines changed

app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy
1313
import com.simplemobiletools.filemanager.Config
1414
import com.simplemobiletools.filemanager.R
1515
import com.simplemobiletools.filemanager.activities.SimpleActivity
16+
import com.simplemobiletools.filemanager.dialogs.CopyDialog
1617
import com.simplemobiletools.filemanager.dialogs.RenameItemDialog
18+
import com.simplemobiletools.filepicker.asynctasks.CopyMoveTask
1719
import com.simplemobiletools.filepicker.dialogs.ConfirmationDialog
1820
import com.simplemobiletools.filepicker.extensions.formatSize
1921
import com.simplemobiletools.filepicker.extensions.isGif
@@ -61,6 +63,10 @@ class ItemsAdapter(val activity: SimpleActivity, val mItems: List<FileDirItem>,
6163
shareFiles()
6264
true
6365
}
66+
R.id.cab_copy_move -> {
67+
displayCopyDialog()
68+
true
69+
}
6470
R.id.cab_delete -> {
6571
askConfirmDelete()
6672
true
@@ -130,6 +136,28 @@ class ItemsAdapter(val activity: SimpleActivity, val mItems: List<FileDirItem>,
130136
}
131137
}
132138

139+
private fun displayCopyDialog() {
140+
val files = ArrayList<File>()
141+
val positions = multiSelector.selectedPositions
142+
positions.forEach { files.add(File(mItems[it].path)) }
143+
144+
CopyDialog(activity, files, object : CopyMoveTask.CopyMoveListener {
145+
override fun copySucceeded(deleted: Boolean, copiedAll: Boolean) {
146+
if (deleted) {
147+
activity.toast(if (copiedAll) R.string.moving_success else R.string.moving_success_partial)
148+
} else {
149+
activity.toast(if (copiedAll) R.string.copying_success else R.string.copying_success_partial)
150+
}
151+
listener?.refreshItems()
152+
actMode?.finish()
153+
}
154+
155+
override fun copyFailed() {
156+
activity.toast(R.string.copy_move_failed)
157+
}
158+
})
159+
}
160+
133161
private fun askConfirmDelete() {
134162
ConfirmationDialog(activity, listener = object : ConfirmationDialog.OnConfirmedListener {
135163
override fun onConfirmed() {

app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@ import com.simplemobiletools.filemanager.PATH
1515
import com.simplemobiletools.filemanager.R
1616
import com.simplemobiletools.filemanager.activities.SimpleActivity
1717
import com.simplemobiletools.filemanager.adapters.ItemsAdapter
18-
import com.simplemobiletools.filemanager.dialogs.CopyDialog
1918
import com.simplemobiletools.filemanager.dialogs.CreateNewItemDialog
20-
import com.simplemobiletools.filepicker.asynctasks.CopyMoveTask
2119
import com.simplemobiletools.filepicker.extensions.*
2220
import com.simplemobiletools.filepicker.models.FileDirItem
2321
import com.simplemobiletools.filepicker.views.RecyclerViewDivider
@@ -174,52 +172,6 @@ class ItemsFragment : android.support.v4.app.Fragment(), ItemsAdapter.ItemOperat
174172
return type + "/*"
175173
}
176174

177-
/*override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
178-
when (item.itemId) {
179-
R.id.cab_copy -> {
180-
displayCopyDialog()
181-
mode.finish()
182-
}
183-
else -> return false
184-
}
185-
186-
return true
187-
}*/
188-
189-
private fun displayCopyDialog() {
190-
val fileIndexes = getSelectedItemIndexes()
191-
if (fileIndexes.isEmpty())
192-
return
193-
194-
val files = ArrayList<File>(fileIndexes.size)
195-
fileIndexes.mapTo(files) { File(mItems[it].path) }
196-
197-
CopyDialog(activity as SimpleActivity, files, object : CopyMoveTask.CopyMoveListener {
198-
override fun copySucceeded(deleted: Boolean, copiedAll: Boolean) {
199-
if (deleted) {
200-
context.toast(if (copiedAll) R.string.moving_success else R.string.moving_success_partial)
201-
} else {
202-
context.toast(if (copiedAll) R.string.copying_success else R.string.copying_success_partial)
203-
}
204-
fillItems()
205-
}
206-
207-
override fun copyFailed() {
208-
context.toast(R.string.copy_move_failed)
209-
}
210-
})
211-
}
212-
213-
private fun getSelectedItemIndexes(): List<Int> {
214-
/*val items = items_list.checkedItemPositions
215-
val cnt = items.size()
216-
val selectedItems = (0..cnt - 1)
217-
.filter { items.valueAt(it) }
218-
.map { items.keyAt(it) }
219-
return selectedItems*/
220-
return ArrayList()
221-
}
222-
223175
override fun prepareForDeleting(paths: ArrayList<String>) {
224176
activity.toast(R.string.deleting)
225177
mToBeDeleted = paths

app/src/main/res/menu/cab.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
android:title="@string/share"
1818
app:showAsAction="ifRoom"/>
1919
<item
20-
android:id="@+id/cab_copy"
20+
android:id="@+id/cab_copy_move"
2121
android:icon="@mipmap/copy"
2222
android:title="@string/copy_move"
2323
app:showAsAction="ifRoom"/>

0 commit comments

Comments
 (0)