mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:29:32 -05:00 
			
		
		
		
	fix(mobile): incorrect filename is retrieved during upload (#12990)
* fix(mobile): incorrect filename is retrieve during upload * use the same convention to get local id * revert previous change * pr feedback
This commit is contained in:
		
							parent
							
								
									3a37fc8bfd
								
							
						
					
					
						commit
						03aa346020
					
				@ -4,4 +4,7 @@ abstract interface class IAssetMediaRepository {
 | 
			
		||||
  Future<List<String>> deleteAll(List<String> ids);
 | 
			
		||||
 | 
			
		||||
  Future<Asset?> get(String id);
 | 
			
		||||
 | 
			
		||||
  /// Obtaining the correct original filename of the asset
 | 
			
		||||
  Future<String?> getOriginalFilename(String id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -43,4 +43,17 @@ class AssetMediaRepository implements IAssetMediaRepository {
 | 
			
		||||
    asset.local = local;
 | 
			
		||||
    return asset;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<String?> getOriginalFilename(String id) async {
 | 
			
		||||
    final entity = await AssetEntity.fromId(id);
 | 
			
		||||
 | 
			
		||||
    if (entity == null) {
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // titleAsync gets the correct original filename for some assets on iOS
 | 
			
		||||
    // otherwise using the `entity.title` would return a random GUID
 | 
			
		||||
    return await entity.titleAsync;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -15,6 +15,7 @@ import 'package:immich_mobile/models/backup/success_upload_asset.model.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/album.repository.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/album_api.repository.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/asset.repository.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/asset_media.repository.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/backup.repository.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/album_media.repository.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/file_media.repository.dart';
 | 
			
		||||
@ -368,6 +369,7 @@ class BackgroundService {
 | 
			
		||||
    BackupRepository backupAlbumRepository = BackupRepository(db);
 | 
			
		||||
    AlbumMediaRepository albumMediaRepository = AlbumMediaRepository();
 | 
			
		||||
    FileMediaRepository fileMediaRepository = FileMediaRepository();
 | 
			
		||||
    AssetMediaRepository assetMediaRepository = AssetMediaRepository();
 | 
			
		||||
    UserRepository userRepository = UserRepository(db);
 | 
			
		||||
    UserApiRepository userApiRepository =
 | 
			
		||||
        UserApiRepository(apiService.usersApi);
 | 
			
		||||
@ -409,6 +411,7 @@ class BackgroundService {
 | 
			
		||||
      albumService,
 | 
			
		||||
      albumMediaRepository,
 | 
			
		||||
      fileMediaRepository,
 | 
			
		||||
      assetMediaRepository,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    final selectedAlbums = backupService.selectedAlbumsQuery().findAllSync();
 | 
			
		||||
 | 
			
		||||
@ -12,6 +12,7 @@ import 'package:immich_mobile/entities/backup_album.entity.dart';
 | 
			
		||||
import 'package:immich_mobile/entities/duplicated_asset.entity.dart';
 | 
			
		||||
import 'package:immich_mobile/entities/store.entity.dart';
 | 
			
		||||
import 'package:immich_mobile/interfaces/album_media.interface.dart';
 | 
			
		||||
import 'package:immich_mobile/interfaces/asset_media.interface.dart';
 | 
			
		||||
import 'package:immich_mobile/interfaces/file_media.interface.dart';
 | 
			
		||||
import 'package:immich_mobile/models/backup/backup_candidate.model.dart';
 | 
			
		||||
import 'package:immich_mobile/models/backup/current_upload_asset.model.dart';
 | 
			
		||||
@ -21,6 +22,7 @@ import 'package:immich_mobile/providers/api.provider.dart';
 | 
			
		||||
import 'package:immich_mobile/providers/app_settings.provider.dart';
 | 
			
		||||
import 'package:immich_mobile/providers/db.provider.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/album_media.repository.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/asset_media.repository.dart';
 | 
			
		||||
import 'package:immich_mobile/repositories/file_media.repository.dart';
 | 
			
		||||
import 'package:immich_mobile/services/album.service.dart';
 | 
			
		||||
import 'package:immich_mobile/services/api.service.dart';
 | 
			
		||||
@ -40,6 +42,7 @@ final backupServiceProvider = Provider(
 | 
			
		||||
    ref.watch(albumServiceProvider),
 | 
			
		||||
    ref.watch(albumMediaRepositoryProvider),
 | 
			
		||||
    ref.watch(fileMediaRepositoryProvider),
 | 
			
		||||
    ref.watch(assetMediaRepositoryProvider),
 | 
			
		||||
  ),
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
@ -52,6 +55,7 @@ class BackupService {
 | 
			
		||||
  final AlbumService _albumService;
 | 
			
		||||
  final IAlbumMediaRepository _albumMediaRepository;
 | 
			
		||||
  final IFileMediaRepository _fileMediaRepository;
 | 
			
		||||
  final IAssetMediaRepository _assetMediaRepository;
 | 
			
		||||
 | 
			
		||||
  BackupService(
 | 
			
		||||
    this._apiService,
 | 
			
		||||
@ -60,6 +64,7 @@ class BackupService {
 | 
			
		||||
    this._albumService,
 | 
			
		||||
    this._albumMediaRepository,
 | 
			
		||||
    this._fileMediaRepository,
 | 
			
		||||
    this._assetMediaRepository,
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  Future<List<String>?> getDeviceBackupAsset() async {
 | 
			
		||||
@ -329,7 +334,9 @@ class BackupService {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (file != null) {
 | 
			
		||||
          String originalFileName = asset.fileName;
 | 
			
		||||
          String? originalFileName =
 | 
			
		||||
              await _assetMediaRepository.getOriginalFilename(asset.localId!);
 | 
			
		||||
          originalFileName ??= asset.fileName;
 | 
			
		||||
 | 
			
		||||
          if (asset.local!.isLivePhoto) {
 | 
			
		||||
            if (livePhotoFile == null) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user