From 936665253703f1bb55dbc76d07f7de38ab1191a1 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 15 Jul 2015 21:50:56 +0300 Subject: [PATCH] Disable annotation check for Android Studio and non-android sdk Android studio always creates that sdk from scratch so no configuration will be stored after restart (KT-7517) --- .../ui/AbsentJdkAnnotationsComponent.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/AbsentJdkAnnotationsComponent.java b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/AbsentJdkAnnotationsComponent.java index d0010673d7f..ead2a3b9047 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/AbsentJdkAnnotationsComponent.java +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/AbsentJdkAnnotationsComponent.java @@ -32,6 +32,7 @@ import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.openapi.vfs.newvfs.BulkFileListener; import com.intellij.openapi.vfs.newvfs.events.*; import com.intellij.util.Alarm; +import com.intellij.util.PlatformUtils; import com.intellij.util.messages.MessageBusConnection; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.idea.configuration.AbsentSdkAnnotationsNotificationManager; @@ -133,8 +134,19 @@ public class AbsentJdkAnnotationsComponent extends AbstractProjectComponent { } private static boolean areAnnotationsCorrect(@NotNull Sdk sdk) { - return NotificationsPackage.isAndroidSdk(sdk) - ? KotlinRuntimeLibraryUtil.androidSdkAnnotationsArePresent(sdk) && !KotlinRuntimeLibraryUtil.jdkAnnotationsArePresent(sdk) - : KotlinRuntimeLibraryUtil.jdkAnnotationsArePresent(sdk); + if (NotificationsPackage.isAndroidSdk(sdk)) { + return KotlinRuntimeLibraryUtil.androidSdkAnnotationsArePresent(sdk) && !KotlinRuntimeLibraryUtil.jdkAnnotationsArePresent(sdk); + } + else if (!isAndroidStudio()) { + return KotlinRuntimeLibraryUtil.jdkAnnotationsArePresent(sdk); + } + else { + // Android studio always recreates standard sdk from scratch so any addition configuration will be lost + return true; + } + } + + private static boolean isAndroidStudio() { + return "AndroidStudio".equals(PlatformUtils.getPlatformPrefix()); } }