package org.openintents.filemanager.util; import java.io.File; import java.util.List; import org.openintents.filemanager.files.FileHolder; import android.content.Context; import android.content.Intent; import android.net.Uri; public abstract class MediaScannerUtils { /** * Request a MediaScanner scan for a single file. */ public static void informFileAdded(Context c, File f) { if(f == null) return; Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); intent.setData(Uri.fromFile(f)); c.sendBroadcast(intent); } /** * Request a MediaScanner scan for multiple files. */ public static void informFilesAdded(Context c, File[] files) { // NOTE: it seemed like overkill having to create a Helper class to // avoid VerifyError on 1.6 so that we can use MediaScannerConnection.scanFile() // Therefore we just iterate through files and use the compatible-with-every-version broadcast. for(int i = 0; i < files.length; i++) informFileAdded(c, files[i]); } /** * Request a MediaScanner scan for multiple files. */ public static void informFilesAdded(Context c, List<FileHolder> files) { // NOTE: it seemed like overkill having to create a Helper class to // avoid VerifyError on 1.6 so that we can use MediaScannerConnection.scanFile() // Therefore we just iterate through files and use the compatible-with-every-version broadcast. for(FileHolder fh : files) informFileAdded(c, fh.getFile()); } public static void informFileDeleted(Context c, File f) { // TODO implement } public static void informFilesDeleted(Context c, File[] files) { for(File f : files) informFileDeleted(c, f); } public static void informFilesDeleted(Context c, List<FileHolder> files) { for(FileHolder fh : files) informFileDeleted(c, fh.getFile()); } }