diff options
| author | Stephen Bird <sbird@cyngn.com> | 2015-06-05 15:41:39 -0700 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2015-06-11 17:40:56 +0000 |
| commit | c72bf8446312bb89a2cf61b4b960a2d2fd2bfb43 (patch) | |
| tree | 2417fc95e7b4beeb0f246112d6f71b190a275e96 | |
| parent | 766c7ba627fb8d685408429ce027c6826bb9c2ab (diff) | |
| download | android_packages_apps_CMFileManager-c72bf8446312bb89a2cf61b4b960a2d2fd2bfb43.tar.gz android_packages_apps_CMFileManager-c72bf8446312bb89a2cf61b4b960a2d2fd2bfb43.tar.bz2 android_packages_apps_CMFileManager-c72bf8446312bb89a2cf61b4b960a2d2fd2bfb43.zip | |
MediaScanning: Update with calls to Mediascanner
With older versions of android, updating with
.delete was the proper way to remove these items
The issue is that, doing this does not update MTP.
Change-Id: I9b7098927fbda6e78a9baedb5e5e35968c082108
| -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. * |
