onCreate method

  1. @override
Future<AlbumOre> onCreate(
  1. Album album,
  2. String dir
)
override

Implementation

@override
Future<AlbumOre> onCreate(album, dir) async {
  final map = album.toJson();
  var raw = <String, dynamic>{};
  final pref = await preferences;
  final uri = accessUri.resolve(relativePath(dir));
  var col = json.decode(pref.getString(uri.path) ?? '[]');

  if (col is! List) {
    raw = SharedPrefsCodec.encode(uri.path, [col]);
    raw.forEach((k, v) async {
      if (k == uri.path) col = v;
      final body = json.encode(v);
      await pref.setString(k, body);
    });
  }

  final tweaks = SharedPrefsCodec.encode(uri.path, [map]);

  tweaks.forEach((k, v) async {
    if (k == uri.path) v = [...col, ...v];
    final body = json.encode(v);
    await pref.setString(k, body);
  });

  return AlbumOre(album);
}