mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	fix(mobile): Fixed iOS 16 overflow cache and memory leaked in gallery viewer. (#700)
This commit is contained in:
		@@ -26,7 +26,7 @@ class AvailableAlbum {
 | 
			
		||||
 | 
			
		||||
  String get name => albumEntity.name;
 | 
			
		||||
 | 
			
		||||
  int get assetCount => albumEntity.assetCount;
 | 
			
		||||
  Future<int> get assetCount => albumEntity.assetCountAsync;
 | 
			
		||||
 | 
			
		||||
  String get id => albumEntity.id;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -183,17 +183,21 @@ class BackupNotifier extends StateNotifier<BackUpState> {
 | 
			
		||||
    for (AssetPathEntity album in albums) {
 | 
			
		||||
      AvailableAlbum availableAlbum = AvailableAlbum(albumEntity: album);
 | 
			
		||||
 | 
			
		||||
      var assetList =
 | 
			
		||||
          await album.getAssetListRange(start: 0, end: album.assetCount);
 | 
			
		||||
      var assetCountInAlbum = await album.assetCountAsync;
 | 
			
		||||
      if (assetCountInAlbum > 0) {
 | 
			
		||||
        var assetList =
 | 
			
		||||
            await album.getAssetListRange(start: 0, end: assetCountInAlbum);
 | 
			
		||||
 | 
			
		||||
      if (assetList.isNotEmpty) {
 | 
			
		||||
        var thumbnailAsset = assetList.first;
 | 
			
		||||
        var thumbnailData = await thumbnailAsset
 | 
			
		||||
            .thumbnailDataWithSize(const ThumbnailSize(512, 512));
 | 
			
		||||
        availableAlbum = availableAlbum.copyWith(thumbnailData: thumbnailData);
 | 
			
		||||
        if (assetList.isNotEmpty) {
 | 
			
		||||
          var thumbnailAsset = assetList.first;
 | 
			
		||||
          var thumbnailData = await thumbnailAsset
 | 
			
		||||
              .thumbnailDataWithSize(const ThumbnailSize(512, 512));
 | 
			
		||||
          availableAlbum =
 | 
			
		||||
              availableAlbum.copyWith(thumbnailData: thumbnailData);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        availableAlbums.add(availableAlbum);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      availableAlbums.add(availableAlbum);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    state = state.copyWith(availableAlbums: availableAlbums);
 | 
			
		||||
@@ -296,14 +300,18 @@ class BackupNotifier extends StateNotifier<BackUpState> {
 | 
			
		||||
    Set<AssetEntity> assetsFromExcludedAlbums = {};
 | 
			
		||||
 | 
			
		||||
    for (var album in state.selectedBackupAlbums) {
 | 
			
		||||
      var assets = await album.albumEntity
 | 
			
		||||
          .getAssetListRange(start: 0, end: album.assetCount);
 | 
			
		||||
      var assets = await album.albumEntity.getAssetListRange(
 | 
			
		||||
        start: 0,
 | 
			
		||||
        end: await album.albumEntity.assetCountAsync,
 | 
			
		||||
      );
 | 
			
		||||
      assetsFromSelectedAlbums.addAll(assets);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (var album in state.excludedBackupAlbums) {
 | 
			
		||||
      var assets = await album.albumEntity
 | 
			
		||||
          .getAssetListRange(start: 0, end: album.assetCount);
 | 
			
		||||
      var assets = await album.albumEntity.getAssetListRange(
 | 
			
		||||
        start: 0,
 | 
			
		||||
        end: await album.albumEntity.assetCountAsync,
 | 
			
		||||
      );
 | 
			
		||||
      assetsFromExcludedAlbums.addAll(assets);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -353,11 +361,8 @@ class BackupNotifier extends StateNotifier<BackUpState> {
 | 
			
		||||
    final bool isEnabled = await _backgroundService.isBackgroundBackupEnabled();
 | 
			
		||||
    state = state.copyWith(backgroundBackup: isEnabled);
 | 
			
		||||
    if (state.backupProgress != BackUpProgressEnum.inBackground) {
 | 
			
		||||
      await Future.wait([
 | 
			
		||||
        _getBackupAlbumsInfo(),
 | 
			
		||||
        _updateServerInfo(),
 | 
			
		||||
      ]);
 | 
			
		||||
 | 
			
		||||
      await _getBackupAlbumsInfo();
 | 
			
		||||
      await _updateServerInfo();
 | 
			
		||||
      await _updateBackupAssetCount();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
import 'dart:typed_data';
 | 
			
		||||
 | 
			
		||||
import 'package:auto_route/auto_route.dart';
 | 
			
		||||
import 'package:easy_localization/easy_localization.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
@@ -205,15 +203,23 @@ class AlbumInfoCard extends HookConsumerWidget {
 | 
			
		||||
                          ),
 | 
			
		||||
                          Padding(
 | 
			
		||||
                            padding: const EdgeInsets.only(top: 2.0),
 | 
			
		||||
                            child: Text(
 | 
			
		||||
                              albumInfo.assetCount.toString() +
 | 
			
		||||
                                  (albumInfo.isAll
 | 
			
		||||
                                      ? " (${'backup_all'.tr()})"
 | 
			
		||||
                                      : ""),
 | 
			
		||||
                              style: TextStyle(
 | 
			
		||||
                                fontSize: 12,
 | 
			
		||||
                                color: Colors.grey[600],
 | 
			
		||||
                              ),
 | 
			
		||||
                            child: FutureBuilder(
 | 
			
		||||
                              builder: ((context, snapshot) {
 | 
			
		||||
                                if (snapshot.hasData) {
 | 
			
		||||
                                  return Text(
 | 
			
		||||
                                    snapshot.data.toString() +
 | 
			
		||||
                                        (albumInfo.isAll
 | 
			
		||||
                                            ? " (${'backup_all'.tr()})"
 | 
			
		||||
                                            : ""),
 | 
			
		||||
                                    style: TextStyle(
 | 
			
		||||
                                      fontSize: 12,
 | 
			
		||||
                                      color: Colors.grey[600],
 | 
			
		||||
                                    ),
 | 
			
		||||
                                  );
 | 
			
		||||
                                }
 | 
			
		||||
                                return const Text("0");
 | 
			
		||||
                              }),
 | 
			
		||||
                              future: albumInfo.assetCount,
 | 
			
		||||
                            ),
 | 
			
		||||
                          )
 | 
			
		||||
                        ],
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user