@@ -207,14 +207,38 @@ class Driver implements ServerStarter {
207
207
analytics.setSessionValue ('cd1' , analysisServerOptions.clientVersion);
208
208
}
209
209
210
+ final defaultSdkPath = _getSdkPath (results);
211
+ final dartSdkManager = DartSdkManager (defaultSdkPath);
212
+
213
+ // TODO(brianwilkerson) It would be nice to avoid creating an SDK that
214
+ // can't be re-used, but the SDK is needed to create a package map provider
215
+ // in the case where we need to run `pub` in order to get the package map.
216
+ var defaultSdk = _createDefaultSdk (defaultSdkPath);
217
+
218
+ // Create the analytics manager.
219
+ AnalyticsManager analyticsManager;
220
+ if (disableAnalyticsForSession) {
221
+ analyticsManager = AnalyticsManager (NoopAnalytics ());
222
+ } else {
223
+ // TODO(jcollins): implement a full map of `clientId`s to tools to cover
224
+ // more analyzer entry points than vscode.
225
+ if (clientId == 'VS-Code' ) {
226
+ analyticsManager = AnalyticsManager (_createAnalytics (
227
+ defaultSdk, defaultSdkPath, DashTool .vscodePlugins));
228
+ } else {
229
+ analyticsManager = AnalyticsManager (NoopAnalytics ());
230
+ }
231
+ }
232
+
210
233
bool shouldSendCallback () {
211
234
// Check sdkConfig to optionally force reporting on.
212
235
if (sdkConfig.crashReportingForceEnabled == true ) {
213
236
return true ;
214
237
}
215
238
216
- // TODO(devoncarew): Replace with a real enablement check.
217
- return false ;
239
+ // Reuse the unified_analytics consent mechanism to determine whether
240
+ // we can send a crash report.
241
+ return analyticsManager.analytics.okToSend;
218
242
}
219
243
220
244
// Crash reporting
@@ -249,29 +273,6 @@ class Driver implements ServerStarter {
249
273
return ;
250
274
}
251
275
252
- final defaultSdkPath = _getSdkPath (results);
253
- final dartSdkManager = DartSdkManager (defaultSdkPath);
254
-
255
- // TODO(brianwilkerson) It would be nice to avoid creating an SDK that
256
- // can't be re-used, but the SDK is needed to create a package map provider
257
- // in the case where we need to run `pub` in order to get the package map.
258
- var defaultSdk = _createDefaultSdk (defaultSdkPath);
259
-
260
- // Create the analytics manager.
261
- AnalyticsManager analyticsManager;
262
- if (disableAnalyticsForSession) {
263
- analyticsManager = AnalyticsManager (NoopAnalytics ());
264
- } else {
265
- // TODO(jcollins): implement a full map of `clientId`s to tools to cover
266
- // more analyzer entry points than vscode.
267
- if (clientId == 'VS-Code' ) {
268
- analyticsManager = AnalyticsManager (_createAnalytics (
269
- defaultSdk, defaultSdkPath, DashTool .vscodePlugins));
270
- } else {
271
- analyticsManager = AnalyticsManager (NoopAnalytics ());
272
- }
273
- }
274
-
275
276
// Record the start of the session.
276
277
analyticsManager.startUp (
277
278
time: sessionStartTime,
0 commit comments