uploadNewImagesOrFiles<DataT extends Data> method

Future<String?> uploadNewImagesOrFiles<DataT extends Data>(
  1. DataT data,
  2. List<XFile> files, {
  3. Data? caller,
  4. bool forceUpdate = false,
})

upload a bunch of images

Implementation

Future<String?> uploadNewImagesOrFiles<DataT extends Data>(
  DataT data,
  List<XFile> files, {
  Data? caller,
  bool forceUpdate = false,
}) async {
  List<String> newLocalImageNames = [];
  await Future.wait(files.map((file) async {
    final bytes = await file.readAsBytes();
    final imageName = '$LOCALLY_ADDED_PREFIX${file.name}';
    await storeImage(bytes, imageName);
    newLocalImageNames.add(imageName);
  }));
  if (data.imagehashes == null) data.imagehashes = [];
  if (data.imagehashes!.isEmpty && data.mainhash == null) {
    data.mainhash = newLocalImageNames.first;
    newLocalImageNames.removeAt(0);
  }
  data.imagehashes?.addAll(newLocalImageNames);
  injectImages(data, preloadFull: true);
  await storeData(data, forId: caller?.id ?? await API().rootID);
  // NewImages.addAllNulled(newLocalImageNames);
  return 'added files offline';
}