This commit is contained in:
wuzihao051119 2025-06-04 19:51:59 +08:00
parent 02b62e5183
commit 07d2b272ae
16 changed files with 17 additions and 14 deletions

View File

@ -0,0 +1,5 @@
enum TextSearchType {
context,
filename,
description,
}

View File

@ -1,5 +1,4 @@
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:immich_mobile/constants/enums.dart';
import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/infrastructure/entities/user.entity.dart'; import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
import 'package:immich_mobile/utils/datetime_comparison.dart'; import 'package:immich_mobile/utils/datetime_comparison.dart';
@ -24,7 +23,7 @@ class Album {
this.lastModifiedAssetTimestamp, this.lastModifiedAssetTimestamp,
required this.shared, required this.shared,
required this.activityEnabled, required this.activityEnabled,
this.sortOrder = AssetOrder.desc, this.assetOrder = AssetOrder.desc,
}); });
// fields stored in DB // fields stored in DB
@ -159,7 +158,7 @@ class Album {
a.remoteAssetCount = dto.assetCount; a.remoteAssetCount = dto.assetCount;
a.owner.value = await db.users.getById(dto.ownerId); a.owner.value = await db.users.getById(dto.ownerId);
if (dto.order != null) { if (dto.order != null) {
a.sortOrder = a.assetOrder =
dto.order == AssetOrder.asc ? AssetOrder.asc : AssetOrder.desc; dto.order == AssetOrder.asc ? AssetOrder.asc : AssetOrder.desc;
} }

View File

@ -1,7 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:immich_mobile/constants/enums.dart';
import 'package:immich_mobile/domain/models/exif.model.dart'; import 'package:immich_mobile/domain/models/exif.model.dart';
import 'package:immich_mobile/extensions/string_extensions.dart'; import 'package:immich_mobile/extensions/string_extensions.dart';
import 'package:immich_mobile/infrastructure/entities/exif.entity.dart' import 'package:immich_mobile/infrastructure/entities/exif.entity.dart'

View File

@ -1,6 +1,6 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
import 'package:openapi/api.dart';
mixin AssetEntityMixin on Table { mixin AssetEntityMixin on Table {
TextColumn get name => text()(); TextColumn get name => text()();

View File

@ -1,5 +1,5 @@
import 'package:immich_mobile/constants/enums.dart';
import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:openapi/api.dart';
abstract interface class IAlbumApiRepository { abstract interface class IAlbumApiRepository {
Future<Album> get(String id); Future<Album> get(String id);

View File

@ -1,4 +1,3 @@
import 'package:immich_mobile/constants/enums.dart';
import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';

View File

@ -3,6 +3,7 @@ import 'dart:convert';
import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/interfaces/person_api.interface.dart'; import 'package:immich_mobile/interfaces/person_api.interface.dart';
import 'package:openapi/api.dart';
class SearchLocationFilter { class SearchLocationFilter {
String? country; String? country;

View File

@ -3,7 +3,6 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.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/build_context_extensions.dart';
import 'package:immich_mobile/extensions/theme_extensions.dart'; import 'package:immich_mobile/extensions/theme_extensions.dart';
import 'package:immich_mobile/models/folder/recursive_folder.model.dart'; import 'package:immich_mobile/models/folder/recursive_folder.model.dart';

View File

@ -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/common/search_field.dart';
import 'package:immich_mobile/widgets/map/map_thumbnail.dart'; import 'package:immich_mobile/widgets/map/map_thumbnail.dart';
import 'package:maplibre_gl/maplibre_gl.dart'; import 'package:maplibre_gl/maplibre_gl.dart';
import 'package:openapi/api.dart';
@RoutePage() @RoutePage()
class PlacesCollectionPage extends HookConsumerWidget { class PlacesCollectionPage extends HookConsumerWidget {

View File

@ -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/paginated_search.provider.dart';
import 'package:immich_mobile/providers/search/search_input_focus.provider.dart'; import 'package:immich_mobile/providers/search/search_input_focus.provider.dart';
import 'package:immich_mobile/routing/router.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/asset_grid/multiselect_grid.dart';
import 'package:immich_mobile/widgets/common/search_field.dart'; import 'package:immich_mobile/widgets/common/search_field.dart';
import 'package:immich_mobile/widgets/search/search_filter/camera_picker.dart'; import 'package:immich_mobile/widgets/search/search_filter/camera_picker.dart';

View File

@ -115,7 +115,7 @@ class AlbumNotifier extends StateNotifier<List<Album>> {
Future<Album?> toggleAssetOrder(Album album) { Future<Album?> toggleAssetOrder(Album album) {
final order = final order =
album.sortOrder == AssetOrder.asc ? AssetOrder.desc : AssetOrder.asc; album.assetOrder == AssetOrder.asc ? AssetOrder.desc : AssetOrder.asc;
return albumService.updateAssetOrder(album, order); return albumService.updateAssetOrder(album, order);
} }

View File

@ -38,6 +38,6 @@ final albumSortOrderProvider =
allTransitiveDependencies: null, allTransitiveDependencies: null,
); );
typedef _$AlbumSortOrder = AutoDisposeNotifier<bool>; typedef _$AlbumAssetOrder = AutoDisposeNotifier<bool>;
// ignore_for_file: type=lint // 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 // 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

View File

@ -162,7 +162,7 @@ class AlbumApiRepository extends ApiRepository implements IAlbumApiRepository {
startDate: dto.startDate, startDate: dto.startDate,
endDate: dto.endDate, endDate: dto.endDate,
activityEnabled: dto.isActivityEnabled, 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.remoteAssetCount = dto.assetCount;
album.owner.value = album.owner.value =

View File

@ -487,7 +487,7 @@ class AlbumService {
try { try {
final updateAlbum = final updateAlbum =
await _albumApiRepository.update(album.remoteId!, sortOrder: order); await _albumApiRepository.update(album.remoteId!, sortOrder: order);
album.sortOrder = updateAlbum.sortOrder; album.assetOrder = updateAlbum.assetOrder;
return _albumRepository.update(album); return _albumRepository.update(album);
} catch (error, stackTrace) { } catch (error, stackTrace) {

View File

@ -1,5 +1,4 @@
import 'package:hooks_riverpod/hooks_riverpod.dart'; 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/entities/asset.entity.dart';
import 'package:immich_mobile/models/folder/recursive_folder.model.dart'; import 'package:immich_mobile/models/folder/recursive_folder.model.dart';
import 'package:immich_mobile/models/folder/root_folder.model.dart'; import 'package:immich_mobile/models/folder/root_folder.model.dart';

View File

@ -459,7 +459,7 @@ class SyncService {
album.lastModifiedAssetTimestamp = originalDto.lastModifiedAssetTimestamp; album.lastModifiedAssetTimestamp = originalDto.lastModifiedAssetTimestamp;
album.shared = dto.shared; album.shared = dto.shared;
album.activityEnabled = dto.activityEnabled; album.activityEnabled = dto.activityEnabled;
album.sortOrder = dto.sortOrder; album.assetOrder = dto.assetOrder;
final remoteThumbnailAssetId = dto.remoteThumbnailAssetId; final remoteThumbnailAssetId = dto.remoteThumbnailAssetId;
if (remoteThumbnailAssetId != null && if (remoteThumbnailAssetId != null &&