diff options
| -rw-r--r-- | src/com/cyanogenmod/filemanager/util/CommandHelper.java | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/src/com/cyanogenmod/filemanager/util/CommandHelper.java b/src/com/cyanogenmod/filemanager/util/CommandHelper.java index 2bb268e5..05e6d995 100644 --- a/src/com/cyanogenmod/filemanager/util/CommandHelper.java +++ b/src/com/cyanogenmod/filemanager/util/CommandHelper.java @@ -19,9 +19,9 @@ package com.cyanogenmod.filemanager.util; import android.content.Context; import android.content.Intent; import android.media.MediaScannerConnection; +import android.provider.MediaStore; import android.provider.MediaStore.Files; -import android.provider.MediaStore; import com.cyanogenmod.filemanager.commands.AsyncResultListener; import com.cyanogenmod.filemanager.commands.ChangeOwnerExecutable; import com.cyanogenmod.filemanager.commands.ChangePermissionsExecutable; @@ -83,7 +83,6 @@ import com.cyanogenmod.filemanager.model.SearchResult; import com.cyanogenmod.filemanager.model.User; import com.cyanogenmod.filemanager.preferences.CompressionMode; import com.cyanogenmod.filemanager.preferences.FileManagerSettings; -import com.cyanogenmod.filemanager.util.MediaHelper; import java.io.File; import java.io.FileNotFoundException; @@ -308,6 +307,11 @@ public final class CommandHelper { CreateDirExecutable executable = c.getExecutableFactory().newCreator().createCreateDirectoryExecutable(directory); writableExecute(context, executable, c); + + // Do media scan + MediaScannerConnection.scanFile(context, new String[]{ + MediaHelper.normalizeMediaPath(directory)}, null, null); + return executable.getResult().booleanValue(); } @@ -382,12 +386,9 @@ public final class CommandHelper { c.getExecutableFactory().newCreator().createDeleteDirExecutable(directory); writableExecute(context, executable, c); - // Do media scan - File parent = new File(directory).getParentFile(); - if (parent != null) { - MediaScannerConnection.scanFile(context, new String[]{ - MediaHelper.normalizeMediaPath(parent.getAbsolutePath())}, null, null); - } + // update media scan + MediaScannerConnection.scanFile(context, new String[]{ + MediaHelper.normalizeMediaPath(directory)}, null, null); return executable.getResult().booleanValue(); } @@ -424,8 +425,10 @@ public final class CommandHelper { c.getExecutableFactory().newCreator().createDeleteFileExecutable(file); writableExecute(context, executable, c); - // Remove from media scanner - removeFromMediaStore(context, file); + // Remove from mediascanner + MediaScannerConnection.scanFile(context, new String[]{ + MediaHelper.normalizeMediaPath(file) + }, null, null); return executable.getResult().booleanValue(); } @@ -809,27 +812,21 @@ public final class CommandHelper { // Do media scan (don't scan the file if is virtual file) if (ret) { - File parent = new File(src).getParentFile(); - if (parent != null) { - if (!VirtualMountPointConsole.isVirtualStorageResource(parent.getAbsolutePath())) { - // Remove from media scanner - removeFromMediaStore(context, src); - } - } - if (!VirtualMountPointConsole.isVirtualStorageResource(parent.getAbsolutePath())) { + File parent = new File(dst).getParentFile(); + if (parent != null && !VirtualMountPointConsole.isVirtualStorageResource(parent + .getAbsolutePath())) { + + // Remove from mediascanner MediaScannerConnection.scanFile(context, new String[]{ - MediaHelper.normalizeMediaPath(dst)}, null, null); + MediaHelper.normalizeMediaPath(src), + MediaHelper.normalizeMediaPath(dst) + }, null, null); } } return ret; } - private static void removeFromMediaStore(Context context, String path) { - context.getContentResolver().delete(Files.getContentUri(MediaHelper.EXTERNAL_VOLUME), - MediaStore.Files.FileColumns.DATA + "=?", new String[]{path}); - } - /** * Method that copies a file system object. * |
