createSplashByConfig function
Create splash screens for Android and iOS based on a config argument
Implementation
void createSplashByConfig(Map<String, dynamic> config) {
var image = checkImageExists(config: config, parameter: 'image');
var darkImage = checkImageExists(config: config, parameter: 'image_dark');
var brandingImage = checkImageExists(config: config, parameter: 'branding');
var brandingDarkImage =
checkImageExists(config: config, parameter: 'branding_dark');
var color = parseColor(config['color']);
var darkColor = parseColor(config['color_dark']);
var backgroundImage =
checkImageExists(config: config, parameter: 'background_image');
var darkBackgroundImage =
checkImageExists(config: config, parameter: 'background_image_dark');
var plistFiles = config['info_plist_files'];
var gravity = (config['fill'] ?? false) ? 'fill' : 'center';
if (config['android_gravity'] != null) gravity = config['android_gravity'];
var brandingGravity = config['branding_mode'] ?? 'bottom';
bool fullscreen = config['fullscreen'] ?? false;
String iosContentMode = config['ios_content_mode'] ?? 'center';
final webImageMode = (config['web_image_mode'] ?? 'center');
if (!config.containsKey('android') || config['android']) {
if (Directory('android').existsSync()) {
_createAndroidSplash(
imagePath: image,
darkImagePath: darkImage,
brandingImagePath: brandingImage,
brandingDarkImagePath: brandingDarkImage,
backgroundImage: backgroundImage,
darkBackgroundImage: darkBackgroundImage,
color: color,
darkColor: darkColor,
gravity: gravity,
brandingGravity: brandingGravity,
fullscreen: fullscreen,
);
} else {
print('Android folder not found, skipping Android splash update...');
}
}
if (!config.containsKey('ios') || config['ios']) {
if (Directory('ios').existsSync()) {
_createiOSSplash(
imagePath: image,
darkImagePath: darkImage,
backgroundImage: backgroundImage,
darkBackgroundImage: darkBackgroundImage,
brandingImagePath: brandingImage,
brandingDarkImagePath: brandingDarkImage,
color: color,
darkColor: darkColor,
plistFiles: plistFiles,
iosContentMode: iosContentMode,
iosBrandingContentMode: brandingGravity,
fullscreen: fullscreen,
);
} else {
print('iOS folder not found, skipping iOS splash update...');
}
}
if (!config.containsKey('web') || config['web']) {
if (Directory('web').existsSync()) {
_createWebSplash(
imagePath: image,
darkImagePath: darkImage,
backgroundImage: backgroundImage,
darkBackgroundImage: darkBackgroundImage,
color: color,
darkColor: darkColor,
imageMode: webImageMode);
} else {
print('Web folder not found, skipping web splash update...');
}
}
print('');
print('Native splash complete. 👍');
print('Now go finish building something awesome! 💪 You rock! 🤘🤩');
}