Loading res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,9 @@ <!-- An operation will cause incosistencies --> <string name="msgs_unresolved_inconsistencies"> The operation is now allowed, because it would create inconsistencies.</string> <!-- The operation is now allowed in the current directory --> <string name="msgs_operation_not_allowed_in_current_directory"> The operation is now allowed in the current directory.</string> <!-- A message advise before close the application --> <string name="msgs_push_again_to_exit">Push again back button to exit.</string> Loading src/com/cyanogenmod/explorer/ui/dialogs/ActionsDialog.java +47 −0 Original line number Diff line number Diff line Loading @@ -38,10 +38,13 @@ import com.cyanogenmod.explorer.listeners.OnRequestRefreshListener; import com.cyanogenmod.explorer.listeners.OnSelectionListener; import com.cyanogenmod.explorer.model.FileSystemObject; import com.cyanogenmod.explorer.ui.policy.ActionsPolicy; import com.cyanogenmod.explorer.ui.policy.ActionsPolicy.LinkedResource; import com.cyanogenmod.explorer.util.DialogHelper; import com.cyanogenmod.explorer.util.FileHelper; import com.cyanogenmod.explorer.util.SelectionHelper; import java.io.File; import java.util.ArrayList; import java.util.List; /** Loading Loading @@ -228,6 +231,30 @@ public class ActionsDialog implements OnItemClickListener, OnItemLongClickListen break; // Paste selection case R.id.mnu_actions_paste_selection: if (this.mOnSelectionListener != null) { List<FileSystemObject> selection = this.mOnSelectionListener.onRequestSelectedFiles(); ActionsPolicy.copyFileSystemObjects( this.mContext, createLinkedResource(selection, this.mFso), this.mOnSelectionListener, this.mOnRequestRefreshListener); } break; // Move selection case R.id.mnu_actions_move_selection: if (this.mOnSelectionListener != null) { List<FileSystemObject> selection = this.mOnSelectionListener.onRequestSelectedFiles(); ActionsPolicy.moveFileSystemObjects( this.mContext, createLinkedResource(selection, this.mFso), this.mOnSelectionListener, this.mOnRequestRefreshListener); } break; // Delete selection case R.id.mnu_actions_delete_selection: if (this.mOnSelectionListener != null) { Loading Loading @@ -454,4 +481,24 @@ public class ActionsDialog implements OnItemClickListener, OnItemLongClickListen } } } /** * Method that creates a {@link LinkedResource} for the list of object to the * destination directory * * @param items The list of the source items * @param directory The destination directory */ private static List<LinkedResource> createLinkedResource( List<FileSystemObject> items, FileSystemObject directory) { List<LinkedResource> resources = new ArrayList<ActionsPolicy.LinkedResource>(items.size()); for (int i = 0; i < items.size(); i++) { FileSystemObject fso = items.get(i); File src = new File(fso.getFullPath()); File dst = new File(directory.getFullPath(), fso.getName()); resources.add(new LinkedResource(src, dst)); } return resources; } } src/com/cyanogenmod/explorer/ui/policy/ActionsPolicy.java +19 −19 Original line number Diff line number Diff line Loading @@ -64,17 +64,17 @@ public final class ActionsPolicy { * A class that holds a relationship between a source {@link File} and * his destination {@link File} */ public static class LinkedResources implements Comparable<LinkedResources> { public static class LinkedResource implements Comparable<LinkedResource> { final File mSrc; final File mDst; /** * Constructor of <code>LinkedResources</code> * Constructor of <code>LinkedResource</code> * * @param src The source file system object * @param dst The destination file system object */ public LinkedResources(File src, File dst) { public LinkedResource(File src, File dst) { super(); this.mSrc = src; this.mDst = dst; Loading @@ -84,7 +84,7 @@ public final class ActionsPolicy { * {@inheritDoc} */ @Override public int compareTo(LinkedResources another) { public int compareTo(LinkedResource another) { return this.mSrc.compareTo(another.mSrc); } } Loading Loading @@ -499,7 +499,7 @@ public final class ActionsPolicy { } catch (Throwable ex2) { /**NON BLOCK**/ } onRequestRefreshListener.onRequestRefresh(fso); onRequestRefreshListener.onRequestRefresh(null); } } catch (Throwable ex) { Loading @@ -520,7 +520,7 @@ public final class ActionsPolicy { } catch (Throwable ex2) { /**NON BLOCK**/ } onRequestRefreshListener.onRequestRefresh(fso); onRequestRefreshListener.onRequestRefresh(null); } return Boolean.TRUE; } Loading Loading @@ -786,8 +786,8 @@ public final class ActionsPolicy { File src = new File(fso.getFullPath()); // Create arguments LinkedResources linkRes = new LinkedResources(src, dst); List<LinkedResources> files = new ArrayList<ActionsPolicy.LinkedResources>(1); LinkedResource linkRes = new LinkedResource(src, dst); List<LinkedResource> files = new ArrayList<ActionsPolicy.LinkedResource>(1); files.add(linkRes); // Internal copy Loading Loading @@ -820,8 +820,8 @@ public final class ActionsPolicy { File src = new File(fso.getFullPath()); // Create arguments LinkedResources linkRes = new LinkedResources(src, dst); List<LinkedResources> files = new ArrayList<ActionsPolicy.LinkedResources>(1); LinkedResource linkRes = new LinkedResource(src, dst); List<LinkedResource> files = new ArrayList<ActionsPolicy.LinkedResource>(1); files.add(linkRes); // Internal copy Loading @@ -843,7 +843,7 @@ public final class ActionsPolicy { */ public static void copyFileSystemObjects( final Context ctx, final List<LinkedResources> files, final List<LinkedResource> files, final OnSelectionListener onSelectionListener, final OnRequestRefreshListener onRequestRefreshListener) { // Internal copy Loading @@ -865,7 +865,7 @@ public final class ActionsPolicy { */ public static void moveFileSystemObjects( final Context ctx, final List<LinkedResources> files, final List<LinkedResource> files, final OnSelectionListener onSelectionListener, final OnRequestRefreshListener onRequestRefreshListener) { // Internal move Loading @@ -889,7 +889,7 @@ public final class ActionsPolicy { private static void copyOrMoveFileSystemObjects( final Context ctx, final boolean move, final List<LinkedResources> files, final List<LinkedResource> files, final OnSelectionListener onSelectionListener, final OnRequestRefreshListener onRequestRefreshListener) { Loading @@ -905,7 +905,7 @@ public final class ActionsPolicy { // and not be null final String currentDirectory = onSelectionListener.onRequestCurrentDir(); for (int i = 0; i < files.size(); i++) { LinkedResources linkedRes = files.get(i); LinkedResource linkedRes = files.get(i); if (linkedRes.mSrc == null || linkedRes.mDst == null) { AlertDialog dialog = DialogHelper.createErrorDialog(ctx, R.string.msgs_illegal_argument); Loading Loading @@ -933,7 +933,7 @@ public final class ActionsPolicy { private int mCurrent = 0; final Context mCtx = ctx; final boolean mMove = move; final List<LinkedResources> mFiles = files; final List<LinkedResource> mFiles = files; final OnRequestRefreshListener mOnRequestRefreshListener = onRequestRefreshListener; final Object mSync = new Object(); Loading Loading @@ -1121,7 +1121,7 @@ public final class ActionsPolicy { * @return boolean If is needed to prompt the user for overwrite */ private static boolean isOverwriteNeeded( List<LinkedResources> files, List<FileSystemObject> currentFiles) { List<LinkedResource> files, List<FileSystemObject> currentFiles) { boolean askUser = false; for (int i = 0; i < currentFiles.size(); i++) { for (int j = 0; j < files.size(); j++) { Loading Loading @@ -1156,9 +1156,9 @@ public final class ActionsPolicy { * @return boolean If the consistency is validate successfully */ private static boolean checkMoveConsistency( Context ctx, List<LinkedResources> files, String currentDirectory) { Context ctx, List<LinkedResource> files, String currentDirectory) { for (int i = 0; i < files.size(); i++) { LinkedResources linkRes = files.get(i); LinkedResource linkRes = files.get(i); String src = linkRes.mSrc.getAbsolutePath(); String dst = linkRes.mDst.getAbsolutePath(); Loading @@ -1177,7 +1177,7 @@ public final class ActionsPolicy { // Operation not allowed AlertDialog dialog = DialogHelper.createErrorDialog( ctx, R.string.msgs_unresolved_inconsistencies); ctx, R.string.msgs_operation_not_allowed_in_current_directory); dialog.show(); return false; } Loading Loading
res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,9 @@ <!-- An operation will cause incosistencies --> <string name="msgs_unresolved_inconsistencies"> The operation is now allowed, because it would create inconsistencies.</string> <!-- The operation is now allowed in the current directory --> <string name="msgs_operation_not_allowed_in_current_directory"> The operation is now allowed in the current directory.</string> <!-- A message advise before close the application --> <string name="msgs_push_again_to_exit">Push again back button to exit.</string> Loading
src/com/cyanogenmod/explorer/ui/dialogs/ActionsDialog.java +47 −0 Original line number Diff line number Diff line Loading @@ -38,10 +38,13 @@ import com.cyanogenmod.explorer.listeners.OnRequestRefreshListener; import com.cyanogenmod.explorer.listeners.OnSelectionListener; import com.cyanogenmod.explorer.model.FileSystemObject; import com.cyanogenmod.explorer.ui.policy.ActionsPolicy; import com.cyanogenmod.explorer.ui.policy.ActionsPolicy.LinkedResource; import com.cyanogenmod.explorer.util.DialogHelper; import com.cyanogenmod.explorer.util.FileHelper; import com.cyanogenmod.explorer.util.SelectionHelper; import java.io.File; import java.util.ArrayList; import java.util.List; /** Loading Loading @@ -228,6 +231,30 @@ public class ActionsDialog implements OnItemClickListener, OnItemLongClickListen break; // Paste selection case R.id.mnu_actions_paste_selection: if (this.mOnSelectionListener != null) { List<FileSystemObject> selection = this.mOnSelectionListener.onRequestSelectedFiles(); ActionsPolicy.copyFileSystemObjects( this.mContext, createLinkedResource(selection, this.mFso), this.mOnSelectionListener, this.mOnRequestRefreshListener); } break; // Move selection case R.id.mnu_actions_move_selection: if (this.mOnSelectionListener != null) { List<FileSystemObject> selection = this.mOnSelectionListener.onRequestSelectedFiles(); ActionsPolicy.moveFileSystemObjects( this.mContext, createLinkedResource(selection, this.mFso), this.mOnSelectionListener, this.mOnRequestRefreshListener); } break; // Delete selection case R.id.mnu_actions_delete_selection: if (this.mOnSelectionListener != null) { Loading Loading @@ -454,4 +481,24 @@ public class ActionsDialog implements OnItemClickListener, OnItemLongClickListen } } } /** * Method that creates a {@link LinkedResource} for the list of object to the * destination directory * * @param items The list of the source items * @param directory The destination directory */ private static List<LinkedResource> createLinkedResource( List<FileSystemObject> items, FileSystemObject directory) { List<LinkedResource> resources = new ArrayList<ActionsPolicy.LinkedResource>(items.size()); for (int i = 0; i < items.size(); i++) { FileSystemObject fso = items.get(i); File src = new File(fso.getFullPath()); File dst = new File(directory.getFullPath(), fso.getName()); resources.add(new LinkedResource(src, dst)); } return resources; } }
src/com/cyanogenmod/explorer/ui/policy/ActionsPolicy.java +19 −19 Original line number Diff line number Diff line Loading @@ -64,17 +64,17 @@ public final class ActionsPolicy { * A class that holds a relationship between a source {@link File} and * his destination {@link File} */ public static class LinkedResources implements Comparable<LinkedResources> { public static class LinkedResource implements Comparable<LinkedResource> { final File mSrc; final File mDst; /** * Constructor of <code>LinkedResources</code> * Constructor of <code>LinkedResource</code> * * @param src The source file system object * @param dst The destination file system object */ public LinkedResources(File src, File dst) { public LinkedResource(File src, File dst) { super(); this.mSrc = src; this.mDst = dst; Loading @@ -84,7 +84,7 @@ public final class ActionsPolicy { * {@inheritDoc} */ @Override public int compareTo(LinkedResources another) { public int compareTo(LinkedResource another) { return this.mSrc.compareTo(another.mSrc); } } Loading Loading @@ -499,7 +499,7 @@ public final class ActionsPolicy { } catch (Throwable ex2) { /**NON BLOCK**/ } onRequestRefreshListener.onRequestRefresh(fso); onRequestRefreshListener.onRequestRefresh(null); } } catch (Throwable ex) { Loading @@ -520,7 +520,7 @@ public final class ActionsPolicy { } catch (Throwable ex2) { /**NON BLOCK**/ } onRequestRefreshListener.onRequestRefresh(fso); onRequestRefreshListener.onRequestRefresh(null); } return Boolean.TRUE; } Loading Loading @@ -786,8 +786,8 @@ public final class ActionsPolicy { File src = new File(fso.getFullPath()); // Create arguments LinkedResources linkRes = new LinkedResources(src, dst); List<LinkedResources> files = new ArrayList<ActionsPolicy.LinkedResources>(1); LinkedResource linkRes = new LinkedResource(src, dst); List<LinkedResource> files = new ArrayList<ActionsPolicy.LinkedResource>(1); files.add(linkRes); // Internal copy Loading Loading @@ -820,8 +820,8 @@ public final class ActionsPolicy { File src = new File(fso.getFullPath()); // Create arguments LinkedResources linkRes = new LinkedResources(src, dst); List<LinkedResources> files = new ArrayList<ActionsPolicy.LinkedResources>(1); LinkedResource linkRes = new LinkedResource(src, dst); List<LinkedResource> files = new ArrayList<ActionsPolicy.LinkedResource>(1); files.add(linkRes); // Internal copy Loading @@ -843,7 +843,7 @@ public final class ActionsPolicy { */ public static void copyFileSystemObjects( final Context ctx, final List<LinkedResources> files, final List<LinkedResource> files, final OnSelectionListener onSelectionListener, final OnRequestRefreshListener onRequestRefreshListener) { // Internal copy Loading @@ -865,7 +865,7 @@ public final class ActionsPolicy { */ public static void moveFileSystemObjects( final Context ctx, final List<LinkedResources> files, final List<LinkedResource> files, final OnSelectionListener onSelectionListener, final OnRequestRefreshListener onRequestRefreshListener) { // Internal move Loading @@ -889,7 +889,7 @@ public final class ActionsPolicy { private static void copyOrMoveFileSystemObjects( final Context ctx, final boolean move, final List<LinkedResources> files, final List<LinkedResource> files, final OnSelectionListener onSelectionListener, final OnRequestRefreshListener onRequestRefreshListener) { Loading @@ -905,7 +905,7 @@ public final class ActionsPolicy { // and not be null final String currentDirectory = onSelectionListener.onRequestCurrentDir(); for (int i = 0; i < files.size(); i++) { LinkedResources linkedRes = files.get(i); LinkedResource linkedRes = files.get(i); if (linkedRes.mSrc == null || linkedRes.mDst == null) { AlertDialog dialog = DialogHelper.createErrorDialog(ctx, R.string.msgs_illegal_argument); Loading Loading @@ -933,7 +933,7 @@ public final class ActionsPolicy { private int mCurrent = 0; final Context mCtx = ctx; final boolean mMove = move; final List<LinkedResources> mFiles = files; final List<LinkedResource> mFiles = files; final OnRequestRefreshListener mOnRequestRefreshListener = onRequestRefreshListener; final Object mSync = new Object(); Loading Loading @@ -1121,7 +1121,7 @@ public final class ActionsPolicy { * @return boolean If is needed to prompt the user for overwrite */ private static boolean isOverwriteNeeded( List<LinkedResources> files, List<FileSystemObject> currentFiles) { List<LinkedResource> files, List<FileSystemObject> currentFiles) { boolean askUser = false; for (int i = 0; i < currentFiles.size(); i++) { for (int j = 0; j < files.size(); j++) { Loading Loading @@ -1156,9 +1156,9 @@ public final class ActionsPolicy { * @return boolean If the consistency is validate successfully */ private static boolean checkMoveConsistency( Context ctx, List<LinkedResources> files, String currentDirectory) { Context ctx, List<LinkedResource> files, String currentDirectory) { for (int i = 0; i < files.size(); i++) { LinkedResources linkRes = files.get(i); LinkedResource linkRes = files.get(i); String src = linkRes.mSrc.getAbsolutePath(); String dst = linkRes.mDst.getAbsolutePath(); Loading @@ -1177,7 +1177,7 @@ public final class ActionsPolicy { // Operation not allowed AlertDialog dialog = DialogHelper.createErrorDialog( ctx, R.string.msgs_unresolved_inconsistencies); ctx, R.string.msgs_operation_not_allowed_in_current_directory); dialog.show(); return false; } Loading