DO NOT MERGE MediaScanner: Add special casing of WMP album art files to isNoMediaPath()
This will prevent MediaProvider from adding these files to the images table Change-Id: Ice4756b64a067f3aceff08ab2c5e91665109dde5 Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
@@ -432,34 +432,8 @@ public class MediaScanner
|
||||
mFileSize = fileSize;
|
||||
|
||||
if (!isDirectory) {
|
||||
// special case certain file names
|
||||
// I use regionMatches() instead of substring() below
|
||||
// to avoid memory allocation
|
||||
int lastSlash = path.lastIndexOf('/');
|
||||
if (lastSlash >= 0 && lastSlash + 2 < path.length()) {
|
||||
if (!noMedia) {
|
||||
// ignore those ._* files created by MacOS
|
||||
if (path.regionMatches(lastSlash + 1, "._", 0, 2)) {
|
||||
noMedia = true;
|
||||
}
|
||||
|
||||
// ignore album art files created by Windows Media Player:
|
||||
// Folder.jpg, AlbumArtSmall.jpg, AlbumArt_{...}_Large.jpg
|
||||
// and AlbumArt_{...}_Small.jpg
|
||||
if (path.regionMatches(true, path.length() - 4, ".jpg", 0, 4)) {
|
||||
if (path.regionMatches(true, lastSlash + 1, "AlbumArt_{", 0, 10) ||
|
||||
path.regionMatches(true, lastSlash + 1, "AlbumArt.", 0, 9)) {
|
||||
noMedia = true;
|
||||
}
|
||||
int length = path.length() - lastSlash - 1;
|
||||
if ((length == 17 && path.regionMatches(
|
||||
true, lastSlash + 1, "AlbumArtSmall", 0, 13)) ||
|
||||
(length == 10
|
||||
&& path.regionMatches(true, lastSlash + 1, "Folder", 0, 6))) {
|
||||
noMedia = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!noMedia && isNoMediaFile(path)) {
|
||||
noMedia = true;
|
||||
}
|
||||
mNoMedia = noMedia;
|
||||
|
||||
@@ -1233,6 +1207,40 @@ public class MediaScanner
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isNoMediaFile(String path) {
|
||||
File file = new File(path);
|
||||
if (file.isDirectory()) return false;
|
||||
|
||||
// special case certain file names
|
||||
// I use regionMatches() instead of substring() below
|
||||
// to avoid memory allocation
|
||||
int lastSlash = path.lastIndexOf('/');
|
||||
if (lastSlash >= 0 && lastSlash + 2 < path.length()) {
|
||||
// ignore those ._* files created by MacOS
|
||||
if (path.regionMatches(lastSlash + 1, "._", 0, 2)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// ignore album art files created by Windows Media Player:
|
||||
// Folder.jpg, AlbumArtSmall.jpg, AlbumArt_{...}_Large.jpg
|
||||
// and AlbumArt_{...}_Small.jpg
|
||||
if (path.regionMatches(true, path.length() - 4, ".jpg", 0, 4)) {
|
||||
if (path.regionMatches(true, lastSlash + 1, "AlbumArt_{", 0, 10) ||
|
||||
path.regionMatches(true, lastSlash + 1, "AlbumArt.", 0, 9)) {
|
||||
return true;
|
||||
}
|
||||
int length = path.length() - lastSlash - 1;
|
||||
if ((length == 17 && path.regionMatches(
|
||||
true, lastSlash + 1, "AlbumArtSmall", 0, 13)) ||
|
||||
(length == 10
|
||||
&& path.regionMatches(true, lastSlash + 1, "Folder", 0, 6))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isNoMediaPath(String path) {
|
||||
if (path == null) return false;
|
||||
|
||||
@@ -1254,7 +1262,7 @@ public class MediaScanner
|
||||
}
|
||||
offset = slashIndex;
|
||||
}
|
||||
return false;
|
||||
return isNoMediaFile(path);
|
||||
}
|
||||
|
||||
public void scanMtpFile(String path, String volumeName, int objectHandle, int format) {
|
||||
|
||||
Reference in New Issue
Block a user