@@ -54,39 +54,46 @@ Analytics createAnalyticsInstance(bool disableAnalytics) {
5454 if (Platform .environment['_DARTDEV_LOG_ANALYTICS' ] != null ) {
5555 // Used for testing what analytics messages are sent.
5656 _instance = _LoggingAnalytics ();
57- } else if (disableAnalytics) {
57+ return _instance;
58+ }
59+
60+ if (disableAnalytics) {
5861 // Dartdev tests pass a hidden 'disable-dartdev-analytics' flag which is
5962 // handled here.
6063 // Also, stdout.hasTerminal is checked, if there is no terminal we infer that
6164 // a machine is running dartdev so we return analytics shouldn't be set.
6265 _instance = DisabledAnalytics (_trackingId, _appName);
63- } else {
64- var settingsDir = getDartStorageDirectory ();
65- if (settingsDir == null ) {
66- // Some systems don't support user home directories; for those, fail
66+ return _instance;
67+ }
68+
69+ var settingsDir = getDartStorageDirectory ();
70+ if (settingsDir == null ) {
71+ // Some systems don't support user home directories; for those, fail
72+ // gracefully by returning a disabled analytics object.
73+ _instance = DisabledAnalytics (_trackingId, _appName);
74+ return _instance;
75+ }
76+
77+ if (! settingsDir.existsSync ()) {
78+ try {
79+ settingsDir.createSync ();
80+ } catch (e) {
81+ // If we can't create the directory for the analytics settings, fail
6782 // gracefully by returning a disabled analytics object.
6883 _instance = DisabledAnalytics (_trackingId, _appName);
69- } else if (! settingsDir.existsSync ()) {
70- try {
71- settingsDir.createSync ();
72- } catch (e) {
73- // If we can't create the directory for the analytics settings, fail
74- // gracefully by returning a disabled analytics object.
75- _instance = DisabledAnalytics (_trackingId, _appName);
76- }
77- } else {
78- var readmeFile =
79- File ('${settingsDir .absolute .path }${path .separator }$_readmeFileName ' );
80- if (! readmeFile.existsSync ()) {
81- readmeFile.createSync ();
82- readmeFile.writeAsStringSync (_readmeFileContents);
83- }
84-
85- var settingsFile = File (path.join (settingsDir.path, _settingsFileName));
86- _instance = DartdevAnalytics (_trackingId, settingsFile, _appName);
84+ return _instance;
8785 }
8886 }
8987
88+ var readmeFile =
89+ File ('${settingsDir .absolute .path }${path .separator }$_readmeFileName ' );
90+ if (! readmeFile.existsSync ()) {
91+ readmeFile.createSync ();
92+ readmeFile.writeAsStringSync (_readmeFileContents);
93+ }
94+
95+ var settingsFile = File (path.join (settingsDir.path, _settingsFileName));
96+ _instance = DartdevAnalytics (_trackingId, settingsFile, _appName);
9097 return _instance;
9198}
9299
0 commit comments