mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:39:37 -05:00 
			
		
		
		
	Merge pull request #906 from immich-app/dev/reduce-startup-time
reduce app startup time by loading Hive boxes in parallel
This commit is contained in:
		
						commit
						cfa04fadd1
					
				@ -28,17 +28,19 @@ import 'constants/hive_box.dart';
 | 
			
		||||
 | 
			
		||||
void main() async {
 | 
			
		||||
  await Hive.initFlutter();
 | 
			
		||||
 | 
			
		||||
  Hive.registerAdapter(HiveSavedLoginInfoAdapter());
 | 
			
		||||
  Hive.registerAdapter(HiveBackupAlbumsAdapter());
 | 
			
		||||
  Hive.registerAdapter(HiveDuplicatedAssetsAdapter());
 | 
			
		||||
 | 
			
		||||
  await Hive.openBox(userInfoBox);
 | 
			
		||||
  await Hive.openBox<HiveSavedLoginInfo>(hiveLoginInfoBox);
 | 
			
		||||
  await Hive.openBox<HiveBackupAlbums>(hiveBackupInfoBox);
 | 
			
		||||
  await Hive.openBox(hiveGithubReleaseInfoBox);
 | 
			
		||||
  await Hive.openBox(userSettingInfoBox);
 | 
			
		||||
  await Hive.openBox<HiveDuplicatedAssets>(duplicatedAssetsBox);
 | 
			
		||||
  await Future.wait([
 | 
			
		||||
    Hive.openBox(userInfoBox),
 | 
			
		||||
    Hive.openBox<HiveSavedLoginInfo>(hiveLoginInfoBox),
 | 
			
		||||
    Hive.openBox<HiveBackupAlbums>(hiveBackupInfoBox),
 | 
			
		||||
    Hive.openBox(hiveGithubReleaseInfoBox),
 | 
			
		||||
    Hive.openBox(userSettingInfoBox),
 | 
			
		||||
    Hive.openBox<HiveDuplicatedAssets>(duplicatedAssetsBox),
 | 
			
		||||
    EasyLocalization.ensureInitialized(),
 | 
			
		||||
  ]);
 | 
			
		||||
 | 
			
		||||
  SystemChrome.setSystemUIOverlayStyle(
 | 
			
		||||
    const SystemUiOverlayStyle(
 | 
			
		||||
@ -46,8 +48,6 @@ void main() async {
 | 
			
		||||
    ),
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  await EasyLocalization.ensureInitialized();
 | 
			
		||||
 | 
			
		||||
  if (kReleaseMode && Platform.isAndroid) {
 | 
			
		||||
    try {
 | 
			
		||||
      await FlutterDisplayMode.setHighRefreshRate();
 | 
			
		||||
 | 
			
		||||
@ -319,11 +319,14 @@ class BackgroundService {
 | 
			
		||||
    Hive.registerAdapter(HiveBackupAlbumsAdapter());
 | 
			
		||||
    Hive.registerAdapter(HiveDuplicatedAssetsAdapter());
 | 
			
		||||
 | 
			
		||||
    await Hive.openBox(userInfoBox);
 | 
			
		||||
    await Hive.openBox<HiveSavedLoginInfo>(hiveLoginInfoBox);
 | 
			
		||||
    await Hive.openBox(userSettingInfoBox);
 | 
			
		||||
    await Hive.openBox(backgroundBackupInfoBox);
 | 
			
		||||
    await Hive.openBox<HiveDuplicatedAssets>(duplicatedAssetsBox);
 | 
			
		||||
    await Future.wait([
 | 
			
		||||
      Hive.openBox(userInfoBox),
 | 
			
		||||
      Hive.openBox<HiveSavedLoginInfo>(hiveLoginInfoBox),
 | 
			
		||||
      Hive.openBox(userSettingInfoBox),
 | 
			
		||||
      Hive.openBox(backgroundBackupInfoBox),
 | 
			
		||||
      Hive.openBox<HiveDuplicatedAssets>(duplicatedAssetsBox),
 | 
			
		||||
      Hive.openBox<HiveBackupAlbums>(hiveBackupInfoBox),
 | 
			
		||||
    ]);
 | 
			
		||||
 | 
			
		||||
    ApiService apiService = ApiService();
 | 
			
		||||
    apiService.setEndpoint(Hive.box(userInfoBox).get(serverEndpointKey));
 | 
			
		||||
@ -332,7 +335,7 @@ class BackgroundService {
 | 
			
		||||
    AppSettingsService settingsService = AppSettingsService();
 | 
			
		||||
 | 
			
		||||
    final Box<HiveBackupAlbums> box =
 | 
			
		||||
        await Hive.openBox<HiveBackupAlbums>(hiveBackupInfoBox);
 | 
			
		||||
        Hive.box<HiveBackupAlbums>(hiveBackupInfoBox);
 | 
			
		||||
    final HiveBackupAlbums? backupAlbumInfo = box.get(backupInfoKey);
 | 
			
		||||
    if (backupAlbumInfo == null) {
 | 
			
		||||
      return true;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user