Skip to content

Commit

Permalink
pr feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
alextran1502 committed Feb 18, 2025
1 parent d0a512a commit 6e7a375
Show file tree
Hide file tree
Showing 16 changed files with 52 additions and 25 deletions.
2 changes: 1 addition & 1 deletion mobile/lib/interfaces/album.interface.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ abstract interface class IAlbumRepository implements IDatabaseRepository {

Stream<RenderList> getRenderListStream(Album album);

Future<void> dropTable();
Future<void> clearTable();
}

enum AlbumSort { remoteId, localId }
2 changes: 1 addition & 1 deletion mobile/lib/interfaces/asset.interface.dart
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ abstract interface class IAssetRepository implements IDatabaseRepository {

Future<List<Asset>> getStackAssets(String stackId);

Future<void> dropTable();
Future<void> clearTable();

Stream<Asset?> watchAsset(int id, {bool fireImmediately = false});
}
Expand Down
2 changes: 1 addition & 1 deletion mobile/lib/interfaces/etag.interface.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ abstract interface class IETagRepository implements IDatabaseRepository {

Future<void> deleteByIds(List<String> ids);

Future<void> dropTable();
Future<void> clearTable();
}
2 changes: 2 additions & 0 deletions mobile/lib/interfaces/exif_info.interface.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ abstract interface class IExifInfoRepository implements IDatabaseRepository {
Future<List<ExifInfo>> updateAll(List<ExifInfo> exifInfos);

Future<void> delete(int id);

Future<void> clearTable();
}
2 changes: 1 addition & 1 deletion mobile/lib/interfaces/user.interface.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ abstract interface class IUserRepository implements IDatabaseRepository {

Future<User> me();

Future<void> dropTable();
Future<void> clearTable();
}

enum UserSort { id }
13 changes: 9 additions & 4 deletions mobile/lib/providers/asset.provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import 'package:immich_mobile/providers/db.provider.dart';
import 'package:immich_mobile/providers/user.provider.dart';
import 'package:immich_mobile/services/asset.service.dart';
import 'package:immich_mobile/services/etag.service.dart';
import 'package:immich_mobile/services/exif.service.dart';
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/services/sync.service.dart';
Expand All @@ -23,6 +24,7 @@ final assetProvider = StateNotifierProvider<AssetNotifier, bool>((ref) {
ref.watch(userServiceProvider),
ref.watch(syncServiceProvider),
ref.watch(etagServiceProvider),
ref.watch(exifServiceProvider),
ref,
);
});
Expand All @@ -33,6 +35,7 @@ class AssetNotifier extends StateNotifier<bool> {
final UserService _userService;
final SyncService _syncService;
final ETagService _etagService;
final ExifService _exifService;
final StateNotifierProviderRef _ref;
final log = Logger('AssetNotifier');
bool _getAllAssetInProgress = false;
Expand All @@ -44,6 +47,7 @@ class AssetNotifier extends StateNotifier<bool> {
this._userService,
this._syncService,
this._etagService,
this._exifService,
this._ref,
) : super(false);

Expand Down Expand Up @@ -80,10 +84,11 @@ class AssetNotifier extends StateNotifier<bool> {
Future<void> clearAllAssets() async {
await Store.delete(StoreKey.assetETag);
await Future.wait([
_assetService.dropTable(),
_albumService.dropTable(),
_userService.dropTable(),
_etagService.dropTable(),
_assetService.clearTable(),
_exifService.clearTable(),
_albumService.clearTable(),
_userService.clearTable(),
_etagService.clearTable(),
]);
}

Expand Down
4 changes: 2 additions & 2 deletions mobile/lib/repositories/album.repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,8 @@ class AlbumRepository extends DatabaseRepository implements IAlbumRepository {
}

@override
Future<void> dropTable() async {
await db.writeTxn(() async {
Future<void> clearTable() async {
await txn(() async {
await db.albums.clear();
});
}
Expand Down
5 changes: 2 additions & 3 deletions mobile/lib/repositories/asset.repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -212,10 +212,9 @@ class AssetRepository extends DatabaseRepository implements IAssetRepository {
}

@override
Future<void> dropTable() async {
await db.writeTxn(() async {
Future<void> clearTable() async {
await txn(() async {
await db.assets.clear();
await db.exifInfos.clear();
});
}

Expand Down
4 changes: 2 additions & 2 deletions mobile/lib/repositories/etag.repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ class ETagRepository extends DatabaseRepository implements IETagRepository {
Future<ETag?> getById(String id) => db.eTags.getById(id);

@override
Future<void> dropTable() async {
await db.writeTxn(() async {
Future<void> clearTable() async {
await txn(() async {
await db.eTags.clear();
});
}
Expand Down
5 changes: 5 additions & 0 deletions mobile/lib/repositories/exif_info.repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,9 @@ class ExifInfoRepository extends DatabaseRepository
await txn(() => db.exifInfos.putAll(exifInfos));
return exifInfos;
}

@override
Future<void> clearTable() {
return txn(() => db.exifInfos.clear());
}
}
4 changes: 2 additions & 2 deletions mobile/lib/repositories/user.repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ class UserRepository extends DatabaseRepository implements IUserRepository {
.findAll();

@override
Future<void> dropTable() async {
await db.writeTxn(() async {
Future<void> clearTable() async {
await txn(() async {
await db.users.clear();
});
}
Expand Down
4 changes: 2 additions & 2 deletions mobile/lib/services/album.service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ class AlbumService {
return null;
}

Future<void> dropTable() async {
await _albumRepository.dropTable();
Future<void> clearTable() async {
await _albumRepository.clearTable();
}
}
4 changes: 2 additions & 2 deletions mobile/lib/services/asset.service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -414,8 +414,8 @@ class AssetService {
return _assetRepository.getStackAssets(stackId);
}

Future<void> dropTable() {
return _assetRepository.dropTable();
Future<void> clearTable() {
return _assetRepository.clearTable();
}

/// Delete assets from local file system and unreference from the database
Expand Down
4 changes: 2 additions & 2 deletions mobile/lib/services/etag.service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class ETagService {

ETagService(this._eTagRepository);

Future<void> dropTable() {
return _eTagRepository.dropTable();
Future<void> clearTable() {
return _eTagRepository.clearTable();
}
}
16 changes: 16 additions & 0 deletions mobile/lib/services/exif.service.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/interfaces/exif_info.interface.dart';
import 'package:immich_mobile/repositories/exif_info.repository.dart';

final exifServiceProvider =
Provider((ref) => ExifService(ref.watch(exifInfoRepositoryProvider)));

class ExifService {
final IExifInfoRepository _exifInfoRepository;

ExifService(this._exifInfoRepository);

Future<void> clearTable() {
return _exifInfoRepository.clearTable();
}
}
4 changes: 2 additions & 2 deletions mobile/lib/services/user.service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ class UserService {
return _syncService.syncUsersFromServer(users);
}

Future<void> dropTable() {
return _userRepository.dropTable();
Future<void> clearTable() {
return _userRepository.clearTable();
}
}

0 comments on commit 6e7a375

Please sign in to comment.