mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-24 18:38:48 +01:00
Fix not cleaing latestItemTime after removing last item
This commit is contained in:
parent
a964f0f14d
commit
4d54b2099d
2 changed files with 18 additions and 6 deletions
|
@ -7,6 +7,7 @@ import 'package:nc_photos/entity/album.dart';
|
|||
import 'package:nc_photos/entity/album/item.dart';
|
||||
import 'package:nc_photos/entity/file.dart';
|
||||
import 'package:nc_photos/iterable_extension.dart';
|
||||
import 'package:nc_photos/or_null.dart';
|
||||
import 'package:nc_photos/type.dart';
|
||||
|
||||
abstract class AlbumProvider with EquatableMixin {
|
||||
|
@ -79,7 +80,7 @@ abstract class AlbumProviderBase extends AlbumProvider {
|
|||
|
||||
@override
|
||||
AlbumProviderBase copyWith({
|
||||
DateTime? latestItemTime,
|
||||
OrNull<DateTime>? latestItemTime,
|
||||
});
|
||||
|
||||
@override
|
||||
|
@ -134,11 +135,12 @@ class AlbumStaticProvider extends AlbumProviderBase {
|
|||
|
||||
@override
|
||||
AlbumStaticProvider copyWith({
|
||||
DateTime? latestItemTime,
|
||||
OrNull<DateTime>? latestItemTime,
|
||||
List<AlbumItem>? items,
|
||||
}) {
|
||||
return AlbumStaticProvider(
|
||||
latestItemTime: latestItemTime ?? this.latestItemTime,
|
||||
latestItemTime:
|
||||
latestItemTime == null ? this.latestItemTime : latestItemTime.obj,
|
||||
items: items ?? this.items,
|
||||
);
|
||||
}
|
||||
|
@ -198,11 +200,12 @@ class AlbumDirProvider extends AlbumDynamicProvider {
|
|||
|
||||
@override
|
||||
AlbumDirProvider copyWith({
|
||||
DateTime? latestItemTime,
|
||||
OrNull<DateTime>? latestItemTime,
|
||||
List<File>? dirs,
|
||||
}) {
|
||||
return AlbumDirProvider(
|
||||
latestItemTime: latestItemTime ?? this.latestItemTime,
|
||||
latestItemTime:
|
||||
latestItemTime == null ? this.latestItemTime : latestItemTime.obj,
|
||||
dirs: dirs ?? this.dirs,
|
||||
);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:nc_photos/entity/album/provider.dart';
|
|||
import 'package:nc_photos/entity/album/sort_provider.dart';
|
||||
import 'package:nc_photos/entity/file.dart';
|
||||
import 'package:nc_photos/entity/file_util.dart' as file_util;
|
||||
import 'package:nc_photos/or_null.dart';
|
||||
|
||||
class UpdateAlbumTime {
|
||||
/// Update the latest item time of an album with unsorted items
|
||||
|
@ -33,6 +34,14 @@ class UpdateAlbumTime {
|
|||
}
|
||||
|
||||
Album _updateWithSortedItems(Album album, List<AlbumItem> sortedItems) {
|
||||
if (sortedItems.isEmpty) {
|
||||
return album.copyWith(
|
||||
provider: (album.provider as AlbumProviderBase).copyWith(
|
||||
latestItemTime: OrNull(null),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
DateTime? latestItemTime;
|
||||
try {
|
||||
final latestFile = sortedItems
|
||||
|
@ -47,7 +56,7 @@ class UpdateAlbumTime {
|
|||
if (latestItemTime != album.provider.latestItemTime) {
|
||||
return album.copyWith(
|
||||
provider: (album.provider as AlbumProviderBase).copyWith(
|
||||
latestItemTime: latestItemTime,
|
||||
latestItemTime: OrNull(latestItemTime),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue