changes from main & formatting

This commit is contained in:
shenlong-tanwen 2026-08-22 17:04:08 +05:30
parent 505886fcb2
commit 8221c11be7
14 changed files with 32 additions and 44 deletions

View file

@ -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,

View file

@ -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';

View file

@ -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';

View file

@ -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<AppMetadataRepository>(
(ref) => AppMetadataRepository(ref.watch(driftProvider)),
);

View file

@ -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';

View file

@ -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';

View file

@ -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) {

View file

@ -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';

View file

@ -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';

View file

@ -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<Map<int, Object?>> _readLegacyStore(Drift drift) async {
}
Future<void> _migrateTo25(Drift drift, Map<int, Object?> legacyStore) async {
final migrator = _StoreMigrator.settings(drift, legacyStore);
final migrator = _StoreMigrator<SettingsKey>._(
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<void> _migrateTo25(Drift drift, Map<int, Object?> legacyStore) async {
await NetworkRepository.setHeaders(headers, urls, token: accessToken);
}
Future<void> _migrateTo26(Drift drift) async {
Future<void> _migrateTo26(Drift drift, Map<int, Object?> legacyStore) async {
final migrator = _StoreMigrator<SettingsKey>._(
drift,
legacyStore,
encode: (key, value) => key.encode(value),
readDefault: (key) => defaultConfig.read(key),
insertRow: (batch, name, value) => batch.insert(
@ -114,7 +124,7 @@ Future<void> _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<void> _migrateTo26(Drift drift) async {
await migrator.complete();
}
Future<void> _migrateTo27(Drift drift) async {
Future<void> _migrateTo27(Drift drift, Map<int, Object?> legacyStore) async {
final migrator = _StoreMigrator<SessionKey>._(
drift,
legacyStore,
encode: (key, value) => key.encode(value),
readDefault: (key) => defaultSession.read(key),
insertRow: (batch, name, value) => batch.insert(
@ -181,17 +192,18 @@ Future<void> _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<void> _migrateTo28(Drift drift) async {
Future<void> _migrateTo28(Drift drift, Map<int, Object?> legacyStore) async {
final migrator = _StoreMigrator<SettingsKey>._(
drift,
legacyStore,
encode: (key, value) => key.encode(value),
readDefault: (key) => defaultConfig.read(key),
insertRow: (batch, name, value) => batch.insert(
@ -200,17 +212,18 @@ Future<void> _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<void> _migrateTo29(Drift drift) async {
Future<void> _migrateTo29(Drift drift, Map<int, Object?> legacyStore) async {
final migrator = _StoreMigrator<AppMetadataKey>._(
drift,
legacyStore,
encode: (key, value) => key.encode(value),
readDefault: (_) => null,
insertRow: (batch, name, value) => batch.insert(

View file

@ -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';

View file

@ -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 {}

View file

@ -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());

View file

@ -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() {