String baseName = getBaseName(name); if (isLauncherIcon(baseName)) { checkSize(context, folderName, file, 48, 48, true /*exact*/); } else if (isActionBarIcon(baseName)) { checkSize(context, folderName, file, 32, 32, true /*exact*/); } else if (name.startsWith("ic_dialog_")) { //$NON-NLS-1$ checkSize(context, folderName, file, 32, 32, true /*exact*/); } else if (name.startsWith("ic_tab_")) { //$NON-NLS-1$ checkSize(context, folderName, file, 32, 32, true /*exact*/); } else if (isNotificationIcon(baseName)) { if (isAndroid30(context, folderVersion)) { checkSize(context, folderName, file, 24, 24, true /*exact*/); } else if (isAndroid23(context, folderVersion)) { checkSize(context, folderName, file, 16, 25, false /*exact*/); } else { checkSize(context, folderName, file, 25, 25, true /*exact*/); if (isAndroid30(context, folderVersion)) { checkSize(context, folderName, file, 32, 32, true); } else if (isAndroid23(context, folderVersion)) { checkSize(context, folderName, file, 48, 48, true /*exact*/);
private boolean isActionBarIcon(Context context, String folderName, String name, File file) { if (isActionBarIcon(folderName, name)) { return true; } // As of Android 3.0 ic_menu_ are action icons //noinspection SimplifiableIfStatement,RedundantIfStatement if (file != null && name.startsWith("ic_menu_") && isAndroid30(context, context.getDriver().getResourceFolderVersion(file))) { // Naming convention return true; } return false; }
checkSize(context, folderName, file, 48, 48, true /*exact*/); } else if (name.startsWith("ic_action_")) { //$NON-NLS-1$ checkSize(context, folderName, file, 24, 24, true /*exact*/); } else if (name.startsWith("ic_dialog_")) { //$NON-NLS-1$ checkSize(context, folderName, file, 32, 32, true /*exact*/); } else if (name.startsWith("ic_tab_")) { //$NON-NLS-1$ checkSize(context, folderName, file, 32, 32, true /*exact*/); } else if (name.startsWith("ic_stat_")) { //$NON-NLS-1$ if (isAndroid30(context, folderVersion)) { checkSize(context, folderName, file, 24, 24, true /*exact*/); } else if (isAndroid23(context, folderVersion)) { checkSize(context, folderName, file, 16, 25, false /*exact*/); } else { checkSize(context, folderName, file, 25, 25, true /*exact*/); if (isAndroid23(context, folderVersion)) { checkSize(context, folderName, file, 48, 48, true /*exact*/); } else { checkSize(context, folderName, file, 48, 48, true /*exact*/);
for (File file : files) { String path = file.getPath(); if (isDrawableFile(path) && !endsWith(path, DOT_XML)) { checkExtension(context, file); String name = file.getName(); if (isDrawableFile(name) && !endsWith(name, DOT_XML) && !endsWith(name, DOT_9PNG)) { String baseName = getBaseName(name); boolean isActionBarIcon = isActionBarIcon(context, baseName, file); if (isActionBarIcon || isNotificationIcon(baseName)) { Dimension size = checkColor(context, file, isActionBarIcon); if (isLauncherIcon(getBaseName(name)) && !endsWith(name, DOT_XML) && !endsWith(name, DOT_9PNG)) { checkLauncherShape(context, file); checkExpectedSizes(context, folder, files); Dimension size = getSize(file); pixelSizes.put(file, size);
File[] files = folder.listFiles(); if (files != null) { checkDrawableDir(context, folder, files, pixelSizes, fileSizes); for (File f : files) { String name = f.getName(); if (isDrawableFile(name)) { names.add(name); for (File f : files) { String name = f.getName(); if (isDrawableFile(name)) { names.add(name); checkDipSizes(context, pixelSizes); checkDuplicates(context, pixelSizes, fileSizes); checkDensities(context, res, folderToNames, nonDpiFolderNames); if (isLauncherIcon(folderName, getBaseName(name))) { continue;
File[] files = folder.listFiles(); if (files != null) { checkDrawableDir(context, folder, files, pixelSizes, fileSizes); for (File f : files) { String name = f.getName(); if (isDrawableFile(name)) { names.add(name); for (File f : files) { String name = f.getName(); if (isDrawableFile(name)) { names.add(name); checkDipSizes(context, pixelSizes); checkDuplicates(context, pixelSizes, fileSizes); checkDensities(context, res, folderToNames, nonDpiFolderNames);
File[] files = folder.listFiles(); if (files != null) { checkDrawableDir(context, folder, files, pixelSizes, fileSizes); for (File f : files) { String name = f.getName(); if (hasBitmapExtension(name)) { names.add(f.getName()); checkDipSizes(context, pixelSizes); checkDuplicates(context, pixelSizes, fileSizes); checkDensities(context, res, folderToNames);
if (isActionBarIcon) { if (folderVersion != -1 && folderVersion < 11 || !isAndroid30(context, folderVersion)) { return null; || !isAndroid23(context, folderVersion) && !isAndroid30(context, folderVersion)) { return null; BufferedImage image = getImage(file); if (image != null) { if (isActionBarIcon) { if (folderVersion >= 11 || isAndroid30(context, folderVersion)) { Location location = Location.create(file); String name = getBaseName(file.getName()); PsiElement usage = notificationIcons != null ? notificationIcons.get(name) : null;
if (isActionBarIcon) { if (folderVersion != -1 && folderVersion < 11 || !isAndroid30(context, folderVersion)) { return null; || !isAndroid23(context, folderVersion) && !isAndroid30(context, folderVersion)) { return null; BufferedImage image = getImage(file); if (image != null) { if (isActionBarIcon) { if (folderVersion >= 11 || isAndroid30(context, folderVersion)) {
checkExpectedSizes(context, folder, files); Dimension size = getSize(file); pixelSizes.put(file, size);
/** * Is this drawable folder for an Android 2.3 drawable? This will be the * case if it specifies -v9 or -v10, or if the minimum SDK version declared in the * manifest is 9 or 10 (and it does not specify some higher version like -v11 */ private boolean isAndroid23(Context context, int folderVersion) { if (isAndroid30(context, folderVersion)) { return false; } if (folderVersion == 9 || folderVersion == 10) { return true; } int minSdk = context.project.getMinSdk(); return minSdk == 9 || minSdk == 10; }
Dimension size = getSize(file); if (size != null) { if (exactMatch && size.width != width || size.height != height) {
int count = 0; for (File file : files) { float factor = getMdpiScalingFactor(file.getParentFile().getName()); if (factor > 0) { Dimension size = pixelSizes.get(file);
for (File file : files) { String path = file.getPath(); if (isDrawableFile(path) && !endsWith(path, DOT_XML)) { checkExtension(context, file); if (isDrawableFile(name) && !endsWith(name, DOT_XML) && !endsWith(name, DOT_9PNG)) { String baseName = getBaseName(name); boolean isActionBarIcon = isActionBarIcon(context, folderName, baseName, file); if (isActionBarIcon || isNotificationIcon(baseName)) { Dimension size = checkColor(context, file, isActionBarIcon); for (File file : files) { String name = file.getName(); if (isLauncherIcon(folderName, getBaseName(name))) { if (checkLauncherShape && !endsWith(name, DOT_XML) && !endsWith(name, DOT_9PNG)) { checkLauncherShape(context, folderName, file); checkLauncherIconFormat(context, file); checkExpectedSizes(context, folder, files); Dimension size = getSize(file); pixelSizes.put(file, size); checkWebpSupported(context, files);
private boolean isActionBarIcon(Context context, String name, File file) { if (isActionBarIcon(name)) { return true; } // As of Android 3.0 ic_menu_ are action icons //noinspection SimplifiableIfStatement,RedundantIfStatement if (file != null && name.startsWith("ic_menu_") //$NON-NLS-1$ && isAndroid30(context, context.getDriver().getResourceFolderVersion(file))) { // Naming convention return true; } return false; }
/** * Is this drawable folder for an Android 2.3 drawable? This will be the * case if it specifies -v9 or -v10, or if the minimum SDK version declared in the * manifest is 9 or 10 (and it does not specify some higher version like -v11 */ private static boolean isAndroid23(Context context, int folderVersion) { if (isAndroid30(context, folderVersion)) { return false; } if (folderVersion == 9 || folderVersion == 10) { return true; } int minSdk = context.getMainProject().getMinSdk(); return minSdk == 9 || minSdk == 10; }
Dimension size = getSize(file); if (size != null) { if (exactMatch && (size.width != width || size.height != height)) {
float factor = getMdpiScalingFactor(folderName); if (factor > 0) { Dimension size = pixelSizes.get(file);
String baseName = getBaseName(name); if (isLauncherIcon(folderName, baseName)) { checkSize(context, folderName, file, 48, 48, true, /*exact*/folderConfig); } else if (isActionBarIcon(folderName, baseName)) { checkSize(context, folderName, file, 32, 32, true, /*exact*/folderConfig); } else if (name.startsWith("ic_dialog_")) { checkSize(context, folderName, file, 32, 32, true, /*exact*/folderConfig); } else if (name.startsWith("ic_tab_")) { checkSize(context, folderName, file, 32, 32, true, /*exact*/folderConfig); } else if (isNotificationIcon(baseName)) { if (isAndroid30(context, folderVersion)) { checkSize(context, folderName, file, 24, 24, true, /*exact*/folderConfig); } else if (isAndroid23(context, folderVersion)) { checkSize(context, folderName, file, 16, 25, false, /*exact*/folderConfig); } else { checkSize(context, folderName, file, 25, 25, true, /*exact*/folderConfig); if (isAndroid30(context, folderVersion)) { checkSize(context, folderName, file, 32, 32, true, folderConfig); } else if (isAndroid23(context, folderVersion)) { checkSize(context, folderName, file, 48, 48, true, /*exact*/folderConfig);
/** * Is this drawable folder for an Android 2.3 drawable? This will be the * case if it specifies -v9 or -v10, or if the minimum SDK version declared in the * manifest is 9 or 10 (and it does not specify some higher version like -v11 */ private static boolean isAndroid23(Context context, int folderVersion) { if (isAndroid30(context, folderVersion)) { return false; } if (folderVersion == 9 || folderVersion == 10) { return true; } int minSdk = context.getMainProject().getMinSdk(); return minSdk == 9 || minSdk == 10; }