26 lines
673 B
Dart
26 lines
673 B
Dart
|
|
import 'dart:typed_data';
|
||
|
|
|
||
|
|
import 'package:halkyon_learn_flutter/src/core/files/file_saver.dart';
|
||
|
|
|
||
|
|
/// A [FileSaver] that keeps what it is given, unless [cancel] says the
|
||
|
|
/// person cancelled.
|
||
|
|
class FakeFileSaver() implements FileSaver {
|
||
|
|
/// Whether the next saves are cancelled.
|
||
|
|
bool cancel = false;
|
||
|
|
|
||
|
|
/// What was saved, in order.
|
||
|
|
final saved = <({String name, Uint8List bytes, String mimeType})>[];
|
||
|
|
|
||
|
|
@override
|
||
|
|
Future<bool> save({
|
||
|
|
required String name,
|
||
|
|
required Uint8List bytes,
|
||
|
|
required String mimeType,
|
||
|
|
}) async {
|
||
|
|
if (cancel) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
saved.add((name: name, bytes: bytes, mimeType: mimeType));
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|