Merge "MediaScanner: Add special casing of WMP album art files to isNoMediaPath()"
This commit is contained in:
committed by
Android (Google) Code Review
commit
be255f2920
@@ -431,34 +431,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;
|
||||
|
||||
@@ -1231,6 +1205,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;
|
||||
|
||||
@@ -1252,7 +1260,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