aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2013-11-30 00:20:24 +0100
committerJorge Ruesga <jorge@ruesga.com>2013-11-30 00:20:24 +0100
commitdd7d530c964e756b8fd1ec6927d0e5deb49dff9a (patch)
tree872bbe1570d27db96d7d7a22f00c5de9485a7ad4
parent74db65c2e849fa8dd5d0bb61adf43bb1dec51ac0 (diff)
downloadandroid_packages_apps_CMFileManager-dd7d530c964e756b8fd1ec6927d0e5deb49dff9a.tar.gz
android_packages_apps_CMFileManager-dd7d530c964e756b8fd1ec6927d0e5deb49dff9a.tar.bz2
android_packages_apps_CMFileManager-dd7d530c964e756b8fd1ec6927d0e5deb49dff9a.zip
CMFM: Fix move infinite loop
Change-Id: I5a4f3ae0844506a08819d355b840637b5374f0f2 JIRA: CYAN-2791 Issue: https://jira.cyanogenmod.org/browse/CYAN-2791 Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
-rw-r--r--src/com/cyanogenmod/filemanager/ui/policy/CopyMoveActionPolicy.java10
1 files 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);
}