let the user know if some files couldnt be copied / moved

This commit is contained in:
tibbi
2016-11-12 21:47:01 +01:00
parent f457c2842c
commit 21a5f8d685
9 changed files with 43 additions and 25 deletions

View File

@ -1,11 +1,9 @@
package com.simplemobiletools.filemanager package com.simplemobiletools.filemanager
import android.content.Context import android.content.Context
import com.simplemobiletools.filepicker.extensions.getFileDocument import com.simplemobiletools.filepicker.extensions.*
import com.simplemobiletools.filepicker.extensions.needsStupidWritePermissions
import com.simplemobiletools.filepicker.extensions.scanFile
import com.simplemobiletools.filepicker.extensions.toast
import java.io.File import java.io.File
import java.util.*
class Utils { class Utils {
companion object { companion object {
@ -20,5 +18,7 @@ class Utils {
fun getFileDocument(context: Context, path: String, treeUri: String) = context.getFileDocument(path, treeUri) fun getFileDocument(context: Context, path: String, treeUri: String) = context.getFileDocument(path, treeUri)
fun scanFile(context: Context, file: File) = context.scanFile(file) {} fun scanFile(context: Context, file: File) = context.scanFile(file) {}
fun scanFiles(context: Context, files: ArrayList<File>) = context.scanFiles(files) {}
} }
} }

View File

@ -51,7 +51,7 @@ import butterknife.OnClick;
public class ItemsFragment extends android.support.v4.app.Fragment public class ItemsFragment extends android.support.v4.app.Fragment
implements AdapterView.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener, ListView.MultiChoiceModeListener, implements AdapterView.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener, ListView.MultiChoiceModeListener,
ListView.OnTouchListener, CopyMoveTask.CopyMoveListener { ListView.OnTouchListener {
@BindView(R.id.items_list) ListView mListView; @BindView(R.id.items_list) ListView mListView;
@BindView(R.id.items_swipe_refresh) SwipeRefreshLayout mSwipeRefreshLayout; @BindView(R.id.items_swipe_refresh) SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.items_holder) CoordinatorLayout mCoordinatorLayout; @BindView(R.id.items_holder) CoordinatorLayout mCoordinatorLayout;
@ -358,17 +358,34 @@ public class ItemsFragment extends android.support.v4.app.Fragment
} }
private void displayCopyDialog() { private void displayCopyDialog() {
final List<Integer> itemIndexes = getSelectedItemIndexes(); final List<Integer> fileIndexes = getSelectedItemIndexes();
if (itemIndexes.isEmpty()) if (fileIndexes.isEmpty())
return; return;
final ArrayList<File> itemsToCopy = new ArrayList<>(itemIndexes.size()); final ArrayList<File> files = new ArrayList<>(fileIndexes.size());
for (Integer i : itemIndexes) { for (Integer i : fileIndexes) {
FileDirItem item = mItems.get(i); 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() { private FileDirItem getSelectedItem() {
@ -476,17 +493,6 @@ public class ItemsFragment extends android.support.v4.app.Fragment
mSelectedItemsCnt = 0; 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 { public interface ItemInteractionListener {
void itemClicked(FileDirItem item); void itemClicked(FileDirItem item);
} }

View File

@ -92,14 +92,14 @@ class CopyDialog(val activity: SimpleActivity, val files: ArrayList<File>, val c
updatedFiles.addAll(files) updatedFiles.addAll(files)
for (file in files) { for (file in files) {
val destination = File(destinationDir, file.name) val destination = File(destinationDir, file.name)
file.renameTo(destination) if (file.renameTo(destination))
updatedFiles.add(destination) updatedFiles.add(destination)
} }
context.scanFiles(updatedFiles) {} context.scanFiles(updatedFiles) {}
context.toast(R.string.moving_success) context.toast(R.string.moving_success)
dismiss() dismiss()
copyMoveListener.copySucceeded(true) copyMoveListener.copySucceeded(true, files.size * 2 == updatedFiles.size)
} }
} }
}) })

View File

@ -39,6 +39,8 @@
<string name="ok">OK</string> <string name="ok">OK</string>
<string name="cancel">Abbrechen</string> <string name="cancel">Abbrechen</string>
<string name="press_back_again">Drücke erneut zum Schließen</string> <string name="press_back_again">Drücke erneut zum Schließen</string>
<string name="moving_success_partial">Some files could not be moved</string>
<string name="copying_success_partial">Some files could not be copied</string>
<plurals name="items_deleted"> <plurals name="items_deleted">
<item quantity="one">1 Datei/Ordner gelöscht</item> <item quantity="one">1 Datei/Ordner gelöscht</item>

View File

@ -39,6 +39,8 @@
<string name="ok">OK</string> <string name="ok">OK</string>
<string name="cancel">Annulla</string> <string name="cancel">Annulla</string>
<string name="press_back_again">Premi di nuovo indietro per uscire</string> <string name="press_back_again">Premi di nuovo indietro per uscire</string>
<string name="moving_success_partial">Some files could not be moved</string>
<string name="copying_success_partial">Some files could not be copied</string>
<plurals name="items_deleted"> <plurals name="items_deleted">
<item quantity="one">1 elemento eliminato</item> <item quantity="one">1 elemento eliminato</item>

View File

@ -39,6 +39,8 @@
<string name="ok">OK</string> <string name="ok">OK</string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="press_back_again">Press back again to exit</string> <string name="press_back_again">Press back again to exit</string>
<string name="moving_success_partial">Some files could not be moved</string>
<string name="copying_success_partial">Some files could not be copied</string>
<plurals name="items_deleted"> <plurals name="items_deleted">
<item quantity="one">1 アイテムを削除しました</item> <item quantity="one">1 アイテムを削除しました</item>

View File

@ -39,6 +39,8 @@
<string name="ok">OK</string> <string name="ok">OK</string>
<string name="cancel">Cancelar</string> <string name="cancel">Cancelar</string>
<string name="press_back_again">Prima novamente para sair</string> <string name="press_back_again">Prima novamente para sair</string>
<string name="moving_success_partial">Some files could not be moved</string>
<string name="copying_success_partial">Some files could not be copied</string>
<plurals name="items_deleted"> <plurals name="items_deleted">
<item quantity="one">1 item apagado</item> <item quantity="one">1 item apagado</item>

View File

@ -39,6 +39,8 @@
<string name="ok">OK</string> <string name="ok">OK</string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="press_back_again">Press back again to exit</string> <string name="press_back_again">Press back again to exit</string>
<string name="moving_success_partial">Some files could not be moved</string>
<string name="copying_success_partial">Some files could not be copied</string>
<plurals name="items_deleted"> <plurals name="items_deleted">
<item quantity="one">1 objekt borttagen</item> <item quantity="one">1 objekt borttagen</item>

View File

@ -39,6 +39,8 @@
<string name="ok">OK</string> <string name="ok">OK</string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="press_back_again">Press back again to exit</string> <string name="press_back_again">Press back again to exit</string>
<string name="moving_success_partial">Some files could not be moved</string>
<string name="copying_success_partial">Some files could not be copied</string>
<plurals name="items_deleted"> <plurals name="items_deleted">
<item quantity="one">1 item deleted</item> <item quantity="one">1 item deleted</item>