isValidAsync method

  1. @override
Future<bool> isValidAsync(
  1. AsyncImageInput input
)
override

Returns the input is support or not.

Implementation

@override
Future<bool> isValidAsync(AsyncImageInput input) async {
  final length = await input.length;

  for (final header in headerAndFooter.mutipleStartBytesList) {
    for (final footer in headerAndFooter.mutipleEndBytesList) {
      final fileHeader = await input.getRange(
        0,
        header.length,
      );
      final fileFooter = await input.getRange(
        length - footer.length,
        length,
      );

      final headerEquals = compareTwoList(
        header,
        fileHeader,
      );
      final footerEquals = compareTwoList(
        footer,
        fileFooter,
      );
      if (headerEquals && footerEquals) {
        return true;
      }
    }
  }

  return false;
}