From 66e23c9767f8d909102a0cc13bec6cf3967c96a2 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Thu, 18 Jun 2020 17:28:42 +0300 Subject: [PATCH] Floating notification shouldn't be shown during import It depends on up to date check that is correct only after all caches are updated after import --- .../kotlin/idea/scripting/gradle/roots/GradleBuildRoot.kt | 4 ++++ .../idea/scripting/gradle/roots/GradleBuildRootsLocator.kt | 3 +-- .../idea/scripting/gradle/roots/GradleBuildRootsManager.kt | 7 ++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRoot.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRoot.kt index bcce3b1494f..05b2b75c94a 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRoot.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRoot.kt @@ -52,6 +52,10 @@ sealed class GradleBuildRoot( fun fileChanged(filePath: String, ts: Long) { lastModifiedFiles.fileChanged(ts, filePath) } + + fun isImportingInProgress(): Boolean { + return importing.get() != ImportingStatus.updated + } } sealed class WithoutScriptModels( diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsLocator.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsLocator.kt index 34ec8c107d8..677b86f449b 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsLocator.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsLocator.kt @@ -104,8 +104,7 @@ abstract class GradleBuildRootsLocator { } private val importing: Boolean - get() = nearest != null && - nearest.importing.get() != GradleBuildRoot.ImportingStatus.updated + get() = nearest != null && nearest.isImportingInProgress() private val isImported: Boolean get() = script != null diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt index 903fe87eefa..327688ba097 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt @@ -30,7 +30,6 @@ import org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRoot.Importin import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance -import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.jetbrains.plugins.gradle.config.GradleSettingsListenerAdapter import org.jetbrains.plugins.gradle.service.GradleInstallationManager import org.jetbrains.plugins.gradle.settings.* @@ -91,15 +90,13 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(), } override fun isConfigurationLoadingInProgress(file: KtFile): Boolean { - return when (val root = findScriptBuildRoot(file.originalFile.virtualFile)?.nearest) { - is GradleBuildRoot -> root.importing.get() != updated - else -> false - } + return findScriptBuildRoot(file.originalFile.virtualFile)?.nearest?.isImportingInProgress() ?: return false } @Suppress("MemberVisibilityCanBePrivate") // used in GradleImportHelper.kt.201 fun isConfigurationOutOfDate(file: VirtualFile): Boolean { val script = getScriptInfo(file) ?: return false + if (script.buildRoot.isImportingInProgress()) return false return !script.model.inputs.isUpToDate(project, file) }