mirror of
https://github.com/immich-app/immich
synced 2025-06-07 08:20:56 +00:00
fix(mobile): photo_manager ignore filters (#18742)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
parent
d48702f943
commit
df927dd3ce
@ -17,6 +17,30 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
|
||||
bool get useCustomFilter =>
|
||||
Store.get(StoreKey.photoManagerCustomFilter, false);
|
||||
|
||||
FilterOptionGroup? _getAlbumFilter({
|
||||
DateTimeCond? updateTimeCond,
|
||||
bool? containsPathModified,
|
||||
List<OrderOption>? orderBy,
|
||||
}) =>
|
||||
useCustomFilter
|
||||
? FilterOptionGroup(
|
||||
imageOption: const FilterOption(
|
||||
needTitle: true,
|
||||
sizeConstraint: SizeConstraint(ignoreSize: true),
|
||||
),
|
||||
videoOption: const FilterOption(
|
||||
needTitle: true,
|
||||
sizeConstraint: SizeConstraint(ignoreSize: true),
|
||||
durationConstraint: DurationConstraint(allowNullable: true),
|
||||
),
|
||||
containsPathModified: containsPathModified ?? false,
|
||||
createTimeCond: DateTimeCond.def().copyWith(ignore: true),
|
||||
updateTimeCond:
|
||||
updateTimeCond ?? DateTimeCond.def().copyWith(ignore: true),
|
||||
orders: orderBy ?? [],
|
||||
)
|
||||
: null;
|
||||
|
||||
@override
|
||||
Future<List<Album>> getAll() async {
|
||||
final filter = useCustomFilter
|
||||
@ -30,7 +54,8 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
|
||||
|
||||
@override
|
||||
Future<List<String>> getAssetIds(String albumId) async {
|
||||
final album = await AssetPathEntity.fromId(albumId);
|
||||
final album =
|
||||
await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter());
|
||||
final List<AssetEntity> assets =
|
||||
await album.getAssetListRange(start: 0, end: 0x7fffffffffffffff);
|
||||
return assets.map((e) => e.id).toList();
|
||||
@ -38,7 +63,8 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
|
||||
|
||||
@override
|
||||
Future<int> getAssetCount(String albumId) async {
|
||||
final album = await AssetPathEntity.fromId(albumId);
|
||||
final album =
|
||||
await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter());
|
||||
return album.assetCountAsync;
|
||||
}
|
||||
|
||||
@ -53,17 +79,14 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
|
||||
}) async {
|
||||
final onDevice = await AssetPathEntity.fromId(
|
||||
albumId,
|
||||
filterOption: FilterOptionGroup(
|
||||
imageOption: const FilterOption(needTitle: true),
|
||||
videoOption: const FilterOption(needTitle: true),
|
||||
containsPathModified: true,
|
||||
filterOption: _getAlbumFilter(
|
||||
updateTimeCond: modifiedFrom == null && modifiedUntil == null
|
||||
? null
|
||||
: DateTimeCond(
|
||||
min: modifiedFrom ?? DateTime.utc(-271820),
|
||||
max: modifiedUntil ?? DateTime.utc(275760),
|
||||
),
|
||||
orders: orderByModificationDate
|
||||
orderBy: orderByModificationDate
|
||||
? [const OrderOption(type: OrderOptionType.updateDate)]
|
||||
: [],
|
||||
),
|
||||
@ -80,7 +103,10 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
|
||||
DateTime? modifiedFrom,
|
||||
DateTime? modifiedUntil,
|
||||
}) async {
|
||||
final assetPathEntity = await AssetPathEntity.fromId(id);
|
||||
final assetPathEntity = await AssetPathEntity.fromId(
|
||||
id,
|
||||
filterOption: _getAlbumFilter(containsPathModified: true),
|
||||
);
|
||||
return _toAlbum(assetPathEntity);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user