Fix compilation IntelliJLintClient, IntelliJLintProject, IDEAndroidLayoutXmlFileManager

This commit is contained in:
Yan Zhulanow
2016-12-13 19:50:59 +03:00
committed by Nikolay Krasko
parent c07096c9d7
commit a142c2f8fa
3 changed files with 30 additions and 29 deletions
@@ -17,7 +17,7 @@
package org.jetbrains.kotlin.android.synthetic.idea.res package org.jetbrains.kotlin.android.synthetic.idea.res
import com.android.builder.model.SourceProvider import com.android.builder.model.SourceProvider
import com.android.tools.idea.gradle.AndroidGradleModel import com.android.tools.idea.gradle.project.model.AndroidModuleModel
import com.intellij.openapi.module.Module import com.intellij.openapi.module.Module
import com.intellij.openapi.roots.ProjectRootModificationTracker import com.intellij.openapi.roots.ProjectRootModificationTracker
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
@@ -126,7 +126,7 @@ class IDEAndroidLayoutXmlFileManager(val module: Module) : AndroidLayoutXmlFileM
sourceProviders?.map { it.toVariant() } ?: listOf() sourceProviders?.map { it.toVariant() } ?: listOf()
} }
else { else {
val model = AndroidGradleModel.get(androidFacet.module) val model = AndroidModuleModel.get(androidFacet.module)
model?.flavorSourceProviders?.map { it.toVariant() } ?: listOf(androidFacet.mainSourceProvider.toVariant()) model?.flavorSourceProviders?.map { it.toVariant() } ?: listOf(androidFacet.mainSourceProvider.toVariant())
} }
@@ -143,7 +143,7 @@ class IDEAndroidLayoutXmlFileManager(val module: Module) : AndroidLayoutXmlFileM
val allResDirectories = androidFacet.getAppResources(true)?.resourceDirs.orEmpty().mapNotNull { it.canonicalPath } val allResDirectories = androidFacet.getAppResources(true)?.resourceDirs.orEmpty().mapNotNull { it.canonicalPath }
val resDirectoriesForMainVariant = androidFacet.run { val resDirectoriesForMainVariant = androidFacet.run {
val resDirsFromSourceProviders = AndroidGradleModel.get(this.module)?.allSourceProviders.orEmpty() val resDirsFromSourceProviders = AndroidModuleModel.get(this.module)?.allSourceProviders.orEmpty()
.filter { it.name != "main" } .filter { it.name != "main" }
.flatMap { it.resDirectories } .flatMap { it.resDirectories }
.map { it.canonicalPath } .map { it.canonicalPath }
@@ -153,7 +153,7 @@ class IDEAndroidLayoutXmlFileManager(val module: Module) : AndroidLayoutXmlFileM
val variants = mutableListOf(AndroidVariant("main", resDirectoriesForMainVariant)) val variants = mutableListOf(AndroidVariant("main", resDirectoriesForMainVariant))
AndroidGradleModel.get(androidFacet.module)?.let { androidGradleModel -> AndroidModuleModel.get(androidFacet.module)?.let { androidGradleModel ->
androidGradleModel.activeSourceProviders.filter { it.name != "main" }.forEach { sourceProvider -> androidGradleModel.activeSourceProviders.filter { it.name != "main" }.forEach { sourceProvider ->
variants += sourceProvider.toVariant() variants += sourceProvider.toVariant()
} }
@@ -9,6 +9,7 @@ import com.android.ide.common.res2.ResourceFile;
import com.android.ide.common.res2.ResourceItem; import com.android.ide.common.res2.ResourceItem;
import com.android.sdklib.repository.AndroidSdkHandler; import com.android.sdklib.repository.AndroidSdkHandler;
import com.android.tools.idea.gradle.util.Projects; import com.android.tools.idea.gradle.util.Projects;
import com.android.tools.idea.project.AndroidProjectInfo;
import com.android.tools.idea.res.AppResourceRepository; import com.android.tools.idea.res.AppResourceRepository;
import com.android.tools.idea.res.LocalResourceRepository; import com.android.tools.idea.res.LocalResourceRepository;
import com.android.tools.idea.sdk.IdeSdks; import com.android.tools.idea.sdk.IdeSdks;
@@ -329,7 +330,7 @@ public class IntellijLintClient extends LintClient implements Disposable {
} }
} }
return IdeSdks.getAndroidSdkPath(); return IdeSdks.getInstance().getAndroidSdkPath();
} }
@Nullable @Nullable
@@ -380,7 +381,7 @@ public class IntellijLintClient extends LintClient implements Disposable {
AndroidFacet facet = AndroidFacet.getInstance(module); AndroidFacet facet = AndroidFacet.getInstance(module);
return facet != null && facet.requiresAndroidModel(); return facet != null && facet.requiresAndroidModel();
} }
return Projects.requiresAndroidModel(myProject); return AndroidProjectInfo.getInstance(this.myProject).requiresAndroidModel();
} }
// Overridden such that lint doesn't complain about missing a bin dir property in the event // Overridden such that lint doesn't complain about missing a bin dir property in the event
@@ -19,7 +19,7 @@ import com.android.annotations.NonNull;
import com.android.builder.model.*; import com.android.builder.model.*;
import com.android.sdklib.AndroidTargetHash; import com.android.sdklib.AndroidTargetHash;
import com.android.sdklib.AndroidVersion; import com.android.sdklib.AndroidVersion;
import com.android.tools.idea.gradle.AndroidGradleModel; import com.android.tools.idea.gradle.project.model.AndroidModuleModel;
import com.android.tools.idea.gradle.util.GradleUtil; import com.android.tools.idea.gradle.util.GradleUtil;
import com.android.tools.idea.model.AndroidModel; import com.android.tools.idea.model.AndroidModel;
import com.android.tools.idea.model.AndroidModuleInfo; import com.android.tools.idea.model.AndroidModuleInfo;
@@ -257,9 +257,9 @@ class IntellijLintProject extends Project {
AndroidFacet facet = AndroidFacet.getInstance(module); AndroidFacet facet = AndroidFacet.getInstance(module);
if (facet != null) { if (facet != null) {
AndroidGradleModel androidGradleModel = AndroidGradleModel.get(facet); AndroidModuleModel androidModuleModel = AndroidModuleModel.get(facet);
if (androidGradleModel != null) { if (androidModuleModel != null) {
addGradleLibraryProjects(client, files, libraryMap, projects, facet, androidGradleModel, project, projectMap, dependencies); addGradleLibraryProjects(client, files, libraryMap, projects, facet, androidModuleModel, project, projectMap, dependencies);
} }
} }
@@ -320,8 +320,8 @@ class IntellijLintProject extends Project {
} }
else if (facet.requiresAndroidModel()) { else if (facet.requiresAndroidModel()) {
AndroidModel androidModel = facet.getAndroidModel(); AndroidModel androidModel = facet.getAndroidModel();
if (androidModel instanceof AndroidGradleModel) { if (androidModel instanceof AndroidModuleModel) {
project = new LintGradleProject(client, dir, dir, facet, (AndroidGradleModel)androidModel); project = new LintGradleProject(client, dir, dir, facet, (AndroidModuleModel)androidModel);
} else { } else {
project = new LintAndroidModelProject(client, dir, dir, facet, androidModel); project = new LintAndroidModelProject(client, dir, dir, facet, androidModel);
} }
@@ -358,11 +358,11 @@ class IntellijLintProject extends Project {
@NonNull Map<AndroidLibrary, Project> libraryMap, @NonNull Map<AndroidLibrary, Project> libraryMap,
@NonNull List<Project> projects, @NonNull List<Project> projects,
@NonNull AndroidFacet facet, @NonNull AndroidFacet facet,
@NonNull AndroidGradleModel androidGradleModel, @NonNull AndroidModuleModel AndroidModuleModel,
@NonNull LintModuleProject project, @NonNull LintModuleProject project,
@NonNull Map<Project,Module> projectMap, @NonNull Map<Project,Module> projectMap,
@NonNull List<Project> dependencies) { @NonNull List<Project> dependencies) {
Collection<AndroidLibrary> libraries = androidGradleModel.getMainArtifact().getDependencies().getLibraries(); Collection<AndroidLibrary> libraries = AndroidModuleModel.getMainArtifact().getDependencies().getLibraries();
for (AndroidLibrary library : libraries) { for (AndroidLibrary library : libraries) {
Project p = libraryMap.get(library); Project p = libraryMap.get(library);
if (p == null) { if (p == null) {
@@ -705,7 +705,7 @@ class IntellijLintProject extends Project {
} }
private static class LintGradleProject extends LintAndroidModelProject { private static class LintGradleProject extends LintAndroidModelProject {
private final AndroidGradleModel myAndroidGradleModel; private final AndroidModuleModel myAndroidModuleModel;
/** /**
* Creates a new Project. Use one of the factory methods to create. * Creates a new Project. Use one of the factory methods to create.
@@ -715,11 +715,11 @@ class IntellijLintProject extends Project {
@NonNull File dir, @NonNull File dir,
@NonNull File referenceDir, @NonNull File referenceDir,
@NonNull AndroidFacet facet, @NonNull AndroidFacet facet,
@NonNull AndroidGradleModel androidGradleModel) { @NonNull AndroidModuleModel AndroidModuleModel) {
super(client, dir, referenceDir, facet, androidGradleModel); super(client, dir, referenceDir, facet, AndroidModuleModel);
mGradleProject = true; mGradleProject = true;
mMergeManifests = true; mMergeManifests = true;
myAndroidGradleModel = androidGradleModel; myAndroidModuleModel = AndroidModuleModel;
} }
@NonNull @NonNull
@@ -732,7 +732,7 @@ class IntellijLintProject extends Project {
mManifestFiles.add(mainManifest); mManifestFiles.add(mainManifest);
} }
List<SourceProvider> flavorSourceProviders = myAndroidGradleModel.getFlavorSourceProviders(); List<SourceProvider> flavorSourceProviders = myAndroidModuleModel.getFlavorSourceProviders();
if (flavorSourceProviders != null) { if (flavorSourceProviders != null) {
for (SourceProvider provider : flavorSourceProviders) { for (SourceProvider provider : flavorSourceProviders) {
File manifestFile = provider.getManifestFile(); File manifestFile = provider.getManifestFile();
@@ -742,7 +742,7 @@ class IntellijLintProject extends Project {
} }
} }
SourceProvider multiProvider = myAndroidGradleModel.getMultiFlavorSourceProvider(); SourceProvider multiProvider = myAndroidModuleModel.getMultiFlavorSourceProvider();
if (multiProvider != null) { if (multiProvider != null) {
File manifestFile = multiProvider.getManifestFile(); File manifestFile = multiProvider.getManifestFile();
if (manifestFile.exists()) { if (manifestFile.exists()) {
@@ -750,7 +750,7 @@ class IntellijLintProject extends Project {
} }
} }
SourceProvider buildTypeSourceProvider = myAndroidGradleModel.getBuildTypeSourceProvider(); SourceProvider buildTypeSourceProvider = myAndroidModuleModel.getBuildTypeSourceProvider();
if (buildTypeSourceProvider != null) { if (buildTypeSourceProvider != null) {
File manifestFile = buildTypeSourceProvider.getManifestFile(); File manifestFile = buildTypeSourceProvider.getManifestFile();
if (manifestFile.exists()) { if (manifestFile.exists()) {
@@ -758,7 +758,7 @@ class IntellijLintProject extends Project {
} }
} }
SourceProvider variantProvider = myAndroidGradleModel.getVariantSourceProvider(); SourceProvider variantProvider = myAndroidModuleModel.getVariantSourceProvider();
if (variantProvider != null) { if (variantProvider != null) {
File manifestFile = variantProvider.getManifestFile(); File manifestFile = variantProvider.getManifestFile();
if (manifestFile.exists()) { if (manifestFile.exists()) {
@@ -794,7 +794,7 @@ class IntellijLintProject extends Project {
if (mProguardFiles == null) { if (mProguardFiles == null) {
if (myFacet.requiresAndroidModel()) { if (myFacet.requiresAndroidModel()) {
// TODO: b/22928250 // TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet); AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (androidModel != null) { if (androidModel != null) {
ProductFlavor flavor = androidModel.getAndroidProject().getDefaultConfig().getProductFlavor(); ProductFlavor flavor = androidModel.getAndroidProject().getDefaultConfig().getProductFlavor();
mProguardFiles = Lists.newArrayList(); mProguardFiles = Lists.newArrayList();
@@ -833,7 +833,7 @@ class IntellijLintProject extends Project {
// Overridden because we don't synchronize the gradle output directory to // Overridden because we don't synchronize the gradle output directory to
// the AndroidDexCompiler settings the way java source roots are mapped into // the AndroidDexCompiler settings the way java source roots are mapped into
// the module content root settings // the module content root settings
File dir = myAndroidGradleModel.getMainArtifact().getClassesFolder(); File dir = myAndroidModuleModel.getMainArtifact().getClassesFolder();
if (dir != null) { if (dir != null) {
mJavaClassFolders = Collections.singletonList(dir); mJavaClassFolders = Collections.singletonList(dir);
} else { } else {
@@ -855,7 +855,7 @@ class IntellijLintProject extends Project {
if (SUPPORT_CLASS_FILES) { if (SUPPORT_CLASS_FILES) {
if (mJavaLibraries == null) { if (mJavaLibraries == null) {
if (myFacet.requiresAndroidModel() && myFacet.getAndroidModel() != null) { if (myFacet.requiresAndroidModel() && myFacet.getAndroidModel() != null) {
Collection<JavaLibrary> libs = myAndroidGradleModel.getMainArtifact().getDependencies().getJavaLibraries(); Collection<JavaLibrary> libs = myAndroidModuleModel.getMainArtifact().getDependencies().getJavaLibraries();
mJavaLibraries = Lists.newArrayListWithExpectedSize(libs.size()); mJavaLibraries = Lists.newArrayListWithExpectedSize(libs.size());
for (JavaLibrary lib : libs) { for (JavaLibrary lib : libs) {
if (!includeProvided) { if (!includeProvided) {
@@ -892,7 +892,7 @@ class IntellijLintProject extends Project {
@Override @Override
public int getBuildSdk() { public int getBuildSdk() {
// TODO: b/22928250 // TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet); AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (androidModel != null) { if (androidModel != null) {
String compileTarget = androidModel.getAndroidProject().getCompileTarget(); String compileTarget = androidModel.getAndroidProject().getCompileTarget();
AndroidVersion version = AndroidTargetHash.getPlatformVersion(compileTarget); AndroidVersion version = AndroidTargetHash.getPlatformVersion(compileTarget);
@@ -913,7 +913,7 @@ class IntellijLintProject extends Project {
@Override @Override
public AndroidProject getGradleProjectModel() { public AndroidProject getGradleProjectModel() {
// TODO: b/22928250 // TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet); AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (androidModel != null) { if (androidModel != null) {
return androidModel.getAndroidProject(); return androidModel.getAndroidProject();
} }
@@ -925,7 +925,7 @@ class IntellijLintProject extends Project {
@Override @Override
public Variant getCurrentVariant() { public Variant getCurrentVariant() {
// TODO: b/22928250 // TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet); AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (androidModel != null) { if (androidModel != null) {
return androidModel.getSelectedVariant(); return androidModel.getSelectedVariant();
} }
@@ -943,7 +943,7 @@ class IntellijLintProject extends Project {
@Override @Override
public Boolean dependsOn(@NonNull String artifact) { public Boolean dependsOn(@NonNull String artifact) {
// TODO: b/22928250 // TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet); AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (SUPPORT_LIB_ARTIFACT.equals(artifact)) { if (SUPPORT_LIB_ARTIFACT.equals(artifact)) {
if (mSupportLib == null) { if (mSupportLib == null) {