/// <summary> /// Try to detect the type of item based on the given file. /// </summary> public static bool TryDetectItemType(string path, string frameworkFolder, out string itemType) { itemType = null; var ext = ConfigurationQualifiers.GetExtension(path) ?? string.Empty; switch (ext.ToLower()) { case ".gif": case ".jpg": case ".jpeg": case ".png": case ".9.png": itemType = Dot42Constants.ItemTypeDrawableResource; return(true); case ".axml": itemType = Dot42Constants.ItemTypeLayoutResource; return(true); case ".xml": return(TryDetectXmlItemType(path, frameworkFolder, out itemType)); default: return(false); } }
/// <summary> /// Change the filename based on the given qualifiers /// </summary> private void Save(ConfigurationQualifiers newQualifiers) { var fileName = FileName; var ext = ConfigurationQualifiers.GetExtension(fileName); var name = ConfigurationQualifiers.StripQualifiers(fileName, true, false); // Update filename fileName = name + newQualifiers + ext; FileName = fileName; // Update cache qualifiersFileName = fileName; this.qualifiers = newQualifiers; }
/// <summary> /// A file with the given path has been added to the project. /// See if we have to rename it. /// </summary> public static bool TryGetTargetPath(string sourceResFolder, string targetResFolder, string filePath, out string targetPath, out string itemType) { var relPath = filePath.MakeRelativeTo(sourceResFolder); // If file has a configuration in it's parent directory, rename the file itself. var folder = Path.GetDirectoryName(relPath); if (folder == null) { targetPath = null; itemType = null; return(false); } var folderName = Path.GetFileName(folder); if ((folderName != null) && (folderName.IndexOf('-') > 0)) { var index = folderName.IndexOf('-'); var folderPrefix = folderName.Substring(0, index); var config = folderName.Substring(index); var name = ConfigurationQualifiers.GetFileNameWithoutExtension(relPath); var ext = ConfigurationQualifiers.GetExtension(relPath); var newFolder = Path.Combine(targetResFolder, folderPrefix); targetPath = Path.Combine(newFolder, name + config + ext); } else { // No need to modify the name targetPath = Path.Combine(targetResFolder, relPath); } // Now get the item type. return(TryGetItemType(folderName, out itemType)); }