mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-25 02:48:54 +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/album/item.dart';
|
||||||
import 'package:nc_photos/entity/file.dart';
|
import 'package:nc_photos/entity/file.dart';
|
||||||
import 'package:nc_photos/iterable_extension.dart';
|
import 'package:nc_photos/iterable_extension.dart';
|
||||||
|
import 'package:nc_photos/or_null.dart';
|
||||||
import 'package:nc_photos/type.dart';
|
import 'package:nc_photos/type.dart';
|
||||||
|
|
||||||
abstract class AlbumProvider with EquatableMixin {
|
abstract class AlbumProvider with EquatableMixin {
|
||||||
|
@ -79,7 +80,7 @@ abstract class AlbumProviderBase extends AlbumProvider {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
AlbumProviderBase copyWith({
|
AlbumProviderBase copyWith({
|
||||||
DateTime? latestItemTime,
|
OrNull<DateTime>? latestItemTime,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -134,11 +135,12 @@ class AlbumStaticProvider extends AlbumProviderBase {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
AlbumStaticProvider copyWith({
|
AlbumStaticProvider copyWith({
|
||||||
DateTime? latestItemTime,
|
OrNull<DateTime>? latestItemTime,
|
||||||
List<AlbumItem>? items,
|
List<AlbumItem>? items,
|
||||||
}) {
|
}) {
|
||||||
return AlbumStaticProvider(
|
return AlbumStaticProvider(
|
||||||
latestItemTime: latestItemTime ?? this.latestItemTime,
|
latestItemTime:
|
||||||
|
latestItemTime == null ? this.latestItemTime : latestItemTime.obj,
|
||||||
items: items ?? this.items,
|
items: items ?? this.items,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -198,11 +200,12 @@ class AlbumDirProvider extends AlbumDynamicProvider {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
AlbumDirProvider copyWith({
|
AlbumDirProvider copyWith({
|
||||||
DateTime? latestItemTime,
|
OrNull<DateTime>? latestItemTime,
|
||||||
List<File>? dirs,
|
List<File>? dirs,
|
||||||
}) {
|
}) {
|
||||||
return AlbumDirProvider(
|
return AlbumDirProvider(
|
||||||
latestItemTime: latestItemTime ?? this.latestItemTime,
|
latestItemTime:
|
||||||
|
latestItemTime == null ? this.latestItemTime : latestItemTime.obj,
|
||||||
dirs: dirs ?? this.dirs,
|
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/album/sort_provider.dart';
|
||||||
import 'package:nc_photos/entity/file.dart';
|
import 'package:nc_photos/entity/file.dart';
|
||||||
import 'package:nc_photos/entity/file_util.dart' as file_util;
|
import 'package:nc_photos/entity/file_util.dart' as file_util;
|
||||||
|
import 'package:nc_photos/or_null.dart';
|
||||||
|
|
||||||
class UpdateAlbumTime {
|
class UpdateAlbumTime {
|
||||||
/// Update the latest item time of an album with unsorted items
|
/// Update the latest item time of an album with unsorted items
|
||||||
|
@ -33,6 +34,14 @@ class UpdateAlbumTime {
|
||||||
}
|
}
|
||||||
|
|
||||||
Album _updateWithSortedItems(Album album, List<AlbumItem> sortedItems) {
|
Album _updateWithSortedItems(Album album, List<AlbumItem> sortedItems) {
|
||||||
|
if (sortedItems.isEmpty) {
|
||||||
|
return album.copyWith(
|
||||||
|
provider: (album.provider as AlbumProviderBase).copyWith(
|
||||||
|
latestItemTime: OrNull(null),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
DateTime? latestItemTime;
|
DateTime? latestItemTime;
|
||||||
try {
|
try {
|
||||||
final latestFile = sortedItems
|
final latestFile = sortedItems
|
||||||
|
@ -47,7 +56,7 @@ class UpdateAlbumTime {
|
||||||
if (latestItemTime != album.provider.latestItemTime) {
|
if (latestItemTime != album.provider.latestItemTime) {
|
||||||
return album.copyWith(
|
return album.copyWith(
|
||||||
provider: (album.provider as AlbumProviderBase).copyWith(
|
provider: (album.provider as AlbumProviderBase).copyWith(
|
||||||
latestItemTime: latestItemTime,
|
latestItemTime: OrNull(latestItemTime),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue