Skip to content

Commit 5d8cc97

Browse files
authored
Refactor Analytics global getter to point to context only (#129196)
Refactor the globals getter for `Analytics` to be in the context instead of having a default fallback. The current state of the tool creates a new instance every time `globals.analytics` was called Addresses issue: - flutter/flutter#128535
1 parent b83f762 commit 5d8cc97

File tree

2 files changed

+8
-14
lines changed

2 files changed

+8
-14
lines changed

packages/flutter_tools/lib/src/context_runner.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import 'dart:async';
88

99
import 'package:process/process.dart';
10+
import 'package:unified_analytics/unified_analytics.dart';
1011

1112
import 'android/android_builder.dart';
1213
import 'android/android_sdk.dart';
@@ -87,6 +88,12 @@ Future<T> runInContext<T>(
8788
body: runnerWrapper,
8889
overrides: overrides,
8990
fallbacks: <Type, Generator>{
91+
Analytics: () => Analytics(
92+
tool: DashTool.flutterTool,
93+
flutterChannel: globals.flutterVersion.channel,
94+
flutterVersion: globals.flutterVersion.frameworkVersion,
95+
dartVersion: globals.flutterVersion.dartSdkVersion,
96+
),
9097
AndroidBuilder: () => AndroidGradleBuilder(
9198
java: globals.java,
9299
logger: globals.logger,

packages/flutter_tools/lib/src/globals.dart

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'package:intl/date_symbol_data_local.dart';
65
import 'package:process/process.dart';
76
import 'package:unified_analytics/unified_analytics.dart';
87

@@ -91,19 +90,7 @@ Future<bool> get isRunningOnBot => botDetector.isRunningOnBot;
9190

9291
// Analytics instance for package:unified_analytics for telemetry
9392
// reporting for all Flutter and Dart related tooling
94-
Analytics get analytics => context.get<Analytics>() ?? getDefaultAnalytics();
95-
Analytics getDefaultAnalytics() {
96-
97-
initializeDateFormatting();
98-
final Analytics defaultAnalytics = Analytics(
99-
tool: DashTool.flutterTool,
100-
flutterChannel: flutterVersion.channel,
101-
flutterVersion: flutterVersion.frameworkVersion,
102-
dartVersion: flutterVersion.dartSdkVersion,
103-
);
104-
105-
return defaultAnalytics;
106-
}
93+
Analytics get analytics => context.get<Analytics>()!;
10794

10895
/// Currently active implementation of the file system.
10996
///

0 commit comments

Comments
 (0)