From 8221c11be724fcae80b367b59e0c5a8f769bf673 Mon Sep 17 00:00:00 2001 From: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Date: Sat, 22 Aug 2026 17:04:08 +0530 Subject: [PATCH] changes from main & formatting --- .../repositories/db.repository.dart | 2 - .../lib/pages/common/splash_screen.page.dart | 1 - .../presentation/actions/delete.action.dart | 1 - .../infrastructure/app_metadata.provider.dart | 7 ---- .../infrastructure/asset.provider.dart | 5 --- .../infrastructure/sync.provider.dart | 3 -- .../infrastructure/user.provider.dart | 4 -- .../services/background_upload.service.dart | 2 +- mobile/lib/utils/bootstrap.dart | 2 +- mobile/lib/utils/migration.dart | 39 ++++++++++++------- .../sync_status_and_actions.dart | 1 - .../test/infrastructure/repository.mock.dart | 4 ++ .../repositories/upload_repository_test.dart | 3 -- .../presentation/presentation_context.dart | 2 - 14 files changed, 32 insertions(+), 44 deletions(-) delete mode 100644 mobile/lib/providers/infrastructure/app_metadata.provider.dart diff --git a/mobile/lib/infrastructure/repositories/db.repository.dart b/mobile/lib/infrastructure/repositories/db.repository.dart index cdc45de973..7180d56fb7 100644 --- a/mobile/lib/infrastructure/repositories/db.repository.dart +++ b/mobile/lib/infrastructure/repositories/db.repository.dart @@ -49,7 +49,6 @@ import 'package:immich_mobile/infrastructure/repositories/remote_album.repositor import 'package:immich_mobile/infrastructure/repositories/remote_asset.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/remote_exif.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/stack.repository.dart'; -import 'package:immich_mobile/infrastructure/repositories/store.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/sync_migration.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/sync_stream.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/timeline.repository.dart'; @@ -108,7 +107,6 @@ import 'package:sqlite_async/sqlite_async.dart'; RemoteAssetRepository, RemoteExifRepository, StackRepository, - StoreRepository, SyncMigrationRepository, SyncStreamRepository, TimelineRepository, diff --git a/mobile/lib/pages/common/splash_screen.page.dart b/mobile/lib/pages/common/splash_screen.page.dart index d98f5440f1..3f4653778f 100644 --- a/mobile/lib/pages/common/splash_screen.page.dart +++ b/mobile/lib/pages/common/splash_screen.page.dart @@ -17,7 +17,6 @@ import 'package:immich_mobile/providers/background_sync.provider.dart'; import 'package:immich_mobile/providers/backup/drift_backup.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/session.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/user.provider.dart'; import 'package:immich_mobile/providers/server_info.provider.dart'; import 'package:immich_mobile/providers/view_intent/view_intent_handler.provider.dart'; import 'package:immich_mobile/providers/websocket.provider.dart'; diff --git a/mobile/lib/presentation/actions/delete.action.dart b/mobile/lib/presentation/actions/delete.action.dart index 49491294c3..1a7323edcd 100644 --- a/mobile/lib/presentation/actions/delete.action.dart +++ b/mobile/lib/presentation/actions/delete.action.dart @@ -5,7 +5,6 @@ import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/extensions/platform_extensions.dart'; import 'package:immich_mobile/generated/translations.g.dart'; import 'package:immich_mobile/presentation/actions/action.dart'; -import 'package:immich_mobile/providers/infrastructure/app_metadata.provider.dart'; import 'package:immich_mobile/providers/infrastructure/asset.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/toast.provider.dart'; diff --git a/mobile/lib/providers/infrastructure/app_metadata.provider.dart b/mobile/lib/providers/infrastructure/app_metadata.provider.dart deleted file mode 100644 index 9830ee9c53..0000000000 --- a/mobile/lib/providers/infrastructure/app_metadata.provider.dart +++ /dev/null @@ -1,7 +0,0 @@ -import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:immich_mobile/infrastructure/repositories/app_metadata.repository.dart'; -import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; - -final appMetadataRepositoryProvider = Provider( - (ref) => AppMetadataRepository(ref.watch(driftProvider)), -); diff --git a/mobile/lib/providers/infrastructure/asset.provider.dart b/mobile/lib/providers/infrastructure/asset.provider.dart index 927a6c0ef2..466a48f276 100644 --- a/mobile/lib/providers/infrastructure/asset.provider.dart +++ b/mobile/lib/providers/infrastructure/asset.provider.dart @@ -1,10 +1,5 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/services/asset.service.dart'; -import 'package:immich_mobile/infrastructure/repositories/local_asset.repository.dart'; -import 'package:immich_mobile/infrastructure/repositories/remote_asset.repository.dart'; -import 'package:immich_mobile/infrastructure/repositories/remote_exif.repository.dart'; -import 'package:immich_mobile/infrastructure/repositories/trashed_local_asset.repository.dart'; -import 'package:immich_mobile/providers/infrastructure/app_metadata.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/user.provider.dart'; import 'package:immich_mobile/repositories/asset_api.repository.dart'; diff --git a/mobile/lib/providers/infrastructure/sync.provider.dart b/mobile/lib/providers/infrastructure/sync.provider.dart index c2ec0d4836..32c6189bb8 100644 --- a/mobile/lib/providers/infrastructure/sync.provider.dart +++ b/mobile/lib/providers/infrastructure/sync.provider.dart @@ -4,9 +4,6 @@ import 'package:immich_mobile/domain/services/local_sync.service.dart'; import 'package:immich_mobile/domain/services/sync_stream.service.dart'; import 'package:immich_mobile/infrastructure/repositories/sync_api.repository.dart'; import 'package:immich_mobile/providers/api.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/album.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/app_metadata.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/asset.provider.dart'; import 'package:immich_mobile/providers/infrastructure/cancel.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/platform.provider.dart'; diff --git a/mobile/lib/providers/infrastructure/user.provider.dart b/mobile/lib/providers/infrastructure/user.provider.dart index 3ac532d8a2..e17eaa220f 100644 --- a/mobile/lib/providers/infrastructure/user.provider.dart +++ b/mobile/lib/providers/infrastructure/user.provider.dart @@ -6,10 +6,6 @@ import 'package:immich_mobile/providers/api.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/repositories/partner_api.repository.dart'; -final userRepositoryProvider = Provider((ref) => UserRepository(ref.watch(driftProvider))); - -final authUserRepositoryProvider = Provider((ref) => DriftAuthUserRepository(ref.watch(driftProvider))); - final userApiRepositoryProvider = Provider((ref) => UserApiRepository(ref.watch(apiServiceProvider).usersApi)); final userServiceProvider = Provider((ref) { diff --git a/mobile/lib/services/background_upload.service.dart b/mobile/lib/services/background_upload.service.dart index cb91dff59d..146b00c675 100644 --- a/mobile/lib/services/background_upload.service.dart +++ b/mobile/lib/services/background_upload.service.dart @@ -16,7 +16,7 @@ import 'package:immich_mobile/infrastructure/repositories/session.repository.dar import 'package:immich_mobile/infrastructure/repositories/settings.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/storage.repository.dart'; import 'package:immich_mobile/infrastructure/store.dart'; -import 'package:immich_mobile/providers/infrastructure/asset.provider.dart'; +import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/storage.provider.dart'; import 'package:immich_mobile/repositories/asset_media.repository.dart'; import 'package:immich_mobile/repositories/upload.repository.dart'; diff --git a/mobile/lib/utils/bootstrap.dart b/mobile/lib/utils/bootstrap.dart index c8bea7e97a..1240d42698 100644 --- a/mobile/lib/utils/bootstrap.dart +++ b/mobile/lib/utils/bootstrap.dart @@ -1,7 +1,7 @@ import 'package:background_downloader/background_downloader.dart'; import 'package:immich_mobile/constants/constants.dart'; import 'package:immich_mobile/domain/services/log.service.dart'; -import 'package:immich_mobile/extensions/translate_extensions.dart'; +import 'package:immich_mobile/generated/translations.g.dart'; import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/log.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/logger_db.repository.dart'; diff --git a/mobile/lib/utils/migration.dart b/mobile/lib/utils/migration.dart index 17cfbdad99..6f95f4da7f 100644 --- a/mobile/lib/utils/migration.dart +++ b/mobile/lib/utils/migration.dart @@ -16,7 +16,6 @@ import 'package:immich_mobile/domain/services/feature_message.service.dart'; import 'package:immich_mobile/infrastructure/entities/app_metadata.entity.drift.dart'; import 'package:immich_mobile/infrastructure/entities/session.entity.drift.dart'; import 'package:immich_mobile/infrastructure/entities/settings.entity.drift.dart'; -import 'package:immich_mobile/infrastructure/repositories/app_metadata.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/network.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/session.repository.dart'; @@ -65,7 +64,17 @@ Future> _readLegacyStore(Drift drift) async { } Future _migrateTo25(Drift drift, Map legacyStore) async { - final migrator = _StoreMigrator.settings(drift, legacyStore); + final migrator = _StoreMigrator._( + drift, + legacyStore, + encode: (key, value) => key.encode(value), + readDefault: (key) => defaultConfig.read(key), + insertRow: (batch, name, value) => batch.insert( + drift.settingsEntity, + SettingsEntityCompanion(key: Value(name), value: Value(value)), + mode: InsertMode.insertOrReplace, + ), + ); final accessToken = migrator.readLegacyStoreString(.legacyAccessToken); if (accessToken == null || accessToken.isEmpty) { @@ -103,9 +112,10 @@ Future _migrateTo25(Drift drift, Map legacyStore) async { await NetworkRepository.setHeaders(headers, urls, token: accessToken); } -Future _migrateTo26(Drift drift) async { +Future _migrateTo26(Drift drift, Map legacyStore) async { final migrator = _StoreMigrator._( drift, + legacyStore, encode: (key, value) => key.encode(value), readDefault: (key) => defaultConfig.read(key), insertRow: (batch, name, value) => batch.insert( @@ -114,7 +124,7 @@ Future _migrateTo26(Drift drift) async { mode: InsertMode.insertOrReplace, ), ); - await migrator.migrateEnumIndex(StoreKey.legacyLogLevel, SettingsKey.logLevel, LogLevel.values); + await migrator.migrateEnumIndex(.legacyLogLevel, .logLevel, LogLevel.values); // Theme await migrator.migrateEnumName(.legacyThemeMode, .themeMode, ThemeMode.values); await migrator.migrateEnumName(.legacyPrimaryColor, .themePrimaryColor, ImmichColorPreset.values); @@ -170,9 +180,10 @@ Future _migrateTo26(Drift drift) async { await migrator.complete(); } -Future _migrateTo27(Drift drift) async { +Future _migrateTo27(Drift drift, Map legacyStore) async { final migrator = _StoreMigrator._( drift, + legacyStore, encode: (key, value) => key.encode(value), readDefault: (key) => defaultSession.read(key), insertRow: (batch, name, value) => batch.insert( @@ -181,17 +192,18 @@ Future _migrateTo27(Drift drift) async { mode: InsertMode.insertOrReplace, ), ); - await migrator.migrateString(StoreKey.legacyServerUrl, SessionKey.serverUrl); - await migrator.migrateString(StoreKey.legacyAccessToken, SessionKey.accessToken); - await migrator.migrateString(StoreKey.legacyServerEndpoint, SessionKey.serverEndpoint); + await migrator.migrateString(.legacyServerUrl, .serverUrl); + await migrator.migrateString(.legacyAccessToken, .accessToken); + await migrator.migrateString(.legacyServerEndpoint, .serverEndpoint); await migrator.complete(); await SessionRepository.instance.refresh(); } -Future _migrateTo28(Drift drift) async { +Future _migrateTo28(Drift drift, Map legacyStore) async { final migrator = _StoreMigrator._( drift, + legacyStore, encode: (key, value) => key.encode(value), readDefault: (key) => defaultConfig.read(key), insertRow: (batch, name, value) => batch.insert( @@ -200,17 +212,18 @@ Future _migrateTo28(Drift drift) async { mode: InsertMode.insertOrReplace, ), ); - await migrator.migrateBool(StoreKey.legacyAdvancedTroubleshooting, SettingsKey.advancedTroubleshooting); - await migrator.migrateBool(StoreKey.legacyEnableHapticFeedback, SettingsKey.advancedEnableHapticFeedback); - await migrator.migrateBool(StoreKey.legacyReadonlyModeEnabled, SettingsKey.advancedReadonlyModeEnabled); + await migrator.migrateBool(.legacyAdvancedTroubleshooting, .advancedTroubleshooting); + await migrator.migrateBool(.legacyEnableHapticFeedback, .advancedEnableHapticFeedback); + await migrator.migrateBool(.legacyReadonlyModeEnabled, .advancedReadonlyModeEnabled); await migrator.complete(); await SettingsRepository.instance.refresh(); } -Future _migrateTo29(Drift drift) async { +Future _migrateTo29(Drift drift, Map legacyStore) async { final migrator = _StoreMigrator._( drift, + legacyStore, encode: (key, value) => key.encode(value), readDefault: (_) => null, insertRow: (batch, name, value) => batch.insert( diff --git a/mobile/lib/widgets/settings/beta_sync_settings/sync_status_and_actions.dart b/mobile/lib/widgets/settings/beta_sync_settings/sync_status_and_actions.dart index 9c5485e2ec..61536eb260 100644 --- a/mobile/lib/widgets/settings/beta_sync_settings/sync_status_and_actions.dart +++ b/mobile/lib/widgets/settings/beta_sync_settings/sync_status_and_actions.dart @@ -12,7 +12,6 @@ import 'package:immich_mobile/extensions/platform_extensions.dart'; import 'package:immich_mobile/generated/translations.g.dart'; import 'package:immich_mobile/providers/background_sync.provider.dart'; import 'package:immich_mobile/providers/infrastructure/album.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/app_metadata.provider.dart'; import 'package:immich_mobile/providers/infrastructure/asset.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/storage.provider.dart'; diff --git a/mobile/test/infrastructure/repository.mock.dart b/mobile/test/infrastructure/repository.mock.dart index c741a36a43..69ffbfbe79 100644 --- a/mobile/test/infrastructure/repository.mock.dart +++ b/mobile/test/infrastructure/repository.mock.dart @@ -20,6 +20,10 @@ import 'package:immich_mobile/repositories/drift_album_api_repository.dart'; import 'package:immich_mobile/repositories/upload.repository.dart'; import 'package:mocktail/mocktail.dart'; +class MockDrift extends Mock implements Drift {} + +class MockMemoryRepository extends Mock implements MemoryRepository {} + class MockSettingsRepository extends Mock implements SettingsRepository {} class MockAppMetadataRepository extends Mock implements AppMetadataRepository {} diff --git a/mobile/test/repositories/upload_repository_test.dart b/mobile/test/repositories/upload_repository_test.dart index a39c56c283..753a30d609 100644 --- a/mobile/test/repositories/upload_repository_test.dart +++ b/mobile/test/repositories/upload_repository_test.dart @@ -8,10 +8,8 @@ import 'package:drift/native.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:http/http.dart' as http; import 'package:immich_mobile/domain/models/session.model.dart'; -import 'package:immich_mobile/domain/services/store.service.dart'; import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/session.repository.dart'; -import 'package:immich_mobile/infrastructure/repositories/store.repository.dart'; import 'package:immich_mobile/repositories/upload.repository.dart'; import 'package:mocktail/mocktail.dart'; @@ -34,7 +32,6 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); FileDownloader(persistentStorage: _NoStorage()); final db = Drift(DatabaseConnection(NativeDatabase.memory(), closeStreamsSynchronously: true)); - await StoreService.init(storeRepository: StoreRepository(db)); await SessionRepository.ensureInitialized(db); await SessionRepository.instance.write(SessionKey.serverEndpoint, 'http://demo.immich.app/api'); registerFallbackValue(_FakeBaseRequest()); diff --git a/mobile/test/unit/presentation/presentation_context.dart b/mobile/test/unit/presentation/presentation_context.dart index 19acc5c8e7..4caca0e471 100644 --- a/mobile/test/unit/presentation/presentation_context.dart +++ b/mobile/test/unit/presentation/presentation_context.dart @@ -15,7 +15,6 @@ import 'package:immich_mobile/infrastructure/repositories/settings.repository.da import 'package:immich_mobile/presentation/actions/action.dart'; import 'package:immich_mobile/presentation/actions/action.widget.dart'; import 'package:immich_mobile/providers/infrastructure/album.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/app_metadata.provider.dart'; import 'package:immich_mobile/providers/infrastructure/asset.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/user.provider.dart'; @@ -63,7 +62,6 @@ class PresentationContext { serverInfoServiceProvider.overrideWithValue(service.serverInfo), inLockedViewProvider.overrideWithValue(false), assetMediaRepositoryProvider.overrideWithValue(repository.assetMedia.api), - appMetadataRepositoryProvider.overrideWithValue(repository.metadata), ]; Drift _mockDrift() {