createBackgroundImage function

Future<void> createBackgroundImage(
  1. Image? image,
  2. File? imageFile, {
  3. File? darkImageFile,
})

Implementation

Future<void> createBackgroundImage(
  Image? image,
  File? imageFile, {
  File? darkImageFile,
}) async {
  const iosAssetsFolder = CmdStrings.iosBackgroundImageDirectory;
  final file = await File('$iosAssetsFolder/${IOSStrings.iosContentJson}')
      .create(recursive: true);

  final List<Image> images = [];
  if (image != null) {
    images.add(image);
  }
  if (darkImageFile != null) {
    images.add(const Image(
      scale: '3x',
      filename: '${IOSStrings.backgroundImageDarkSnakeCase}.png',
      idiom: 'universal',
      appearances: [
        {
          IOSStrings.appearanceKey: IOSStrings.appearanceLuminosity,
          IOSStrings.appearanceValueKey: IOSStrings.appearanceDark,
        }
      ],
    ));
  }

  final iosContent = IosContentJsonDm(
    images: images,
    info: const Info(author: 'xcode', version: 1),
  );
  final iosContentJson = iosContent.toJson();
  await file.writeAsString(encoder.convert(iosContentJson));

  if (imageFile != null) {
    final backgroundImage =
        File('$iosAssetsFolder/${IOSStrings.backgroundImageSnakeCase}.png');
    await backgroundImage.writeAsBytes(await imageFile.readAsBytes());
  }

  if (darkImageFile != null) {
    final backgroundImageDark =
        File('$iosAssetsFolder/${IOSStrings.backgroundImageDarkSnakeCase}.png');
    await backgroundImageDark.writeAsBytes(await darkImageFile.readAsBytes());
  }
}