From: Danesh M Date: Sat, 13 Dec 2014 03:26:21 +0000 (-0800) Subject: CMFileManager : Delete from media store when renaming/deleting files X-Git-Tag: android-x86-6.0-r1~194 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3a587806258e5d39f4dcaea2220a3b5bd590b0d4;p=android-x86%2Fpackages-apps-CMFileManager.git CMFileManager : Delete from media store when renaming/deleting files Change-Id: I0bee07a683a7799fb118eb2d1ac313654a29a64e --- diff --git a/src/com/cyanogenmod/filemanager/util/CommandHelper.java b/src/com/cyanogenmod/filemanager/util/CommandHelper.java index 4c98e95..edba969 100644 --- a/src/com/cyanogenmod/filemanager/util/CommandHelper.java +++ b/src/com/cyanogenmod/filemanager/util/CommandHelper.java @@ -19,7 +19,9 @@ package com.cyanogenmod.filemanager.util; import android.content.Context; import android.content.Intent; import android.media.MediaScannerConnection; +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; @@ -81,6 +83,7 @@ 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; @@ -421,12 +424,8 @@ public final class CommandHelper { c.getExecutableFactory().newCreator().createDeleteFileExecutable(file); writableExecute(context, executable, c); - // Do media scan - File parent = new File(file).getParentFile(); - if (parent != null) { - MediaScannerConnection.scanFile(context, new String[]{ - MediaHelper.normalizeMediaPath(parent.getAbsolutePath())}, null, null); - } + // Remove from media scanner + removeFromMediaStore(context, file); return executable.getResult().booleanValue(); } @@ -813,8 +812,8 @@ public final class CommandHelper { File parent = new File(src).getParentFile(); if (parent != null) { if (!VirtualMountPointConsole.isVirtualStorageResource(parent.getAbsolutePath())) { - MediaScannerConnection.scanFile(context, new String[]{ - MediaHelper.normalizeMediaPath(parent.getAbsolutePath())}, null, null); + // Remove from media scanner + removeFromMediaStore(context, src); } } if (!VirtualMountPointConsole.isVirtualStorageResource(parent.getAbsolutePath())) { @@ -826,6 +825,11 @@ public final class CommandHelper { 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. * diff --git a/src/com/cyanogenmod/filemanager/util/MediaHelper.java b/src/com/cyanogenmod/filemanager/util/MediaHelper.java index d3d2931..f00db57 100644 --- a/src/com/cyanogenmod/filemanager/util/MediaHelper.java +++ b/src/com/cyanogenmod/filemanager/util/MediaHelper.java @@ -40,7 +40,7 @@ public final class MediaHelper { private static final String EXTERNAL_STORAGE = System.getenv("EXTERNAL_STORAGE"); private static final String INTERNAL_VOLUME = "internal"; - private static final String EXTERNAL_VOLUME = "external"; + public static final String EXTERNAL_VOLUME = "external"; /** * URIs that are relevant for determining album art;