immich/mobile/lib/providers/trash.provider.dart
shenlong e52b9d15b5
chore: bump dart sdk to 3.8 (#20355)
* chore: bump dart sdk to 3.8

* chore: make build

* make pigeon

* chore: format files

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-28 14:04:03 -05:00

46 lines
1.2 KiB
Dart

import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/services/trash.service.dart';
import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:logging/logging.dart';
class TrashNotifier extends StateNotifier<bool> {
final TrashService _trashService;
final _log = Logger('TrashNotifier');
TrashNotifier(this._trashService) : super(false);
Future<void> emptyTrash() async {
try {
await _trashService.emptyTrash();
state = true;
} catch (error, stack) {
_log.severe("Cannot empty trash", error, stack);
state = false;
}
}
Future<bool> restoreAssets(Iterable<Asset> assetList) async {
try {
await _trashService.restoreAssets(assetList);
return true;
} catch (error, stack) {
_log.severe("Cannot restore assets", error, stack);
return false;
}
}
Future<void> restoreTrash() async {
try {
await _trashService.restoreTrash();
state = true;
} catch (error, stack) {
_log.severe("Cannot restore trash", error, stack);
state = false;
}
}
}
final trashProvider = StateNotifierProvider<TrashNotifier, bool>((ref) {
return TrashNotifier(ref.watch(trashServiceProvider));
});