refactoring: move methods from AndroidSdkUtils to AndroidUtils

This commit is contained in:
Eugene Kudelevsky
2012-03-12 19:17:34 +04:00
parent 4ea9deaa09
commit 7696779cf5
12 changed files with 98 additions and 103 deletions
@@ -20,7 +20,6 @@ import org.jetbrains.android.dom.resources.ResourceElement;
import org.jetbrains.android.dom.resources.Resources;
import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.facet.AndroidRootUtil;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.android.uipreview.DeviceConfiguratorPanel;
import org.jetbrains.android.uipreview.InvalidOptionValueException;
import org.jetbrains.android.util.AndroidBundle;
@@ -61,7 +60,7 @@ public class CreateXmlResourceDialog extends DialogWrapper {
final Set<Module> modulesSet = new HashSet<Module>();
modulesSet.add(module);
for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(module, true)) {
for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(module, true)) {
modulesSet.add(depFacet.getModule());
}
@@ -35,7 +35,6 @@ import org.jetbrains.android.facet.AndroidFacetConfiguration;
import org.jetbrains.android.facet.AndroidRootUtil;
import org.jetbrains.android.maven.AndroidMavenUtil;
import org.jetbrains.android.sdk.AndroidPlatform;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.android.util.AndroidBundle;
import org.jetbrains.android.util.AndroidCommonUtils;
import org.jetbrains.android.util.AndroidUtils;
@@ -265,7 +264,7 @@ public class AndroidAptCompiler implements SourceGeneratingCompiler {
// todo: support this in android-jps
// see IDEA-79737 for details
private static boolean hasBadCircularDependencies(@NotNull AndroidFacet facet) {
final List<AndroidFacet> dependencies = AndroidSdkUtils.getAllAndroidDependencies(facet.getModule(), true);
final List<AndroidFacet> dependencies = AndroidUtils.getAllAndroidDependencies(facet.getModule(), true);
final Manifest manifest = facet.getManifest();
if (manifest == null) {
@@ -285,7 +284,7 @@ public class AndroidAptCompiler implements SourceGeneratingCompiler {
continue;
}
}
final List<AndroidFacet> depDependencies = AndroidSdkUtils.getAllAndroidDependencies(depFacet.getModule(), true);
final List<AndroidFacet> depDependencies = AndroidUtils.getAllAndroidDependencies(depFacet.getModule(), true);
if (depDependencies.contains(facet) &&
dependencies.contains(depFacet) &&
@@ -303,7 +302,7 @@ public class AndroidAptCompiler implements SourceGeneratingCompiler {
final List<String> result = new ArrayList<String>();
for (String libPackage : AndroidSdkUtils.getDepLibsPackages(module)) {
for (String libPackage : AndroidUtils.getDepLibsPackages(module)) {
if (packageSet.add(libPackage)) {
result.add(libPackage);
}
@@ -62,7 +62,6 @@ import org.jetbrains.android.fileTypes.AndroidIdlFileType;
import org.jetbrains.android.fileTypes.AndroidRenderscriptFileType;
import org.jetbrains.android.resourceManagers.LocalResourceManager;
import org.jetbrains.android.sdk.AndroidPlatform;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.android.util.*;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -524,7 +523,7 @@ public class AndroidCompileUtil {
doCollectResourceDirs(facet, collectResCacheDirs, result, context);
for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(facet.getModule(), true)) {
for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(facet.getModule(), true)) {
doCollectResourceDirs(depFacet, collectResCacheDirs, result, context);
}
return ArrayUtil.toStringArray(result);
@@ -32,8 +32,8 @@ import com.intellij.util.containers.HashMap;
import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.facet.AndroidRootUtil;
import org.jetbrains.android.sdk.AndroidPlatform;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.android.util.AndroidBundle;
import org.jetbrains.android.util.AndroidUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -58,7 +58,7 @@ public class AndroidIncludingCompiler implements SourceGeneratingCompiler {
return null;
}
for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(module, true)) {
for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(module, true)) {
String genSrcRootPath = AndroidRootUtil.getAptGenSourceRootPath(depFacet);
VirtualFile genSrcRoot = genSrcRootPath != null ? LocalFileSystem.getInstance().findFileByPath(genSrcRootPath) : null;
VirtualFile[] srcRoots = ModuleRootManager.getInstance(depFacet.getModule()).getSourceRoots();
@@ -90,7 +90,7 @@ public class AndroidIncludingCompiler implements SourceGeneratingCompiler {
}
Map<String, MyItem> qName2Item = new HashMap<String, MyItem>();
for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(module, true)) {
for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(module, true)) {
final AndroidPlatform platform = depFacet.getConfiguration().getAndroidPlatform();
final int platformToolsRevision = platform != null ? platform.getSdkData().getPlatformToolsRevision() : -1;
@@ -34,9 +34,9 @@ import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.facet.AndroidFacetConfiguration;
import org.jetbrains.android.facet.AndroidRootUtil;
import org.jetbrains.android.sdk.AndroidPlatform;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.android.util.AndroidBundle;
import org.jetbrains.android.util.AndroidCommonUtils;
import org.jetbrains.android.util.AndroidUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -173,7 +173,7 @@ public class AndroidPackagingCompiler implements PackagingCompiler {
if (libsDir != null) {
result.add(libsDir);
}
for (AndroidFacet depFacet : AndroidSdkUtils.getAndroidDependencies(facet.getModule(), true)) {
for (AndroidFacet depFacet : AndroidUtils.getAndroidDependencies(facet.getModule(), true)) {
VirtualFile depLibsDir = AndroidRootUtil.getLibsDir(depFacet);
if (depLibsDir != null) {
result.add(depLibsDir);
@@ -34,7 +34,6 @@ import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.facet.AndroidFacetConfiguration;
import org.jetbrains.android.facet.AndroidRootUtil;
import org.jetbrains.android.sdk.AndroidPlatform;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.android.util.AndroidBundle;
import org.jetbrains.android.util.AndroidUtils;
import org.jetbrains.annotations.NotNull;
@@ -103,7 +102,7 @@ public class AndroidResourcesPackagingCompiler implements ClassPostProcessingCom
if (assetsDir != null) {
result.add(FileUtil.toSystemDependentName(assetsDir.getPath()));
}
for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(facet.getModule(), true)) {
for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(facet.getModule(), true)) {
final VirtualFile depAssetsDir = AndroidRootUtil.getAssetsDir(depFacet);
if (depAssetsDir != null) {
@@ -22,7 +22,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.facet.AndroidRootUtil;
import org.jetbrains.android.sdk.AndroidPlatform;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.android.util.AndroidUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -66,7 +66,7 @@ public class ResourcesValidityState implements ValidityState {
if (assetsDir != null) {
collectFiles(assetsDir);
}
for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(module, true)) {
for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(module, true)) {
VirtualFile depManifest = AndroidRootUtil.getManifestFile(depFacet);
if (depManifest != null) {
myResourceTimestamps.put(depManifest.getPath(), depManifest.getTimeStamp());
@@ -576,7 +576,7 @@ public class AndroidFacet extends Facet<AndroidFacetConfiguration> {
private VirtualFile[] collectDependencies() {
final List<VirtualFile> dependenciesList = new ArrayList<VirtualFile>();
for (AndroidFacet depFacet : AndroidSdkUtils.getAndroidDependencies(getModule(), true)) {
for (AndroidFacet depFacet : AndroidUtils.getAndroidDependencies(getModule(), true)) {
final Module depModule = depFacet.getModule();
final VirtualFile libDir = getBaseAndroidContentRoot(depModule);
if (libDir != null) {
@@ -46,7 +46,6 @@ import org.jetbrains.android.dom.resources.ResourceElement;
import org.jetbrains.android.dom.resources.Resources;
import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.facet.AndroidRootUtil;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.android.util.AndroidBundle;
import org.jetbrains.android.util.AndroidResourceUtil;
import org.jetbrains.android.util.AndroidUtils;
@@ -121,7 +120,7 @@ public class LocalResourceManager extends ResourceManager {
if (resDir != null && !result.add(resDir)) {
return;
}
for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(facet.getModule(), false)) {
for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(facet.getModule(), false)) {
collectResourceDirs(depFacet, result, visited);
}
}
@@ -32,7 +32,10 @@ import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.*;
import com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil;
import com.intellij.openapi.roots.*;
import com.intellij.openapi.roots.JavadocOrderRootType;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.roots.libraries.ui.OrderRoot;
import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService;
import com.intellij.openapi.ui.Messages;
@@ -42,7 +45,6 @@ import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.containers.HashSet;
import org.jetbrains.android.actions.AndroidEnableDdmsAction;
import org.jetbrains.android.dom.manifest.Manifest;
import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.facet.AndroidRootUtil;
import org.jetbrains.android.util.AndroidBundle;
@@ -447,83 +449,6 @@ public class AndroidSdkUtils {
return null;
}
@NotNull
public static List<AndroidFacet> getAndroidDependencies(@NotNull Module module, boolean androidLibrariesOnly) {
final List<AndroidFacet> depFacets = new ArrayList<AndroidFacet>();
for (OrderEntry orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) {
if (orderEntry instanceof ModuleOrderEntry) {
final ModuleOrderEntry moduleOrderEntry = (ModuleOrderEntry)orderEntry;
if (moduleOrderEntry.getScope() == DependencyScope.COMPILE) {
final Module depModule = moduleOrderEntry.getModule();
if (depModule != null) {
final AndroidFacet depFacet = AndroidFacet.getInstance(depModule);
if (depFacet != null && (!androidLibrariesOnly || depFacet.getConfiguration().LIBRARY_PROJECT)) {
depFacets.add(depFacet);
}
}
}
}
}
return depFacets;
}
@NotNull
public static List<AndroidFacet> getAllAndroidDependencies(@NotNull Module module, boolean androidLibrariesOnly) {
final List<AndroidFacet> result = new ArrayList<AndroidFacet>();
collectAllAndroidDependencies(module, androidLibrariesOnly, result, new HashSet<AndroidFacet>());
return result;
}
private static void collectAllAndroidDependencies(Module module,
boolean androidLibrariesOnly,
List<AndroidFacet> result,
Set<AndroidFacet> visited) {
for (OrderEntry orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) {
if (orderEntry instanceof ModuleOrderEntry) {
final ModuleOrderEntry moduleOrderEntry = (ModuleOrderEntry)orderEntry;
if (moduleOrderEntry.getScope() == DependencyScope.COMPILE) {
final Module depModule = moduleOrderEntry.getModule();
if (depModule != null) {
final AndroidFacet depFacet = AndroidFacet.getInstance(depModule);
if (depFacet != null &&
(!androidLibrariesOnly || depFacet.getConfiguration().LIBRARY_PROJECT) &&
visited.add(depFacet)) {
collectAllAndroidDependencies(depModule, androidLibrariesOnly, result, visited);
result.add(0, depFacet);
}
}
}
}
}
}
@NotNull
public static Set<String> getDepLibsPackages(Module module) {
final Set<String> result = new HashSet<String>();
final HashSet<Module> visited = new HashSet<Module>();
if (visited.add(module)) {
for (AndroidFacet depFacet : getAllAndroidDependencies(module, true)) {
final Manifest manifest = depFacet.getManifest();
if (manifest != null) {
String aPackage = manifest.getPackage().getValue();
if (aPackage != null) {
result.add(aPackage);
}
}
}
}
return result;
}
@Nullable
public static AndroidDebugBridge getDebugBridge(@NotNull Project project) {
final List<AndroidFacet> facets = ProjectFacetManager.getInstance(project).getFacets(AndroidFacet.ID);
@@ -40,7 +40,6 @@ import org.jetbrains.android.dom.resources.Item;
import org.jetbrains.android.dom.resources.ResourceElement;
import org.jetbrains.android.dom.resources.Resources;
import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -535,7 +534,7 @@ public class AndroidResourceUtil {
return true;
}
for (String aPackage : AndroidSdkUtils.getDepLibsPackages(facet.getModule())) {
for (String aPackage : AndroidUtils.getDepLibsPackages(facet.getModule())) {
if (javaFile.getPackageName().equals(aPackage)) {
return true;
}
@@ -42,8 +42,7 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.*;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.ui.popup.JBPopup;
import com.intellij.openapi.ui.popup.JBPopupFactory;
@@ -637,4 +636,81 @@ public class AndroidUtils {
}
return result;
}
@NotNull
public static List<AndroidFacet> getAndroidDependencies(@NotNull Module module, boolean androidLibrariesOnly) {
final List<AndroidFacet> depFacets = new ArrayList<AndroidFacet>();
for (OrderEntry orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) {
if (orderEntry instanceof ModuleOrderEntry) {
final ModuleOrderEntry moduleOrderEntry = (ModuleOrderEntry)orderEntry;
if (moduleOrderEntry.getScope() == DependencyScope.COMPILE) {
final Module depModule = moduleOrderEntry.getModule();
if (depModule != null) {
final AndroidFacet depFacet = AndroidFacet.getInstance(depModule);
if (depFacet != null && (!androidLibrariesOnly || depFacet.getConfiguration().LIBRARY_PROJECT)) {
depFacets.add(depFacet);
}
}
}
}
}
return depFacets;
}
@NotNull
public static List<AndroidFacet> getAllAndroidDependencies(@NotNull Module module, boolean androidLibrariesOnly) {
final List<AndroidFacet> result = new ArrayList<AndroidFacet>();
collectAllAndroidDependencies(module, androidLibrariesOnly, result, new HashSet<AndroidFacet>());
return result;
}
private static void collectAllAndroidDependencies(Module module,
boolean androidLibrariesOnly,
List<AndroidFacet> result,
Set<AndroidFacet> visited) {
for (OrderEntry orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) {
if (orderEntry instanceof ModuleOrderEntry) {
final ModuleOrderEntry moduleOrderEntry = (ModuleOrderEntry)orderEntry;
if (moduleOrderEntry.getScope() == DependencyScope.COMPILE) {
final Module depModule = moduleOrderEntry.getModule();
if (depModule != null) {
final AndroidFacet depFacet = AndroidFacet.getInstance(depModule);
if (depFacet != null &&
(!androidLibrariesOnly || depFacet.getConfiguration().LIBRARY_PROJECT) &&
visited.add(depFacet)) {
collectAllAndroidDependencies(depModule, androidLibrariesOnly, result, visited);
result.add(0, depFacet);
}
}
}
}
}
}
@NotNull
public static Set<String> getDepLibsPackages(Module module) {
final Set<String> result = new HashSet<String>();
final HashSet<Module> visited = new HashSet<Module>();
if (visited.add(module)) {
for (AndroidFacet depFacet : getAllAndroidDependencies(module, true)) {
final Manifest manifest = depFacet.getManifest();
if (manifest != null) {
String aPackage = manifest.getPackage().getValue();
if (aPackage != null) {
result.add(aPackage);
}
}
}
}
return result;
}
}