createDefaultIcons function

Future<void> createDefaultIcons(
  1. Config config,
  2. String? flavor
)

Implementation

Future<void> createDefaultIcons(
  Config config,
  String? flavor,
) async {
  utils.printStatus('Creating default icons Android');
  // TODO(p-mazhnik): support prefixPath
  final String? filePath = config.getImagePathAndroid();
  if (filePath == null) {
    throw const InvalidConfigException(errorMissingImagePath);
  }
  final Image? image = await utils.decodeImageFile(filePath);
  if (image == null) {
    return;
  }
  final File androidManifestFile = File(constants.androidManifestFile);
  final concurrentIconUpdates = <Future<void>>[];
  if (config.isCustomAndroidFile) {
    utils.printStatus('Adding a new Android launcher icon');
    final String iconName = config.android;
    isAndroidIconNameCorrectFormat(iconName);
    final String iconPath = '$iconName.png';
    for (AndroidIconTemplate template in androidIcons) {
      concurrentIconUpdates.add(_saveNewImages(template, image, iconPath, flavor));
    }
    await overwriteAndroidManifestWithNewLauncherIcon(iconName, androidManifestFile);
  } else {
    utils.printStatus(
      'Overwriting the default Android launcher icon with a new icon',
    );
    for (AndroidIconTemplate template in androidIcons) {
      concurrentIconUpdates.add(
        overwriteExistingIcons(
          template,
          image,
          constants.androidFileName,
          flavor,
        ),
      );
    }
    await overwriteAndroidManifestWithNewLauncherIcon(
      constants.androidDefaultIconName,
      androidManifestFile,
    );
  }
  await Future.wait(concurrentIconUpdates);
}