public static void DisableLibstAtPath(string path) { List <string> files = SA_AssetDatabase.FindAssetsWithExtentions(path); for (int i = 0; i < files.Count; i++) { var filePath = files[i]; //Make sure this is not a folder if (SA_AssetDatabase.IsValidFolder(filePath)) { continue; } //Already disabled if (SA_AssetDatabase.GetExtension(filePath).Equals(DISABLED_LIB_EXTENSION)) { continue; } string newFilePath; newFilePath = filePath + DISABLED_LIB_EXTENSION; float progress = (float)(i + 1) / (float)files.Count; string fileName = SA_AssetDatabase.GetFileName(newFilePath); EditorUtility.DisplayProgressBar("Stan's Assets.", "Packing: " + fileName, progress); SA_AssetDatabase.MoveAsset(filePath, newFilePath); SA_AssetDatabase.ImportAsset(newFilePath); } EditorUtility.ClearProgressBar(); }
public static void EnableLibsAtPath(string path) { List <string> files = SA_AssetDatabase.FindAssetsWithExtentions(path); for (int i = 0; i < files.Count; i++) { var file = files[i]; //Make sure this is not a folder if (SA_AssetDatabase.IsValidFolder(file)) { continue; } if (SA_AssetDatabase.GetExtension(file).Equals(DISABLED_LIB_EXTENSION)) { string newFileName = file.Replace(DISABLED_LIB_EXTENSION, string.Empty); string fileName = SA_AssetDatabase.GetFileName(newFileName); float progress = (float)(i + 1) / (float)files.Count; EditorUtility.DisplayProgressBar("Stan's Assets.", "Installing: " + fileName, progress); SA_AssetDatabase.MoveAsset(file, newFileName); SA_AssetDatabase.ImportAsset(newFileName); } } EditorUtility.ClearProgressBar(); }
private static void ResolveBinaryLibs(AN_AndroidBuildRequirements requirements) { if (AN_Settings.Instance.UseUnityJarResolver) { AN_Dependencies.Resolve(requirements.BinaryDependencies); SA_AssetDatabase.DeleteAsset(AN_Settings.ANDROID_MAVEN_FOLDER); } else { AN_Dependencies.Resolve(new List <AN_BinaryDependency>()); List <string> repositorysToAdd = new List <string>(); List <string> repositorysToRemove = new List <string>(); List <string> mavenLibs = SA_AssetDatabase.FindAssetsWithExtentions(AN_Settings.ANDROID_MAVEN_FOLDER); foreach (var lib in mavenLibs) { //we are only interested in folder, we also assume all folders are located inside a root folder if (!SA_AssetDatabase.IsValidFolder(lib)) { continue; } string libName = SA_AssetDatabase.GetFileName(lib); if (!requirements.HasBinaryDependency(libName)) { repositorysToRemove.Add(libName); } } foreach (var dep in requirements.BinaryDependencies) { string libPath = AN_Settings.ANDROID_MAVEN_FOLDER + dep.GetLocalRepositoryName(); if (!SA_AssetDatabase.IsDirectoryExists(libPath)) { string localRepositoryName = dep.GetLocalRepositoryName(); if (!repositorysToAdd.Contains(localRepositoryName)) { repositorysToAdd.Add(localRepositoryName); } } } SA_PluginsEditor.UninstallLibs(AN_Settings.ANDROID_MAVEN_FOLDER, repositorysToRemove); foreach (var lib in repositorysToAdd) { string source = AN_Settings.ANDROID_MAVEN_FOLDER_DISABLED + lib; string destination = AN_Settings.ANDROID_MAVEN_FOLDER + lib; SA_PluginsEditor.InstallLibFolder(source, destination); } } }
public void SaveManifest() { #if !(UNITY_WP8 || UNITY_METRO) if (!SA_AssetDatabase.IsFileExists(m_path)) { string m_folderPath = SA_PathUtil.GetDirectoryPath(m_path); if (!SA_AssetDatabase.IsValidFolder(m_folderPath)) { SA_AssetDatabase.CreateFolder(m_folderPath); } } XmlDocument newDoc = new XmlDocument(); //Create XML header XmlNode docNode = newDoc.CreateXmlDeclaration("1.0", "UTF-8", null); newDoc.AppendChild(docNode); XmlElement child = newDoc.CreateElement("manifest"); child.SetAttribute("xmlns:android", "http://schemas.android.com/apk/res/android"); child.SetAttribute("xmlns:tools", "http://schemas.android.com/tools"); child.SetAttribute("package", "com.stansassets.androidnative"); m_template.ToXmlElement(newDoc, child); newDoc.AppendChild(child); newDoc.Save(SA_PathUtil.ConvertRelativeToAbsolutePath(m_path)); //Replace 'android___' pattern with 'android:' TextReader reader = new StreamReader(SA_PathUtil.ConvertRelativeToAbsolutePath(m_path)); string src = reader.ReadToEnd(); string pattern = @"android___"; string replacement = "android:"; Regex regex = new Regex(pattern); src = regex.Replace(src, replacement); pattern = @"tools___"; replacement = "tools:"; regex = new Regex(pattern); src = regex.Replace(src, replacement); reader.Close(); TextWriter writer = new StreamWriter(SA_PathUtil.ConvertRelativeToAbsolutePath(m_path)); writer.Write(src); writer.Close(); AssetDatabase.Refresh(); #endif }
private static void ResolveXMLConfig(List <string> dependencies) { //Clean up file if we have no Dependencies if (dependencies.Count == 0) { if (SA_AssetDatabase.IsDirectoryExists(AN_Settings.DEPENDENCIES_FOLDER)) { SA_AssetDatabase.DeleteAsset(AN_Settings.DEPENDENCIES_FOLDER); } s_activeDependencies = new List <string>(); return; } if (IsEqualsToActiveDependencies(dependencies)) { return; } if (!SA_AssetDatabase.IsValidFolder(AN_Settings.DEPENDENCIES_FOLDER)) { SA_AssetDatabase.CreateFolder(AN_Settings.DEPENDENCIES_FOLDER); } var doc = new XmlDocument(); var dependenciesElement = doc.CreateElement("dependencies"); var androidPackagesElement = doc.CreateElement("androidPackages"); foreach (var dependency in dependencies) { var androidPackage = doc.CreateElement("androidPackage"); var spec = doc.CreateAttribute("spec"); spec.Value = dependency; androidPackage.Attributes.Append(spec); androidPackagesElement.AppendChild(androidPackage); } dependenciesElement.AppendChild(androidPackagesElement); doc.AppendChild(dependenciesElement); doc.Save(SA_PathUtil.ConvertRelativeToAbsolutePath(AN_Settings.DEPENDENCIES_FILE_PATH)); SA_AssetDatabase.ImportAsset(AN_Settings.DEPENDENCIES_FILE_PATH); s_activeDependencies = ReadDependencies(); }
public static void SaveManifest() { #if !(UNITY_WP8 || UNITY_METRO) if (!SA_AssetDatabase.IsFileExists(AMM_Settings.MANIFEST_FILE_PATH)) { //Make sure we have a folder if (!SA_AssetDatabase.IsValidFolder(AMM_Settings.MANIFEST_FOLDER_PATH)) { SA_AssetDatabase.CreateFolder(AMM_Settings.MANIFEST_FOLDER_PATH); } } XmlDocument newDoc = new XmlDocument(); //Create XML header XmlNode docNode = newDoc.CreateXmlDeclaration("1.0", "UTF-8", null); newDoc.AppendChild(docNode); XmlElement child = newDoc.CreateElement("manifest"); s_template.ToXmlElement(newDoc, child); newDoc.AppendChild(child); newDoc.Save(SA_PathUtil.ConvertRelativeToAbsolutePath(AMM_Settings.MANIFEST_FILE_PATH)); //Replace 'android___' pattern with 'android:' TextReader reader = new StreamReader(SA_PathUtil.ConvertRelativeToAbsolutePath(AMM_Settings.MANIFEST_FILE_PATH)); string src = reader.ReadToEnd(); string pattern = @"android___"; string replacement = "android:"; Regex regex = new Regex(pattern); src = regex.Replace(src, replacement); pattern = @"tools___"; replacement = "tools:"; regex = new Regex(pattern); src = regex.Replace(src, replacement); reader.Close(); TextWriter writer = new StreamWriter(SA_PathUtil.ConvertRelativeToAbsolutePath(AMM_Settings.MANIFEST_FILE_PATH)); writer.Write(src); writer.Close(); AssetDatabase.Refresh(); #endif }