mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-06-05 22:09:15 +02:00
let the user know if some files couldnt be copied / moved
This commit is contained in:
@ -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) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
Reference in New Issue
Block a user