|  |  |  | @ -2,7 +2,6 @@ import 'dart:convert'; | 
			
		
	
		
			
				
					|  |  |  |  | import 'dart:html'; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import 'package:dde_gesture_manager/builder/provider_annotation.dart'; | 
			
		
	
		
			
				
					|  |  |  |  | import 'package:dde_gesture_manager/extensions.dart'; | 
			
		
	
		
			
				
					|  |  |  |  | import 'package:dde_gesture_manager/models/local_schemes_provider.dart'; | 
			
		
	
		
			
				
					|  |  |  |  | import 'package:dde_gesture_manager/models/scheme.dart'; | 
			
		
	
		
			
				
					|  |  |  |  | import 'package:uuid/uuid.dart'; | 
			
		
	
	
		
			
				
					|  |  |  | @ -19,28 +18,20 @@ class LocalSchemes implements LocalSchemesInterface<LocalSchemeEntryWeb> { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   @override | 
			
		
	
		
			
				
					|  |  |  |  |   Future<List<LocalSchemeEntryWeb>> get schemeEntries async { | 
			
		
	
		
			
				
					|  |  |  |  |     return window.localStorage.keys | 
			
		
	
		
			
				
					|  |  |  |  |         .map<LocalSchemeEntryWeb?>((key) { | 
			
		
	
		
			
				
					|  |  |  |  |     List<LocalSchemeEntryWeb> _localeSchemes = []; | 
			
		
	
		
			
				
					|  |  |  |  |     for (var key in window.localStorage.keys) { | 
			
		
	
		
			
				
					|  |  |  |  |       if (key.startsWith('schemes.')) { | 
			
		
	
		
			
				
					|  |  |  |  |             LocalSchemeEntryWeb? entry; | 
			
		
	
		
			
				
					|  |  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |  |         var content = window.localStorage[key] ?? ''; | 
			
		
	
		
			
				
					|  |  |  |  |         var schemeJson = json.decode(content); | 
			
		
	
		
			
				
					|  |  |  |  |               entry = LocalSchemeEntryWeb( | 
			
		
	
		
			
				
					|  |  |  |  |         _localeSchemes.add(LocalSchemeEntryWeb( | 
			
		
	
		
			
				
					|  |  |  |  |           path: key, | 
			
		
	
		
			
				
					|  |  |  |  |           scheme: Scheme.parse(schemeJson), | 
			
		
	
		
			
				
					|  |  |  |  |           lastModifyTime: DateTime.parse(schemeJson['modified_at']), | 
			
		
	
		
			
				
					|  |  |  |  |               ); | 
			
		
	
		
			
				
					|  |  |  |  |             } catch (e) { | 
			
		
	
		
			
				
					|  |  |  |  |               e.sout(); | 
			
		
	
		
			
				
					|  |  |  |  |         )); | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |             return entry; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |           return null; | 
			
		
	
		
			
				
					|  |  |  |  |         }) | 
			
		
	
		
			
				
					|  |  |  |  |         .where((e) => e != null) | 
			
		
	
		
			
				
					|  |  |  |  |         .cast<LocalSchemeEntryWeb>() | 
			
		
	
		
			
				
					|  |  |  |  |         .toList(); | 
			
		
	
		
			
				
					|  |  |  |  |     print(_localeSchemes.join('\n')); | 
			
		
	
		
			
				
					|  |  |  |  |     return Future.value(_localeSchemes); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   @ProviderModelProp() | 
			
		
	
	
		
			
				
					|  |  |  | @ -85,8 +76,8 @@ class LocalSchemeEntryWeb implements LocalSchemeEntry { | 
			
		
	
		
			
				
					|  |  |  |  |   @override | 
			
		
	
		
			
				
					|  |  |  |  |   save(LocalSchemesProvider provider) { | 
			
		
	
		
			
				
					|  |  |  |  |     var schemeMap = scheme.toJson(); | 
			
		
	
		
			
				
					|  |  |  |  |     schemeMap['modified_at'] = DateTime.now(); | 
			
		
	
		
			
				
					|  |  |  |  |     window.localStorage[path] = JsonEncoder.withIndent(' ' * 4).convert(); | 
			
		
	
		
			
				
					|  |  |  |  |     schemeMap['modified_at'] = DateTime.now().toIso8601String(); | 
			
		
	
		
			
				
					|  |  |  |  |     window.localStorage[path] = JsonEncoder.withIndent(' ' * 4).convert(schemeMap); | 
			
		
	
		
			
				
					|  |  |  |  |     provider.schemes!.firstWhere((ele) => ele.scheme.id == scheme.id).lastModifyTime = DateTime.now(); | 
			
		
	
		
			
				
					|  |  |  |  |     provider.setProps(schemes: [...provider.schemes!]..sort()); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |