From 71f93d89cbd4088c14900fd9523f9eb6189ffb27 Mon Sep 17 00:00:00 2001 From: Jorge Ruesga Date: Sat, 30 Nov 2013 00:20:24 +0100 Subject: CMFM: Fix move infinite loop Change-Id: I5cc56e2053df4502673a553fa8e5abb82069569d JIRA: CYAN-2791 Issue: https://jira.cyanogenmod.org/browse/CYAN-2791 Signed-off-by: Jorge Ruesga --- .../filemanager/ui/policy/CopyMoveActionPolicy.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/com/cyanogenmod/filemanager/ui/policy/CopyMoveActionPolicy.java b/src/com/cyanogenmod/filemanager/ui/policy/CopyMoveActionPolicy.java index c2923f3e..33e0b985 100644 --- a/src/com/cyanogenmod/filemanager/ui/policy/CopyMoveActionPolicy.java +++ b/src/com/cyanogenmod/filemanager/ui/policy/CopyMoveActionPolicy.java @@ -349,7 +349,6 @@ public final class CopyMoveActionPolicy extends ActionsPolicy { * @param dst The destination file * @param operation Indicates the operation to do */ - @SuppressWarnings("hiding") private void doOperation( Context ctx, File src, File dst, COPY_MOVE_OPERATION operation) throws Throwable { @@ -357,18 +356,23 @@ public final class CopyMoveActionPolicy extends ActionsPolicy { if (src.compareTo(dst) == 0) return; try { + // Be sure to append a / if source is a folder (otherwise system crashes + // under using absolute paths) Issue: CYAN-2791 + String source = src.getAbsolutePath() + + (src.isDirectory() ? File.separator : ""); + // Copy or move? if (operation.compareTo(COPY_MOVE_OPERATION.MOVE) == 0 || operation.compareTo(COPY_MOVE_OPERATION.RENAME) == 0) { CommandHelper.move( ctx, - src.getAbsolutePath(), + source, dst.getAbsolutePath(), null); } else { CommandHelper.copy( ctx, - src.getAbsolutePath(), + source, dst.getAbsolutePath(), null); } -- cgit v1.2.3