From 14b3f740c76ca97bd46220beb528b59e0cb48ea3 Mon Sep 17 00:00:00 2001 From: Kevin Moore Date: Wed, 1 Mar 2023 17:14:48 -0800 Subject: [PATCH] flutter_tool: DRY up features that are fully enabled (#121754) flutter_tool: DRY up features that are fully enabled --- packages/flutter_tools/lib/src/features.dart | 104 +++++-------------- 1 file changed, 25 insertions(+), 79 deletions(-) diff --git a/packages/flutter_tools/lib/src/features.dart b/packages/flutter_tools/lib/src/features.dart index 1562375c78..55a0b41f18 100644 --- a/packages/flutter_tools/lib/src/features.dart +++ b/packages/flutter_tools/lib/src/features.dart @@ -67,116 +67,43 @@ const List allFeatures = [ ]; /// The [Feature] for flutter web. -const Feature flutterWebFeature = Feature( +const Feature flutterWebFeature = Feature.fullyEnabled( name: 'Flutter for web', configSetting: 'enable-web', environmentOverride: 'FLUTTER_WEB', - master: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - beta: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - stable: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), ); /// The [Feature] for macOS desktop. -const Feature flutterMacOSDesktopFeature = Feature( +const Feature flutterMacOSDesktopFeature = Feature.fullyEnabled( name: 'support for desktop on macOS', configSetting: 'enable-macos-desktop', environmentOverride: 'FLUTTER_MACOS', - master: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - beta: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - stable: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), ); /// The [Feature] for Linux desktop. -const Feature flutterLinuxDesktopFeature = Feature( +const Feature flutterLinuxDesktopFeature = Feature.fullyEnabled( name: 'support for desktop on Linux', configSetting: 'enable-linux-desktop', environmentOverride: 'FLUTTER_LINUX', - master: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - beta: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - stable: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), ); /// The [Feature] for Windows desktop. -const Feature flutterWindowsDesktopFeature = Feature( +const Feature flutterWindowsDesktopFeature = Feature.fullyEnabled( name: 'support for desktop on Windows', configSetting: 'enable-windows-desktop', environmentOverride: 'FLUTTER_WINDOWS', - master: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - beta: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - stable: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), ); /// The [Feature] for Android devices. -const Feature flutterAndroidFeature = Feature( +const Feature flutterAndroidFeature = Feature.fullyEnabled( name: 'Flutter for Android', configSetting: 'enable-android', - master: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - beta: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - stable: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), ); - /// The [Feature] for iOS devices. -const Feature flutterIOSFeature = Feature( +const Feature flutterIOSFeature = Feature.fullyEnabled( name: 'Flutter for iOS', configSetting: 'enable-ios', - master: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - beta: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), - stable: FeatureChannelSetting( - available: true, - enabledByDefault: true, - ), ); /// The [Feature] for Fuchsia support. @@ -238,6 +165,25 @@ class Feature { this.stable = const FeatureChannelSetting() }); + /// Creates a [Feature] that is fully enabled across channels. + const Feature.fullyEnabled( + {required this.name, + this.environmentOverride, + this.configSetting, + this.extraHelpText}) + : master = const FeatureChannelSetting( + available: true, + enabledByDefault: true, + ), + beta = const FeatureChannelSetting( + available: true, + enabledByDefault: true, + ), + stable = const FeatureChannelSetting( + available: true, + enabledByDefault: true, + ); + /// The user visible name for this feature. final String name;