collect method
Collects and returns the value produced by this wizard step.
Implementation
@override
FlavorSetup collect() {
LoggerService.blank();
LoggerService.info('Flavors');
final enabled = PromptService.confirm(
'Does project use flavors?',
defaultValue: current?.flavoringEnabled ?? false,
);
if (!enabled) {
LoggerService.info('Using default target: main');
return const FlavorSetup(
enabled: false,
defaultFlavor: 'main',
flavors: ['main'],
);
}
final flavorsInput = PromptService.ask(
'Flavors (comma separated)',
defaultValue: _currentFlavors(),
);
final flavors = flavorsInput
.split(',')
.map((value) => value.trim())
.where((value) => value.isNotEmpty)
.toSet()
.toList();
if (flavors.isEmpty) {
LoggerService.warning(
'No valid flavors provided. Using default target: main',
);
return const FlavorSetup(
enabled: false,
defaultFlavor: 'main',
flavors: ['main'],
);
}
final requestedDefaultFlavor = PromptService.ask(
'Default flavor',
defaultValue: _currentDefaultFlavor(flavors),
);
final defaultFlavor = flavors.contains(requestedDefaultFlavor)
? requestedDefaultFlavor
: flavors.first;
if (defaultFlavor != requestedDefaultFlavor) {
LoggerService.warning(
'Unknown default flavor "$requestedDefaultFlavor". '
'Using "$defaultFlavor" instead.',
);
}
return FlavorSetup(
enabled: true,
defaultFlavor: defaultFlavor,
flavors: flavors,
);
}