From 562b563e7e7cb29318facd46dffcdf7c0076375f Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 1 Oct 2014 16:38:06 +0400 Subject: [PATCH] Read action added in Android plugins --- .../org/jetbrains/jet/lang/resolve/android/AndroidUtil.kt | 6 +++++- .../jet/plugin/android/AndroidFindMemberUsagesHandler.kt | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/android-compiler-plugin/src/org/jetbrains/jet/lang/resolve/android/AndroidUtil.kt b/plugins/android-compiler-plugin/src/org/jetbrains/jet/lang/resolve/android/AndroidUtil.kt index 463b2cf6ec8..76365cbc369 100644 --- a/plugins/android-compiler-plugin/src/org/jetbrains/jet/lang/resolve/android/AndroidUtil.kt +++ b/plugins/android-compiler-plugin/src/org/jetbrains/jet/lang/resolve/android/AndroidUtil.kt @@ -24,6 +24,8 @@ import com.intellij.openapi.components.ServiceManager import com.intellij.psi.PsiField import com.intellij.psi.PsiClass import org.jetbrains.jet.utils.emptyOrSingletonList +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.util.Computable trait AndroidResource @@ -49,7 +51,9 @@ fun isAndroidSyntheticFile(f: PsiFile?): Boolean { } public fun isAndroidSyntheticElement(element: PsiElement?): Boolean { - return isAndroidSyntheticFile(element?.getContainingFile()) + return isAndroidSyntheticFile(ApplicationManager.getApplication()!!.runReadAction(Computable { + element?.getContainingFile() + })) } public fun isRClassField(element: PsiElement): Boolean { diff --git a/plugins/android-idea-plugin/src/org/jetbrains/jet/plugin/android/AndroidFindMemberUsagesHandler.kt b/plugins/android-idea-plugin/src/org/jetbrains/jet/plugin/android/AndroidFindMemberUsagesHandler.kt index 3ea7beac7f0..ef9f71a3873 100644 --- a/plugins/android-idea-plugin/src/org/jetbrains/jet/plugin/android/AndroidFindMemberUsagesHandler.kt +++ b/plugins/android-idea-plugin/src/org/jetbrains/jet/plugin/android/AndroidFindMemberUsagesHandler.kt @@ -32,6 +32,7 @@ import org.jetbrains.android.util.AndroidResourceUtil import java.util.ArrayList import com.intellij.find.findUsages.JavaVariableFindUsagesOptions import org.jetbrains.jet.plugin.findUsages.handlers.KotlinFindUsagesHandlerDecorator +import org.jetbrains.jet.plugin.util.application.runReadAction class AndroidFindUsageHandlerDecorator : KotlinFindUsagesHandlerDecorator { override fun decorateHandler(element: PsiElement, forHighlightUsages: Boolean, delegate: FindUsagesHandler): FindUsagesHandler { @@ -86,7 +87,7 @@ class AndroidFindMemberUsagesHandler( override fun processElementUsages(element: PsiElement, processor: Processor, options: FindUsagesOptions): Boolean { assert(isAndroidSyntheticElement(declaration)) - val findUsagesOptions = JavaVariableFindUsagesOptions(element.getProject()) + val findUsagesOptions = JavaVariableFindUsagesOptions(runReadAction { element.getProject() }) findUsagesOptions.isSearchForTextOccurrences = false findUsagesOptions.isSkipImportStatements = true findUsagesOptions.isUsages = true