| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -7,7 +7,7 @@ import 'package:neon/models.dart'; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import 'package:neon/src/bloc/bloc.dart'; | 
					 | 
					 | 
					 | 
					import 'package:neon/src/bloc/bloc.dart'; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import 'package:neon/src/bloc/result.dart'; | 
					 | 
					 | 
					 | 
					import 'package:neon/src/bloc/result.dart'; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import 'package:neon/src/blocs/apps.dart'; | 
					 | 
					 | 
					 | 
					import 'package:neon/src/blocs/apps.dart'; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import 'package:nextcloud/nextcloud.dart'; | 
					 | 
					 | 
					 | 
					import 'package:nextcloud/core.dart' as core; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import 'package:rxdart/rxdart.dart'; | 
					 | 
					 | 
					 | 
					import 'package:rxdart/rxdart.dart'; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					@internal | 
					 | 
					 | 
					 | 
					@internal | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -23,7 +23,7 @@ abstract interface class UnifiedSearchBlocEvents { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					abstract interface class UnifiedSearchBlocStates { | 
					 | 
					 | 
					 | 
					abstract interface class UnifiedSearchBlocStates { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  BehaviorSubject<bool> get enabled; | 
					 | 
					 | 
					 | 
					  BehaviorSubject<bool> get enabled; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  BehaviorSubject<Result<Map<CoreUnifiedSearchProvider, Result<CoreUnifiedSearchResult>>?>> get results; | 
					 | 
					 | 
					 | 
					  BehaviorSubject<Result<Map<core.UnifiedSearchProvider, Result<core.UnifiedSearchResult>>?>> get results; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					@internal | 
					 | 
					 | 
					 | 
					@internal | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -47,7 +47,7 @@ class UnifiedSearchBloc extends InteractiveBloc implements UnifiedSearchBlocEven | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  BehaviorSubject<bool> enabled = BehaviorSubject.seeded(false); | 
					 | 
					 | 
					 | 
					  BehaviorSubject<bool> enabled = BehaviorSubject.seeded(false); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  @override | 
					 | 
					 | 
					 | 
					  @override | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  BehaviorSubject<Result<Map<CoreUnifiedSearchProvider, Result<CoreUnifiedSearchResult>>?>> results = | 
					 | 
					 | 
					 | 
					  BehaviorSubject<Result<Map<core.UnifiedSearchProvider, Result<core.UnifiedSearchResult>>?>> results = | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      BehaviorSubject.seeded(Result.success(null)); | 
					 | 
					 | 
					 | 
					      BehaviorSubject.seeded(Result.success(null)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  @override | 
					 | 
					 | 
					 | 
					  @override | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -103,15 +103,15 @@ class UnifiedSearchBloc extends InteractiveBloc implements UnifiedSearchBlocEven | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Iterable<MapEntry<CoreUnifiedSearchProvider, Result<CoreUnifiedSearchResult>>> _getLoadingProviders( | 
					 | 
					 | 
					 | 
					  Iterable<MapEntry<core.UnifiedSearchProvider, Result<core.UnifiedSearchResult>>> _getLoadingProviders( | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    final Iterable<CoreUnifiedSearchProvider> providers, | 
					 | 
					 | 
					 | 
					    final Iterable<core.UnifiedSearchProvider> providers, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  ) sync* { | 
					 | 
					 | 
					 | 
					  ) sync* { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    for (final provider in providers) { | 
					 | 
					 | 
					 | 
					    for (final provider in providers) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      yield MapEntry(provider, Result.loading()); | 
					 | 
					 | 
					 | 
					      yield MapEntry(provider, Result.loading()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Future<void> _searchProvider(final CoreUnifiedSearchProvider provider) async { | 
					 | 
					 | 
					 | 
					  Future<void> _searchProvider(final core.UnifiedSearchProvider provider) async { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    _updateResults(provider, Result.loading()); | 
					 | 
					 | 
					 | 
					    _updateResults(provider, Result.loading()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    try { | 
					 | 
					 | 
					 | 
					    try { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      final response = await _account.client.core.unifiedSearch.search( | 
					 | 
					 | 
					 | 
					      final response = await _account.client.core.unifiedSearch.search( | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -126,7 +126,7 @@ class UnifiedSearchBloc extends InteractiveBloc implements UnifiedSearchBlocEven | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  void _updateResults(final CoreUnifiedSearchProvider provider, final Result<CoreUnifiedSearchResult> result) => | 
					 | 
					 | 
					 | 
					  void _updateResults(final core.UnifiedSearchProvider provider, final Result<core.UnifiedSearchResult> result) => | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      results.add( | 
					 | 
					 | 
					 | 
					      results.add( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        Result.success( | 
					 | 
					 | 
					 | 
					        Result.success( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					          Map.fromEntries( | 
					 | 
					 | 
					 | 
					          Map.fromEntries( | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -138,8 +138,8 @@ class UnifiedSearchBloc extends InteractiveBloc implements UnifiedSearchBlocEven | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        ), | 
					 | 
					 | 
					 | 
					        ), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
					      ); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Iterable<MapEntry<CoreUnifiedSearchProvider, Result<CoreUnifiedSearchResult>>> _sortResults( | 
					 | 
					 | 
					 | 
					  Iterable<MapEntry<core.UnifiedSearchProvider, Result<core.UnifiedSearchResult>>> _sortResults( | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    final Map<CoreUnifiedSearchProvider, Result<CoreUnifiedSearchResult>> results, | 
					 | 
					 | 
					 | 
					    final Map<core.UnifiedSearchProvider, Result<core.UnifiedSearchResult>> results, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  ) sync* { | 
					 | 
					 | 
					 | 
					  ) sync* { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    final activeApp = _appsBloc.activeApp.value; | 
					 | 
					 | 
					 | 
					    final activeApp = _appsBloc.activeApp.value; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -152,12 +152,12 @@ class UnifiedSearchBloc extends InteractiveBloc implements UnifiedSearchBlocEven | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        .sorted((final a, final b) => _sortEntriesCount(a.value, b.value)); | 
					 | 
					 | 
					 | 
					        .sorted((final a, final b) => _sortEntriesCount(a.value, b.value)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  bool _providerMatchesApp(final CoreUnifiedSearchProvider provider, final AppImplementation app) => | 
					 | 
					 | 
					 | 
					  bool _providerMatchesApp(final core.UnifiedSearchProvider provider, final AppImplementation app) => | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      provider.id == app.id || provider.id.startsWith('${app.id}_'); | 
					 | 
					 | 
					 | 
					      provider.id == app.id || provider.id.startsWith('${app.id}_'); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  bool _hasEntries(final Result<CoreUnifiedSearchResult> result) => | 
					 | 
					 | 
					 | 
					  bool _hasEntries(final Result<core.UnifiedSearchResult> result) => | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      !result.hasData || result.requireData.entries.isNotEmpty; | 
					 | 
					 | 
					 | 
					      !result.hasData || result.requireData.entries.isNotEmpty; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  int _sortEntriesCount(final Result<CoreUnifiedSearchResult> a, final Result<CoreUnifiedSearchResult> b) => | 
					 | 
					 | 
					 | 
					  int _sortEntriesCount(final Result<core.UnifiedSearchResult> a, final Result<core.UnifiedSearchResult> b) => | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      (b.data?.entries.length ?? 0).compareTo(a.data?.entries.length ?? 0); | 
					 | 
					 | 
					 | 
					      (b.data?.entries.length ?? 0).compareTo(a.data?.entries.length ?? 0); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					 | 
					
  |