createSplashByConfig function

void createSplashByConfig(
  1. Map<String, dynamic> config
)

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! 🤘🤩');
}