refactor to per row store

This commit is contained in:
shenlong-tanwen
2026-04-29 00:43:52 +07:00
parent cc56f86333
commit 5933664862
22 changed files with 338 additions and 266 deletions
+2 -5
View File
@@ -3,7 +3,6 @@ import 'package:immich_mobile/constants/constants.dart';
import 'package:immich_mobile/domain/services/log.service.dart';
import 'package:immich_mobile/domain/services/store.service.dart';
import 'package:immich_mobile/extensions/translate_extensions.dart';
import 'package:immich_mobile/infrastructure/repositories/cached_metadata.repository.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';
@@ -50,13 +49,11 @@ abstract final class Bootstrap {
await StoreService.init(storeRepository: storeRepo, listenUpdates: listenStoreUpdates);
final cachedMetadataRepository = await CachedMetadataRepository.ensureInitialized(
repository: MetadataRepository(drift),
);
final metadataRepo = await MetadataRepository.ensureInitialized(drift);
await LogService.init(
logRepository: LogRepository(logDb),
metadataRepository: cachedMetadataRepository,
metadataRepository: metadataRepo,
shouldBuffer: shouldBufferLogs,
);
+4 -5
View File
@@ -3,12 +3,12 @@ import 'dart:async';
import 'package:drift/drift.dart';
import 'package:flutter/material.dart';
import 'package:immich_mobile/domain/models/log.model.dart';
import 'package:immich_mobile/domain/models/metadata_kind.dart';
import 'package:immich_mobile/domain/models/metadata_key.dart';
import 'package:immich_mobile/domain/models/store.model.dart';
import 'package:immich_mobile/domain/services/log.service.dart';
import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/infrastructure/repositories/cached_metadata.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/metadata.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/network.repository.dart';
import 'package:immich_mobile/services/api.service.dart';
@@ -43,20 +43,19 @@ Future<void> _migrateTo26(Drift drift) async {
const int themeModeKey = 102;
const int logLevelKey = 115;
final cache = CachedMetadataRepository.instance;
final repo = MetadataRepository.instance;
final migrated = <int>[];
final themeMode = await _readLegacyStoreString(drift, themeModeKey);
if (themeMode != null) {
final mode = ThemeMode.values.firstWhere((m) => m.name == themeMode, orElse: () => ThemeMode.system);
await cache.update(MetadataKind.appConfig, (current) => current.copyWith(themeMode: mode));
await repo.write(MetadataKey.themeMode, mode);
migrated.add(themeModeKey);
}
final logLevelIndex = await _readLegacyStoreInt(drift, logLevelKey);
if (logLevelIndex != null) {
final logLevel = LogLevel.values.elementAtOrNull(logLevelIndex) ?? LogLevel.info;
await cache.update(MetadataKind.systemConfig, (current) => current.copyWith(logLevel: logLevel));
await LogService.I.setLogLevel(logLevel);
migrated.add(logLevelKey);
}