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
|
package org.jetbrains.kotlin.idea.core
|
||||||
|
|
||||||
import com.intellij.facet.FacetManager
|
import com.intellij.facet.FacetManager
|
||||||
|
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.project.PlatformModuleInfo
|
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
|
val facets = FacetManager.getInstance(this).allFacets
|
||||||
return facets.any { it.javaClass.simpleName == "AndroidFacet" }
|
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) {
|
private fun Module.configureSdkIfPossible(compilerArguments: CommonCompilerArguments, modelsProvider: IdeModifiableModelsProvider) {
|
||||||
// SDK for Android module is already configured by Android plugin at this point
|
// 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 projectSdk = ProjectRootManager.getInstance(project).projectSdk
|
||||||
val allSdks = ProjectJdkTable.getInstance().allJdks
|
val allSdks = ProjectJdkTable.getInstance().allJdks
|
||||||
|
|||||||
Reference in New Issue
Block a user