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
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.roots.ProjectRootModificationTracker
import com.intellij.psi.PsiElement
@@ -126,7 +126,7 @@ class IDEAndroidLayoutXmlFileManager(val module: Module) : AndroidLayoutXmlFileM
sourceProviders?.map { it.toVariant() } ?: listOf()
}
else {
val model = AndroidGradleModel.get(androidFacet.module)
val model = AndroidModuleModel.get(androidFacet.module)
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 resDirectoriesForMainVariant = androidFacet.run {
val resDirsFromSourceProviders = AndroidGradleModel.get(this.module)?.allSourceProviders.orEmpty()
val resDirsFromSourceProviders = AndroidModuleModel.get(this.module)?.allSourceProviders.orEmpty()
.filter { it.name != "main" }
.flatMap { it.resDirectories }
.map { it.canonicalPath }
@@ -153,7 +153,7 @@ class IDEAndroidLayoutXmlFileManager(val module: Module) : AndroidLayoutXmlFileM
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 ->
variants += sourceProvider.toVariant()
}
@@ -9,6 +9,7 @@ import com.android.ide.common.res2.ResourceFile;
import com.android.ide.common.res2.ResourceItem;
import com.android.sdklib.repository.AndroidSdkHandler;
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.LocalResourceRepository;
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
@@ -380,7 +381,7 @@ public class IntellijLintClient extends LintClient implements Disposable {
AndroidFacet facet = AndroidFacet.getInstance(module);
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
@@ -19,7 +19,7 @@ import com.android.annotations.NonNull;
import com.android.builder.model.*;
import com.android.sdklib.AndroidTargetHash;
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.model.AndroidModel;
import com.android.tools.idea.model.AndroidModuleInfo;
@@ -257,9 +257,9 @@ class IntellijLintProject extends Project {
AndroidFacet facet = AndroidFacet.getInstance(module);
if (facet != null) {
AndroidGradleModel androidGradleModel = AndroidGradleModel.get(facet);
if (androidGradleModel != null) {
addGradleLibraryProjects(client, files, libraryMap, projects, facet, androidGradleModel, project, projectMap, dependencies);
AndroidModuleModel androidModuleModel = AndroidModuleModel.get(facet);
if (androidModuleModel != null) {
addGradleLibraryProjects(client, files, libraryMap, projects, facet, androidModuleModel, project, projectMap, dependencies);
}
}
@@ -320,8 +320,8 @@ class IntellijLintProject extends Project {
}
else if (facet.requiresAndroidModel()) {
AndroidModel androidModel = facet.getAndroidModel();
if (androidModel instanceof AndroidGradleModel) {
project = new LintGradleProject(client, dir, dir, facet, (AndroidGradleModel)androidModel);
if (androidModel instanceof AndroidModuleModel) {
project = new LintGradleProject(client, dir, dir, facet, (AndroidModuleModel)androidModel);
} else {
project = new LintAndroidModelProject(client, dir, dir, facet, androidModel);
}
@@ -358,11 +358,11 @@ class IntellijLintProject extends Project {
@NonNull Map<AndroidLibrary, Project> libraryMap,
@NonNull List<Project> projects,
@NonNull AndroidFacet facet,
@NonNull AndroidGradleModel androidGradleModel,
@NonNull AndroidModuleModel AndroidModuleModel,
@NonNull LintModuleProject project,
@NonNull Map<Project,Module> projectMap,
@NonNull List<Project> dependencies) {
Collection<AndroidLibrary> libraries = androidGradleModel.getMainArtifact().getDependencies().getLibraries();
Collection<AndroidLibrary> libraries = AndroidModuleModel.getMainArtifact().getDependencies().getLibraries();
for (AndroidLibrary library : libraries) {
Project p = libraryMap.get(library);
if (p == null) {
@@ -705,7 +705,7 @@ class IntellijLintProject extends Project {
}
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.
@@ -715,11 +715,11 @@ class IntellijLintProject extends Project {
@NonNull File dir,
@NonNull File referenceDir,
@NonNull AndroidFacet facet,
@NonNull AndroidGradleModel androidGradleModel) {
super(client, dir, referenceDir, facet, androidGradleModel);
@NonNull AndroidModuleModel AndroidModuleModel) {
super(client, dir, referenceDir, facet, AndroidModuleModel);
mGradleProject = true;
mMergeManifests = true;
myAndroidGradleModel = androidGradleModel;
myAndroidModuleModel = AndroidModuleModel;
}
@NonNull
@@ -732,7 +732,7 @@ class IntellijLintProject extends Project {
mManifestFiles.add(mainManifest);
}
List<SourceProvider> flavorSourceProviders = myAndroidGradleModel.getFlavorSourceProviders();
List<SourceProvider> flavorSourceProviders = myAndroidModuleModel.getFlavorSourceProviders();
if (flavorSourceProviders != null) {
for (SourceProvider provider : flavorSourceProviders) {
File manifestFile = provider.getManifestFile();
@@ -742,7 +742,7 @@ class IntellijLintProject extends Project {
}
}
SourceProvider multiProvider = myAndroidGradleModel.getMultiFlavorSourceProvider();
SourceProvider multiProvider = myAndroidModuleModel.getMultiFlavorSourceProvider();
if (multiProvider != null) {
File manifestFile = multiProvider.getManifestFile();
if (manifestFile.exists()) {
@@ -750,7 +750,7 @@ class IntellijLintProject extends Project {
}
}
SourceProvider buildTypeSourceProvider = myAndroidGradleModel.getBuildTypeSourceProvider();
SourceProvider buildTypeSourceProvider = myAndroidModuleModel.getBuildTypeSourceProvider();
if (buildTypeSourceProvider != null) {
File manifestFile = buildTypeSourceProvider.getManifestFile();
if (manifestFile.exists()) {
@@ -758,7 +758,7 @@ class IntellijLintProject extends Project {
}
}
SourceProvider variantProvider = myAndroidGradleModel.getVariantSourceProvider();
SourceProvider variantProvider = myAndroidModuleModel.getVariantSourceProvider();
if (variantProvider != null) {
File manifestFile = variantProvider.getManifestFile();
if (manifestFile.exists()) {
@@ -794,7 +794,7 @@ class IntellijLintProject extends Project {
if (mProguardFiles == null) {
if (myFacet.requiresAndroidModel()) {
// TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet);
AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (androidModel != null) {
ProductFlavor flavor = androidModel.getAndroidProject().getDefaultConfig().getProductFlavor();
mProguardFiles = Lists.newArrayList();
@@ -833,7 +833,7 @@ class IntellijLintProject extends Project {
// Overridden because we don't synchronize the gradle output directory to
// the AndroidDexCompiler settings the way java source roots are mapped into
// the module content root settings
File dir = myAndroidGradleModel.getMainArtifact().getClassesFolder();
File dir = myAndroidModuleModel.getMainArtifact().getClassesFolder();
if (dir != null) {
mJavaClassFolders = Collections.singletonList(dir);
} else {
@@ -855,7 +855,7 @@ class IntellijLintProject extends Project {
if (SUPPORT_CLASS_FILES) {
if (mJavaLibraries == 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());
for (JavaLibrary lib : libs) {
if (!includeProvided) {
@@ -892,7 +892,7 @@ class IntellijLintProject extends Project {
@Override
public int getBuildSdk() {
// TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet);
AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (androidModel != null) {
String compileTarget = androidModel.getAndroidProject().getCompileTarget();
AndroidVersion version = AndroidTargetHash.getPlatformVersion(compileTarget);
@@ -913,7 +913,7 @@ class IntellijLintProject extends Project {
@Override
public AndroidProject getGradleProjectModel() {
// TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet);
AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (androidModel != null) {
return androidModel.getAndroidProject();
}
@@ -925,7 +925,7 @@ class IntellijLintProject extends Project {
@Override
public Variant getCurrentVariant() {
// TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet);
AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (androidModel != null) {
return androidModel.getSelectedVariant();
}
@@ -943,7 +943,7 @@ class IntellijLintProject extends Project {
@Override
public Boolean dependsOn(@NonNull String artifact) {
// TODO: b/22928250
AndroidGradleModel androidModel = AndroidGradleModel.get(myFacet);
AndroidModuleModel androidModel = AndroidModuleModel.get(myFacet);
if (SUPPORT_LIB_ARTIFACT.equals(artifact)) {
if (mSupportLib == null) {