Fix compilation IntelliJLintClient, IntelliJLintProject, IDEAndroidLayoutXmlFileManager
This commit is contained in:
committed by
Nikolay Krasko
parent
c07096c9d7
commit
a142c2f8fa
+4
-4
@@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -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
|
||||||
|
|||||||
+23
-23
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user