From 07d2b272ae2f86a04081053e12347462d2bba3b4 Mon Sep 17 00:00:00 2001 From: wuzihao051119 Date: Wed, 4 Jun 2025 19:51:59 +0800 Subject: [PATCH] refact 2 --- mobile/lib/constants/enums.dart | 5 +++++ mobile/lib/entities/album.entity.dart | 5 ++--- mobile/lib/entities/asset.entity.dart | 1 - mobile/lib/infrastructure/utils/asset.mixin.dart | 2 +- mobile/lib/interfaces/album_api.interface.dart | 2 +- mobile/lib/interfaces/asset_api.interface.dart | 1 - mobile/lib/models/search/search_filter.model.dart | 1 + mobile/lib/pages/library/folder/folder.page.dart | 1 - mobile/lib/pages/library/places/places_collection.page.dart | 1 + mobile/lib/pages/search/search.page.dart | 1 + mobile/lib/providers/album/album.provider.dart | 2 +- .../providers/album/album_sort_by_options.provider.g.dart | 2 +- mobile/lib/repositories/album_api.repository.dart | 2 +- mobile/lib/services/album.service.dart | 2 +- mobile/lib/services/folder.service.dart | 1 - mobile/lib/services/sync.service.dart | 2 +- 16 files changed, 17 insertions(+), 14 deletions(-) create mode 100644 mobile/lib/constants/enums.dart diff --git a/mobile/lib/constants/enums.dart b/mobile/lib/constants/enums.dart new file mode 100644 index 00000000000..329e71261cb --- /dev/null +++ b/mobile/lib/constants/enums.dart @@ -0,0 +1,5 @@ +enum TextSearchType { + context, + filename, + description, +} diff --git a/mobile/lib/entities/album.entity.dart b/mobile/lib/entities/album.entity.dart index de88d9cae66..ebb981e3f73 100644 --- a/mobile/lib/entities/album.entity.dart +++ b/mobile/lib/entities/album.entity.dart @@ -1,5 +1,4 @@ import 'package:flutter/foundation.dart'; -import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/infrastructure/entities/user.entity.dart'; import 'package:immich_mobile/utils/datetime_comparison.dart'; @@ -24,7 +23,7 @@ class Album { this.lastModifiedAssetTimestamp, required this.shared, required this.activityEnabled, - this.sortOrder = AssetOrder.desc, + this.assetOrder = AssetOrder.desc, }); // fields stored in DB @@ -159,7 +158,7 @@ class Album { a.remoteAssetCount = dto.assetCount; a.owner.value = await db.users.getById(dto.ownerId); if (dto.order != null) { - a.sortOrder = + a.assetOrder = dto.order == AssetOrder.asc ? AssetOrder.asc : AssetOrder.desc; } diff --git a/mobile/lib/entities/asset.entity.dart b/mobile/lib/entities/asset.entity.dart index b20474e1288..bcf529c534c 100644 --- a/mobile/lib/entities/asset.entity.dart +++ b/mobile/lib/entities/asset.entity.dart @@ -1,7 +1,6 @@ import 'dart:convert'; import 'dart:io'; -import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/domain/models/exif.model.dart'; import 'package:immich_mobile/extensions/string_extensions.dart'; import 'package:immich_mobile/infrastructure/entities/exif.entity.dart' diff --git a/mobile/lib/infrastructure/utils/asset.mixin.dart b/mobile/lib/infrastructure/utils/asset.mixin.dart index 04f1491545f..c3f96b977a0 100644 --- a/mobile/lib/infrastructure/utils/asset.mixin.dart +++ b/mobile/lib/infrastructure/utils/asset.mixin.dart @@ -1,6 +1,6 @@ import 'package:drift/drift.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; - +import 'package:openapi/api.dart'; mixin AssetEntityMixin on Table { TextColumn get name => text()(); diff --git a/mobile/lib/interfaces/album_api.interface.dart b/mobile/lib/interfaces/album_api.interface.dart index 2f679537296..5dd04254095 100644 --- a/mobile/lib/interfaces/album_api.interface.dart +++ b/mobile/lib/interfaces/album_api.interface.dart @@ -1,5 +1,5 @@ -import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/entities/album.entity.dart'; +import 'package:openapi/api.dart'; abstract interface class IAlbumApiRepository { Future get(String id); diff --git a/mobile/lib/interfaces/asset_api.interface.dart b/mobile/lib/interfaces/asset_api.interface.dart index 9fa8f5db648..055fdaabc7a 100644 --- a/mobile/lib/interfaces/asset_api.interface.dart +++ b/mobile/lib/interfaces/asset_api.interface.dart @@ -1,4 +1,3 @@ -import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:openapi/api.dart'; diff --git a/mobile/lib/models/search/search_filter.model.dart b/mobile/lib/models/search/search_filter.model.dart index 5db589338d9..20eacf053a6 100644 --- a/mobile/lib/models/search/search_filter.model.dart +++ b/mobile/lib/models/search/search_filter.model.dart @@ -3,6 +3,7 @@ import 'dart:convert'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/interfaces/person_api.interface.dart'; +import 'package:openapi/api.dart'; class SearchLocationFilter { String? country; diff --git a/mobile/lib/pages/library/folder/folder.page.dart b/mobile/lib/pages/library/folder/folder.page.dart index 00add572906..666719d2eca 100644 --- a/mobile/lib/pages/library/folder/folder.page.dart +++ b/mobile/lib/pages/library/folder/folder.page.dart @@ -3,7 +3,6 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/theme_extensions.dart'; import 'package:immich_mobile/models/folder/recursive_folder.model.dart'; diff --git a/mobile/lib/pages/library/places/places_collection.page.dart b/mobile/lib/pages/library/places/places_collection.page.dart index ccd3b41fd0e..bf38fb55840 100644 --- a/mobile/lib/pages/library/places/places_collection.page.dart +++ b/mobile/lib/pages/library/places/places_collection.page.dart @@ -16,6 +16,7 @@ import 'package:immich_mobile/services/api.service.dart'; import 'package:immich_mobile/widgets/common/search_field.dart'; import 'package:immich_mobile/widgets/map/map_thumbnail.dart'; import 'package:maplibre_gl/maplibre_gl.dart'; +import 'package:openapi/api.dart'; @RoutePage() class PlacesCollectionPage extends HookConsumerWidget { diff --git a/mobile/lib/pages/search/search.page.dart b/mobile/lib/pages/search/search.page.dart index 67b61a91957..fc2f158224e 100644 --- a/mobile/lib/pages/search/search.page.dart +++ b/mobile/lib/pages/search/search.page.dart @@ -12,6 +12,7 @@ import 'package:immich_mobile/models/search/search_filter.model.dart'; import 'package:immich_mobile/providers/search/paginated_search.provider.dart'; import 'package:immich_mobile/providers/search/search_input_focus.provider.dart'; import 'package:immich_mobile/routing/router.dart'; +import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/widgets/asset_grid/multiselect_grid.dart'; import 'package:immich_mobile/widgets/common/search_field.dart'; import 'package:immich_mobile/widgets/search/search_filter/camera_picker.dart'; diff --git a/mobile/lib/providers/album/album.provider.dart b/mobile/lib/providers/album/album.provider.dart index d9dc417cdcc..fdf32fc5916 100644 --- a/mobile/lib/providers/album/album.provider.dart +++ b/mobile/lib/providers/album/album.provider.dart @@ -115,7 +115,7 @@ class AlbumNotifier extends StateNotifier> { Future toggleAssetOrder(Album album) { final order = - album.sortOrder == AssetOrder.asc ? AssetOrder.desc : AssetOrder.asc; + album.assetOrder == AssetOrder.asc ? AssetOrder.desc : AssetOrder.asc; return albumService.updateAssetOrder(album, order); } diff --git a/mobile/lib/providers/album/album_sort_by_options.provider.g.dart b/mobile/lib/providers/album/album_sort_by_options.provider.g.dart index ba20e7eb66c..7e346441f27 100644 --- a/mobile/lib/providers/album/album_sort_by_options.provider.g.dart +++ b/mobile/lib/providers/album/album_sort_by_options.provider.g.dart @@ -38,6 +38,6 @@ final albumSortOrderProvider = allTransitiveDependencies: null, ); -typedef _$AlbumSortOrder = AutoDisposeNotifier; +typedef _$AlbumAssetOrder = AutoDisposeNotifier; // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/mobile/lib/repositories/album_api.repository.dart b/mobile/lib/repositories/album_api.repository.dart index 3eb9a70d688..45cfbcb38ed 100644 --- a/mobile/lib/repositories/album_api.repository.dart +++ b/mobile/lib/repositories/album_api.repository.dart @@ -162,7 +162,7 @@ class AlbumApiRepository extends ApiRepository implements IAlbumApiRepository { startDate: dto.startDate, endDate: dto.endDate, activityEnabled: dto.isActivityEnabled, - sortOrder: dto.order == AssetOrder.asc ? AssetOrder.asc : AssetOrder.desc, + assetOrder: dto.order == AssetOrder.asc ? AssetOrder.asc : AssetOrder.desc, ); album.remoteAssetCount = dto.assetCount; album.owner.value = diff --git a/mobile/lib/services/album.service.dart b/mobile/lib/services/album.service.dart index 8eb493d2dfa..3ec1d09f01a 100644 --- a/mobile/lib/services/album.service.dart +++ b/mobile/lib/services/album.service.dart @@ -487,7 +487,7 @@ class AlbumService { try { final updateAlbum = await _albumApiRepository.update(album.remoteId!, sortOrder: order); - album.sortOrder = updateAlbum.sortOrder; + album.assetOrder = updateAlbum.assetOrder; return _albumRepository.update(album); } catch (error, stackTrace) { diff --git a/mobile/lib/services/folder.service.dart b/mobile/lib/services/folder.service.dart index 9378418ec33..a88f736c1b5 100644 --- a/mobile/lib/services/folder.service.dart +++ b/mobile/lib/services/folder.service.dart @@ -1,5 +1,4 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/models/folder/recursive_folder.model.dart'; import 'package:immich_mobile/models/folder/root_folder.model.dart'; diff --git a/mobile/lib/services/sync.service.dart b/mobile/lib/services/sync.service.dart index 80950d8c000..1be029bd08b 100644 --- a/mobile/lib/services/sync.service.dart +++ b/mobile/lib/services/sync.service.dart @@ -459,7 +459,7 @@ class SyncService { album.lastModifiedAssetTimestamp = originalDto.lastModifiedAssetTimestamp; album.shared = dto.shared; album.activityEnabled = dto.activityEnabled; - album.sortOrder = dto.sortOrder; + album.assetOrder = dto.assetOrder; final remoteThumbnailAssetId = dto.remoteThumbnailAssetId; if (remoteThumbnailAssetId != null &&