mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 02:27:08 -04:00 
			
		
		
		
	* refactor(mobile): add Isar DB & Store class new Store: globally accessible key-value store like Hive (but based on Isar) replace first few places of Hive usage with the new Store * reduce max. DB size to prevent errors on older iOS devices --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
		
			
				
	
	
		
			25 lines
		
	
	
		
			774 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			774 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:flutter/cupertino.dart';
 | |
| import 'package:hive/hive.dart';
 | |
| import 'package:immich_mobile/constants/hive_box.dart';
 | |
| import 'package:immich_mobile/shared/models/store.dart';
 | |
| 
 | |
| Future<void> migrateHiveToStoreIfNecessary() async {
 | |
|   try {
 | |
|     if (await Hive.boxExists(userInfoBox)) {
 | |
|       final Box box = await Hive.openBox(userInfoBox);
 | |
|       await _migrateSingleKey(box, userIdKey, StoreKey.userRemoteId);
 | |
|       await _migrateSingleKey(box, assetEtagKey, StoreKey.assetETag);
 | |
|     }
 | |
|   } catch (e) {
 | |
|     debugPrint("Error while migrating userInfoBox $e");
 | |
|   }
 | |
| }
 | |
| 
 | |
| _migrateSingleKey(Box box, String hiveKey, StoreKey key) async {
 | |
|   final String? value = box.get(hiveKey);
 | |
|   if (value != null) {
 | |
|     await Store.put(key, value);
 | |
|     await box.delete(hiveKey);
 | |
|   }
 | |
| }
 |