analyzeImages method
List<ImageEntityStatistics>
analyzeImages({
- bool ignoreDynamicAssets = false,
- required List<
ImageEntityStatistics> imageEntities, - required List<
FileSystemEntity> configureEntities, - required List<
FileSystemEntity> libEntites,
Implementation
List<ImageEntityStatistics> analyzeImages({
bool ignoreDynamicAssets = false,
required List<ImageEntityStatistics> imageEntities,
required List<FileSystemEntity> configureEntities,
required List<FileSystemEntity> libEntites,
}) {
for (var codeEntity in [...configureEntities, ...libEntites]) {
if (codeEntity is File) {
String fileString = codeEntity.readAsStringSync();
for (var imageEntity in imageEntities) {
String? imageName = imageEntity.entity.name;
String? imageFileName = imageEntity.entity.fileName;
String? extensionName = imageEntity.entity.ext;
if (imageName != null) {
if (fileString.contains(imageName)) {
imageEntity.refered++;
} else if (imageFileName != null &&
fileString.contains(imageFileName)) {
// Some file seperate the file with it file fomat
imageEntity.refered++;
} else if (!ignoreDynamicAssets) {
// For the image like account_vip$vipLvl.webp
if (numberRegex.hasMatch(imageName)) {
// If the path of image container number
String replacedPattern = imageName.splitMapJoin(numberRegex,
onMatch: (s) => stringInterpolationPattern);
RegExp imagePathRegex = RegExp(replacedPattern);
if (imagePathRegex.hasMatch(fileString)) {
imageEntity.refered++;
}
} else if (extensionName != null &&
imageFileName != null &&
fileString.contains(extensionName)) {
// "nav_arrow_${show ? 'up' : 'down'}.webp"
var lines = imageStringRegex.allMatches(fileString);
for (var line in lines) {
var imgPath = line[0];
if (imgPath != null && imgPath.contains(extensionName)) {
RegExp fuzzyRegex = RegExp(stringInterpolationPattern);
imgPath = imgPath.replaceAll(quoteRegex, '');
List<String> splitStrings = imgPath.split(fuzzyRegex);
if (splitStrings.every((str) => imageName.contains(str))) {
imageEntity.refered++;
}
}
}
}
}
} else {
printError('Name not exists: ${imageEntity.entity.name}');
}
}
}
}
imageEntities.sort((a, b) => b.refered.compareTo(a.refered));
return imageEntities;
}