Configuration: Use model provider to access facets
Otherwise newly created Android project may get invalid SDK until the reimport is performed #KT-27193 Fixed
This commit is contained in:
@@ -6,12 +6,14 @@
|
||||
package org.jetbrains.kotlin.idea.core
|
||||
|
||||
import com.intellij.facet.FacetManager
|
||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
||||
import com.intellij.openapi.module.Module
|
||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
||||
import org.jetbrains.kotlin.idea.caches.project.PlatformModuleInfo
|
||||
|
||||
fun Module.isAndroidModule(): Boolean {
|
||||
fun Module.isAndroidModule(modelsProvider: IdeModifiableModelsProvider? = null): Boolean {
|
||||
if (modelsProvider != null) modelsProvider.getModifiableFacetModel(this) else FacetManager.getInstance(this)
|
||||
val facets = FacetManager.getInstance(this).allFacets
|
||||
return facets.any { it.javaClass.simpleName == "AndroidFacet" }
|
||||
}
|
||||
|
||||
@@ -231,7 +231,7 @@ private val CommonCompilerArguments.ignoredFields: List<String>
|
||||
|
||||
private fun Module.configureSdkIfPossible(compilerArguments: CommonCompilerArguments, modelsProvider: IdeModifiableModelsProvider) {
|
||||
// SDK for Android module is already configured by Android plugin at this point
|
||||
if (isAndroidModule()) return
|
||||
if (isAndroidModule(modelsProvider)) return
|
||||
|
||||
val projectSdk = ProjectRootManager.getInstance(project).projectSdk
|
||||
val allSdks = ProjectJdkTable.getInstance().allJdks
|
||||
|
||||
Reference in New Issue
Block a user