refactor to move an ios specific class out of globals.dart
diff --git a/packages/flutter_tools/lib/executable.dart b/packages/flutter_tools/lib/executable.dart index 4f36412..7ed6a6d 100644 --- a/packages/flutter_tools/lib/executable.dart +++ b/packages/flutter_tools/lib/executable.dart
@@ -32,7 +32,6 @@ import 'src/commands/upgrade.dart'; import 'src/device.dart'; import 'src/doctor.dart'; -import 'src/ios/mac.dart'; import 'src/runner/flutter_command_runner.dart'; /// Main entry point for commands. @@ -69,7 +68,6 @@ context[Logger] = new StdoutLogger(); context[DeviceManager] = new DeviceManager(); Doctor.initGlobal(); - XCode.initGlobal(); dynamic result = await runner.run(args);
diff --git a/packages/flutter_tools/lib/src/globals.dart b/packages/flutter_tools/lib/src/globals.dart index efd072e..3ce1c1b 100644 --- a/packages/flutter_tools/lib/src/globals.dart +++ b/packages/flutter_tools/lib/src/globals.dart
@@ -7,16 +7,12 @@ import 'base/logger.dart'; import 'device.dart'; import 'doctor.dart'; -import 'ios/mac.dart'; DeviceManager get deviceManager => context[DeviceManager]; Logger get logger => context[Logger]; AndroidSdk get androidSdk => context[AndroidSdk]; Doctor get doctor => context[Doctor]; -// Mac specific globals - will be null on other platforms. -XCode get xcode => context[XCode]; - /// Display an error level message to the user. Commands should use this if they /// fail in some way. void printError(String message, [StackTrace stackTrace]) => logger.printError(message, stackTrace);
diff --git a/packages/flutter_tools/lib/src/ios/ios_workflow.dart b/packages/flutter_tools/lib/src/ios/ios_workflow.dart index 4a1d047..67eda8d 100644 --- a/packages/flutter_tools/lib/src/ios/ios_workflow.dart +++ b/packages/flutter_tools/lib/src/ios/ios_workflow.dart
@@ -6,7 +6,6 @@ import '../base/process.dart'; import '../doctor.dart'; -import '../globals.dart'; import 'mac.dart'; class IOSWorkflow extends Workflow { @@ -15,11 +14,11 @@ bool get appliesToHostPlatform => Platform.isMacOS; // We need xcode (+simctl) to list simulator devices, and idevice_id to list real devices. - bool get canListDevices => xcode.isInstalledAndMeetsVersionCheck; + bool get canListDevices => XCode.instance.isInstalledAndMeetsVersionCheck; // We need xcode to launch simulator devices, and ideviceinstaller and ios-deploy // for real devices. - bool get canLaunchDevices => xcode.isInstalledAndMeetsVersionCheck; + bool get canLaunchDevices => XCode.instance.isInstalledAndMeetsVersionCheck; ValidationResult validate() { Validator iosValidator = new Validator( @@ -28,15 +27,15 @@ ); ValidationType xcodeExists() { - return xcode.isInstalled ? ValidationType.installed : ValidationType.missing; + return XCode.instance.isInstalled ? ValidationType.installed : ValidationType.missing; }; ValidationType xcodeVersionSatisfactory() { - return xcode.isInstalledAndMeetsVersionCheck ? ValidationType.installed : ValidationType.missing; + return XCode.instance.isInstalledAndMeetsVersionCheck ? ValidationType.installed : ValidationType.missing; }; ValidationType xcodeEulaSigned() { - return xcode.eulaSigned ? ValidationType.installed : ValidationType.missing; + return XCode.instance.eulaSigned ? ValidationType.installed : ValidationType.missing; }; ValidationType brewExists() {
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index 163f6f4..df2ef7d 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -18,15 +18,12 @@ String get homeDirectory => path.absolute(Platform.environment['HOME']); -// TODO(devoncarew): Refactor functionality into XCode. - const int kXcodeRequiredVersionMajor = 7; const int kXcodeRequiredVersionMinor = 2; class XCode { - static void initGlobal() { - context[XCode] = new XCode(); - } + /// Returns [XCode] active in the current app context. + static XCode get instance => context[XCode] ?? (context[XCode] = new XCode()); bool get isInstalledAndMeetsVersionCheck => isInstalled && xcodeVersionSatisfactory;
diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index d8ea7b7..8323201 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart
@@ -38,7 +38,7 @@ } List<IOSSimulator> getAttachedDevices() { - if (!xcode.isInstalledAndMeetsVersionCheck) + if (!XCode.instance.isInstalledAndMeetsVersionCheck) return <IOSSimulator>[]; return SimControl.instance.getConnectedDevices().map((SimDevice device) { @@ -320,7 +320,7 @@ if (clearLogs) this.clearLogs(); - if(!(await _setupUpdatedApplicationBundle(app, toolchain))) + if (!(await _setupUpdatedApplicationBundle(app, toolchain))) return false; // Prepare launch arguments.