Skip to content

File tree

3 files changed

+26
-11
lines changed

3 files changed

+26
-11
lines changed

flutter-idea/src/io/flutter/ProjectOpenActivity.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import org.jetbrains.android.facet.AndroidFrameworkDetector;
3535
import org.jetbrains.annotations.NotNull;
3636

37+
import java.util.Collection;
38+
3739
/**
3840
* Runs startup actions just after a project is opened, before it's indexed.
3941
*
@@ -69,9 +71,12 @@ public void runActivity(@NotNull Project project) {
6971
ApplicationManager.getApplication().executeOnPooledThread(() -> {
7072
sdk.queryFlutterConfig("android-studio-dir", false);
7173
});
72-
if (FlutterUtils.isAndroidStudio() && !FLUTTER_PROJECT_TYPE.equals(ProjectTypeService.getProjectType(project))) {
73-
if (!AndroidUtils.isAndroidProject(project)) {
74-
ProjectTypeService.setProjectType(project, FLUTTER_PROJECT_TYPE);
74+
Collection<ProjectType> projectTypes = ProjectTypeService.getProjectTypes(project);
75+
for (ProjectType projectType : projectTypes) {
76+
if (projectType != null && FlutterUtils.isAndroidStudio() && !FLUTTER_PROJECT_TYPE.equals(projectType)) {
77+
if (!AndroidUtils.isAndroidProject(project)) {
78+
ProjectTypeService.setProjectType(project, FLUTTER_PROJECT_TYPE);
79+
}
7580
}
7681
}
7782

@@ -102,10 +107,12 @@ private static void excludeAndroidFrameworkDetector(@NotNull Project project) {
102107
if (!excludesConfiguration.isExcludedFromDetection(type)) {
103108
excludesConfiguration.addExcludedFramework(type);
104109
}
105-
} catch (NullPointerException ignored) {
110+
}
111+
catch (NullPointerException ignored) {
106112
// If the Android facet has not been configured then getFrameworkType() throws a NPE.
107113
}
108-
} catch (NoClassDefFoundError ignored) {
114+
}
115+
catch (NoClassDefFoundError ignored) {
109116
// This should never happen. But just in case ...
110117
}
111118
}

flutter-idea/src/io/flutter/utils/AndroidUtils.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import org.jetbrains.annotations.NotNull;
1717
import org.jetbrains.annotations.Nullable;
1818

19+
import java.util.Collection;
20+
1921
// based on: org.jetbrains.android.util.AndroidUtils
2022
@SuppressWarnings("LocalCanBeFinal")
2123
public class AndroidUtils {
@@ -127,7 +129,10 @@ public static boolean isAndroidProject(@Nullable Project project) {
127129
// IntelliJ-created Android project we need to set it. We need to allow an alternative
128130
// name. GradleResourceCompilerConfigurationGenerator depends on "Android".
129131
// TODO(messick) Recognize both native Android Studio and IntelliJ Android projects.
130-
ProjectType projectType = ProjectTypeService.getProjectType(project);
131-
return projectType != null && "Android".equals(projectType.getId());
132+
Collection<ProjectType> projectTypes = ProjectTypeService.getProjectTypes(project);
133+
for (ProjectType projectType : projectTypes) {
134+
return projectType != null && "Android".equals(projectType.getId());
135+
}
136+
return false;
132137
}
133138
}

flutter-studio/src/io/flutter/utils/AddToAppUtils.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
import java.lang.reflect.Field;
3737
import java.lang.reflect.Modifier;
38+
import java.util.Collection;
3839

3940
import org.jetbrains.annotations.NonNls;
4041
import org.jetbrains.annotations.NotNull;
@@ -71,10 +72,12 @@ public void moduleAdded(@NotNull Project proj, @NotNull Module mod) {
7172
return false;
7273
}
7374
else {
74-
@Nullable ProjectType projectType = ProjectTypeService.getProjectType(project);
75-
if (projectType != null && "Android".equals(projectType.getId())) {
76-
// This is an add-to-app project.
77-
connection.subscribe(DebuggerManagerListener.TOPIC, makeAddToAppAttachListener(project));
75+
Collection<ProjectType> projectTypes = ProjectTypeService.getProjectTypes(project);
76+
for(ProjectType projectType : projectTypes) {
77+
if (projectType != null && "Android".equals(projectType.getId())) {
78+
// This is an add-to-app project.
79+
connection.subscribe(DebuggerManagerListener.TOPIC, makeAddToAppAttachListener(project));
80+
}
7881
}
7982
}
8083
return true;

0 commit comments

Comments
 (0)