mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 02:39:03 -04: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