feature(mobile, beta, Android): handle remote asset trash/restore events and rescan media

- Handle move to trash and restore from trash for remote assets on Android
- Trigger MediaScannerConnection to rescan affected media files
This commit is contained in:
Peter Ombodi 2025-07-31 18:34:36 +03:00
parent f972b8d514
commit cf920ea438
9 changed files with 140 additions and 6 deletions

View file

@ -2,7 +2,12 @@ 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/providers/app_settings.provider.dart';
import 'package:immich_mobile/providers/infrastructure/db.provider.dart';
import 'package:immich_mobile/providers/infrastructure/storage.provider.dart';
import 'package:logging/logging.dart';
import '../../repositories/local_files_manager.repository.dart';
final localAssetRepository = Provider<DriftLocalAssetRepository>(
(ref) => DriftLocalAssetRepository(ref.watch(driftProvider)),
@ -14,14 +19,22 @@ final remoteAssetRepositoryProvider = Provider<RemoteAssetRepository>(
final assetServiceProvider = Provider(
(ref) => AssetService(
appSettingsService: ref.watch(appSettingsServiceProvider),
remoteAssetRepository: ref.watch(remoteAssetRepositoryProvider),
localAssetRepository: ref.watch(localAssetRepository),
localFilesManager: ref.watch(localFilesManagerRepositoryProvider),
storageRepository: ref.watch(storageRepositoryProvider),
logger: Logger('AssetService'),
),
);
final placesProvider = FutureProvider<List<(String, String)>>(
(ref) => AssetService(
appSettingsService: ref.watch(appSettingsServiceProvider),
remoteAssetRepository: ref.watch(remoteAssetRepositoryProvider),
localAssetRepository: ref.watch(localAssetRepository),
localFilesManager: ref.watch(localFilesManagerRepositoryProvider),
storageRepository: ref.watch(storageRepositoryProvider),
logger: Logger('AssetService'),
).getPlaces(),
);