DO NOT MERGE MediaScanner: Fix bug in "no media" handling logic

Don't let the "no media" status of one directory leak to the remaining files
and directories in the same parent.

Bug: 4364077

Change-Id: I2b04b872ece69441387c7fa579441a53f6f358d3
Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
Mike Lockwood
2011-05-02 17:01:47 -04:00
parent a792c80402
commit 8b1c74f96f

View File

@@ -135,20 +135,21 @@ status_t MediaScanner::doProcessDirectory(
}
if (type == DT_REG || type == DT_DIR) {
if (type == DT_DIR) {
bool childNoMedia = noMedia;
// set noMedia flag on directories with a name that starts with '.'
// for example, the Mac ".Trashes" directory
if (name[0] == '.')
noMedia = true;
childNoMedia = true;
// report the directory to the client
if (stat(path, &statbuf) == 0) {
client.scanFile(path, statbuf.st_mtime, 0, true, noMedia);
client.scanFile(path, statbuf.st_mtime, 0, true, childNoMedia);
}
// and now process its contents
strcat(fileSpot, "/");
int err = doProcessDirectory(path, pathRemaining - nameLength - 1, client,
noMedia, exceptionCheck, exceptionEnv);
childNoMedia, exceptionCheck, exceptionEnv);
if (err) {
// pass exceptions up - ignore other errors
if (exceptionCheck && exceptionCheck(exceptionEnv)) goto failure;