Skip to content

Commit 36752eb

Browse files
authored
[analytics] instrument build, extract, new, run actions (#8735)
Instruments: * `ExtractWidgetAction` * `FlutterBuildAction` * `FlutterNewProjectAction` * `RestartFlutterDaemonAction` * `RunFlutterAction` * `RunProfileFlutterApp` * `RunReleaseFlutterApp` 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 890e6e5 commit 36752eb

5 files changed

Lines changed: 35 additions & 4 deletions

File tree

src/io/flutter/actions/ExtractWidgetAction.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,23 @@
1818
import com.intellij.refactoring.util.CommonRefactoringUtil;
1919
import com.intellij.ui.DocumentAdapter;
2020
import com.intellij.util.ui.JBUI;
21+
import com.jetbrains.lang.dart.analytics.Analytics;
22+
import com.jetbrains.lang.dart.analytics.AnalyticsData;
2123
import com.jetbrains.lang.dart.ide.refactoring.ServerRefactoringDialog;
2224
import com.jetbrains.lang.dart.ide.refactoring.status.RefactoringStatus;
2325
import io.flutter.FlutterUtils;
2426
import io.flutter.refactoring.ExtractWidgetRefactoring;
2527
import org.jetbrains.annotations.NotNull;
2628
import org.jetbrains.annotations.Nullable;
2729

28-
import javax.swing.*;
30+
import javax.swing.JComponent;
31+
import javax.swing.JLabel;
32+
import javax.swing.JPanel;
33+
import javax.swing.JTextField;
2934
import javax.swing.event.DocumentEvent;
30-
import java.awt.*;
35+
import java.awt.Dimension;
36+
import java.awt.GridBagConstraints;
37+
import java.awt.GridBagLayout;
3138

3239
public class ExtractWidgetAction extends DumbAwareAction {
3340
@Override
@@ -43,6 +50,8 @@ public void actionPerformed(@NotNull AnActionEvent event) {
4350
final Caret caret = dataContext.getData(PlatformDataKeys.CARET);
4451

4552
if (project != null && file != null && editor != null && caret != null) {
53+
Analytics.report(AnalyticsData.forAction(this, event));
54+
4655
final int offset = caret.getSelectionStart();
4756
final int length = caret.getSelectionEnd() - offset;
4857
final ExtractWidgetRefactoring refactoring = new ExtractWidgetRefactoring(project, file, offset, length);

src/io/flutter/actions/FlutterBuildActionGroup.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,18 @@
88
import com.intellij.execution.process.ColoredProcessHandler;
99
import com.intellij.execution.process.ProcessAdapter;
1010
import com.intellij.execution.process.ProcessEvent;
11-
import com.intellij.openapi.actionSystem.*;
11+
import com.intellij.openapi.actionSystem.ActionUpdateThread;
12+
import com.intellij.openapi.actionSystem.AnAction;
13+
import com.intellij.openapi.actionSystem.AnActionEvent;
14+
import com.intellij.openapi.actionSystem.DefaultActionGroup;
15+
import com.intellij.openapi.actionSystem.Presentation;
1216
import com.intellij.openapi.module.Module;
1317
import com.intellij.openapi.module.ModuleUtilCore;
1418
import com.intellij.openapi.project.Project;
1519
import com.intellij.openapi.util.SystemInfo;
1620
import com.intellij.openapi.vfs.VirtualFile;
21+
import com.jetbrains.lang.dart.analytics.Analytics;
22+
import com.jetbrains.lang.dart.analytics.AnalyticsData;
1723
import io.flutter.FlutterMessages;
1824
import io.flutter.pub.PubRoot;
1925
import io.flutter.pub.PubRoots;
@@ -118,6 +124,8 @@ public static Module findFlutterModule(@NotNull Project project, @NotNull Virtua
118124

119125
abstract public static class FlutterBuildAction extends AnAction {
120126

127+
public static String ID_PREFIX = "flutter.build";
128+
121129
@NotNull
122130
abstract protected BuildType buildType();
123131

@@ -128,6 +136,9 @@ public void actionPerformed(@NotNull AnActionEvent event) {
128136
if (project == null) {
129137
return;
130138
}
139+
140+
Analytics.report(AnalyticsData.forAction(ID_PREFIX + "." + buildType().type, event.getPlace(), project));
141+
131142
final FlutterSdk sdk = FlutterSdk.getFlutterSdk(project);
132143
if (sdk == null) {
133144
return;

src/io/flutter/actions/FlutterNewProjectAction.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import com.intellij.openapi.application.EDT
1414
import com.intellij.openapi.project.DumbAware
1515
import com.intellij.openapi.roots.ui.configuration.ModulesProvider
1616
import com.intellij.openapi.wm.impl.welcomeScreen.NewWelcomeScreen
17+
import com.jetbrains.lang.dart.analytics.Analytics
18+
import com.jetbrains.lang.dart.analytics.AnalyticsData
1719
import io.flutter.FlutterBundle
1820
import io.flutter.FlutterUtils
1921
import kotlinx.coroutines.*
@@ -44,6 +46,7 @@ class FlutterNewProjectAction : AnAction(), DumbAware {
4446
createNewProjectAsync(wizard)
4547
}
4648

49+
Analytics.report(AnalyticsData.forAction(this, e));
4750
}
4851

4952
override fun getActionUpdateThread() = ActionUpdateThread.BGT

src/io/flutter/actions/RestartFlutterDaemonAction.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@
1010
import com.intellij.openapi.actionSystem.AnActionEvent;
1111
import com.intellij.openapi.project.Project;
1212
import com.intellij.openapi.util.NlsActions;
13+
import com.jetbrains.lang.dart.analytics.Analytics;
14+
import com.jetbrains.lang.dart.analytics.AnalyticsData;
1315
import icons.FlutterIcons;
1416
import io.flutter.run.daemon.DeviceService;
1517
import org.jetbrains.annotations.NotNull;
1618
import org.jetbrains.annotations.Nullable;
1719

18-
import javax.swing.*;
20+
import javax.swing.Icon;
1921

2022
public class RestartFlutterDaemonAction extends AnAction {
2123

@@ -52,6 +54,8 @@ public void actionPerformed(@NotNull AnActionEvent event) {
5254
}
5355

5456
DeviceService.getInstance(project).restart();
57+
58+
Analytics.report(AnalyticsData.forAction(this, event));
5559
}
5660

5761
@Override

src/io/flutter/actions/RunFlutterAction.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import com.intellij.openapi.actionSystem.AnAction;
1818
import com.intellij.openapi.actionSystem.AnActionEvent;
1919
import com.intellij.openapi.project.Project;
20+
import com.jetbrains.lang.dart.analytics.Analytics;
21+
import com.jetbrains.lang.dart.analytics.AnalyticsData;
2022
import io.flutter.FlutterBundle;
2123
import io.flutter.run.FlutterLaunchMode;
2224
import io.flutter.run.LaunchState;
@@ -100,6 +102,8 @@ public void actionPerformed(@NotNull AnActionEvent e) {
100102
FlutterLaunchMode.addToEnvironment(env, myLaunchMode);
101103

102104
ProgramRunnerUtil.executeConfiguration(env, false, true);
105+
106+
Analytics.report(AnalyticsData.forAction(this, e));
103107
}
104108

105109
@Override

0 commit comments

Comments
 (0)