import 'package:collection/collection.dart'; import 'package:flutter/foundation.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/modules/home/services/asset_cache.service.dart'; import 'package:openapi/api.dart'; class BaseAlbumCacheService extends JsonCache> { BaseAlbumCacheService(super.cacheFileName); @override void put(List data) { putRawData(data.map((e) => e.toJson()).toList()); } @override Future> get() async { try { final mapList = await readRawData() as List; final responseData = mapList .map((e) => AlbumResponseDto.fromJson(e)) .whereNotNull() .toList(); return responseData; } catch (e) { debugPrint(e.toString()); return []; } } } class AlbumCacheService extends BaseAlbumCacheService { AlbumCacheService() : super("album_cache"); } class SharedAlbumCacheService extends BaseAlbumCacheService { SharedAlbumCacheService() : super("shared_album_cache"); } final albumCacheServiceProvider = Provider( (ref) => AlbumCacheService(), ); final sharedAlbumCacheServiceProvider = Provider( (ref) => SharedAlbumCacheService(), );