Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Use the original resource name (if available).
 /// </summary>
 private string UnfixResourceName(string key)
 {
     if (key.StartsWith(androidPrefix))
     {
         key = key.Substring(androidPrefix.Length);
     }
     var pair = resources.FirstOrDefault(x => ResourceExtensions.GetNormalizedResourceName(x.Item1, ResourceType.Unknown) == key);
     return (pair != null) ? ConfigurationQualifiers.StripQualifiers(pair.Item1, true, false) : key.Replace(' ', '_');
 }
Ejemplo n.º 3
0
        /// <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;
        }
Ejemplo n.º 4
0
        /// <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));
        }