From 21a5f8d6855d1aec46c7e1b3cb0e77bd4247d528 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 12 Nov 2016 21:47:01 +0100 Subject: [PATCH] let the user know if some files couldnt be copied / moved --- .../simplemobiletools/filemanager/Utils.kt | 8 ++-- .../filemanager/fragments/ItemsFragment.java | 42 +++++++++++-------- .../filemanager/dialogs/CopyDialog.kt | 6 +-- app/src/main/res/values-de/strings.xml | 2 + app/src/main/res/values-it/strings.xml | 2 + app/src/main/res/values-ja/strings.xml | 2 + app/src/main/res/values-pt-rPT/strings.xml | 2 + app/src/main/res/values-sv/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 9 files changed, 43 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/simplemobiletools/filemanager/Utils.kt b/app/src/main/java/com/simplemobiletools/filemanager/Utils.kt index bc332d7d..6110013d 100644 --- a/app/src/main/java/com/simplemobiletools/filemanager/Utils.kt +++ b/app/src/main/java/com/simplemobiletools/filemanager/Utils.kt @@ -1,11 +1,9 @@ package com.simplemobiletools.filemanager import android.content.Context -import com.simplemobiletools.filepicker.extensions.getFileDocument -import com.simplemobiletools.filepicker.extensions.needsStupidWritePermissions -import com.simplemobiletools.filepicker.extensions.scanFile -import com.simplemobiletools.filepicker.extensions.toast +import com.simplemobiletools.filepicker.extensions.* import java.io.File +import java.util.* class Utils { companion object { @@ -20,5 +18,7 @@ class Utils { fun getFileDocument(context: Context, path: String, treeUri: String) = context.getFileDocument(path, treeUri) fun scanFile(context: Context, file: File) = context.scanFile(file) {} + + fun scanFiles(context: Context, files: ArrayList) = context.scanFiles(files) {} } } diff --git a/app/src/main/java/com/simplemobiletools/filemanager/fragments/ItemsFragment.java b/app/src/main/java/com/simplemobiletools/filemanager/fragments/ItemsFragment.java index 37f3fe12..d1d79f71 100644 --- a/app/src/main/java/com/simplemobiletools/filemanager/fragments/ItemsFragment.java +++ b/app/src/main/java/com/simplemobiletools/filemanager/fragments/ItemsFragment.java @@ -51,7 +51,7 @@ import butterknife.OnClick; public class ItemsFragment extends android.support.v4.app.Fragment implements AdapterView.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener, ListView.MultiChoiceModeListener, - ListView.OnTouchListener, CopyMoveTask.CopyMoveListener { + ListView.OnTouchListener { @BindView(R.id.items_list) ListView mListView; @BindView(R.id.items_swipe_refresh) SwipeRefreshLayout mSwipeRefreshLayout; @BindView(R.id.items_holder) CoordinatorLayout mCoordinatorLayout; @@ -358,17 +358,34 @@ public class ItemsFragment extends android.support.v4.app.Fragment } private void displayCopyDialog() { - final List itemIndexes = getSelectedItemIndexes(); - if (itemIndexes.isEmpty()) + final List fileIndexes = getSelectedItemIndexes(); + if (fileIndexes.isEmpty()) return; - final ArrayList itemsToCopy = new ArrayList<>(itemIndexes.size()); - for (Integer i : itemIndexes) { + final ArrayList files = new ArrayList<>(fileIndexes.size()); + for (Integer i : fileIndexes) { FileDirItem item = mItems.get(i); - itemsToCopy.add(new File(item.getPath())); + files.add(new File(item.getPath())); } - new CopyDialog((SimpleActivity) getActivity(), itemsToCopy, this); + new CopyDialog((SimpleActivity) getActivity(), files, new CopyMoveTask.CopyMoveListener() { + @Override + public void copySucceeded(boolean deleted, boolean copiedAll) { + int msgId; + if (deleted) { + fillItems(); + msgId = copiedAll ? R.string.moving_success : R.string.moving_success_partial; + } else { + msgId = copiedAll? R.string.copying_success : R.string.copying_success_partial; + } + Utils.Companion.showToast(getContext(), msgId); + } + + @Override + public void copyFailed() { + Utils.Companion.showToast(getContext(), R.string.copy_move_failed); + } + }); } private FileDirItem getSelectedItem() { @@ -476,17 +493,6 @@ public class ItemsFragment extends android.support.v4.app.Fragment mSelectedItemsCnt = 0; } - @Override - public void copySucceeded(boolean deleted) { - fillItems(); - Utils.Companion.showToast(getContext(), deleted ? R.string.moving_success : R.string.copying_success); - } - - @Override - public void copyFailed() { - Utils.Companion.showToast(getContext(), R.string.copy_move_failed); - } - public interface ItemInteractionListener { void itemClicked(FileDirItem item); } diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/CopyDialog.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/CopyDialog.kt index 3552db6b..6f77899f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/CopyDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/CopyDialog.kt @@ -92,14 +92,14 @@ class CopyDialog(val activity: SimpleActivity, val files: ArrayList, val c updatedFiles.addAll(files) for (file in files) { val destination = File(destinationDir, file.name) - file.renameTo(destination) - updatedFiles.add(destination) + if (file.renameTo(destination)) + updatedFiles.add(destination) } context.scanFiles(updatedFiles) {} context.toast(R.string.moving_success) dismiss() - copyMoveListener.copySucceeded(true) + copyMoveListener.copySucceeded(true, files.size * 2 == updatedFiles.size) } } }) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 03b0bbca..d3530e36 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -39,6 +39,8 @@ OK Abbrechen Drücke erneut zum Schließen + Some files could not be moved + Some files could not be copied 1 Datei/Ordner gelöscht diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 8a9cdc11..55f05ed4 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -39,6 +39,8 @@ OK Annulla Premi di nuovo indietro per uscire + Some files could not be moved + Some files could not be copied 1 elemento eliminato diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 8b578585..fe2f5081 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -39,6 +39,8 @@ OK Cancel Press back again to exit + Some files could not be moved + Some files could not be copied 1 アイテムを削除しました diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 21e46efa..bdc4ad74 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -39,6 +39,8 @@ OK Cancelar Prima novamente para sair + Some files could not be moved + Some files could not be copied 1 item apagado diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index a3fc47b0..0d9d7802 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -39,6 +39,8 @@ OK Cancel Press back again to exit + Some files could not be moved + Some files could not be copied 1 objekt borttagen diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0b2f14a9..29928e58 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -39,6 +39,8 @@ OK Cancel Press back again to exit + Some files could not be moved + Some files could not be copied 1 item deleted