Skip to content

Commit 91f0460

Browse files
authored
[analytics] instrument Open actions (#8734)
Instruments: * `OpenAndroidModule` * `OpenInAndroidStudioAction` * `OpenInAppCodeAction` * `OpenInXcodeAction` * `OpenEmulatorAction` See: #8598 --- - [x] I’ve reviewed the contributor guide and applied the relevant portions to this PR. <details> <summary>Contribution guidelines:</summary><br> - See our [contributor guide]([https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md](https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Dart contributions to our repos should follow the [Dart style guide](https://dart.dev/guides/language/effective-dart) and use `dart format`. - Java and Kotlin contributions should strive to follow Java and Kotlin best practices ([discussion](#8098)). </details>
1 parent 36752eb commit 91f0460

5 files changed

Lines changed: 38 additions & 2 deletions

File tree

src/io/flutter/actions/OpenAndroidModule.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import com.intellij.openapi.project.ProjectUtil;
1717
import com.intellij.openapi.vfs.VirtualFile;
1818
import com.intellij.util.BitUtil;
19+
import com.jetbrains.lang.dart.analytics.Analytics;
20+
import com.jetbrains.lang.dart.analytics.AnalyticsData;
1921
import io.flutter.FlutterMessages;
2022
import org.jetbrains.annotations.NotNull;
2123
import org.jetbrains.annotations.Nullable;
@@ -33,6 +35,9 @@
3335
* rather than spawning a new process (as IntelliJ does).
3436
*/
3537
public class OpenAndroidModule extends OpenInAndroidStudioAction implements DumbAware {
38+
39+
public static final String ID = "fluter.open.android.module";
40+
3641
@Override
3742
public void actionPerformed(@NotNull AnActionEvent e) {
3843
final VirtualFile projectFile = findProjectFile(e);
@@ -51,6 +56,8 @@ public void actionPerformed(@NotNull AnActionEvent e) {
5156
//ProjectUtil.openOrImport(projectFile.getPath(), e.getProject(), forceOpenInNewFrame);
5257
// presents the user with a really imposing Gradle project import dialog.
5358
openOrImportProject(projectFile, e.getProject(), sourceFile, forceOpenInNewFrame);
59+
60+
Analytics.report(AnalyticsData.forAction(ID, e.getPlace(), e.getProject()));
5461
}
5562

5663
private static void openOrImportProject(@NotNull VirtualFile projectFile,

src/io/flutter/actions/OpenEmulatorAction.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import com.intellij.openapi.actionSystem.AnAction;
1010
import com.intellij.openapi.actionSystem.AnActionEvent;
1111
import com.intellij.openapi.project.Project;
12+
import com.jetbrains.lang.dart.analytics.Analytics;
13+
import com.jetbrains.lang.dart.analytics.AnalyticsData;
1214
import icons.FlutterIcons;
1315
import io.flutter.android.AndroidEmulator;
1416
import io.flutter.sdk.AndroidEmulatorManager;
@@ -21,6 +23,9 @@
2123
import static java.util.stream.Collectors.toList;
2224

2325
public class OpenEmulatorAction extends AnAction {
26+
27+
public static final String ID = "fluter.open.emulator";
28+
2429
/**
2530
* Retrieve a list of {@link OpenEmulatorAction}s.
2631
* <p>
@@ -48,6 +53,7 @@ public OpenEmulatorAction(@NotNull AndroidEmulator emulator) {
4853
@Override
4954
public void actionPerformed(@NotNull AnActionEvent event) {
5055
emulator.startEmulator();
56+
Analytics.report(AnalyticsData.forAction(ID, event.getPlace(), event.getProject()));
5157
}
5258

5359
@Override

src/io/flutter/actions/OpenInAndroidStudioAction.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010
import com.intellij.execution.process.ColoredProcessHandler;
1111
import com.intellij.execution.process.ProcessAdapter;
1212
import com.intellij.execution.process.ProcessEvent;
13-
import com.intellij.openapi.actionSystem.*;
13+
import com.intellij.openapi.actionSystem.ActionUpdateThread;
14+
import com.intellij.openapi.actionSystem.AnAction;
15+
import com.intellij.openapi.actionSystem.AnActionEvent;
16+
import com.intellij.openapi.actionSystem.CommonDataKeys;
17+
import com.intellij.openapi.actionSystem.Presentation;
1418
import com.intellij.openapi.editor.CaretModel;
1519
import com.intellij.openapi.editor.Editor;
1620
import com.intellij.openapi.fileEditor.FileEditor;
@@ -21,6 +25,8 @@
2125
import com.intellij.openapi.ui.Messages;
2226
import com.intellij.openapi.util.SystemInfo;
2327
import com.intellij.openapi.vfs.VirtualFile;
28+
import com.jetbrains.lang.dart.analytics.Analytics;
29+
import com.jetbrains.lang.dart.analytics.AnalyticsData;
2430
import io.flutter.FlutterBundle;
2531
import io.flutter.FlutterMessages;
2632
import io.flutter.FlutterUtils;
@@ -40,6 +46,9 @@
4046
* See https://github.com/flutter/flutter-intellij/issues/7103
4147
*/
4248
public class OpenInAndroidStudioAction extends AnAction {
49+
50+
public static final String ID = "fluter.open.android.studio";
51+
4352
private static final String LABEL_FILE = FlutterBundle.message("flutter.androidstudio.open.file.text");
4453
private static final String DESCR_FILE = FlutterBundle.message("flutter.androidstudio.open.file.description");
4554
private static final String LABEL_MODULE = FlutterBundle.message("flutter.androidstudio.open.module.text");
@@ -59,6 +68,8 @@ public void update(@NotNull AnActionEvent event) {
5968
public void actionPerformed(@NotNull final AnActionEvent event) {
6069
@Nullable final Project project = event.getProject();
6170

71+
Analytics.report(AnalyticsData.forAction(ID, event.getPlace(), event.getProject()));
72+
6273
if (FlutterUtils.isAndroidStudio()) {
6374
try {
6475
//noinspection unchecked

src/io/flutter/actions/OpenInAppCodeAction.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import com.intellij.openapi.util.Key;
2121
import com.intellij.openapi.util.SystemInfo;
2222
import com.intellij.openapi.vfs.VirtualFile;
23+
import com.jetbrains.lang.dart.analytics.Analytics;
24+
import com.jetbrains.lang.dart.analytics.AnalyticsData;
2325
import io.flutter.FlutterMessages;
2426
import io.flutter.sdk.FlutterSdk;
2527
import io.flutter.utils.OpenApiUtils;
@@ -91,6 +93,8 @@ public void actionPerformed(@NotNull AnActionEvent event) {
9193
@Nullable final Project project = event.getProject();
9294
FlutterMessages.showError("Error Opening AppCode", "Project not found.", project);
9395
}
96+
97+
Analytics.report(AnalyticsData.forAction(this, event));
9498
}
9599

96100
private static void openFile(@NotNull VirtualFile file) {

src/io/flutter/actions/OpenInXcodeAction.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,17 @@
1010
import com.intellij.execution.process.ColoredProcessHandler;
1111
import com.intellij.execution.process.ProcessAdapter;
1212
import com.intellij.execution.process.ProcessEvent;
13-
import com.intellij.openapi.actionSystem.*;
13+
import com.intellij.openapi.actionSystem.ActionUpdateThread;
14+
import com.intellij.openapi.actionSystem.AnAction;
15+
import com.intellij.openapi.actionSystem.AnActionEvent;
16+
import com.intellij.openapi.actionSystem.CommonDataKeys;
17+
import com.intellij.openapi.actionSystem.Presentation;
1418
import com.intellij.openapi.project.Project;
1519
import com.intellij.openapi.project.ProjectUtil;
1620
import com.intellij.openapi.util.SystemInfo;
1721
import com.intellij.openapi.vfs.VirtualFile;
22+
import com.jetbrains.lang.dart.analytics.Analytics;
23+
import com.jetbrains.lang.dart.analytics.AnalyticsData;
1824
import io.flutter.FlutterMessages;
1925
import io.flutter.FlutterUtils;
2026
import io.flutter.pub.PubRoot;
@@ -164,5 +170,7 @@ public void actionPerformed(@NotNull AnActionEvent event) {
164170

165171
FlutterMessages.showError("Error Opening Xcode", "Project not found.", project);
166172
}
173+
174+
Analytics.report(AnalyticsData.forAction(this, event));
167175
}
168176
}

0 commit comments

Comments
 (0)