Android Extensions: Explicitly check if the Android plugin is enabled (EA-104651)

AndroidGradleOrderEnumerationHandler is defined in gradle.xml that doesn't depend on the Android plugin.
So we need to additionally check if the Android plugin is installed/enabled.
This commit is contained in:
Yan Zhulanow
2018-06-15 17:02:49 +03:00
parent d35a92a81d
commit 4aa7a95055
2 changed files with 15 additions and 2 deletions
@@ -13,9 +13,9 @@ import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.roots.ModuleRootModel
import com.intellij.openapi.roots.OrderRootType
import com.intellij.openapi.vfs.VfsUtilCore
import org.jetbrains.android.facet.AndroidFacet
import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider
import org.jetbrains.kotlin.config.TargetPlatformKind
import org.jetbrains.kotlin.idea.core.isAndroidModule
import org.jetbrains.kotlin.idea.facet.KotlinFacet
import org.jetbrains.plugins.gradle.execution.GradleOrderEnumeratorHandler
import org.jetbrains.plugins.gradle.model.ExternalSourceDirectorySet
@@ -49,7 +49,6 @@ class AndroidGradleOrderEnumerationHandler(module: Module) : GradleOrderEnumerat
KotlinFacet.get(rootModel.module) ?: return false
val module = rootModel.module
fun Module.isAndroidModule() = AndroidFacet.getInstance(this) != null
// The current module has to be an ordinary Java module, but the code below is for Android projects
if (module.isAndroidModule() || ModuleManager.getInstance(module.project).modules.none { it.isAndroidModule() }) {
@@ -0,0 +1,14 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.idea.core
import com.intellij.facet.FacetManager
import com.intellij.openapi.module.Module
fun Module.isAndroidModule(): Boolean {
val facets = FacetManager.getInstance(this).allFacets
return facets.any { it.javaClass.simpleName == "AndroidFacet" }
}