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