Gradle: Retrieve AndroidModuleModel using IdeModifiableModelsProvider

Otherwise it may be null if module is just created by the import
This commit is contained in:
Alexey Sedunov
2018-10-03 17:46:11 +03:00
parent 3a0e539eee
commit d36ee02499
6 changed files with 22 additions and 5 deletions
@@ -78,7 +78,7 @@ class KotlinAndroidGradleMPPModuleDataService : AbstractProjectDataService<Modul
}
}
}
val androidModel = AndroidModuleModel.get(module) ?: continue
val androidModel = module.getAndroidModel(modelsProvider) ?: continue
val variantName = androidModel.selectedVariant.name
val activeSourceSetInfos = nodeToImport.kotlinAndroidSourceSets?.filter { it.kotlinModule.name.startsWith(variantName) } ?: emptyList()
for (activeSourceSetInfo in activeSourceSetInfos) {
@@ -75,7 +75,7 @@ class KotlinAndroidGradleMPPModuleDataService : AbstractProjectDataService<Modul
}
}
}
val androidModel = AndroidModuleModel.get(module) ?: continue
val androidModel = module.getAndroidModel(modelsProvider) ?: continue
val variantName = androidModel.selectedVariant.name
val activeSourceSetInfos = nodeToImport.kotlinAndroidSourceSets?.filter { it.kotlinModule.name.startsWith(variantName) } ?: emptyList()
for (activeSourceSetInfo in activeSourceSetInfos) {
@@ -78,7 +78,7 @@ class KotlinAndroidGradleMPPModuleDataService : AbstractProjectDataService<Modul
}
}
}
val androidModel = AndroidModuleModel.get(module) ?: continue
val androidModel = module.getAndroidModel(modelsProvider) ?: continue
val variantName = androidModel.selectedVariant.name
val activeSourceSetInfos = nodeToImport.kotlinAndroidSourceSets?.filter { it.kotlinModule.name.startsWith(variantName) } ?: emptyList()
for (activeSourceSetInfo in activeSourceSetInfos) {
@@ -89,7 +89,7 @@ class KotlinAndroidGradleMPPModuleDataService : AbstractProjectDataService<Modul
}
}
}
val androidModel = AndroidModuleModel.get(module) ?: continue
val androidModel = module.getAndroidModel(modelsProvider) ?: continue
val variantName = androidModel.selectedVariant.name
val activeSourceSetInfos = nodeToImport.kotlinAndroidSourceSets?.filter { it.kotlinModule.name.startsWith(variantName) } ?: emptyList()
for (activeSourceSetInfo in activeSourceSetInfos) {
@@ -78,7 +78,7 @@ class KotlinAndroidGradleMPPModuleDataService : AbstractProjectDataService<Modul
}
}
}
val androidModel = AndroidModuleModel.get(module) ?: continue
val androidModel = module.getAndroidModel(modelsProvider) ?: continue
val variantName = androidModel.selectedVariant.name
val activeSourceSetInfos = nodeToImport.kotlinAndroidSourceSets?.filter { it.kotlinModule.name.startsWith(variantName) } ?: emptyList()
for (activeSourceSetInfo in activeSourceSetInfos) {
@@ -0,0 +1,17 @@
/*
* 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.android.configure
import com.android.tools.idea.gradle.project.model.AndroidModuleModel
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
import com.intellij.openapi.module.Module
import org.jetbrains.android.facet.AndroidFacet
fun Module.getAndroidModel(modelsProvider: IdeModifiableModelsProvider? = null): AndroidModuleModel? {
if (modelsProvider == null) return AndroidModuleModel.get(this)
val androidFacet = modelsProvider.getModifiableFacetModel(this).getFacetByType(AndroidFacet.getFacetType().id) ?: return null
return AndroidModuleModel.get(androidFacet)
}