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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user