1
0
mirror of https://github.com/immich-app/immich.git synced 2025-08-07 23:03:36 +02:00

refactor(mobile): delete local button in new timeline (#19961)

* delete local action button

* include source

* move prompt

* batch
This commit is contained in:
Mert
2025-07-17 00:25:41 +03:00
committed by GitHub
parent eae2471ab5
commit 649221176c
11 changed files with 99 additions and 14 deletions

View File

@ -2,11 +2,13 @@ import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:immich_mobile/constants/enums.dart';
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
import 'package:immich_mobile/infrastructure/repositories/local_asset.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/remote_album.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/remote_asset.repository.dart';
import 'package:immich_mobile/providers/infrastructure/album.provider.dart';
import 'package:immich_mobile/providers/infrastructure/asset.provider.dart';
import 'package:immich_mobile/repositories/asset_api.repository.dart';
import 'package:immich_mobile/repositories/asset_media.repository.dart';
import 'package:immich_mobile/repositories/drift_album_api_repository.dart';
import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/widgets/common/location_picker.dart';
@ -17,22 +19,28 @@ final actionServiceProvider = Provider<ActionService>(
(ref) => ActionService(
ref.watch(assetApiRepositoryProvider),
ref.watch(remoteAssetRepositoryProvider),
ref.watch(localAssetRepository),
ref.watch(driftAlbumApiRepositoryProvider),
ref.watch(remoteAlbumRepository),
ref.watch(assetMediaRepositoryProvider),
),
);
class ActionService {
final AssetApiRepository _assetApiRepository;
final RemoteAssetRepository _remoteAssetRepository;
final DriftLocalAssetRepository _localAssetRepository;
final DriftAlbumApiRepository _albumApiRepository;
final DriftRemoteAlbumRepository _remoteAlbumRepository;
final AssetMediaRepository _assetMediaRepository;
const ActionService(
this._assetApiRepository,
this._remoteAssetRepository,
this._localAssetRepository,
this._albumApiRepository,
this._remoteAlbumRepository,
this._assetMediaRepository,
);
Future<void> shareLink(List<String> remoteIds, BuildContext context) async {
@ -107,6 +115,11 @@ class ActionService {
await _remoteAssetRepository.delete(remoteIds);
}
Future<void> deleteLocal(List<String> localIds) async {
await _assetMediaRepository.deleteAll(localIds);
await _localAssetRepository.delete(localIds);
}
Future<bool> editLocation(
List<String> remoteIds,
BuildContext context,