diff --git a/app/lib/core/http_error_handler.dart b/app/lib/core/http_error_handler.dart index 96c545e0..cbd5ff08 100644 --- a/app/lib/core/http_error_handler.dart +++ b/app/lib/core/http_error_handler.dart @@ -2,30 +2,24 @@ import 'package:exceptions/exceptions.dart'; import 'package:http/http.dart'; import 'package:universal_io/io.dart'; -ErrorMessage handleHttpError( - Exception exception, - StackTrace stackTrace, -) { +ErrorMessage handleHttpError(Exception exception, StackTrace stackTrace) { return switch (exception) { SocketException() => const ErrorMessage( - source: 'http', - message: 'Could not contact remote service', - ), + source: 'http', + message: 'Could not contact remote service', + ), HttpException() => const ErrorMessage( - source: 'http', - message: 'Web request returned error', - ), + source: 'http', + message: 'Web request returned error', + ), FormatException() => const ErrorMessage( - source: 'http', - message: 'Bad response format', - ), + source: 'http', + message: 'Bad response format', + ), ClientException() => const ErrorMessage( - source: 'http', - message: 'Could not contact remote service', - ), - _ => ErrorMessage.fromException( - exception, - stackTrace, - ) + source: 'http', + message: 'Could not contact remote service', + ), + _ => ErrorMessage.fromException(exception, stackTrace), }; } diff --git a/app/lib/core/models.g.dart b/app/lib/core/models.g.dart index 1a34108d..06f64eab 100644 --- a/app/lib/core/models.g.dart +++ b/app/lib/core/models.g.dart @@ -29,9 +29,10 @@ String _$embeddingModelHash() => r'40111a5f08b43afe6edd399ff0e6c022b3387265'; final embeddingModelProvider = Provider.internal( embeddingModel, name: r'embeddingModelProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$embeddingModelHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$embeddingModelHash, dependencies: null, allTransitiveDependencies: null, ); @@ -47,9 +48,10 @@ String _$embeddingDimensionsHash() => final embeddingDimensionsProvider = Provider.internal( embeddingDimensions, name: r'embeddingDimensionsProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$embeddingDimensionsHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$embeddingDimensionsHash, dependencies: null, allTransitiveDependencies: null, ); diff --git a/app/lib/core/providers.dart b/app/lib/core/providers.dart index 46323c26..3b535970 100644 --- a/app/lib/core/providers.dart +++ b/app/lib/core/providers.dart @@ -8,10 +8,7 @@ part 'providers.g.dart'; @Riverpod(keepAlive: true) GoRouter router(Ref ref) { - return GoRouter( - debugLogDiagnostics: true, - routes: $appRoutes, - ); + return GoRouter(debugLogDiagnostics: true, routes: $appRoutes); } @Riverpod() diff --git a/app/lib/core/providers.g.dart b/app/lib/core/providers.g.dart index 9ba8ea2a..cc9383a9 100644 --- a/app/lib/core/providers.g.dart +++ b/app/lib/core/providers.g.dart @@ -28,14 +28,15 @@ String _$willAcceptDropHash() => r'97b47784ef9101757602b4408d1f545ef2308830'; @ProviderFor(WillAcceptDrop) final willAcceptDropProvider = AutoDisposeNotifierProvider.internal( - WillAcceptDrop.new, - name: r'willAcceptDropProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$willAcceptDropHash, - dependencies: null, - allTransitiveDependencies: null, -); + WillAcceptDrop.new, + name: r'willAcceptDropProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$willAcceptDropHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$WillAcceptDrop = AutoDisposeNotifier; // ignore_for_file: type=lint diff --git a/app/lib/core/routing/dialog_page.dart b/app/lib/core/routing/dialog_page.dart index 4a598c87..09ef3489 100644 --- a/app/lib/core/routing/dialog_page.dart +++ b/app/lib/core/routing/dialog_page.dart @@ -27,14 +27,14 @@ class DialogPage extends Page { @override Route createRoute(BuildContext context) => DialogRoute( - context: context, - settings: this, - builder: builder, - anchorPoint: anchorPoint, - barrierColor: barrierColor, - barrierDismissible: barrierDismissible, - barrierLabel: barrierLabel, - useSafeArea: useSafeArea, - themes: themes, - ); + context: context, + settings: this, + builder: builder, + anchorPoint: anchorPoint, + barrierColor: barrierColor, + barrierDismissible: barrierDismissible, + barrierLabel: barrierLabel, + useSafeArea: useSafeArea, + themes: themes, + ); } diff --git a/app/lib/core/routing/routes.dart b/app/lib/core/routing/routes.dart index c957529c..0cc96744 100644 --- a/app/lib/core/routing/routes.dart +++ b/app/lib/core/routing/routes.dart @@ -30,22 +30,10 @@ part 'routes.g.dart'; name: 'BrowserRoute', path: '/', routes: [ - TypedGoRoute( - name: 'WebPageRoute', - path: 'page/:url', - ), - TypedGoRoute( - name: 'AboutRoute', - path: 'about', - ), - TypedGoRoute( - name: 'UserAuthRoute', - path: 'userAuth', - ), - TypedGoRoute( - name: 'SearchRoute', - path: 'search/:searchText', - ), + TypedGoRoute(name: 'WebPageRoute', path: 'page/:url'), + TypedGoRoute(name: 'AboutRoute', path: 'about'), + TypedGoRoute(name: 'UserAuthRoute', path: 'userAuth'), + TypedGoRoute(name: 'SearchRoute', path: 'search/:searchText'), TypedGoRoute( name: 'BangRoute', path: 'bangs', @@ -97,10 +85,11 @@ class WebPageRoute extends GoRouteData { @override Page buildPage(BuildContext context, GoRouterState state) { return DialogPage( - builder: (_) => WebPageDialog( - url: Uri.parse(url), - precachedInfo: state.extra as WebPageInfo?, - ), + builder: + (_) => WebPageDialog( + url: Uri.parse(url), + precachedInfo: state.extra as WebPageInfo?, + ), ); } } @@ -130,9 +119,10 @@ class SearchRoute extends GoRouteData { @override Widget build(BuildContext context, GoRouterState state) { return SearchScreen( - initialSearchText: (searchText.isEmpty || searchText == emptySearchText) - ? null - : searchText, + initialSearchText: + (searchText.isEmpty || searchText == emptySearchText) + ? null + : searchText, ); } } @@ -181,9 +171,10 @@ class BangSearchRoute extends GoRouteData { @override Widget build(BuildContext context, GoRouterState state) { return BangSearchScreen( - initialSearchText: (searchText.isEmpty || searchText == emptySearchText) - ? null - : searchText, + initialSearchText: + (searchText.isEmpty || searchText == emptySearchText) + ? null + : searchText, ); } } @@ -221,10 +212,7 @@ class ContainerCreateRoute extends GoRouteData { name: 'GeneralSettingsRoute', path: 'general', ), - TypedGoRoute( - name: 'BangSettingsRoute', - path: 'bang', - ), + TypedGoRoute(name: 'BangSettingsRoute', path: 'bang'), TypedGoRoute( name: 'WebEngineSettingsRoute', path: 'web_engine', @@ -328,10 +316,7 @@ class ChatArchiveDetailRoute extends GoRouteData { } } -@TypedGoRoute( - name: 'TorProxyRoute', - path: '/tor_proxy', -) +@TypedGoRoute(name: 'TorProxyRoute', path: '/tor_proxy') class TorProxyRoute extends GoRouteData { @override Widget build(BuildContext context, GoRouterState state) { diff --git a/app/lib/core/routing/routes.g.dart b/app/lib/core/routing/routes.g.dart index ec69fec3..f1837bd3 100644 --- a/app/lib/core/routing/routes.g.dart +++ b/app/lib/core/routing/routes.g.dart @@ -7,87 +7,85 @@ part of 'routes.dart'; // ************************************************************************** List get $appRoutes => [ - $browserRoute, - $settingsRoute, - $chatArchiveListRoute, - $torProxyRoute, - ]; + $browserRoute, + $settingsRoute, + $chatArchiveListRoute, + $torProxyRoute, +]; RouteBase get $browserRoute => GoRouteData.$route( - path: '/', - name: 'BrowserRoute', - factory: $BrowserRouteExtension._fromState, + path: '/', + name: 'BrowserRoute', + factory: $BrowserRouteExtension._fromState, + routes: [ + GoRouteData.$route( + path: 'page/:url', + name: 'WebPageRoute', + factory: $WebPageRouteExtension._fromState, + ), + GoRouteData.$route( + path: 'about', + name: 'AboutRoute', + factory: $AboutRouteExtension._fromState, + ), + GoRouteData.$route( + path: 'userAuth', + name: 'UserAuthRoute', + factory: $UserAuthRouteExtension._fromState, + ), + GoRouteData.$route( + path: 'search/:searchText', + name: 'SearchRoute', + factory: $SearchRouteExtension._fromState, + ), + GoRouteData.$route( + path: 'bangs', + name: 'BangRoute', + factory: $BangCategoriesRouteExtension._fromState, routes: [ - GoRouteData.$route( - path: 'page/:url', - name: 'WebPageRoute', - factory: $WebPageRouteExtension._fromState, - ), - GoRouteData.$route( - path: 'about', - name: 'AboutRoute', - factory: $AboutRouteExtension._fromState, - ), - GoRouteData.$route( - path: 'userAuth', - name: 'UserAuthRoute', - factory: $UserAuthRouteExtension._fromState, - ), GoRouteData.$route( path: 'search/:searchText', - name: 'SearchRoute', - factory: $SearchRouteExtension._fromState, + name: 'BangSearchRoute', + factory: $BangSearchRouteExtension._fromState, ), GoRouteData.$route( - path: 'bangs', - name: 'BangRoute', - factory: $BangCategoriesRouteExtension._fromState, + path: 'category/:category', + name: 'BangCategoryRoute', + factory: $BangCategoryRouteExtension._fromState, routes: [ GoRouteData.$route( - path: 'search/:searchText', - name: 'BangSearchRoute', - factory: $BangSearchRouteExtension._fromState, - ), - GoRouteData.$route( - path: 'category/:category', - name: 'BangCategoryRoute', - factory: $BangCategoryRouteExtension._fromState, - routes: [ - GoRouteData.$route( - path: ':subCategory', - name: 'BangSubCategoryRoute', - factory: $BangSubCategoryRouteExtension._fromState, - ), - ], - ), - ], - ), - GoRouteData.$route( - path: 'containers', - name: 'ContainerListRoute', - factory: $ContainerListRouteExtension._fromState, - routes: [ - GoRouteData.$route( - path: 'create', - name: 'ContainerCreateRoute', - factory: $ContainerCreateRouteExtension._fromState, - ), - GoRouteData.$route( - path: 'edit', - name: 'ContainerEditRoute', - factory: $ContainerEditRouteExtension._fromState, + path: ':subCategory', + name: 'BangSubCategoryRoute', + factory: $BangSubCategoryRouteExtension._fromState, ), ], ), ], - ); + ), + GoRouteData.$route( + path: 'containers', + name: 'ContainerListRoute', + factory: $ContainerListRouteExtension._fromState, + routes: [ + GoRouteData.$route( + path: 'create', + name: 'ContainerCreateRoute', + factory: $ContainerCreateRouteExtension._fromState, + ), + GoRouteData.$route( + path: 'edit', + name: 'ContainerEditRoute', + factory: $ContainerEditRouteExtension._fromState, + ), + ], + ), + ], +); extension $BrowserRouteExtension on BrowserRoute { static BrowserRoute _fromState(GoRouterState state) => BrowserRoute(); - String get location => GoRouteData.$location( - '/', - ); + String get location => GoRouteData.$location('/'); void go(BuildContext context) => context.go(location); @@ -100,13 +98,11 @@ extension $BrowserRouteExtension on BrowserRoute { } extension $WebPageRouteExtension on WebPageRoute { - static WebPageRoute _fromState(GoRouterState state) => WebPageRoute( - url: state.pathParameters['url']!, - ); + static WebPageRoute _fromState(GoRouterState state) => + WebPageRoute(url: state.pathParameters['url']!); - String get location => GoRouteData.$location( - '/page/${Uri.encodeComponent(url)}', - ); + String get location => + GoRouteData.$location('/page/${Uri.encodeComponent(url)}'); void go(BuildContext context) => context.go(location); @@ -121,9 +117,7 @@ extension $WebPageRouteExtension on WebPageRoute { extension $AboutRouteExtension on AboutRoute { static AboutRoute _fromState(GoRouterState state) => AboutRoute(); - String get location => GoRouteData.$location( - '/about', - ); + String get location => GoRouteData.$location('/about'); void go(BuildContext context) => context.go(location); @@ -138,9 +132,7 @@ extension $AboutRouteExtension on AboutRoute { extension $UserAuthRouteExtension on UserAuthRoute { static UserAuthRoute _fromState(GoRouterState state) => UserAuthRoute(); - String get location => GoRouteData.$location( - '/userAuth', - ); + String get location => GoRouteData.$location('/userAuth'); void go(BuildContext context) => context.go(location); @@ -154,13 +146,12 @@ extension $UserAuthRouteExtension on UserAuthRoute { extension $SearchRouteExtension on SearchRoute { static SearchRoute _fromState(GoRouterState state) => SearchRoute( - searchText: - state.pathParameters['searchText']! ?? SearchRoute.emptySearchText, - ); + searchText: + state.pathParameters['searchText']! ?? SearchRoute.emptySearchText, + ); - String get location => GoRouteData.$location( - '/search/${Uri.encodeComponent(searchText)}', - ); + String get location => + GoRouteData.$location('/search/${Uri.encodeComponent(searchText)}'); void go(BuildContext context) => context.go(location); @@ -176,9 +167,7 @@ extension $BangCategoriesRouteExtension on BangCategoriesRoute { static BangCategoriesRoute _fromState(GoRouterState state) => BangCategoriesRoute(); - String get location => GoRouteData.$location( - '/bangs', - ); + String get location => GoRouteData.$location('/bangs'); void go(BuildContext context) => context.go(location); @@ -192,13 +181,12 @@ extension $BangCategoriesRouteExtension on BangCategoriesRoute { extension $BangSearchRouteExtension on BangSearchRoute { static BangSearchRoute _fromState(GoRouterState state) => BangSearchRoute( - searchText: state.pathParameters['searchText']! ?? - BangSearchRoute.emptySearchText, - ); + searchText: + state.pathParameters['searchText']! ?? BangSearchRoute.emptySearchText, + ); - String get location => GoRouteData.$location( - '/bangs/search/${Uri.encodeComponent(searchText)}', - ); + String get location => + GoRouteData.$location('/bangs/search/${Uri.encodeComponent(searchText)}'); void go(BuildContext context) => context.go(location); @@ -211,13 +199,11 @@ extension $BangSearchRouteExtension on BangSearchRoute { } extension $BangCategoryRouteExtension on BangCategoryRoute { - static BangCategoryRoute _fromState(GoRouterState state) => BangCategoryRoute( - category: state.pathParameters['category']!, - ); + static BangCategoryRoute _fromState(GoRouterState state) => + BangCategoryRoute(category: state.pathParameters['category']!); - String get location => GoRouteData.$location( - '/bangs/category/${Uri.encodeComponent(category)}', - ); + String get location => + GoRouteData.$location('/bangs/category/${Uri.encodeComponent(category)}'); void go(BuildContext context) => context.go(location); @@ -237,8 +223,8 @@ extension $BangSubCategoryRouteExtension on BangSubCategoryRoute { ); String get location => GoRouteData.$location( - '/bangs/category/${Uri.encodeComponent(category)}/${Uri.encodeComponent(subCategory)}', - ); + '/bangs/category/${Uri.encodeComponent(category)}/${Uri.encodeComponent(subCategory)}', + ); void go(BuildContext context) => context.go(location); @@ -254,9 +240,7 @@ extension $ContainerListRouteExtension on ContainerListRoute { static ContainerListRoute _fromState(GoRouterState state) => ContainerListRoute(); - String get location => GoRouteData.$location( - '/containers', - ); + String get location => GoRouteData.$location('/containers'); void go(BuildContext context) => context.go(location); @@ -272,9 +256,7 @@ extension $ContainerCreateRouteExtension on ContainerCreateRoute { static ContainerCreateRoute _fromState(GoRouterState state) => ContainerCreateRoute(); - String get location => GoRouteData.$location( - '/containers/create', - ); + String get location => GoRouteData.$location('/containers/create'); void go(BuildContext context) => context.go(location); @@ -290,9 +272,7 @@ extension $ContainerEditRouteExtension on ContainerEditRoute { static ContainerEditRoute _fromState(GoRouterState state) => ContainerEditRoute(); - String get location => GoRouteData.$location( - '/containers/edit', - ); + String get location => GoRouteData.$location('/containers/edit'); void go(BuildContext context) => context.go(location); @@ -305,48 +285,46 @@ extension $ContainerEditRouteExtension on ContainerEditRoute { } RouteBase get $settingsRoute => GoRouteData.$route( - path: '/settings', - name: 'SettingsRoute', - factory: $SettingsRouteExtension._fromState, + path: '/settings', + name: 'SettingsRoute', + factory: $SettingsRouteExtension._fromState, + routes: [ + GoRouteData.$route( + path: 'general', + name: 'GeneralSettingsRoute', + factory: $GeneralSettingsRouteExtension._fromState, + ), + GoRouteData.$route( + path: 'bang', + name: 'BangSettingsRoute', + factory: $BangSettingsRouteExtension._fromState, + ), + GoRouteData.$route( + path: 'web_engine', + name: 'WebEngineSettingsRoute', + factory: $WebEngineSettingsRouteExtension._fromState, routes: [ GoRouteData.$route( - path: 'general', - name: 'GeneralSettingsRoute', - factory: $GeneralSettingsRouteExtension._fromState, - ), - GoRouteData.$route( - path: 'bang', - name: 'BangSettingsRoute', - factory: $BangSettingsRouteExtension._fromState, - ), - GoRouteData.$route( - path: 'web_engine', - name: 'WebEngineSettingsRoute', - factory: $WebEngineSettingsRouteExtension._fromState, + path: 'hardening', + name: 'WebEngineHardeningRoute', + factory: $WebEngineHardeningRouteExtension._fromState, routes: [ GoRouteData.$route( - path: 'hardening', - name: 'WebEngineHardeningRoute', - factory: $WebEngineHardeningRouteExtension._fromState, - routes: [ - GoRouteData.$route( - path: 'group/:group', - name: 'WebEngineHardeningGroupRoute', - factory: $WebEngineHardeningGroupRouteExtension._fromState, - ), - ], + path: 'group/:group', + name: 'WebEngineHardeningGroupRoute', + factory: $WebEngineHardeningGroupRouteExtension._fromState, ), ], ), ], - ); + ), + ], +); extension $SettingsRouteExtension on SettingsRoute { static SettingsRoute _fromState(GoRouterState state) => SettingsRoute(); - String get location => GoRouteData.$location( - '/settings', - ); + String get location => GoRouteData.$location('/settings'); void go(BuildContext context) => context.go(location); @@ -362,9 +340,7 @@ extension $GeneralSettingsRouteExtension on GeneralSettingsRoute { static GeneralSettingsRoute _fromState(GoRouterState state) => GeneralSettingsRoute(); - String get location => GoRouteData.$location( - '/settings/general', - ); + String get location => GoRouteData.$location('/settings/general'); void go(BuildContext context) => context.go(location); @@ -380,9 +356,7 @@ extension $BangSettingsRouteExtension on BangSettingsRoute { static BangSettingsRoute _fromState(GoRouterState state) => BangSettingsRoute(); - String get location => GoRouteData.$location( - '/settings/bang', - ); + String get location => GoRouteData.$location('/settings/bang'); void go(BuildContext context) => context.go(location); @@ -398,9 +372,7 @@ extension $WebEngineSettingsRouteExtension on WebEngineSettingsRoute { static WebEngineSettingsRoute _fromState(GoRouterState state) => WebEngineSettingsRoute(); - String get location => GoRouteData.$location( - '/settings/web_engine', - ); + String get location => GoRouteData.$location('/settings/web_engine'); void go(BuildContext context) => context.go(location); @@ -416,9 +388,8 @@ extension $WebEngineHardeningRouteExtension on WebEngineHardeningRoute { static WebEngineHardeningRoute _fromState(GoRouterState state) => WebEngineHardeningRoute(); - String get location => GoRouteData.$location( - '/settings/web_engine/hardening', - ); + String get location => + GoRouteData.$location('/settings/web_engine/hardening'); void go(BuildContext context) => context.go(location); @@ -433,13 +404,11 @@ extension $WebEngineHardeningRouteExtension on WebEngineHardeningRoute { extension $WebEngineHardeningGroupRouteExtension on WebEngineHardeningGroupRoute { static WebEngineHardeningGroupRoute _fromState(GoRouterState state) => - WebEngineHardeningGroupRoute( - group: state.pathParameters['group']!, - ); + WebEngineHardeningGroupRoute(group: state.pathParameters['group']!); String get location => GoRouteData.$location( - '/settings/web_engine/hardening/group/${Uri.encodeComponent(group)}', - ); + '/settings/web_engine/hardening/group/${Uri.encodeComponent(group)}', + ); void go(BuildContext context) => context.go(location); @@ -452,30 +421,28 @@ extension $WebEngineHardeningGroupRouteExtension } RouteBase get $chatArchiveListRoute => GoRouteData.$route( - path: '/chat_archive', - name: 'ChatArchiveListRoute', - factory: $ChatArchiveListRouteExtension._fromState, - routes: [ - GoRouteData.$route( - path: 'search', - name: 'ChatArchiveSearchRoute', - factory: $ChatArchiveSearchRouteExtension._fromState, - ), - GoRouteData.$route( - path: 'detail/:fileName', - name: 'ChatArchiveDetailRoute', - factory: $ChatArchiveDetailRouteExtension._fromState, - ), - ], - ); + path: '/chat_archive', + name: 'ChatArchiveListRoute', + factory: $ChatArchiveListRouteExtension._fromState, + routes: [ + GoRouteData.$route( + path: 'search', + name: 'ChatArchiveSearchRoute', + factory: $ChatArchiveSearchRouteExtension._fromState, + ), + GoRouteData.$route( + path: 'detail/:fileName', + name: 'ChatArchiveDetailRoute', + factory: $ChatArchiveDetailRouteExtension._fromState, + ), + ], +); extension $ChatArchiveListRouteExtension on ChatArchiveListRoute { static ChatArchiveListRoute _fromState(GoRouterState state) => ChatArchiveListRoute(); - String get location => GoRouteData.$location( - '/chat_archive', - ); + String get location => GoRouteData.$location('/chat_archive'); void go(BuildContext context) => context.go(location); @@ -491,9 +458,7 @@ extension $ChatArchiveSearchRouteExtension on ChatArchiveSearchRoute { static ChatArchiveSearchRoute _fromState(GoRouterState state) => ChatArchiveSearchRoute(); - String get location => GoRouteData.$location( - '/chat_archive/search', - ); + String get location => GoRouteData.$location('/chat_archive/search'); void go(BuildContext context) => context.go(location); @@ -507,13 +472,11 @@ extension $ChatArchiveSearchRouteExtension on ChatArchiveSearchRoute { extension $ChatArchiveDetailRouteExtension on ChatArchiveDetailRoute { static ChatArchiveDetailRoute _fromState(GoRouterState state) => - ChatArchiveDetailRoute( - fileName: state.pathParameters['fileName']!, - ); + ChatArchiveDetailRoute(fileName: state.pathParameters['fileName']!); String get location => GoRouteData.$location( - '/chat_archive/detail/${Uri.encodeComponent(fileName)}', - ); + '/chat_archive/detail/${Uri.encodeComponent(fileName)}', + ); void go(BuildContext context) => context.go(location); @@ -526,17 +489,15 @@ extension $ChatArchiveDetailRouteExtension on ChatArchiveDetailRoute { } RouteBase get $torProxyRoute => GoRouteData.$route( - path: '/tor_proxy', - name: 'TorProxyRoute', - factory: $TorProxyRouteExtension._fromState, - ); + path: '/tor_proxy', + name: 'TorProxyRoute', + factory: $TorProxyRouteExtension._fromState, +); extension $TorProxyRouteExtension on TorProxyRoute { static TorProxyRoute _fromState(GoRouterState state) => TorProxyRoute(); - String get location => GoRouteData.$location( - '/tor_proxy', - ); + String get location => GoRouteData.$location('/tor_proxy'); void go(BuildContext context) => context.go(location); diff --git a/app/lib/data/models/equatable_iterable.dart b/app/lib/data/models/equatable_iterable.dart index 44be13e8..e28a3b8b 100644 --- a/app/lib/data/models/equatable_iterable.dart +++ b/app/lib/data/models/equatable_iterable.dart @@ -5,17 +5,14 @@ class EquatableCollection with FastEquatable { final bool immutable; EquatableCollection(this.collection, {required this.immutable}) - : assert( - collection is Map || collection is Iterable || collection == null, - 'Collection type not supported', - ); + : assert( + collection is Map || collection is Iterable || collection == null, + 'Collection type not supported', + ); @override bool get cacheHash => immutable; @override - List get hashParameters => [ - collection, - immutable, - ]; + List get hashParameters => [collection, immutable]; } diff --git a/app/lib/data/models/web_page_info.dart b/app/lib/data/models/web_page_info.dart index 771cfa3c..ac71289a 100644 --- a/app/lib/data/models/web_page_info.dart +++ b/app/lib/data/models/web_page_info.dart @@ -12,9 +12,5 @@ class WebPageInfo { bool get isPageInfoComplete => (title?.isNotEmpty ?? false) && favicon != null; - WebPageInfo({ - required this.url, - this.title, - this.favicon, - }); + WebPageInfo({required this.url, this.title, this.favicon}); } diff --git a/app/lib/data/models/web_page_info.g.dart b/app/lib/data/models/web_page_info.g.dart index 57a03377..fa48bb0b 100644 --- a/app/lib/data/models/web_page_info.g.dart +++ b/app/lib/data/models/web_page_info.g.dart @@ -19,11 +19,7 @@ abstract class _$WebPageInfoCWProxy { /// ```dart /// WebPageInfo(...).copyWith(id: 12, name: "My name") /// ```` - WebPageInfo call({ - Uri url, - String? title, - BrowserIcon? favicon, - }); + WebPageInfo call({Uri url, String? title, BrowserIcon? favicon}); } /// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfWebPageInfo.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfWebPageInfo.copyWith.fieldName(...)` @@ -42,7 +38,6 @@ class _$WebPageInfoCWProxyImpl implements _$WebPageInfoCWProxy { WebPageInfo favicon(BrowserIcon? favicon) => this(favicon: favicon); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `WebPageInfo(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -55,18 +50,21 @@ class _$WebPageInfoCWProxyImpl implements _$WebPageInfoCWProxy { Object? favicon = const $CopyWithPlaceholder(), }) { return WebPageInfo( - url: url == const $CopyWithPlaceholder() - ? _value.url - // ignore: cast_nullable_to_non_nullable - : url as Uri, - title: title == const $CopyWithPlaceholder() - ? _value.title - // ignore: cast_nullable_to_non_nullable - : title as String?, - favicon: favicon == const $CopyWithPlaceholder() - ? _value.favicon - // ignore: cast_nullable_to_non_nullable - : favicon as BrowserIcon?, + url: + url == const $CopyWithPlaceholder() + ? _value.url + // ignore: cast_nullable_to_non_nullable + : url as Uri, + title: + title == const $CopyWithPlaceholder() + ? _value.title + // ignore: cast_nullable_to_non_nullable + : title as String?, + favicon: + favicon == const $CopyWithPlaceholder() + ? _value.favicon + // ignore: cast_nullable_to_non_nullable + : favicon as BrowserIcon?, ); } } diff --git a/app/lib/domain/entities/equatable_image.dart b/app/lib/domain/entities/equatable_image.dart index ca85a5f9..41439026 100644 --- a/app/lib/domain/entities/equatable_image.dart +++ b/app/lib/domain/entities/equatable_image.dart @@ -6,10 +6,7 @@ class EquatableImage { final Image value; final int? _imageHash; - EquatableImage( - this.value, { - required int? hash, - }) : _imageHash = hash; + EquatableImage(this.value, {required int? hash}) : _imageHash = hash; static Future calculate(Image image) async { final imageHash = await image.calculateHash(); diff --git a/app/lib/domain/services/app_initialization.dart b/app/lib/domain/services/app_initialization.dart index fb73eddc..35fb894a 100644 --- a/app/lib/domain/services/app_initialization.dart +++ b/app/lib/domain/services/app_initialization.dart @@ -18,25 +18,21 @@ class AppInitializationService extends _$AppInitializationService { Future _initPackageInfo() { //Ensure Package info is loaded - state = Result.success( - ( - initialized: false, - stage: 'Loading Package Info...', - errors: List.empty(), - ), - ); + state = Result.success(( + initialized: false, + stage: 'Loading Package Info...', + errors: List.empty(), + )); return ref.read(packageInfoProvider.future); } Future>> _initBangs() { - state = Result.success( - ( - initialized: false, - stage: 'Synchronizing Bangs...', - errors: List.empty(), - ), - ); + state = Result.success(( + initialized: false, + stage: 'Synchronizing Bangs...', + errors: List.empty(), + )); return ref .read(bangSyncRepositoryProvider.notifier) @@ -60,9 +56,11 @@ class AppInitializationService extends _$AppInitializationService { @override Result<({bool initialized, String? stage, List errors})> - build() { - return Result.success( - (initialized: false, stage: null, errors: List.empty()), - ); + build() { + return Result.success(( + initialized: false, + stage: null, + errors: List.empty(), + )); } } diff --git a/app/lib/domain/services/app_initialization.g.dart b/app/lib/domain/services/app_initialization.g.dart index 7d593514..8875f71e 100644 --- a/app/lib/domain/services/app_initialization.g.dart +++ b/app/lib/domain/services/app_initialization.g.dart @@ -12,23 +12,22 @@ String _$appInitializationServiceHash() => /// See also [AppInitializationService]. @ProviderFor(AppInitializationService) final appInitializationServiceProvider = NotifierProvider< - AppInitializationService, - Result< - ({ - bool initialized, - String? stage, - List errors - })>>.internal( + AppInitializationService, + Result<({bool initialized, String? stage, List errors})> +>.internal( AppInitializationService.new, name: r'appInitializationServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$appInitializationServiceHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$appInitializationServiceHash, dependencies: null, allTransitiveDependencies: null, ); -typedef _$AppInitializationService = Notifier< - Result<({bool initialized, String? stage, List errors})>>; +typedef _$AppInitializationService = + Notifier< + Result<({bool initialized, String? stage, List errors})> + >; // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/domain/services/generic_website.dart b/app/lib/domain/services/generic_website.dart index 068162a5..9e385c44 100644 --- a/app/lib/domain/services/generic_website.dart +++ b/app/lib/domain/services/generic_website.dart @@ -65,8 +65,8 @@ class GenericWebsiteService extends _$GenericWebsiteService { final LRUCache _browserIconCache; GenericWebsiteService() - : _iconsService = GeckoIconService(), - _browserIconCache = LRUCache(50); + : _iconsService = GeckoIconService(), + _browserIconCache = LRUCache(50); @override void build() { @@ -89,9 +89,10 @@ class GenericWebsiteService extends _$GenericWebsiteService { url: resource['url'] as String, type: resource['type'] as IconType, mimeType: resource['mimeType'] as String?, - sizes: (resource['sizes'] as List>) - .map((s) => ResourceSize(height: s[0], width: s[1])) - .toList(), + sizes: + (resource['sizes'] as List>) + .map((s) => ResourceSize(height: s[0], width: s[1])) + .toList(), maskable: resource['maskable'] as bool, ); } @@ -187,45 +188,39 @@ class GenericWebsiteService extends _$GenericWebsiteService { } Future> fetchPageInfo(Uri url) async { - return Result.fromAsync( - () async { - final response = - await _client.get(url).timeout(const Duration(seconds: 10)); + return Result.fromAsync(() async { + final response = await _client + .get(url) + .timeout(const Duration(seconds: 10)); - final result = await compute( - (args) async { - final document = html_parser.parse(args[0]); - final baseUri = Uri.parse(args[1]); + final result = await compute((args) async { + final document = html_parser.parse(args[0]); + final baseUri = Uri.parse(args[1]); - final title = document.querySelector('title')?.text; - final resources = _extractIcons(baseUri, document); + final title = document.querySelector('title')?.text; + final resources = _extractIcons(baseUri, document); - return { - 'title': title, - 'resources': resources.map(_serializeResource).toList(), - }; - }, - [response.body, url.toString()], - ); + return { + 'title': title, + 'resources': resources.map(_serializeResource).toList(), + }; + }, [response.body, url.toString()]); - final resources = (result['resources']! as List>) - .map(_deserializeResource) - .toList(); + final resources = + (result['resources']! as List>) + .map(_deserializeResource) + .toList(); - final favicon = await getCachedIcon(url) ?? - await loadIcon( - url: url, - resources: resources, - ); + final favicon = + await getCachedIcon(url) ?? + await loadIcon(url: url, resources: resources); - return WebPageInfo( - url: url, - title: result['title'] as String?, - favicon: favicon, - ); - }, - exceptionHandler: handleHttpError, - ); + return WebPageInfo( + url: url, + title: result['title'] as String?, + favicon: favicon, + ); + }, exceptionHandler: handleHttpError); } Future getCachedIcon(Uri url) async { @@ -281,9 +276,9 @@ class GenericWebsiteService extends _$GenericWebsiteService { return cachedIcon; } - return fetchPageInfo(url).then( - (result) => result.flatMap((pageInfo) => pageInfo.favicon!).value, - ); + return fetchPageInfo( + url, + ).then((result) => result.flatMap((pageInfo) => pageInfo.favicon!).value); } // Future tryUpgradeToHttps(Uri httpUri) async { diff --git a/app/lib/domain/services/generic_website.g.dart b/app/lib/domain/services/generic_website.g.dart index 44d9c141..1736c8e5 100644 --- a/app/lib/domain/services/generic_website.g.dart +++ b/app/lib/domain/services/generic_website.g.dart @@ -13,14 +13,15 @@ String _$genericWebsiteServiceHash() => @ProviderFor(GenericWebsiteService) final genericWebsiteServiceProvider = NotifierProvider.internal( - GenericWebsiteService.new, - name: r'genericWebsiteServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$genericWebsiteServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + GenericWebsiteService.new, + name: r'genericWebsiteServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$genericWebsiteServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$GenericWebsiteService = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/app_widget/domain/services/home_widget.dart b/app/lib/features/app_widget/domain/services/home_widget.dart index c72ab589..ef6df0cc 100644 --- a/app/lib/features/app_widget/domain/services/home_widget.dart +++ b/app/lib/features/app_widget/domain/services/home_widget.dart @@ -12,13 +12,12 @@ FutureOr widgetPinnable(Ref ref) async { } @Riverpod() -Raw> appWidgetLaunchStream( - Ref ref, -) { +Raw> appWidgetLaunchStream(Ref ref) { // ignore: discarded_futures final initialStream = HomeWidget.initiallyLaunchedFromHomeWidget().asStream(); - return ConcatStream([initialStream, HomeWidget.widgetClicked]) - .whereNotNull() - .map((uri) => ReceivedParameter(null, uri.host)); + return ConcatStream([ + initialStream, + HomeWidget.widgetClicked, + ]).whereNotNull().map((uri) => ReceivedParameter(null, uri.host)); } diff --git a/app/lib/features/app_widget/domain/services/home_widget.g.dart b/app/lib/features/app_widget/domain/services/home_widget.g.dart index b01c11c3..20f3f7e4 100644 --- a/app/lib/features/app_widget/domain/services/home_widget.g.dart +++ b/app/lib/features/app_widget/domain/services/home_widget.g.dart @@ -13,9 +13,10 @@ String _$widgetPinnableHash() => r'f91041f0f051ad0f00dd765cafea5571ca8c8088'; final widgetPinnableProvider = FutureProvider.internal( widgetPinnable, name: r'widgetPinnableProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$widgetPinnableHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$widgetPinnableHash, dependencies: null, allTransitiveDependencies: null, ); @@ -30,18 +31,19 @@ String _$appWidgetLaunchStreamHash() => @ProviderFor(appWidgetLaunchStream) final appWidgetLaunchStreamProvider = AutoDisposeProvider>>.internal( - appWidgetLaunchStream, - name: r'appWidgetLaunchStreamProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$appWidgetLaunchStreamHash, - dependencies: null, - allTransitiveDependencies: null, -); + appWidgetLaunchStream, + name: r'appWidgetLaunchStreamProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$appWidgetLaunchStreamHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element -typedef AppWidgetLaunchStreamRef - = AutoDisposeProviderRef>>; +typedef AppWidgetLaunchStreamRef = + AutoDisposeProviderRef>>; // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/bangs/data/database/daos/bang.dart b/app/lib/features/bangs/data/database/daos/bang.dart index 224e19ab..ae1c42e2 100644 --- a/app/lib/features/bangs/data/database/daos/bang.dart +++ b/app/lib/features/bangs/data/database/daos/bang.dart @@ -95,13 +95,9 @@ class BangDao extends DatabaseAccessor with _$BangDaoMixin { final ftsQuery = db.buildFtsQuery(searchString); if (ftsQuery.isNotEmpty) { - return db.queryBangs( - query: ftsQuery, - ); + return db.queryBangs(query: ftsQuery); } else { - return db.queryBangsBasic( - query: db.buildLikeQuery(searchString), - ); + return db.queryBangsBasic(query: db.buildLikeQuery(searchString)); } } diff --git a/app/lib/features/bangs/data/database/daos/sync.dart b/app/lib/features/bangs/data/database/daos/sync.dart index c28762b3..f7c41c2e 100644 --- a/app/lib/features/bangs/data/database/daos/sync.dart +++ b/app/lib/features/bangs/data/database/daos/sync.dart @@ -9,19 +9,17 @@ class SyncDao extends DatabaseAccessor with _$SyncDaoMixin { SyncDao(super.db); SingleOrNullSelectable lastSyncOfGroup(BangGroup group) { - final query = selectOnly(db.bangSync) - ..addColumns([db.bangSync.lastSync]) - ..where(db.bangSync.group.equalsValue(group)); + final query = + selectOnly(db.bangSync) + ..addColumns([db.bangSync.lastSync]) + ..where(db.bangSync.group.equalsValue(group)); return query.map((row) => row.read(db.bangSync.lastSync)); } Future upsertLastSyncOfGroup(BangGroup group, DateTime lastSync) { return db.bangSync.insertOne( - BangSyncCompanion.insert( - group: Value(group), - lastSync: lastSync, - ), + BangSyncCompanion.insert(group: Value(group), lastSync: lastSync), onConflict: DoUpdate( (old) => BangSyncCompanion.custom(lastSync: Variable(lastSync)), ), @@ -33,11 +31,9 @@ class SyncDao extends DatabaseAccessor with _$SyncDaoMixin { } Future replaceBangs(Iterable bangs) { - return batch( - (batch) { - batch.replaceAll(db.bang, bangs); - }, - ); + return batch((batch) { + batch.replaceAll(db.bang, bangs); + }); } Future deleteBangs(Iterable triggers) { @@ -50,36 +46,34 @@ class SyncDao extends DatabaseAccessor with _$SyncDaoMixin { required Iterable remoteBangs, required DateTime syncTime, }) async { - final remoteBangMap = - Map.fromEntries(remoteBangs.map((e) => MapEntry(e.trigger, e))); - final localBangMap = - await db.bangDao.getBangList(groups: [group]).get().then( - (bangs) => - Map.fromEntries(bangs.map((e) => MapEntry(e.trigger, e))), - ); + final remoteBangMap = Map.fromEntries( + remoteBangs.map((e) => MapEntry(e.trigger, e)), + ); + final localBangMap = await db.bangDao + .getBangList(groups: [group]) + .get() + .then( + (bangs) => Map.fromEntries(bangs.map((e) => MapEntry(e.trigger, e))), + ); final remoteBangTriggers = remoteBangMap.keys.toSet(); final localBangTriggers = localBangMap.keys.toSet(); final removedBangs = localBangTriggers.difference(remoteBangTriggers); - final addedBangs = remoteBangTriggers.difference(localBangTriggers).map( - (e) => remoteBangMap[e]!, - ); + final addedBangs = remoteBangTriggers + .difference(localBangTriggers) + .map((e) => remoteBangMap[e]!); final changedBangs = remoteBangTriggers .intersection(localBangTriggers) .where((e) => remoteBangMap[e] != localBangMap[e]) - .map( - (e) => remoteBangMap[e]!, - ); + .map((e) => remoteBangMap[e]!); - await db.transaction( - () async { - await deleteBangs(removedBangs); - await insertBangs(addedBangs); - await replaceBangs(changedBangs); - await upsertLastSyncOfGroup(group, syncTime); - }, - ); + await db.transaction(() async { + await deleteBangs(removedBangs); + await insertBangs(addedBangs); + await replaceBangs(changedBangs); + await upsertLastSyncOfGroup(group, syncTime); + }); } } diff --git a/app/lib/features/bangs/data/database/database.dart b/app/lib/features/bangs/data/database/database.dart index abcba277..5fd14847 100644 --- a/app/lib/features/bangs/data/database/database.dart +++ b/app/lib/features/bangs/data/database/database.dart @@ -9,10 +9,7 @@ import 'package:lensai/features/search/domain/fts_tokenizer.dart'; part 'database.g.dart'; -@DriftDatabase( - include: {'database.drift'}, - daos: [BangDao, SyncDao], -) +@DriftDatabase(include: {'database.drift'}, daos: [BangDao, SyncDao]) class BangDatabase extends _$BangDatabase with PrefixQueryBuilderMixin { @override final int schemaVersion = 1; @@ -24,10 +21,10 @@ class BangDatabase extends _$BangDatabase with PrefixQueryBuilderMixin { @override MigrationStrategy get migration => MigrationStrategy( - beforeOpen: (details) async { - await customStatement('PRAGMA foreign_keys = ON;'); - }, - ); + beforeOpen: (details) async { + await customStatement('PRAGMA foreign_keys = ON;'); + }, + ); BangDatabase(super.e); } diff --git a/app/lib/features/bangs/data/database/database.g.dart b/app/lib/features/bangs/data/database/database.g.dart index 7f188011..2f516bb3 100644 --- a/app/lib/features/bangs/data/database/database.g.dart +++ b/app/lib/features/bangs/data/database/database.g.dart @@ -9,58 +9,82 @@ class BangTable extends Table with TableInfo { final String? _alias; BangTable(this.attachedDatabase, [this._alias]); late final GeneratedColumn trigger = GeneratedColumn( - 'trigger', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'PRIMARY KEY NOT NULL'); + 'trigger', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'PRIMARY KEY NOT NULL', + ); late final GeneratedColumnWithTypeConverter group = - GeneratedColumn('group', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL') - .withConverter(BangTable.$convertergroup); + GeneratedColumn( + 'group', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ).withConverter(BangTable.$convertergroup); late final GeneratedColumn websiteName = GeneratedColumn( - 'website_name', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'website_name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn domain = GeneratedColumn( - 'domain', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'domain', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn urlTemplate = GeneratedColumn( - 'url_template', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'url_template', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn category = GeneratedColumn( - 'category', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'category', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn subCategory = GeneratedColumn( - 'sub_category', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'sub_category', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumnWithTypeConverter?, String> format = - GeneratedColumn('format', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: '') - .withConverter?>(BangTable.$converterformat); + GeneratedColumn( + 'format', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ).withConverter?>(BangTable.$converterformat); @override List get $columns => [ - trigger, - group, - websiteName, - domain, - urlTemplate, - category, - subCategory, - format - ]; + trigger, + group, + websiteName, + domain, + urlTemplate, + category, + subCategory, + format, + ]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -72,22 +96,46 @@ class BangTable extends Table with TableInfo { Bang map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return Bang( - websiteName: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}website_name'])!, - domain: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}domain'])!, - trigger: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}trigger'])!, - urlTemplate: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}url_template'])!, - group: BangTable.$convertergroup.fromSql(attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}group'])!), - category: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}category']), - subCategory: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}sub_category']), - format: BangTable.$converterformat.fromSql(attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}format'])), + websiteName: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}website_name'], + )!, + domain: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}domain'], + )!, + trigger: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}trigger'], + )!, + urlTemplate: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}url_template'], + )!, + group: BangTable.$convertergroup.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}group'], + )!, + ), + category: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}category'], + ), + subCategory: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}sub_category'], + ), + format: BangTable.$converterformat.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}format'], + ), + ), ); } @@ -135,11 +183,11 @@ class BangCompanion extends UpdateCompanion { this.subCategory = const Value.absent(), this.format = const Value.absent(), this.rowid = const Value.absent(), - }) : trigger = Value(trigger), - group = Value(group), - websiteName = Value(websiteName), - domain = Value(domain), - urlTemplate = Value(urlTemplate); + }) : trigger = Value(trigger), + group = Value(group), + websiteName = Value(websiteName), + domain = Value(domain), + urlTemplate = Value(urlTemplate); static Insertable custom({ Expression? trigger, Expression? group, @@ -164,16 +212,17 @@ class BangCompanion extends UpdateCompanion { }); } - BangCompanion copyWith( - {Value? trigger, - Value? group, - Value? websiteName, - Value? domain, - Value? urlTemplate, - Value? category, - Value? subCategory, - Value?>? format, - Value? rowid}) { + BangCompanion copyWith({ + Value? trigger, + Value? group, + Value? websiteName, + Value? domain, + Value? urlTemplate, + Value? category, + Value? subCategory, + Value?>? format, + Value? rowid, + }) { return BangCompanion( trigger: trigger ?? this.trigger, group: group ?? this.group, @@ -194,8 +243,9 @@ class BangCompanion extends UpdateCompanion { map['trigger'] = Variable(trigger.value); } if (group.present) { - map['group'] = - Variable(BangTable.$convertergroup.toSql(group.value)); + map['group'] = Variable( + BangTable.$convertergroup.toSql(group.value), + ); } if (websiteName.present) { map['website_name'] = Variable(websiteName.value); @@ -213,8 +263,9 @@ class BangCompanion extends UpdateCompanion { map['sub_category'] = Variable(subCategory.value); } if (format.present) { - map['format'] = - Variable(BangTable.$converterformat.toSql(format.value)); + map['format'] = Variable( + BangTable.$converterformat.toSql(format.value), + ); } if (rowid.present) { map['rowid'] = Variable(rowid.value); @@ -245,16 +296,22 @@ class BangSync extends Table with TableInfo { final String? _alias; BangSync(this.attachedDatabase, [this._alias]); late final GeneratedColumnWithTypeConverter group = - GeneratedColumn('group', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: false, - $customConstraints: 'PRIMARY KEY NOT NULL') - .withConverter(BangSync.$convertergroup); + GeneratedColumn( + 'group', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: false, + $customConstraints: 'PRIMARY KEY NOT NULL', + ).withConverter(BangSync.$convertergroup); late final GeneratedColumn lastSync = GeneratedColumn( - 'last_sync', aliasedName, false, - type: DriftSqlType.dateTime, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'last_sync', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); @override List get $columns => [group, lastSync]; @override @@ -268,10 +325,17 @@ class BangSync extends Table with TableInfo { BangSyncData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return BangSyncData( - group: BangSync.$convertergroup.fromSql(attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}group'])!), - lastSync: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}last_sync'])!, + group: BangSync.$convertergroup.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}group'], + )!, + ), + lastSync: + attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}last_sync'], + )!, ); } @@ -300,12 +364,15 @@ class BangSyncData extends DataClass implements Insertable { return map; } - factory BangSyncData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory BangSyncData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return BangSyncData( - group: BangSync.$convertergroup - .fromJson(serializer.fromJson(json['group'])), + group: BangSync.$convertergroup.fromJson( + serializer.fromJson(json['group']), + ), lastSync: serializer.fromJson(json['last_sync']), ); } @@ -319,9 +386,9 @@ class BangSyncData extends DataClass implements Insertable { } BangSyncData copyWith({BangGroup? group, DateTime? lastSync}) => BangSyncData( - group: group ?? this.group, - lastSync: lastSync ?? this.lastSync, - ); + group: group ?? this.group, + lastSync: lastSync ?? this.lastSync, + ); BangSyncData copyWithCompanion(BangSyncCompanion data) { return BangSyncData( group: data.group.present ? data.group.value : this.group, @@ -369,8 +436,10 @@ class BangSyncCompanion extends UpdateCompanion { }); } - BangSyncCompanion copyWith( - {Value? group, Value? lastSync}) { + BangSyncCompanion copyWith({ + Value? group, + Value? lastSync, + }) { return BangSyncCompanion( group: group ?? this.group, lastSync: lastSync ?? this.lastSync, @@ -406,21 +475,30 @@ class BangFrequency extends Table final String? _alias; BangFrequency(this.attachedDatabase, [this._alias]); late final GeneratedColumn trigger = GeneratedColumn( - 'trigger', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: - 'PRIMARY KEY NOT NULL REFERENCES bang("trigger")ON DELETE CASCADE'); + 'trigger', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: + 'PRIMARY KEY NOT NULL REFERENCES bang("trigger")ON DELETE CASCADE', + ); late final GeneratedColumn frequency = GeneratedColumn( - 'frequency', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'frequency', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn lastUsed = GeneratedColumn( - 'last_used', aliasedName, false, - type: DriftSqlType.dateTime, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'last_used', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); @override List get $columns => [trigger, frequency, lastUsed]; @override @@ -434,12 +512,21 @@ class BangFrequency extends Table BangFrequencyData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return BangFrequencyData( - trigger: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}trigger'])!, - frequency: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}frequency'])!, - lastUsed: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}last_used'])!, + trigger: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}trigger'], + )!, + frequency: + attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}frequency'], + )!, + lastUsed: + attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}last_used'], + )!, ); } @@ -457,8 +544,11 @@ class BangFrequencyData extends DataClass final String trigger; final int frequency; final DateTime lastUsed; - const BangFrequencyData( - {required this.trigger, required this.frequency, required this.lastUsed}); + const BangFrequencyData({ + required this.trigger, + required this.frequency, + required this.lastUsed, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -468,8 +558,10 @@ class BangFrequencyData extends DataClass return map; } - factory BangFrequencyData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory BangFrequencyData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return BangFrequencyData( trigger: serializer.fromJson(json['trigger']), @@ -487,13 +579,15 @@ class BangFrequencyData extends DataClass }; } - BangFrequencyData copyWith( - {String? trigger, int? frequency, DateTime? lastUsed}) => - BangFrequencyData( - trigger: trigger ?? this.trigger, - frequency: frequency ?? this.frequency, - lastUsed: lastUsed ?? this.lastUsed, - ); + BangFrequencyData copyWith({ + String? trigger, + int? frequency, + DateTime? lastUsed, + }) => BangFrequencyData( + trigger: trigger ?? this.trigger, + frequency: frequency ?? this.frequency, + lastUsed: lastUsed ?? this.lastUsed, + ); BangFrequencyData copyWithCompanion(BangFrequencyCompanion data) { return BangFrequencyData( trigger: data.trigger.present ? data.trigger.value : this.trigger, @@ -539,9 +633,9 @@ class BangFrequencyCompanion extends UpdateCompanion { required int frequency, required DateTime lastUsed, this.rowid = const Value.absent(), - }) : trigger = Value(trigger), - frequency = Value(frequency), - lastUsed = Value(lastUsed); + }) : trigger = Value(trigger), + frequency = Value(frequency), + lastUsed = Value(lastUsed); static Insertable custom({ Expression? trigger, Expression? frequency, @@ -556,11 +650,12 @@ class BangFrequencyCompanion extends UpdateCompanion { }); } - BangFrequencyCompanion copyWith( - {Value? trigger, - Value? frequency, - Value? lastUsed, - Value? rowid}) { + BangFrequencyCompanion copyWith({ + Value? trigger, + Value? frequency, + Value? lastUsed, + Value? rowid, + }) { return BangFrequencyCompanion( trigger: trigger ?? this.trigger, frequency: frequency ?? this.frequency, @@ -605,20 +700,29 @@ class BangHistory extends Table with TableInfo { final String? _alias; BangHistory(this.attachedDatabase, [this._alias]); late final GeneratedColumn searchQuery = GeneratedColumn( - 'search_query', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'UNIQUE NOT NULL'); + 'search_query', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'UNIQUE NOT NULL', + ); late final GeneratedColumn trigger = GeneratedColumn( - 'trigger', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL REFERENCES bang("trigger")'); + 'trigger', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL REFERENCES bang("trigger")', + ); late final GeneratedColumn searchDate = GeneratedColumn( - 'search_date', aliasedName, false, - type: DriftSqlType.dateTime, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'search_date', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); @override List get $columns => [searchQuery, trigger, searchDate]; @override @@ -632,12 +736,21 @@ class BangHistory extends Table with TableInfo { BangHistoryData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return BangHistoryData( - searchQuery: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}search_query'])!, - trigger: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}trigger'])!, - searchDate: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}search_date'])!, + searchQuery: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}search_query'], + )!, + trigger: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}trigger'], + )!, + searchDate: + attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}search_date'], + )!, ); } @@ -654,10 +767,11 @@ class BangHistoryData extends DataClass implements Insertable { final String searchQuery; final String trigger; final DateTime searchDate; - const BangHistoryData( - {required this.searchQuery, - required this.trigger, - required this.searchDate}); + const BangHistoryData({ + required this.searchQuery, + required this.trigger, + required this.searchDate, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -667,8 +781,10 @@ class BangHistoryData extends DataClass implements Insertable { return map; } - factory BangHistoryData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory BangHistoryData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return BangHistoryData( searchQuery: serializer.fromJson(json['search_query']), @@ -686,13 +802,15 @@ class BangHistoryData extends DataClass implements Insertable { }; } - BangHistoryData copyWith( - {String? searchQuery, String? trigger, DateTime? searchDate}) => - BangHistoryData( - searchQuery: searchQuery ?? this.searchQuery, - trigger: trigger ?? this.trigger, - searchDate: searchDate ?? this.searchDate, - ); + BangHistoryData copyWith({ + String? searchQuery, + String? trigger, + DateTime? searchDate, + }) => BangHistoryData( + searchQuery: searchQuery ?? this.searchQuery, + trigger: trigger ?? this.trigger, + searchDate: searchDate ?? this.searchDate, + ); BangHistoryData copyWithCompanion(BangHistoryCompanion data) { return BangHistoryData( searchQuery: @@ -740,9 +858,9 @@ class BangHistoryCompanion extends UpdateCompanion { required String trigger, required DateTime searchDate, this.rowid = const Value.absent(), - }) : searchQuery = Value(searchQuery), - trigger = Value(trigger), - searchDate = Value(searchDate); + }) : searchQuery = Value(searchQuery), + trigger = Value(trigger), + searchDate = Value(searchDate); static Insertable custom({ Expression? searchQuery, Expression? trigger, @@ -757,11 +875,12 @@ class BangHistoryCompanion extends UpdateCompanion { }); } - BangHistoryCompanion copyWith( - {Value? searchQuery, - Value? trigger, - Value? searchDate, - Value? rowid}) { + BangHistoryCompanion copyWith({ + Value? searchQuery, + Value? trigger, + Value? searchDate, + Value? rowid, + }) { return BangHistoryCompanion( searchQuery: searchQuery ?? this.searchQuery, trigger: trigger ?? this.trigger, @@ -807,15 +926,21 @@ class BangFts extends Table final String? _alias; BangFts(this.attachedDatabase, [this._alias]); late final GeneratedColumn trigger = GeneratedColumn( - 'trigger', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: ''); + 'trigger', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: '', + ); late final GeneratedColumn websiteName = GeneratedColumn( - 'website_name', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: ''); + 'website_name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: '', + ); @override List get $columns => [trigger, websiteName]; @override @@ -829,10 +954,16 @@ class BangFts extends Table BangFt map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return BangFt( - trigger: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}trigger'])!, - websiteName: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}website_name'])!, + trigger: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}trigger'], + )!, + websiteName: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}website_name'], + )!, ); } @@ -860,8 +991,10 @@ class BangFt extends DataClass implements Insertable { return map; } - factory BangFt.fromJson(Map json, - {ValueSerializer? serializer}) { + factory BangFt.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return BangFt( trigger: serializer.fromJson(json['trigger']), @@ -878,9 +1011,9 @@ class BangFt extends DataClass implements Insertable { } BangFt copyWith({String? trigger, String? websiteName}) => BangFt( - trigger: trigger ?? this.trigger, - websiteName: websiteName ?? this.websiteName, - ); + trigger: trigger ?? this.trigger, + websiteName: websiteName ?? this.websiteName, + ); BangFt copyWithCompanion(BangFtsCompanion data) { return BangFt( trigger: data.trigger.present ? data.trigger.value : this.trigger, @@ -921,8 +1054,8 @@ class BangFtsCompanion extends UpdateCompanion { required String trigger, required String websiteName, this.rowid = const Value.absent(), - }) : trigger = Value(trigger), - websiteName = Value(websiteName); + }) : trigger = Value(trigger), + websiteName = Value(websiteName); static Insertable custom({ Expression? trigger, Expression? websiteName, @@ -935,8 +1068,11 @@ class BangFtsCompanion extends UpdateCompanion { }); } - BangFtsCompanion copyWith( - {Value? trigger, Value? websiteName, Value? rowid}) { + BangFtsCompanion copyWith({ + Value? trigger, + Value? websiteName, + Value? rowid, + }) { return BangFtsCompanion( trigger: trigger ?? this.trigger, websiteName: websiteName ?? this.websiteName, @@ -978,84 +1114,139 @@ class BangDataView extends ViewInfo BangDataView(this.attachedDatabase, [this._alias]); @override List get $columns => [ - trigger, - group, - websiteName, - domain, - urlTemplate, - category, - subCategory, - format, - frequency, - lastUsed - ]; + trigger, + group, + websiteName, + domain, + urlTemplate, + category, + subCategory, + format, + frequency, + lastUsed, + ]; @override String get aliasedName => _alias ?? entityName; @override String get entityName => 'bang_data_view'; @override Map get createViewStatements => { - SqlDialect.sqlite: - 'CREATE VIEW bang_data_view AS SELECT b.*, bf.frequency, bf.last_used FROM bang AS b LEFT JOIN bang_frequency AS bf ON b."trigger" = bf."trigger"', - }; + SqlDialect.sqlite: + 'CREATE VIEW bang_data_view AS SELECT b.*, bf.frequency, bf.last_used FROM bang AS b LEFT JOIN bang_frequency AS bf ON b."trigger" = bf."trigger"', + }; @override BangDataView get asDslTable => this; @override BangData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return BangData( - websiteName: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}website_name'])!, - domain: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}domain'])!, - trigger: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}trigger'])!, - urlTemplate: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}url_template'])!, - category: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}category']), - subCategory: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}sub_category']), - format: BangTable.$converterformat.fromSql(attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}format'])), - frequency: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}frequency']), - lastUsed: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}last_used']), + websiteName: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}website_name'], + )!, + domain: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}domain'], + )!, + trigger: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}trigger'], + )!, + urlTemplate: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}url_template'], + )!, + category: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}category'], + ), + subCategory: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}sub_category'], + ), + format: BangTable.$converterformat.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}format'], + ), + ), + frequency: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}frequency'], + ), + lastUsed: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}last_used'], + ), ); } late final GeneratedColumn trigger = GeneratedColumn( - 'trigger', aliasedName, false, - type: DriftSqlType.string); + 'trigger', + aliasedName, + false, + type: DriftSqlType.string, + ); late final GeneratedColumnWithTypeConverter group = - GeneratedColumn('group', aliasedName, false, type: DriftSqlType.int) - .withConverter(BangTable.$convertergroup); + GeneratedColumn( + 'group', + aliasedName, + false, + type: DriftSqlType.int, + ).withConverter(BangTable.$convertergroup); late final GeneratedColumn websiteName = GeneratedColumn( - 'website_name', aliasedName, false, - type: DriftSqlType.string); + 'website_name', + aliasedName, + false, + type: DriftSqlType.string, + ); late final GeneratedColumn domain = GeneratedColumn( - 'domain', aliasedName, false, - type: DriftSqlType.string); + 'domain', + aliasedName, + false, + type: DriftSqlType.string, + ); late final GeneratedColumn urlTemplate = GeneratedColumn( - 'url_template', aliasedName, false, - type: DriftSqlType.string); + 'url_template', + aliasedName, + false, + type: DriftSqlType.string, + ); late final GeneratedColumn category = GeneratedColumn( - 'category', aliasedName, true, - type: DriftSqlType.string); + 'category', + aliasedName, + true, + type: DriftSqlType.string, + ); late final GeneratedColumn subCategory = GeneratedColumn( - 'sub_category', aliasedName, true, - type: DriftSqlType.string); + 'sub_category', + aliasedName, + true, + type: DriftSqlType.string, + ); late final GeneratedColumnWithTypeConverter?, String> format = - GeneratedColumn('format', aliasedName, true, - type: DriftSqlType.string) - .withConverter?>(BangTable.$converterformat); + GeneratedColumn( + 'format', + aliasedName, + true, + type: DriftSqlType.string, + ).withConverter?>(BangTable.$converterformat); late final GeneratedColumn frequency = GeneratedColumn( - 'frequency', aliasedName, true, - type: DriftSqlType.int); + 'frequency', + aliasedName, + true, + type: DriftSqlType.int, + ); late final GeneratedColumn lastUsed = GeneratedColumn( - 'last_used', aliasedName, true, - type: DriftSqlType.dateTime); + 'last_used', + aliasedName, + true, + type: DriftSqlType.dateTime, + ); @override BangDataView createAlias(String alias) { return BangDataView(attachedDatabase, alias); @@ -1077,14 +1268,17 @@ abstract class _$BangDatabase extends GeneratedDatabase { late final BangFts bangFts = BangFts(this); late final BangDataView bangDataView = BangDataView(this); late final Trigger bangAfterInsert = Trigger( - 'CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN INSERT INTO bang_fts ("rowid", "trigger", website_name) VALUES (new."rowid", new."trigger", new.website_name);END', - 'bang_after_insert'); + 'CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN INSERT INTO bang_fts ("rowid", "trigger", website_name) VALUES (new."rowid", new."trigger", new.website_name);END', + 'bang_after_insert', + ); late final Trigger bangAfterDelete = Trigger( - 'CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN INSERT INTO bang_fts (bang_fts, "rowid", "trigger", website_name) VALUES (\'delete\', old."rowid", old."trigger", old.website_name);END', - 'bang_after_delete'); + 'CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN INSERT INTO bang_fts (bang_fts, "rowid", "trigger", website_name) VALUES (\'delete\', old."rowid", old."trigger", old.website_name);END', + 'bang_after_delete', + ); late final Trigger bangAfterUpdate = Trigger( - 'CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN INSERT INTO bang_fts (bang_fts, "rowid", "trigger", website_name) VALUES (\'delete\', old."rowid", old."trigger", old.website_name);INSERT INTO bang_fts ("rowid", "trigger", website_name) VALUES (new."rowid", new."trigger", new.website_name);END', - 'bang_after_update'); + 'CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN INSERT INTO bang_fts (bang_fts, "rowid", "trigger", website_name) VALUES (\'delete\', old."rowid", old."trigger", old.website_name);INSERT INTO bang_fts ("rowid", "trigger", website_name) VALUES (new."rowid", new."trigger", new.website_name);END', + 'bang_after_update', + ); late final BangDao bangDao = BangDao(this as BangDatabase); late final SyncDao syncDao = SyncDao(this as BangDatabase); Future optimizeFtsIndex() { @@ -1097,74 +1291,68 @@ abstract class _$BangDatabase extends GeneratedDatabase { Selectable queryBangs({required String query}) { return customSelect( - 'WITH weights AS (SELECT 10.0 AS "trigger", 5.0 AS website_name) SELECT b.*, bf.frequency, bf.last_used, bm25(bang_fts, weights."trigger", weights.website_name) AS weighted_rank FROM bang_fts(?1)AS fts INNER JOIN bang AS b ON b."rowid" = fts."rowid" LEFT JOIN bang_frequency AS bf ON b."trigger" = bf."trigger" CROSS JOIN weights ORDER BY weighted_rank ASC, bf.frequency NULLS LAST', - variables: [ - Variable(query) - ], - readsFrom: { - bangFrequency, - bangFts, - bang, - }).map((QueryRow row) => BangData( - websiteName: row.read('website_name'), - domain: row.read('domain'), - trigger: row.read('trigger'), - urlTemplate: row.read('url_template'), - category: row.readNullable('category'), - subCategory: row.readNullable('sub_category'), - format: BangTable.$converterformat - .fromSql(row.readNullable('format')), - frequency: row.readNullable('frequency'), - lastUsed: row.readNullable('last_used'), - )); + 'WITH weights AS (SELECT 10.0 AS "trigger", 5.0 AS website_name) SELECT b.*, bf.frequency, bf.last_used, bm25(bang_fts, weights."trigger", weights.website_name) AS weighted_rank FROM bang_fts(?1)AS fts INNER JOIN bang AS b ON b."rowid" = fts."rowid" LEFT JOIN bang_frequency AS bf ON b."trigger" = bf."trigger" CROSS JOIN weights ORDER BY weighted_rank ASC, bf.frequency NULLS LAST', + variables: [Variable(query)], + readsFrom: {bangFrequency, bangFts, bang}, + ).map( + (QueryRow row) => BangData( + websiteName: row.read('website_name'), + domain: row.read('domain'), + trigger: row.read('trigger'), + urlTemplate: row.read('url_template'), + category: row.readNullable('category'), + subCategory: row.readNullable('sub_category'), + format: BangTable.$converterformat.fromSql( + row.readNullable('format'), + ), + frequency: row.readNullable('frequency'), + lastUsed: row.readNullable('last_used'), + ), + ); } Selectable queryBangsBasic({required String query}) { return customSelect( - 'WITH weights AS (SELECT 10.0 AS "trigger", 5.0 AS website_name) SELECT b.*, bf.frequency, bf.last_used, bm25(bang_fts, weights."trigger", weights.website_name) AS weighted_rank FROM bang_fts AS fts INNER JOIN bang AS b ON b."rowid" = fts."rowid" LEFT JOIN bang_frequency AS bf ON b."trigger" = bf."trigger" CROSS JOIN weights WHERE fts."trigger" LIKE ?1 OR fts.website_name LIKE ?1 ORDER BY weighted_rank ASC, bf.frequency NULLS LAST', - variables: [ - Variable(query) - ], - readsFrom: { - bangFrequency, - bangFts, - bang, - }).map((QueryRow row) => BangData( - websiteName: row.read('website_name'), - domain: row.read('domain'), - trigger: row.read('trigger'), - urlTemplate: row.read('url_template'), - category: row.readNullable('category'), - subCategory: row.readNullable('sub_category'), - format: BangTable.$converterformat - .fromSql(row.readNullable('format')), - frequency: row.readNullable('frequency'), - lastUsed: row.readNullable('last_used'), - )); + 'WITH weights AS (SELECT 10.0 AS "trigger", 5.0 AS website_name) SELECT b.*, bf.frequency, bf.last_used, bm25(bang_fts, weights."trigger", weights.website_name) AS weighted_rank FROM bang_fts AS fts INNER JOIN bang AS b ON b."rowid" = fts."rowid" LEFT JOIN bang_frequency AS bf ON b."trigger" = bf."trigger" CROSS JOIN weights WHERE fts."trigger" LIKE ?1 OR fts.website_name LIKE ?1 ORDER BY weighted_rank ASC, bf.frequency NULLS LAST', + variables: [Variable(query)], + readsFrom: {bangFrequency, bangFts, bang}, + ).map( + (QueryRow row) => BangData( + websiteName: row.read('website_name'), + domain: row.read('domain'), + trigger: row.read('trigger'), + urlTemplate: row.read('url_template'), + category: row.readNullable('category'), + subCategory: row.readNullable('sub_category'), + format: BangTable.$converterformat.fromSql( + row.readNullable('format'), + ), + frequency: row.readNullable('frequency'), + lastUsed: row.readNullable('last_used'), + ), + ); } Selectable categoriesJson() { return customSelect( - 'WITH categories AS (SELECT b.category, json_group_array(DISTINCT b.sub_category ORDER BY b.sub_category)AS sub_categories FROM bang AS b WHERE b.category IS NOT NULL AND b.sub_category IS NOT NULL GROUP BY b.category ORDER BY b.category) SELECT json_group_object(c.category, json(c.sub_categories)) AS categories_json FROM categories AS c', - variables: [], - readsFrom: { - bang, - }).map((QueryRow row) => row.read('categories_json')); + 'WITH categories AS (SELECT b.category, json_group_array(DISTINCT b.sub_category ORDER BY b.sub_category)AS sub_categories FROM bang AS b WHERE b.category IS NOT NULL AND b.sub_category IS NOT NULL GROUP BY b.category ORDER BY b.category) SELECT json_group_object(c.category, json(c.sub_categories)) AS categories_json FROM categories AS c', + variables: [], + readsFrom: {bang}, + ).map((QueryRow row) => row.read('categories_json')); } Selectable searchHistoryEntries({required int limit}) { return customSelect( - 'SELECT * FROM bang_history ORDER BY search_date DESC LIMIT ?1', - variables: [ - Variable(limit) - ], - readsFrom: { - bangHistory, - }).map((QueryRow row) => SearchHistoryEntry( - searchQuery: row.read('search_query'), - trigger: row.read('trigger'), - searchDate: row.read('search_date'), - )); + 'SELECT * FROM bang_history ORDER BY search_date DESC LIMIT ?1', + variables: [Variable(limit)], + readsFrom: {bangHistory}, + ).map( + (QueryRow row) => SearchHistoryEntry( + searchQuery: row.read('search_query'), + trigger: row.read('trigger'), + searchDate: row.read('search_date'), + ), + ); } Future evictHistoryEntries({required int limit}) { @@ -1181,106 +1369,110 @@ abstract class _$BangDatabase extends GeneratedDatabase { allSchemaEntities.whereType>(); @override List get allSchemaEntities => [ - bang, - bangSync, - bangFrequency, - bangHistory, - bangFts, - bangDataView, - bangAfterInsert, - bangAfterDelete, - bangAfterUpdate - ]; + bang, + bangSync, + bangFrequency, + bangHistory, + bangFts, + bangDataView, + bangAfterInsert, + bangAfterDelete, + bangAfterUpdate, + ]; @override - StreamQueryUpdateRules get streamUpdateRules => const StreamQueryUpdateRules( - [ - WritePropagation( - on: TableUpdateQuery.onTableName('bang', - limitUpdateKind: UpdateKind.delete), - result: [ - TableUpdate('bang_frequency', kind: UpdateKind.delete), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('bang', - limitUpdateKind: UpdateKind.insert), - result: [ - TableUpdate('bang_fts', kind: UpdateKind.insert), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('bang', - limitUpdateKind: UpdateKind.delete), - result: [ - TableUpdate('bang_fts', kind: UpdateKind.insert), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('bang', - limitUpdateKind: UpdateKind.update), - result: [ - TableUpdate('bang_fts', kind: UpdateKind.insert), - ], - ), - ], - ); + StreamQueryUpdateRules get streamUpdateRules => const StreamQueryUpdateRules([ + WritePropagation( + on: TableUpdateQuery.onTableName( + 'bang', + limitUpdateKind: UpdateKind.delete, + ), + result: [TableUpdate('bang_frequency', kind: UpdateKind.delete)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'bang', + limitUpdateKind: UpdateKind.insert, + ), + result: [TableUpdate('bang_fts', kind: UpdateKind.insert)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'bang', + limitUpdateKind: UpdateKind.delete, + ), + result: [TableUpdate('bang_fts', kind: UpdateKind.insert)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'bang', + limitUpdateKind: UpdateKind.update, + ), + result: [TableUpdate('bang_fts', kind: UpdateKind.insert)], + ), + ]); } -typedef $BangTableCreateCompanionBuilder = BangCompanion Function({ - required String trigger, - required BangGroup group, - required String websiteName, - required String domain, - required String urlTemplate, - Value category, - Value subCategory, - Value?> format, - Value rowid, -}); -typedef $BangTableUpdateCompanionBuilder = BangCompanion Function({ - Value trigger, - Value group, - Value websiteName, - Value domain, - Value urlTemplate, - Value category, - Value subCategory, - Value?> format, - Value rowid, -}); +typedef $BangTableCreateCompanionBuilder = + BangCompanion Function({ + required String trigger, + required BangGroup group, + required String websiteName, + required String domain, + required String urlTemplate, + Value category, + Value subCategory, + Value?> format, + Value rowid, + }); +typedef $BangTableUpdateCompanionBuilder = + BangCompanion Function({ + Value trigger, + Value group, + Value websiteName, + Value domain, + Value urlTemplate, + Value category, + Value subCategory, + Value?> format, + Value rowid, + }); final class $BangTableReferences extends BaseReferences<_$BangDatabase, BangTable, Bang> { $BangTableReferences(super.$_db, super.$_table, super.$_typedResult); static MultiTypedResultKey> - _bangFrequencyRefsTable(_$BangDatabase db) => - MultiTypedResultKey.fromTable(db.bangFrequency, - aliasName: $_aliasNameGenerator( - db.bang.trigger, db.bangFrequency.trigger)); + _bangFrequencyRefsTable(_$BangDatabase db) => MultiTypedResultKey.fromTable( + db.bangFrequency, + aliasName: $_aliasNameGenerator(db.bang.trigger, db.bangFrequency.trigger), + ); $BangFrequencyProcessedTableManager get bangFrequencyRefs { final manager = $BangFrequencyTableManager($_db, $_db.bangFrequency).filter( - (f) => f.trigger.trigger.sqlEquals($_itemColumn('trigger')!)); + (f) => f.trigger.trigger.sqlEquals($_itemColumn('trigger')!), + ); final cache = $_typedResult.readTableOrNull(_bangFrequencyRefsTable($_db)); return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: cache)); + manager.$state.copyWith(prefetchedData: cache), + ); } static MultiTypedResultKey> - _bangHistoryRefsTable(_$BangDatabase db) => MultiTypedResultKey.fromTable( - db.bangHistory, - aliasName: - $_aliasNameGenerator(db.bang.trigger, db.bangHistory.trigger)); + _bangHistoryRefsTable(_$BangDatabase db) => MultiTypedResultKey.fromTable( + db.bangHistory, + aliasName: $_aliasNameGenerator(db.bang.trigger, db.bangHistory.trigger), + ); $BangHistoryProcessedTableManager get bangHistoryRefs { final manager = $BangHistoryTableManager($_db, $_db.bangHistory).filter( - (f) => f.trigger.trigger.sqlEquals($_itemColumn('trigger')!)); + (f) => f.trigger.trigger.sqlEquals($_itemColumn('trigger')!), + ); final cache = $_typedResult.readTableOrNull(_bangHistoryRefsTable($_db)); return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: cache)); + manager.$state.copyWith(prefetchedData: cache), + ); } } @@ -1293,72 +1485,94 @@ class $BangTableFilterComposer extends Composer<_$BangDatabase, BangTable> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get trigger => $composableBuilder( - column: $table.trigger, builder: (column) => ColumnFilters(column)); + column: $table.trigger, + builder: (column) => ColumnFilters(column), + ); ColumnWithTypeConverterFilters get group => $composableBuilder( - column: $table.group, - builder: (column) => ColumnWithTypeConverterFilters(column)); + column: $table.group, + builder: (column) => ColumnWithTypeConverterFilters(column), + ); ColumnFilters get websiteName => $composableBuilder( - column: $table.websiteName, builder: (column) => ColumnFilters(column)); + column: $table.websiteName, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get domain => $composableBuilder( - column: $table.domain, builder: (column) => ColumnFilters(column)); + column: $table.domain, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get urlTemplate => $composableBuilder( - column: $table.urlTemplate, builder: (column) => ColumnFilters(column)); + column: $table.urlTemplate, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get category => $composableBuilder( - column: $table.category, builder: (column) => ColumnFilters(column)); + column: $table.category, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get subCategory => $composableBuilder( - column: $table.subCategory, builder: (column) => ColumnFilters(column)); + column: $table.subCategory, + builder: (column) => ColumnFilters(column), + ); ColumnWithTypeConverterFilters?, Set, String> - get format => $composableBuilder( - column: $table.format, - builder: (column) => ColumnWithTypeConverterFilters(column)); + get format => $composableBuilder( + column: $table.format, + builder: (column) => ColumnWithTypeConverterFilters(column), + ); Expression bangFrequencyRefs( - Expression Function($BangFrequencyFilterComposer f) f) { + Expression Function($BangFrequencyFilterComposer f) f, + ) { final $BangFrequencyFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bangFrequency, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangFrequencyFilterComposer( - $db: $db, - $table: $db.bangFrequency, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bangFrequency, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangFrequencyFilterComposer( + $db: $db, + $table: $db.bangFrequency, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return f(composer); } Expression bangHistoryRefs( - Expression Function($BangHistoryFilterComposer f) f) { + Expression Function($BangHistoryFilterComposer f) f, + ) { final $BangHistoryFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bangHistory, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangHistoryFilterComposer( - $db: $db, - $table: $db.bangHistory, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bangHistory, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangHistoryFilterComposer( + $db: $db, + $table: $db.bangHistory, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return f(composer); } } @@ -1372,28 +1586,44 @@ class $BangTableOrderingComposer extends Composer<_$BangDatabase, BangTable> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get trigger => $composableBuilder( - column: $table.trigger, builder: (column) => ColumnOrderings(column)); + column: $table.trigger, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get group => $composableBuilder( - column: $table.group, builder: (column) => ColumnOrderings(column)); + column: $table.group, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get websiteName => $composableBuilder( - column: $table.websiteName, builder: (column) => ColumnOrderings(column)); + column: $table.websiteName, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get domain => $composableBuilder( - column: $table.domain, builder: (column) => ColumnOrderings(column)); + column: $table.domain, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get urlTemplate => $composableBuilder( - column: $table.urlTemplate, builder: (column) => ColumnOrderings(column)); + column: $table.urlTemplate, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get category => $composableBuilder( - column: $table.category, builder: (column) => ColumnOrderings(column)); + column: $table.category, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get subCategory => $composableBuilder( - column: $table.subCategory, builder: (column) => ColumnOrderings(column)); + column: $table.subCategory, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get format => $composableBuilder( - column: $table.format, builder: (column) => ColumnOrderings(column)); + column: $table.format, + builder: (column) => ColumnOrderings(column), + ); } class $BangTableAnnotationComposer extends Composer<_$BangDatabase, BangTable> { @@ -1411,198 +1641,245 @@ class $BangTableAnnotationComposer extends Composer<_$BangDatabase, BangTable> { $composableBuilder(column: $table.group, builder: (column) => column); GeneratedColumn get websiteName => $composableBuilder( - column: $table.websiteName, builder: (column) => column); + column: $table.websiteName, + builder: (column) => column, + ); GeneratedColumn get domain => $composableBuilder(column: $table.domain, builder: (column) => column); GeneratedColumn get urlTemplate => $composableBuilder( - column: $table.urlTemplate, builder: (column) => column); + column: $table.urlTemplate, + builder: (column) => column, + ); GeneratedColumn get category => $composableBuilder(column: $table.category, builder: (column) => column); GeneratedColumn get subCategory => $composableBuilder( - column: $table.subCategory, builder: (column) => column); + column: $table.subCategory, + builder: (column) => column, + ); GeneratedColumnWithTypeConverter?, String> get format => $composableBuilder(column: $table.format, builder: (column) => column); Expression bangFrequencyRefs( - Expression Function($BangFrequencyAnnotationComposer a) f) { + Expression Function($BangFrequencyAnnotationComposer a) f, + ) { final $BangFrequencyAnnotationComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bangFrequency, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangFrequencyAnnotationComposer( - $db: $db, - $table: $db.bangFrequency, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bangFrequency, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangFrequencyAnnotationComposer( + $db: $db, + $table: $db.bangFrequency, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return f(composer); } Expression bangHistoryRefs( - Expression Function($BangHistoryAnnotationComposer a) f) { + Expression Function($BangHistoryAnnotationComposer a) f, + ) { final $BangHistoryAnnotationComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bangHistory, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangHistoryAnnotationComposer( - $db: $db, - $table: $db.bangHistory, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bangHistory, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangHistoryAnnotationComposer( + $db: $db, + $table: $db.bangHistory, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return f(composer); } } -class $BangTableTableManager extends RootTableManager< - _$BangDatabase, - BangTable, - Bang, - $BangTableFilterComposer, - $BangTableOrderingComposer, - $BangTableAnnotationComposer, - $BangTableCreateCompanionBuilder, - $BangTableUpdateCompanionBuilder, - (Bang, $BangTableReferences), - Bang, - PrefetchHooks Function({bool bangFrequencyRefs, bool bangHistoryRefs})> { +class $BangTableTableManager + extends + RootTableManager< + _$BangDatabase, + BangTable, + Bang, + $BangTableFilterComposer, + $BangTableOrderingComposer, + $BangTableAnnotationComposer, + $BangTableCreateCompanionBuilder, + $BangTableUpdateCompanionBuilder, + (Bang, $BangTableReferences), + Bang, + PrefetchHooks Function({bool bangFrequencyRefs, bool bangHistoryRefs}) + > { $BangTableTableManager(_$BangDatabase db, BangTable table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $BangTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $BangTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $BangTableAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value trigger = const Value.absent(), - Value group = const Value.absent(), - Value websiteName = const Value.absent(), - Value domain = const Value.absent(), - Value urlTemplate = const Value.absent(), - Value category = const Value.absent(), - Value subCategory = const Value.absent(), - Value?> format = const Value.absent(), - Value rowid = const Value.absent(), - }) => - BangCompanion( - trigger: trigger, - group: group, - websiteName: websiteName, - domain: domain, - urlTemplate: urlTemplate, - category: category, - subCategory: subCategory, - format: format, - rowid: rowid, - ), - createCompanionCallback: ({ - required String trigger, - required BangGroup group, - required String websiteName, - required String domain, - required String urlTemplate, - Value category = const Value.absent(), - Value subCategory = const Value.absent(), - Value?> format = const Value.absent(), - Value rowid = const Value.absent(), - }) => - BangCompanion.insert( - trigger: trigger, - group: group, - websiteName: websiteName, - domain: domain, - urlTemplate: urlTemplate, - category: category, - subCategory: subCategory, - format: format, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => - (e.readTable(table), $BangTableReferences(db, table, e))) - .toList(), - prefetchHooksCallback: ( - {bangFrequencyRefs = false, bangHistoryRefs = false}) { + createFilteringComposer: + () => $BangTableFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $BangTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $BangTableAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value trigger = const Value.absent(), + Value group = const Value.absent(), + Value websiteName = const Value.absent(), + Value domain = const Value.absent(), + Value urlTemplate = const Value.absent(), + Value category = const Value.absent(), + Value subCategory = const Value.absent(), + Value?> format = const Value.absent(), + Value rowid = const Value.absent(), + }) => BangCompanion( + trigger: trigger, + group: group, + websiteName: websiteName, + domain: domain, + urlTemplate: urlTemplate, + category: category, + subCategory: subCategory, + format: format, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String trigger, + required BangGroup group, + required String websiteName, + required String domain, + required String urlTemplate, + Value category = const Value.absent(), + Value subCategory = const Value.absent(), + Value?> format = const Value.absent(), + Value rowid = const Value.absent(), + }) => BangCompanion.insert( + trigger: trigger, + group: group, + websiteName: websiteName, + domain: domain, + urlTemplate: urlTemplate, + category: category, + subCategory: subCategory, + format: format, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + $BangTableReferences(db, table, e), + ), + ) + .toList(), + prefetchHooksCallback: ({ + bangFrequencyRefs = false, + bangHistoryRefs = false, + }) { return PrefetchHooks( db: db, explicitlyWatchedTables: [ if (bangFrequencyRefs) db.bangFrequency, - if (bangHistoryRefs) db.bangHistory + if (bangHistoryRefs) db.bangHistory, ], addJoins: null, getPrefetchedDataCallback: (items) async { return [ if (bangFrequencyRefs) - await $_getPrefetchedData( - currentTable: table, - referencedTable: - $BangTableReferences._bangFrequencyRefsTable(db), - managerFromTypedResult: (p0) => - $BangTableReferences(db, table, p0) - .bangFrequencyRefs, - referencedItemsForCurrentItem: - (item, referencedItems) => referencedItems - .where((e) => e.trigger == item.trigger), - typedResults: items), + await $_getPrefetchedData< + Bang, + BangTable, + BangFrequencyData + >( + currentTable: table, + referencedTable: $BangTableReferences + ._bangFrequencyRefsTable(db), + managerFromTypedResult: + (p0) => + $BangTableReferences( + db, + table, + p0, + ).bangFrequencyRefs, + referencedItemsForCurrentItem: + (item, referencedItems) => referencedItems.where( + (e) => e.trigger == item.trigger, + ), + typedResults: items, + ), if (bangHistoryRefs) await $_getPrefetchedData( - currentTable: table, - referencedTable: - $BangTableReferences._bangHistoryRefsTable(db), - managerFromTypedResult: (p0) => - $BangTableReferences(db, table, p0).bangHistoryRefs, - referencedItemsForCurrentItem: - (item, referencedItems) => referencedItems - .where((e) => e.trigger == item.trigger), - typedResults: items) + currentTable: table, + referencedTable: $BangTableReferences + ._bangHistoryRefsTable(db), + managerFromTypedResult: + (p0) => + $BangTableReferences( + db, + table, + p0, + ).bangHistoryRefs, + referencedItemsForCurrentItem: + (item, referencedItems) => referencedItems.where( + (e) => e.trigger == item.trigger, + ), + typedResults: items, + ), ]; }, ); }, - )); + ), + ); } -typedef $BangTableProcessedTableManager = ProcessedTableManager< - _$BangDatabase, - BangTable, - Bang, - $BangTableFilterComposer, - $BangTableOrderingComposer, - $BangTableAnnotationComposer, - $BangTableCreateCompanionBuilder, - $BangTableUpdateCompanionBuilder, - (Bang, $BangTableReferences), - Bang, - PrefetchHooks Function({bool bangFrequencyRefs, bool bangHistoryRefs})>; -typedef $BangSyncCreateCompanionBuilder = BangSyncCompanion Function({ - Value group, - required DateTime lastSync, -}); -typedef $BangSyncUpdateCompanionBuilder = BangSyncCompanion Function({ - Value group, - Value lastSync, -}); +typedef $BangTableProcessedTableManager = + ProcessedTableManager< + _$BangDatabase, + BangTable, + Bang, + $BangTableFilterComposer, + $BangTableOrderingComposer, + $BangTableAnnotationComposer, + $BangTableCreateCompanionBuilder, + $BangTableUpdateCompanionBuilder, + (Bang, $BangTableReferences), + Bang, + PrefetchHooks Function({bool bangFrequencyRefs, bool bangHistoryRefs}) + >; +typedef $BangSyncCreateCompanionBuilder = + BangSyncCompanion Function({ + Value group, + required DateTime lastSync, + }); +typedef $BangSyncUpdateCompanionBuilder = + BangSyncCompanion Function({ + Value group, + Value lastSync, + }); class $BangSyncFilterComposer extends Composer<_$BangDatabase, BangSync> { $BangSyncFilterComposer({ @@ -1614,11 +1891,14 @@ class $BangSyncFilterComposer extends Composer<_$BangDatabase, BangSync> { }); ColumnWithTypeConverterFilters get group => $composableBuilder( - column: $table.group, - builder: (column) => ColumnWithTypeConverterFilters(column)); + column: $table.group, + builder: (column) => ColumnWithTypeConverterFilters(column), + ); ColumnFilters get lastSync => $composableBuilder( - column: $table.lastSync, builder: (column) => ColumnFilters(column)); + column: $table.lastSync, + builder: (column) => ColumnFilters(column), + ); } class $BangSyncOrderingComposer extends Composer<_$BangDatabase, BangSync> { @@ -1630,10 +1910,14 @@ class $BangSyncOrderingComposer extends Composer<_$BangDatabase, BangSync> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get group => $composableBuilder( - column: $table.group, builder: (column) => ColumnOrderings(column)); + column: $table.group, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get lastSync => $composableBuilder( - column: $table.lastSync, builder: (column) => ColumnOrderings(column)); + column: $table.lastSync, + builder: (column) => ColumnOrderings(column), + ); } class $BangSyncAnnotationComposer extends Composer<_$BangDatabase, BangSync> { @@ -1651,92 +1935,109 @@ class $BangSyncAnnotationComposer extends Composer<_$BangDatabase, BangSync> { $composableBuilder(column: $table.lastSync, builder: (column) => column); } -class $BangSyncTableManager extends RootTableManager< - _$BangDatabase, - BangSync, - BangSyncData, - $BangSyncFilterComposer, - $BangSyncOrderingComposer, - $BangSyncAnnotationComposer, - $BangSyncCreateCompanionBuilder, - $BangSyncUpdateCompanionBuilder, - (BangSyncData, BaseReferences<_$BangDatabase, BangSync, BangSyncData>), - BangSyncData, - PrefetchHooks Function()> { +class $BangSyncTableManager + extends + RootTableManager< + _$BangDatabase, + BangSync, + BangSyncData, + $BangSyncFilterComposer, + $BangSyncOrderingComposer, + $BangSyncAnnotationComposer, + $BangSyncCreateCompanionBuilder, + $BangSyncUpdateCompanionBuilder, + ( + BangSyncData, + BaseReferences<_$BangDatabase, BangSync, BangSyncData>, + ), + BangSyncData, + PrefetchHooks Function() + > { $BangSyncTableManager(_$BangDatabase db, BangSync table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $BangSyncFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $BangSyncOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $BangSyncAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value group = const Value.absent(), - Value lastSync = const Value.absent(), - }) => - BangSyncCompanion( - group: group, - lastSync: lastSync, - ), - createCompanionCallback: ({ - Value group = const Value.absent(), - required DateTime lastSync, - }) => - BangSyncCompanion.insert( - group: group, - lastSync: lastSync, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $BangSyncFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $BangSyncOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $BangSyncAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value group = const Value.absent(), + Value lastSync = const Value.absent(), + }) => BangSyncCompanion(group: group, lastSync: lastSync), + createCompanionCallback: + ({ + Value group = const Value.absent(), + required DateTime lastSync, + }) => BangSyncCompanion.insert(group: group, lastSync: lastSync), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $BangSyncProcessedTableManager = ProcessedTableManager< - _$BangDatabase, - BangSync, - BangSyncData, - $BangSyncFilterComposer, - $BangSyncOrderingComposer, - $BangSyncAnnotationComposer, - $BangSyncCreateCompanionBuilder, - $BangSyncUpdateCompanionBuilder, - (BangSyncData, BaseReferences<_$BangDatabase, BangSync, BangSyncData>), - BangSyncData, - PrefetchHooks Function()>; -typedef $BangFrequencyCreateCompanionBuilder = BangFrequencyCompanion Function({ - required String trigger, - required int frequency, - required DateTime lastUsed, - Value rowid, -}); -typedef $BangFrequencyUpdateCompanionBuilder = BangFrequencyCompanion Function({ - Value trigger, - Value frequency, - Value lastUsed, - Value rowid, -}); +typedef $BangSyncProcessedTableManager = + ProcessedTableManager< + _$BangDatabase, + BangSync, + BangSyncData, + $BangSyncFilterComposer, + $BangSyncOrderingComposer, + $BangSyncAnnotationComposer, + $BangSyncCreateCompanionBuilder, + $BangSyncUpdateCompanionBuilder, + (BangSyncData, BaseReferences<_$BangDatabase, BangSync, BangSyncData>), + BangSyncData, + PrefetchHooks Function() + >; +typedef $BangFrequencyCreateCompanionBuilder = + BangFrequencyCompanion Function({ + required String trigger, + required int frequency, + required DateTime lastUsed, + Value rowid, + }); +typedef $BangFrequencyUpdateCompanionBuilder = + BangFrequencyCompanion Function({ + Value trigger, + Value frequency, + Value lastUsed, + Value rowid, + }); final class $BangFrequencyReferences extends BaseReferences<_$BangDatabase, BangFrequency, BangFrequencyData> { $BangFrequencyReferences(super.$_db, super.$_table, super.$_typedResult); static BangTable _triggerTable(_$BangDatabase db) => db.bang.createAlias( - $_aliasNameGenerator(db.bangFrequency.trigger, db.bang.trigger)); + $_aliasNameGenerator(db.bangFrequency.trigger, db.bang.trigger), + ); $BangTableProcessedTableManager get trigger { final $_column = $_itemColumn('trigger')!; - final manager = $BangTableTableManager($_db, $_db.bang) - .filter((f) => f.trigger.sqlEquals($_column)); + final manager = $BangTableTableManager( + $_db, + $_db.bang, + ).filter((f) => f.trigger.sqlEquals($_column)); final item = $_typedResult.readTableOrNull(_triggerTable($_db)); if (item == null) return manager; return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: [item])); + manager.$state.copyWith(prefetchedData: [item]), + ); } } @@ -1750,28 +2051,35 @@ class $BangFrequencyFilterComposer super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get frequency => $composableBuilder( - column: $table.frequency, builder: (column) => ColumnFilters(column)); + column: $table.frequency, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get lastUsed => $composableBuilder( - column: $table.lastUsed, builder: (column) => ColumnFilters(column)); + column: $table.lastUsed, + builder: (column) => ColumnFilters(column), + ); $BangTableFilterComposer get trigger { final $BangTableFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bang, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangTableFilterComposer( - $db: $db, - $table: $db.bang, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bang, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangTableFilterComposer( + $db: $db, + $table: $db.bang, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return composer; } } @@ -1786,28 +2094,35 @@ class $BangFrequencyOrderingComposer super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get frequency => $composableBuilder( - column: $table.frequency, builder: (column) => ColumnOrderings(column)); + column: $table.frequency, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get lastUsed => $composableBuilder( - column: $table.lastUsed, builder: (column) => ColumnOrderings(column)); + column: $table.lastUsed, + builder: (column) => ColumnOrderings(column), + ); $BangTableOrderingComposer get trigger { final $BangTableOrderingComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bang, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangTableOrderingComposer( - $db: $db, - $table: $db.bang, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bang, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangTableOrderingComposer( + $db: $db, + $table: $db.bang, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return composer; } } @@ -1829,100 +2144,120 @@ class $BangFrequencyAnnotationComposer $BangTableAnnotationComposer get trigger { final $BangTableAnnotationComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bang, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangTableAnnotationComposer( - $db: $db, - $table: $db.bang, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bang, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangTableAnnotationComposer( + $db: $db, + $table: $db.bang, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return composer; } } -class $BangFrequencyTableManager extends RootTableManager< - _$BangDatabase, - BangFrequency, - BangFrequencyData, - $BangFrequencyFilterComposer, - $BangFrequencyOrderingComposer, - $BangFrequencyAnnotationComposer, - $BangFrequencyCreateCompanionBuilder, - $BangFrequencyUpdateCompanionBuilder, - (BangFrequencyData, $BangFrequencyReferences), - BangFrequencyData, - PrefetchHooks Function({bool trigger})> { +class $BangFrequencyTableManager + extends + RootTableManager< + _$BangDatabase, + BangFrequency, + BangFrequencyData, + $BangFrequencyFilterComposer, + $BangFrequencyOrderingComposer, + $BangFrequencyAnnotationComposer, + $BangFrequencyCreateCompanionBuilder, + $BangFrequencyUpdateCompanionBuilder, + (BangFrequencyData, $BangFrequencyReferences), + BangFrequencyData, + PrefetchHooks Function({bool trigger}) + > { $BangFrequencyTableManager(_$BangDatabase db, BangFrequency table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $BangFrequencyFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $BangFrequencyOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $BangFrequencyAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value trigger = const Value.absent(), - Value frequency = const Value.absent(), - Value lastUsed = const Value.absent(), - Value rowid = const Value.absent(), - }) => - BangFrequencyCompanion( - trigger: trigger, - frequency: frequency, - lastUsed: lastUsed, - rowid: rowid, - ), - createCompanionCallback: ({ - required String trigger, - required int frequency, - required DateTime lastUsed, - Value rowid = const Value.absent(), - }) => - BangFrequencyCompanion.insert( - trigger: trigger, - frequency: frequency, - lastUsed: lastUsed, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => - (e.readTable(table), $BangFrequencyReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $BangFrequencyFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $BangFrequencyOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $BangFrequencyAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value trigger = const Value.absent(), + Value frequency = const Value.absent(), + Value lastUsed = const Value.absent(), + Value rowid = const Value.absent(), + }) => BangFrequencyCompanion( + trigger: trigger, + frequency: frequency, + lastUsed: lastUsed, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String trigger, + required int frequency, + required DateTime lastUsed, + Value rowid = const Value.absent(), + }) => BangFrequencyCompanion.insert( + trigger: trigger, + frequency: frequency, + lastUsed: lastUsed, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + $BangFrequencyReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: ({trigger = false}) { return PrefetchHooks( db: db, explicitlyWatchedTables: [], addJoins: < - T extends TableManagerState< - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic>>(state) { + T extends TableManagerState< + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic + > + >(state) { if (trigger) { - state = state.withJoin( - currentTable: table, - currentColumn: table.trigger, - referencedTable: $BangFrequencyReferences._triggerTable(db), - referencedColumn: - $BangFrequencyReferences._triggerTable(db).trigger, - ) as T; + state = + state.withJoin( + currentTable: table, + currentColumn: table.trigger, + referencedTable: $BangFrequencyReferences + ._triggerTable(db), + referencedColumn: + $BangFrequencyReferences + ._triggerTable(db) + .trigger, + ) + as T; } return state; @@ -1932,50 +2267,59 @@ class $BangFrequencyTableManager extends RootTableManager< }, ); }, - )); + ), + ); } -typedef $BangFrequencyProcessedTableManager = ProcessedTableManager< - _$BangDatabase, - BangFrequency, - BangFrequencyData, - $BangFrequencyFilterComposer, - $BangFrequencyOrderingComposer, - $BangFrequencyAnnotationComposer, - $BangFrequencyCreateCompanionBuilder, - $BangFrequencyUpdateCompanionBuilder, - (BangFrequencyData, $BangFrequencyReferences), - BangFrequencyData, - PrefetchHooks Function({bool trigger})>; -typedef $BangHistoryCreateCompanionBuilder = BangHistoryCompanion Function({ - required String searchQuery, - required String trigger, - required DateTime searchDate, - Value rowid, -}); -typedef $BangHistoryUpdateCompanionBuilder = BangHistoryCompanion Function({ - Value searchQuery, - Value trigger, - Value searchDate, - Value rowid, -}); +typedef $BangFrequencyProcessedTableManager = + ProcessedTableManager< + _$BangDatabase, + BangFrequency, + BangFrequencyData, + $BangFrequencyFilterComposer, + $BangFrequencyOrderingComposer, + $BangFrequencyAnnotationComposer, + $BangFrequencyCreateCompanionBuilder, + $BangFrequencyUpdateCompanionBuilder, + (BangFrequencyData, $BangFrequencyReferences), + BangFrequencyData, + PrefetchHooks Function({bool trigger}) + >; +typedef $BangHistoryCreateCompanionBuilder = + BangHistoryCompanion Function({ + required String searchQuery, + required String trigger, + required DateTime searchDate, + Value rowid, + }); +typedef $BangHistoryUpdateCompanionBuilder = + BangHistoryCompanion Function({ + Value searchQuery, + Value trigger, + Value searchDate, + Value rowid, + }); final class $BangHistoryReferences extends BaseReferences<_$BangDatabase, BangHistory, BangHistoryData> { $BangHistoryReferences(super.$_db, super.$_table, super.$_typedResult); static BangTable _triggerTable(_$BangDatabase db) => db.bang.createAlias( - $_aliasNameGenerator(db.bangHistory.trigger, db.bang.trigger)); + $_aliasNameGenerator(db.bangHistory.trigger, db.bang.trigger), + ); $BangTableProcessedTableManager get trigger { final $_column = $_itemColumn('trigger')!; - final manager = $BangTableTableManager($_db, $_db.bang) - .filter((f) => f.trigger.sqlEquals($_column)); + final manager = $BangTableTableManager( + $_db, + $_db.bang, + ).filter((f) => f.trigger.sqlEquals($_column)); final item = $_typedResult.readTableOrNull(_triggerTable($_db)); if (item == null) return manager; return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: [item])); + manager.$state.copyWith(prefetchedData: [item]), + ); } } @@ -1988,28 +2332,35 @@ class $BangHistoryFilterComposer extends Composer<_$BangDatabase, BangHistory> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get searchQuery => $composableBuilder( - column: $table.searchQuery, builder: (column) => ColumnFilters(column)); + column: $table.searchQuery, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get searchDate => $composableBuilder( - column: $table.searchDate, builder: (column) => ColumnFilters(column)); + column: $table.searchDate, + builder: (column) => ColumnFilters(column), + ); $BangTableFilterComposer get trigger { final $BangTableFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bang, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangTableFilterComposer( - $db: $db, - $table: $db.bang, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bang, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangTableFilterComposer( + $db: $db, + $table: $db.bang, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return composer; } } @@ -2024,28 +2375,35 @@ class $BangHistoryOrderingComposer super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get searchQuery => $composableBuilder( - column: $table.searchQuery, builder: (column) => ColumnOrderings(column)); + column: $table.searchQuery, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get searchDate => $composableBuilder( - column: $table.searchDate, builder: (column) => ColumnOrderings(column)); + column: $table.searchDate, + builder: (column) => ColumnOrderings(column), + ); $BangTableOrderingComposer get trigger { final $BangTableOrderingComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bang, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangTableOrderingComposer( - $db: $db, - $table: $db.bang, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bang, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangTableOrderingComposer( + $db: $db, + $table: $db.bang, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return composer; } } @@ -2060,107 +2418,131 @@ class $BangHistoryAnnotationComposer super.$removeJoinBuilderFromRootComposer, }); GeneratedColumn get searchQuery => $composableBuilder( - column: $table.searchQuery, builder: (column) => column); + column: $table.searchQuery, + builder: (column) => column, + ); GeneratedColumn get searchDate => $composableBuilder( - column: $table.searchDate, builder: (column) => column); + column: $table.searchDate, + builder: (column) => column, + ); $BangTableAnnotationComposer get trigger { final $BangTableAnnotationComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.trigger, - referencedTable: $db.bang, - getReferencedColumn: (t) => t.trigger, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $BangTableAnnotationComposer( - $db: $db, - $table: $db.bang, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.trigger, + referencedTable: $db.bang, + getReferencedColumn: (t) => t.trigger, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $BangTableAnnotationComposer( + $db: $db, + $table: $db.bang, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return composer; } } -class $BangHistoryTableManager extends RootTableManager< - _$BangDatabase, - BangHistory, - BangHistoryData, - $BangHistoryFilterComposer, - $BangHistoryOrderingComposer, - $BangHistoryAnnotationComposer, - $BangHistoryCreateCompanionBuilder, - $BangHistoryUpdateCompanionBuilder, - (BangHistoryData, $BangHistoryReferences), - BangHistoryData, - PrefetchHooks Function({bool trigger})> { +class $BangHistoryTableManager + extends + RootTableManager< + _$BangDatabase, + BangHistory, + BangHistoryData, + $BangHistoryFilterComposer, + $BangHistoryOrderingComposer, + $BangHistoryAnnotationComposer, + $BangHistoryCreateCompanionBuilder, + $BangHistoryUpdateCompanionBuilder, + (BangHistoryData, $BangHistoryReferences), + BangHistoryData, + PrefetchHooks Function({bool trigger}) + > { $BangHistoryTableManager(_$BangDatabase db, BangHistory table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $BangHistoryFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $BangHistoryOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $BangHistoryAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value searchQuery = const Value.absent(), - Value trigger = const Value.absent(), - Value searchDate = const Value.absent(), - Value rowid = const Value.absent(), - }) => - BangHistoryCompanion( - searchQuery: searchQuery, - trigger: trigger, - searchDate: searchDate, - rowid: rowid, - ), - createCompanionCallback: ({ - required String searchQuery, - required String trigger, - required DateTime searchDate, - Value rowid = const Value.absent(), - }) => - BangHistoryCompanion.insert( - searchQuery: searchQuery, - trigger: trigger, - searchDate: searchDate, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => - (e.readTable(table), $BangHistoryReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $BangHistoryFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $BangHistoryOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $BangHistoryAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value searchQuery = const Value.absent(), + Value trigger = const Value.absent(), + Value searchDate = const Value.absent(), + Value rowid = const Value.absent(), + }) => BangHistoryCompanion( + searchQuery: searchQuery, + trigger: trigger, + searchDate: searchDate, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String searchQuery, + required String trigger, + required DateTime searchDate, + Value rowid = const Value.absent(), + }) => BangHistoryCompanion.insert( + searchQuery: searchQuery, + trigger: trigger, + searchDate: searchDate, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + $BangHistoryReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: ({trigger = false}) { return PrefetchHooks( db: db, explicitlyWatchedTables: [], addJoins: < - T extends TableManagerState< - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic>>(state) { + T extends TableManagerState< + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic + > + >(state) { if (trigger) { - state = state.withJoin( - currentTable: table, - currentColumn: table.trigger, - referencedTable: $BangHistoryReferences._triggerTable(db), - referencedColumn: - $BangHistoryReferences._triggerTable(db).trigger, - ) as T; + state = + state.withJoin( + currentTable: table, + currentColumn: table.trigger, + referencedTable: $BangHistoryReferences + ._triggerTable(db), + referencedColumn: + $BangHistoryReferences + ._triggerTable(db) + .trigger, + ) + as T; } return state; @@ -2170,31 +2552,36 @@ class $BangHistoryTableManager extends RootTableManager< }, ); }, - )); + ), + ); } -typedef $BangHistoryProcessedTableManager = ProcessedTableManager< - _$BangDatabase, - BangHistory, - BangHistoryData, - $BangHistoryFilterComposer, - $BangHistoryOrderingComposer, - $BangHistoryAnnotationComposer, - $BangHistoryCreateCompanionBuilder, - $BangHistoryUpdateCompanionBuilder, - (BangHistoryData, $BangHistoryReferences), - BangHistoryData, - PrefetchHooks Function({bool trigger})>; -typedef $BangFtsCreateCompanionBuilder = BangFtsCompanion Function({ - required String trigger, - required String websiteName, - Value rowid, -}); -typedef $BangFtsUpdateCompanionBuilder = BangFtsCompanion Function({ - Value trigger, - Value websiteName, - Value rowid, -}); +typedef $BangHistoryProcessedTableManager = + ProcessedTableManager< + _$BangDatabase, + BangHistory, + BangHistoryData, + $BangHistoryFilterComposer, + $BangHistoryOrderingComposer, + $BangHistoryAnnotationComposer, + $BangHistoryCreateCompanionBuilder, + $BangHistoryUpdateCompanionBuilder, + (BangHistoryData, $BangHistoryReferences), + BangHistoryData, + PrefetchHooks Function({bool trigger}) + >; +typedef $BangFtsCreateCompanionBuilder = + BangFtsCompanion Function({ + required String trigger, + required String websiteName, + Value rowid, + }); +typedef $BangFtsUpdateCompanionBuilder = + BangFtsCompanion Function({ + Value trigger, + Value websiteName, + Value rowid, + }); class $BangFtsFilterComposer extends Composer<_$BangDatabase, BangFts> { $BangFtsFilterComposer({ @@ -2205,10 +2592,14 @@ class $BangFtsFilterComposer extends Composer<_$BangDatabase, BangFts> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get trigger => $composableBuilder( - column: $table.trigger, builder: (column) => ColumnFilters(column)); + column: $table.trigger, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get websiteName => $composableBuilder( - column: $table.websiteName, builder: (column) => ColumnFilters(column)); + column: $table.websiteName, + builder: (column) => ColumnFilters(column), + ); } class $BangFtsOrderingComposer extends Composer<_$BangDatabase, BangFts> { @@ -2220,10 +2611,14 @@ class $BangFtsOrderingComposer extends Composer<_$BangDatabase, BangFts> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get trigger => $composableBuilder( - column: $table.trigger, builder: (column) => ColumnOrderings(column)); + column: $table.trigger, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get websiteName => $composableBuilder( - column: $table.websiteName, builder: (column) => ColumnOrderings(column)); + column: $table.websiteName, + builder: (column) => ColumnOrderings(column), + ); } class $BangFtsAnnotationComposer extends Composer<_$BangDatabase, BangFts> { @@ -2238,70 +2633,86 @@ class $BangFtsAnnotationComposer extends Composer<_$BangDatabase, BangFts> { $composableBuilder(column: $table.trigger, builder: (column) => column); GeneratedColumn get websiteName => $composableBuilder( - column: $table.websiteName, builder: (column) => column); + column: $table.websiteName, + builder: (column) => column, + ); } -class $BangFtsTableManager extends RootTableManager< - _$BangDatabase, - BangFts, - BangFt, - $BangFtsFilterComposer, - $BangFtsOrderingComposer, - $BangFtsAnnotationComposer, - $BangFtsCreateCompanionBuilder, - $BangFtsUpdateCompanionBuilder, - (BangFt, BaseReferences<_$BangDatabase, BangFts, BangFt>), - BangFt, - PrefetchHooks Function()> { +class $BangFtsTableManager + extends + RootTableManager< + _$BangDatabase, + BangFts, + BangFt, + $BangFtsFilterComposer, + $BangFtsOrderingComposer, + $BangFtsAnnotationComposer, + $BangFtsCreateCompanionBuilder, + $BangFtsUpdateCompanionBuilder, + (BangFt, BaseReferences<_$BangDatabase, BangFts, BangFt>), + BangFt, + PrefetchHooks Function() + > { $BangFtsTableManager(_$BangDatabase db, BangFts table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $BangFtsFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $BangFtsOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $BangFtsAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value trigger = const Value.absent(), - Value websiteName = const Value.absent(), - Value rowid = const Value.absent(), - }) => - BangFtsCompanion( - trigger: trigger, - websiteName: websiteName, - rowid: rowid, - ), - createCompanionCallback: ({ - required String trigger, - required String websiteName, - Value rowid = const Value.absent(), - }) => - BangFtsCompanion.insert( - trigger: trigger, - websiteName: websiteName, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $BangFtsFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $BangFtsOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $BangFtsAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value trigger = const Value.absent(), + Value websiteName = const Value.absent(), + Value rowid = const Value.absent(), + }) => BangFtsCompanion( + trigger: trigger, + websiteName: websiteName, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String trigger, + required String websiteName, + Value rowid = const Value.absent(), + }) => BangFtsCompanion.insert( + trigger: trigger, + websiteName: websiteName, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $BangFtsProcessedTableManager = ProcessedTableManager< - _$BangDatabase, - BangFts, - BangFt, - $BangFtsFilterComposer, - $BangFtsOrderingComposer, - $BangFtsAnnotationComposer, - $BangFtsCreateCompanionBuilder, - $BangFtsUpdateCompanionBuilder, - (BangFt, BaseReferences<_$BangDatabase, BangFts, BangFt>), - BangFt, - PrefetchHooks Function()>; +typedef $BangFtsProcessedTableManager = + ProcessedTableManager< + _$BangDatabase, + BangFts, + BangFt, + $BangFtsFilterComposer, + $BangFtsOrderingComposer, + $BangFtsAnnotationComposer, + $BangFtsCreateCompanionBuilder, + $BangFtsUpdateCompanionBuilder, + (BangFt, BaseReferences<_$BangDatabase, BangFts, BangFt>), + BangFt, + PrefetchHooks Function() + >; class $BangDatabaseManager { final _$BangDatabase _db; diff --git a/app/lib/features/bangs/data/models/bang.dart b/app/lib/features/bangs/data/models/bang.dart index a7a3cc25..7fc7ac86 100644 --- a/app/lib/features/bangs/data/models/bang.dart +++ b/app/lib/features/bangs/data/models/bang.dart @@ -8,9 +8,7 @@ import 'package:lensai/features/bangs/data/database/database.dart' part 'bang.g.dart'; enum BangGroup { - general( - 'https://raw.githubusercontent.com/FaFre/bangs/main/data/bangs.json', - ), + general('https://raw.githubusercontent.com/FaFre/bangs/main/data/bangs.json'), assistant( 'https://raw.githubusercontent.com/FaFre/bangs/main/data/assistant_bangs.json', ), @@ -90,16 +88,19 @@ class Bang with FastEquatable implements Insertable { } Uri getUrl(String? query) { - final url = (query != null) - ? urlTemplate.replaceAll(_templateQueryPlaceholder, formatQuery(query)) - : urlTemplate; + final url = + (query != null) + ? urlTemplate.replaceAll( + _templateQueryPlaceholder, + formatQuery(query), + ) + : urlTemplate; var template = Uri.parse(url); if (!template.hasScheme || template.origin.isEmpty) { - template = Uri.https(domain).replace( - path: template.path, - query: template.query, - ); + template = Uri.https( + domain, + ).replace(path: template.path, query: template.query); } return template; @@ -133,15 +134,15 @@ class Bang with FastEquatable implements Insertable { @override List get hashParameters => [ - group, - websiteName, - domain, - trigger, - urlTemplate, - category, - subCategory, - format, - ]; + group, + websiteName, + domain, + trigger, + urlTemplate, + category, + subCategory, + format, + ]; @override Map> toColumns(bool nullToAbsent) { diff --git a/app/lib/features/bangs/data/models/bang.g.dart b/app/lib/features/bangs/data/models/bang.g.dart index 228b0546..3b8c0e7e 100644 --- a/app/lib/features/bangs/data/models/bang.g.dart +++ b/app/lib/features/bangs/data/models/bang.g.dart @@ -72,7 +72,6 @@ class _$BangCWProxyImpl implements _$BangCWProxy { Bang format(Set? format) => this(format: format); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `Bang(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -90,38 +89,46 @@ class _$BangCWProxyImpl implements _$BangCWProxy { Object? format = const $CopyWithPlaceholder(), }) { return Bang( - websiteName: websiteName == const $CopyWithPlaceholder() - ? _value.websiteName - // ignore: cast_nullable_to_non_nullable - : websiteName as String, - domain: domain == const $CopyWithPlaceholder() - ? _value.domain - // ignore: cast_nullable_to_non_nullable - : domain as String, - trigger: trigger == const $CopyWithPlaceholder() - ? _value.trigger - // ignore: cast_nullable_to_non_nullable - : trigger as String, - urlTemplate: urlTemplate == const $CopyWithPlaceholder() - ? _value.urlTemplate - // ignore: cast_nullable_to_non_nullable - : urlTemplate as String, - group: group == const $CopyWithPlaceholder() - ? _value.group - // ignore: cast_nullable_to_non_nullable - : group as BangGroup?, - category: category == const $CopyWithPlaceholder() - ? _value.category - // ignore: cast_nullable_to_non_nullable - : category as String?, - subCategory: subCategory == const $CopyWithPlaceholder() - ? _value.subCategory - // ignore: cast_nullable_to_non_nullable - : subCategory as String?, - format: format == const $CopyWithPlaceholder() - ? _value.format - // ignore: cast_nullable_to_non_nullable - : format as Set?, + websiteName: + websiteName == const $CopyWithPlaceholder() + ? _value.websiteName + // ignore: cast_nullable_to_non_nullable + : websiteName as String, + domain: + domain == const $CopyWithPlaceholder() + ? _value.domain + // ignore: cast_nullable_to_non_nullable + : domain as String, + trigger: + trigger == const $CopyWithPlaceholder() + ? _value.trigger + // ignore: cast_nullable_to_non_nullable + : trigger as String, + urlTemplate: + urlTemplate == const $CopyWithPlaceholder() + ? _value.urlTemplate + // ignore: cast_nullable_to_non_nullable + : urlTemplate as String, + group: + group == const $CopyWithPlaceholder() + ? _value.group + // ignore: cast_nullable_to_non_nullable + : group as BangGroup?, + category: + category == const $CopyWithPlaceholder() + ? _value.category + // ignore: cast_nullable_to_non_nullable + : category as String?, + subCategory: + subCategory == const $CopyWithPlaceholder() + ? _value.subCategory + // ignore: cast_nullable_to_non_nullable + : subCategory as String?, + format: + format == const $CopyWithPlaceholder() + ? _value.format + // ignore: cast_nullable_to_non_nullable + : format as Set?, ); } } @@ -137,26 +144,27 @@ extension $BangCopyWith on Bang { // ************************************************************************** Bang _$BangFromJson(Map json) => Bang( - websiteName: json['s'] as String, - domain: json['d'] as String, - trigger: json['t'] as String, - urlTemplate: json['u'] as String, - category: json['c'] as String?, - subCategory: json['sc'] as String?, - format: (json['fmt'] as List?) + websiteName: json['s'] as String, + domain: json['d'] as String, + trigger: json['t'] as String, + urlTemplate: json['u'] as String, + category: json['c'] as String?, + subCategory: json['sc'] as String?, + format: + (json['fmt'] as List?) ?.map((e) => $enumDecode(_$BangFormatEnumMap, e)) .toSet(), - ); +); Map _$BangToJson(Bang instance) => { - 's': instance.websiteName, - 'd': instance.domain, - 't': instance.trigger, - 'u': instance.urlTemplate, - 'c': instance.category, - 'sc': instance.subCategory, - 'fmt': instance.format?.map((e) => _$BangFormatEnumMap[e]!).toList(), - }; + 's': instance.websiteName, + 'd': instance.domain, + 't': instance.trigger, + 'u': instance.urlTemplate, + 'c': instance.category, + 'sc': instance.subCategory, + 'fmt': instance.format?.map((e) => _$BangFormatEnumMap[e]!).toList(), +}; const _$BangFormatEnumMap = { BangFormat.openBasePath: 'open_base_path', diff --git a/app/lib/features/bangs/data/models/bang_data.dart b/app/lib/features/bangs/data/models/bang_data.dart index 6ae12e96..6bc4a93a 100644 --- a/app/lib/features/bangs/data/models/bang_data.dart +++ b/app/lib/features/bangs/data/models/bang_data.dart @@ -29,9 +29,9 @@ class BangData extends Bang { @override List get hashParameters => [ - ...super.hashParameters, - frequency, - lastUsed, - icon, - ]; + ...super.hashParameters, + frequency, + lastUsed, + icon, + ]; } diff --git a/app/lib/features/bangs/data/models/bang_data.g.dart b/app/lib/features/bangs/data/models/bang_data.g.dart index 1f5997ff..cdd80e84 100644 --- a/app/lib/features/bangs/data/models/bang_data.g.dart +++ b/app/lib/features/bangs/data/models/bang_data.g.dart @@ -84,7 +84,6 @@ class _$BangDataCWProxyImpl implements _$BangDataCWProxy { BangData icon(BrowserIcon? icon) => this(icon: icon); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `BangData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -104,46 +103,56 @@ class _$BangDataCWProxyImpl implements _$BangDataCWProxy { Object? icon = const $CopyWithPlaceholder(), }) { return BangData( - websiteName: websiteName == const $CopyWithPlaceholder() - ? _value.websiteName - // ignore: cast_nullable_to_non_nullable - : websiteName as String, - domain: domain == const $CopyWithPlaceholder() - ? _value.domain - // ignore: cast_nullable_to_non_nullable - : domain as String, - trigger: trigger == const $CopyWithPlaceholder() - ? _value.trigger - // ignore: cast_nullable_to_non_nullable - : trigger as String, - urlTemplate: urlTemplate == const $CopyWithPlaceholder() - ? _value.urlTemplate - // ignore: cast_nullable_to_non_nullable - : urlTemplate as String, - category: category == const $CopyWithPlaceholder() - ? _value.category - // ignore: cast_nullable_to_non_nullable - : category as String?, - subCategory: subCategory == const $CopyWithPlaceholder() - ? _value.subCategory - // ignore: cast_nullable_to_non_nullable - : subCategory as String?, - format: format == const $CopyWithPlaceholder() - ? _value.format - // ignore: cast_nullable_to_non_nullable - : format as Set?, - frequency: frequency == const $CopyWithPlaceholder() - ? _value.frequency - // ignore: cast_nullable_to_non_nullable - : frequency as int?, - lastUsed: lastUsed == const $CopyWithPlaceholder() - ? _value.lastUsed - // ignore: cast_nullable_to_non_nullable - : lastUsed as DateTime?, - icon: icon == const $CopyWithPlaceholder() - ? _value.icon - // ignore: cast_nullable_to_non_nullable - : icon as BrowserIcon?, + websiteName: + websiteName == const $CopyWithPlaceholder() + ? _value.websiteName + // ignore: cast_nullable_to_non_nullable + : websiteName as String, + domain: + domain == const $CopyWithPlaceholder() + ? _value.domain + // ignore: cast_nullable_to_non_nullable + : domain as String, + trigger: + trigger == const $CopyWithPlaceholder() + ? _value.trigger + // ignore: cast_nullable_to_non_nullable + : trigger as String, + urlTemplate: + urlTemplate == const $CopyWithPlaceholder() + ? _value.urlTemplate + // ignore: cast_nullable_to_non_nullable + : urlTemplate as String, + category: + category == const $CopyWithPlaceholder() + ? _value.category + // ignore: cast_nullable_to_non_nullable + : category as String?, + subCategory: + subCategory == const $CopyWithPlaceholder() + ? _value.subCategory + // ignore: cast_nullable_to_non_nullable + : subCategory as String?, + format: + format == const $CopyWithPlaceholder() + ? _value.format + // ignore: cast_nullable_to_non_nullable + : format as Set?, + frequency: + frequency == const $CopyWithPlaceholder() + ? _value.frequency + // ignore: cast_nullable_to_non_nullable + : frequency as int?, + lastUsed: + lastUsed == const $CopyWithPlaceholder() + ? _value.lastUsed + // ignore: cast_nullable_to_non_nullable + : lastUsed as DateTime?, + icon: + icon == const $CopyWithPlaceholder() + ? _value.icon + // ignore: cast_nullable_to_non_nullable + : icon as BrowserIcon?, ); } } diff --git a/app/lib/features/bangs/data/models/search_history_entry.dart b/app/lib/features/bangs/data/models/search_history_entry.dart index 0e680b8c..c6bafd78 100644 --- a/app/lib/features/bangs/data/models/search_history_entry.dart +++ b/app/lib/features/bangs/data/models/search_history_entry.dart @@ -15,9 +15,5 @@ class SearchHistoryEntry with FastEquatable { bool get cacheHash => true; @override - List get hashParameters => [ - searchQuery, - trigger, - searchDate, - ]; + List get hashParameters => [searchQuery, trigger, searchDate]; } diff --git a/app/lib/features/bangs/data/services/source.dart b/app/lib/features/bangs/data/services/source.dart index 2c69dc54..8c9bb609 100644 --- a/app/lib/features/bangs/data/services/source.dart +++ b/app/lib/features/bangs/data/services/source.dart @@ -19,25 +19,22 @@ class BangSourceService extends _$BangSourceService { } Future>> getBangs(Uri url, BangGroup? group) async { - return Result.fromAsync( - () async { - final response = await _client.get(url); - return await compute( - (args) => jsonDecode(utf8.decode(args[0])) as List, - [response.bodyBytes], - ).then( - (json) => json.map((e) { - var bang = Bang.fromJson(e as Map); + return Result.fromAsync(() async { + final response = await _client.get(url); + return await compute((args) => jsonDecode(utf8.decode(args[0])) as List, [ + response.bodyBytes, + ]).then( + (json) => + json.map((e) { + var bang = Bang.fromJson(e as Map); - if (group != null) { - bang = bang.copyWith.group(group); - } + if (group != null) { + bang = bang.copyWith.group(group); + } - return bang; - }).toList(), - ); - }, - exceptionHandler: handleHttpError, - ); + return bang; + }).toList(), + ); + }, exceptionHandler: handleHttpError); } } diff --git a/app/lib/features/bangs/data/services/source.g.dart b/app/lib/features/bangs/data/services/source.g.dart index 2e60ab3e..6c203ae0 100644 --- a/app/lib/features/bangs/data/services/source.g.dart +++ b/app/lib/features/bangs/data/services/source.g.dart @@ -12,14 +12,15 @@ String _$bangSourceServiceHash() => r'2f734d563fa20de306a72013526ef1f72f910fe1'; @ProviderFor(BangSourceService) final bangSourceServiceProvider = AutoDisposeNotifierProvider.internal( - BangSourceService.new, - name: r'bangSourceServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$bangSourceServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + BangSourceService.new, + name: r'bangSourceServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bangSourceServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$BangSourceService = AutoDisposeNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/bangs/domain/providers/bangs.dart b/app/lib/features/bangs/domain/providers/bangs.dart index 186ad71d..79bb97ab 100644 --- a/app/lib/features/bangs/domain/providers/bangs.dart +++ b/app/lib/features/bangs/domain/providers/bangs.dart @@ -34,7 +34,8 @@ Stream> bangDataList( String? domain, ({String category, String? subCategory})? categoryFilter, bool? orderMostFrequentFirst, - })? filter, + })? + filter, }) { final repository = ref.watch(bangDataRepositoryProvider.notifier); return repository.watchBangs( @@ -58,19 +59,13 @@ Stream> searchHistory(Ref ref) { } @Riverpod() -Stream lastSyncOfGroup( - Ref ref, - BangGroup group, -) { +Stream lastSyncOfGroup(Ref ref, BangGroup group) { final repository = ref.watch(bangSyncRepositoryProvider.notifier); return repository.watchLastSyncOfGroup(group); } @Riverpod() -Stream bangCountOfGroup( - Ref ref, - BangGroup group, -) { +Stream bangCountOfGroup(Ref ref, BangGroup group) { final repository = ref.watch(bangDataRepositoryProvider.notifier); return repository.watchBangCount(group); } diff --git a/app/lib/features/bangs/domain/providers/bangs.g.dart b/app/lib/features/bangs/domain/providers/bangs.g.dart index ca6f5ac5..0c6fa5ca 100644 --- a/app/lib/features/bangs/domain/providers/bangs.g.dart +++ b/app/lib/features/bangs/domain/providers/bangs.g.dart @@ -39,21 +39,13 @@ class BangDataFamily extends Family> { const BangDataFamily(); /// See also [bangData]. - BangDataProvider call( - String? trigger, - ) { - return BangDataProvider( - trigger, - ); + BangDataProvider call(String? trigger) { + return BangDataProvider(trigger); } @override - BangDataProvider getProviderOverride( - covariant BangDataProvider provider, - ) { - return call( - provider.trigger, - ); + BangDataProvider getProviderOverride(covariant BangDataProvider provider) { + return call(provider.trigger); } static const Iterable? _dependencies = null; @@ -74,23 +66,19 @@ class BangDataFamily extends Family> { /// See also [bangData]. class BangDataProvider extends AutoDisposeStreamProvider { /// See also [bangData]. - BangDataProvider( - String? trigger, - ) : this._internal( - (ref) => bangData( - ref as BangDataRef, - trigger, - ), - from: bangDataProvider, - name: r'bangDataProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$bangDataHash, - dependencies: BangDataFamily._dependencies, - allTransitiveDependencies: BangDataFamily._allTransitiveDependencies, - trigger: trigger, - ); + BangDataProvider(String? trigger) + : this._internal( + (ref) => bangData(ref as BangDataRef, trigger), + from: bangDataProvider, + name: r'bangDataProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bangDataHash, + dependencies: BangDataFamily._dependencies, + allTransitiveDependencies: BangDataFamily._allTransitiveDependencies, + trigger: trigger, + ); BangDataProvider._internal( super._createNotifier, { @@ -149,7 +137,8 @@ mixin BangDataRef on AutoDisposeStreamProviderRef { } class _BangDataProviderElement - extends AutoDisposeStreamProviderElement with BangDataRef { + extends AutoDisposeStreamProviderElement + with BangDataRef { _BangDataProviderElement(super.provider); @override @@ -164,9 +153,10 @@ String _$defaultSearchBangDataHash() => final defaultSearchBangDataProvider = StreamProvider.internal( defaultSearchBangData, name: r'defaultSearchBangDataProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$defaultSearchBangDataHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$defaultSearchBangDataHash, dependencies: null, allTransitiveDependencies: null, ); @@ -180,19 +170,20 @@ String _$bangCategoriesHash() => r'947fcfd2dffcc7f585c6ed7379d319f4fe72293a'; @ProviderFor(bangCategories) final bangCategoriesProvider = AutoDisposeStreamProvider>>.internal( - bangCategories, - name: r'bangCategoriesProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$bangCategoriesHash, - dependencies: null, - allTransitiveDependencies: null, -); + bangCategories, + name: r'bangCategoriesProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bangCategoriesHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element -typedef BangCategoriesRef - = AutoDisposeStreamProviderRef>>; +typedef BangCategoriesRef = + AutoDisposeStreamProviderRef>>; String _$bangDataListHash() => r'cd034fdf046b156ac452edd0857ac054ab477917'; /// See also [bangDataList]. @@ -210,21 +201,18 @@ class BangDataListFamily extends Family>> { ({String category, String? subCategory})? categoryFilter, String? domain, Iterable? groups, - bool? orderMostFrequentFirst - })? filter, + bool? orderMostFrequentFirst, + })? + filter, }) { - return BangDataListProvider( - filter: filter, - ); + return BangDataListProvider(filter: filter); } @override BangDataListProvider getProviderOverride( covariant BangDataListProvider provider, ) { - return call( - filter: provider.filter, - ); + return call(filter: provider.filter); } static const Iterable? _dependencies = null; @@ -250,24 +238,22 @@ class BangDataListProvider extends AutoDisposeStreamProvider> { ({String category, String? subCategory})? categoryFilter, String? domain, Iterable? groups, - bool? orderMostFrequentFirst - })? filter, + bool? orderMostFrequentFirst, + })? + filter, }) : this._internal( - (ref) => bangDataList( - ref as BangDataListRef, - filter: filter, - ), - from: bangDataListProvider, - name: r'bangDataListProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$bangDataListHash, - dependencies: BangDataListFamily._dependencies, - allTransitiveDependencies: - BangDataListFamily._allTransitiveDependencies, - filter: filter, - ); + (ref) => bangDataList(ref as BangDataListRef, filter: filter), + from: bangDataListProvider, + name: r'bangDataListProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bangDataListHash, + dependencies: BangDataListFamily._dependencies, + allTransitiveDependencies: + BangDataListFamily._allTransitiveDependencies, + filter: filter, + ); BangDataListProvider._internal( super._createNotifier, { @@ -283,8 +269,9 @@ class BangDataListProvider extends AutoDisposeStreamProvider> { ({String category, String? subCategory})? categoryFilter, String? domain, Iterable? groups, - bool? orderMostFrequentFirst - })? filter; + bool? orderMostFrequentFirst, + })? + filter; @override Override overrideWith( @@ -331,8 +318,9 @@ mixin BangDataListRef on AutoDisposeStreamProviderRef> { ({String category, String? subCategory})? categoryFilter, String? domain, Iterable? groups, - bool? orderMostFrequentFirst - })? get filter; + bool? orderMostFrequentFirst, + })? + get filter; } class _BangDataListProviderElement @@ -345,8 +333,9 @@ class _BangDataListProviderElement ({String category, String? subCategory})? categoryFilter, String? domain, Iterable? groups, - bool? orderMostFrequentFirst - })? get filter => (origin as BangDataListProvider).filter; + bool? orderMostFrequentFirst, + })? + get filter => (origin as BangDataListProvider).filter; } String _$frequentBangDataListHash() => @@ -356,14 +345,15 @@ String _$frequentBangDataListHash() => @ProviderFor(frequentBangDataList) final frequentBangDataListProvider = AutoDisposeStreamProvider>.internal( - frequentBangDataList, - name: r'frequentBangDataListProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$frequentBangDataListHash, - dependencies: null, - allTransitiveDependencies: null, -); + frequentBangDataList, + name: r'frequentBangDataListProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$frequentBangDataListHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element @@ -374,19 +364,20 @@ String _$searchHistoryHash() => r'7b97798729643de8e44fd8024cdc02f35124b08b'; @ProviderFor(searchHistory) final searchHistoryProvider = AutoDisposeStreamProvider>.internal( - searchHistory, - name: r'searchHistoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$searchHistoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + searchHistory, + name: r'searchHistoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$searchHistoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element -typedef SearchHistoryRef - = AutoDisposeStreamProviderRef>; +typedef SearchHistoryRef = + AutoDisposeStreamProviderRef>; String _$lastSyncOfGroupHash() => r'23d07f3132ba9bb35a31f74e3a69698d31d4c569'; /// See also [lastSyncOfGroup]. @@ -399,21 +390,15 @@ class LastSyncOfGroupFamily extends Family> { const LastSyncOfGroupFamily(); /// See also [lastSyncOfGroup]. - LastSyncOfGroupProvider call( - BangGroup group, - ) { - return LastSyncOfGroupProvider( - group, - ); + LastSyncOfGroupProvider call(BangGroup group) { + return LastSyncOfGroupProvider(group); } @override LastSyncOfGroupProvider getProviderOverride( covariant LastSyncOfGroupProvider provider, ) { - return call( - provider.group, - ); + return call(provider.group); } static const Iterable? _dependencies = null; @@ -434,24 +419,20 @@ class LastSyncOfGroupFamily extends Family> { /// See also [lastSyncOfGroup]. class LastSyncOfGroupProvider extends AutoDisposeStreamProvider { /// See also [lastSyncOfGroup]. - LastSyncOfGroupProvider( - BangGroup group, - ) : this._internal( - (ref) => lastSyncOfGroup( - ref as LastSyncOfGroupRef, - group, - ), - from: lastSyncOfGroupProvider, - name: r'lastSyncOfGroupProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$lastSyncOfGroupHash, - dependencies: LastSyncOfGroupFamily._dependencies, - allTransitiveDependencies: - LastSyncOfGroupFamily._allTransitiveDependencies, - group: group, - ); + LastSyncOfGroupProvider(BangGroup group) + : this._internal( + (ref) => lastSyncOfGroup(ref as LastSyncOfGroupRef, group), + from: lastSyncOfGroupProvider, + name: r'lastSyncOfGroupProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$lastSyncOfGroupHash, + dependencies: LastSyncOfGroupFamily._dependencies, + allTransitiveDependencies: + LastSyncOfGroupFamily._allTransitiveDependencies, + group: group, + ); LastSyncOfGroupProvider._internal( super._createNotifier, { @@ -530,21 +511,15 @@ class BangCountOfGroupFamily extends Family> { const BangCountOfGroupFamily(); /// See also [bangCountOfGroup]. - BangCountOfGroupProvider call( - BangGroup group, - ) { - return BangCountOfGroupProvider( - group, - ); + BangCountOfGroupProvider call(BangGroup group) { + return BangCountOfGroupProvider(group); } @override BangCountOfGroupProvider getProviderOverride( covariant BangCountOfGroupProvider provider, ) { - return call( - provider.group, - ); + return call(provider.group); } static const Iterable? _dependencies = null; @@ -565,24 +540,20 @@ class BangCountOfGroupFamily extends Family> { /// See also [bangCountOfGroup]. class BangCountOfGroupProvider extends AutoDisposeStreamProvider { /// See also [bangCountOfGroup]. - BangCountOfGroupProvider( - BangGroup group, - ) : this._internal( - (ref) => bangCountOfGroup( - ref as BangCountOfGroupRef, - group, - ), - from: bangCountOfGroupProvider, - name: r'bangCountOfGroupProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$bangCountOfGroupHash, - dependencies: BangCountOfGroupFamily._dependencies, - allTransitiveDependencies: - BangCountOfGroupFamily._allTransitiveDependencies, - group: group, - ); + BangCountOfGroupProvider(BangGroup group) + : this._internal( + (ref) => bangCountOfGroup(ref as BangCountOfGroupRef, group), + from: bangCountOfGroupProvider, + name: r'bangCountOfGroupProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bangCountOfGroupHash, + dependencies: BangCountOfGroupFamily._dependencies, + allTransitiveDependencies: + BangCountOfGroupFamily._allTransitiveDependencies, + group: group, + ); BangCountOfGroupProvider._internal( super._createNotifier, { @@ -641,11 +612,13 @@ mixin BangCountOfGroupRef on AutoDisposeStreamProviderRef { } class _BangCountOfGroupProviderElement - extends AutoDisposeStreamProviderElement with BangCountOfGroupRef { + extends AutoDisposeStreamProviderElement + with BangCountOfGroupRef { _BangCountOfGroupProviderElement(super.provider); @override BangGroup get group => (origin as BangCountOfGroupProvider).group; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/bangs/domain/providers/search.g.dart b/app/lib/features/bangs/domain/providers/search.g.dart index f8712133..395477f6 100644 --- a/app/lib/features/bangs/domain/providers/search.g.dart +++ b/app/lib/features/bangs/domain/providers/search.g.dart @@ -39,24 +39,15 @@ class TriggerBangSearchFamily extends Family> { const TriggerBangSearchFamily(); /// See also [triggerBangSearch]. - TriggerBangSearchProvider call( - BangData bang, - String searchQuery, - ) { - return TriggerBangSearchProvider( - bang, - searchQuery, - ); + TriggerBangSearchProvider call(BangData bang, String searchQuery) { + return TriggerBangSearchProvider(bang, searchQuery); } @override TriggerBangSearchProvider getProviderOverride( covariant TriggerBangSearchProvider provider, ) { - return call( - provider.bang, - provider.searchQuery, - ); + return call(provider.bang, provider.searchQuery); } static const Iterable? _dependencies = null; @@ -77,27 +68,22 @@ class TriggerBangSearchFamily extends Family> { /// See also [triggerBangSearch]. class TriggerBangSearchProvider extends AutoDisposeFutureProvider { /// See also [triggerBangSearch]. - TriggerBangSearchProvider( - BangData bang, - String searchQuery, - ) : this._internal( - (ref) => triggerBangSearch( - ref as TriggerBangSearchRef, - bang, - searchQuery, - ), - from: triggerBangSearchProvider, - name: r'triggerBangSearchProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$triggerBangSearchHash, - dependencies: TriggerBangSearchFamily._dependencies, - allTransitiveDependencies: - TriggerBangSearchFamily._allTransitiveDependencies, - bang: bang, - searchQuery: searchQuery, - ); + TriggerBangSearchProvider(BangData bang, String searchQuery) + : this._internal( + (ref) => + triggerBangSearch(ref as TriggerBangSearchRef, bang, searchQuery), + from: triggerBangSearchProvider, + name: r'triggerBangSearchProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$triggerBangSearchHash, + dependencies: TriggerBangSearchFamily._dependencies, + allTransitiveDependencies: + TriggerBangSearchFamily._allTransitiveDependencies, + bang: bang, + searchQuery: searchQuery, + ); TriggerBangSearchProvider._internal( super._createNotifier, { @@ -165,7 +151,8 @@ mixin TriggerBangSearchRef on AutoDisposeFutureProviderRef { } class _TriggerBangSearchProviderElement - extends AutoDisposeFutureProviderElement with TriggerBangSearchRef { + extends AutoDisposeFutureProviderElement + with TriggerBangSearchRef { _TriggerBangSearchProviderElement(super.provider); @override @@ -173,5 +160,6 @@ class _TriggerBangSearchProviderElement @override String get searchQuery => (origin as TriggerBangSearchProvider).searchQuery; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/bangs/domain/repositories/data.dart b/app/lib/features/bangs/domain/repositories/data.dart index 66769223..2f3cbabf 100644 --- a/app/lib/features/bangs/domain/repositories/data.dart +++ b/app/lib/features/bangs/domain/repositories/data.dart @@ -27,11 +27,9 @@ class BangDataRepository extends _$BangDataRepository { } Stream>> watchCategories() { - return ref - .read(bangDatabaseProvider) - .categoriesJson() - .watchSingle() - .map((json) { + return ref.read(bangDatabaseProvider).categoriesJson().watchSingle().map(( + json, + ) { final decoded = jsonDecode(json) as Map; return decoded.map( (key, value) => MapEntry(key, (value as List).cast()), @@ -43,7 +41,8 @@ class BangDataRepository extends _$BangDataRepository { return ref .read(bangDatabaseProvider) .bangDao - .getBangCount(groups: [group]).watchSingle(); + .getBangCount(groups: [group]) + .watchSingle(); } Stream> watchBangs({ @@ -94,12 +93,10 @@ class BangDataRepository extends _$BangDataRepository { }) { final db = ref.read(bangDatabaseProvider); //Pack in a transaction to bundle rebuilds of watch() queries - return db.transaction( - () async { - await db.bangDao.addSearchEntry(trigger, searchQuery); - await db.evictHistoryEntries(limit: maxEntryCount); - }, - ); + return db.transaction(() async { + await db.bangDao.addSearchEntry(trigger, searchQuery); + await db.evictHistoryEntries(limit: maxEntryCount); + }); } Future removeSearchEntry(String searchQuery) { diff --git a/app/lib/features/bangs/domain/repositories/data.g.dart b/app/lib/features/bangs/domain/repositories/data.g.dart index 7c23dec8..7b34d275 100644 --- a/app/lib/features/bangs/domain/repositories/data.g.dart +++ b/app/lib/features/bangs/domain/repositories/data.g.dart @@ -13,14 +13,15 @@ String _$bangDataRepositoryHash() => @ProviderFor(BangDataRepository) final bangDataRepositoryProvider = NotifierProvider.internal( - BangDataRepository.new, - name: r'bangDataRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$bangDataRepositoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + BangDataRepository.new, + name: r'bangDataRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bangDataRepositoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$BangDataRepository = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/bangs/domain/repositories/search.g.dart b/app/lib/features/bangs/domain/repositories/search.g.dart index ac09eab8..5e5fac22 100644 --- a/app/lib/features/bangs/domain/repositories/search.g.dart +++ b/app/lib/features/bangs/domain/repositories/search.g.dart @@ -12,13 +12,15 @@ String _$bangSearchHash() => r'abf9ff5badf2ecfbcbde148fd2c849beac83bec4'; @ProviderFor(BangSearch) final bangSearchProvider = AutoDisposeStreamNotifierProvider>.internal( - BangSearch.new, - name: r'bangSearchProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') ? null : _$bangSearchHash, - dependencies: null, - allTransitiveDependencies: null, -); + BangSearch.new, + name: r'bangSearchProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bangSearchHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$BangSearch = AutoDisposeStreamNotifier>; String _$seamlessBangProviderHash() => @@ -27,17 +29,20 @@ String _$seamlessBangProviderHash() => /// See also [SeamlessBangProvider]. @ProviderFor(SeamlessBangProvider) final seamlessBangProviderProvider = AutoDisposeNotifierProvider< - SeamlessBangProvider, AsyncValue>>.internal( + SeamlessBangProvider, + AsyncValue> +>.internal( SeamlessBangProvider.new, name: r'seamlessBangProviderProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$seamlessBangProviderHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$seamlessBangProviderHash, dependencies: null, allTransitiveDependencies: null, ); -typedef _$SeamlessBangProvider - = AutoDisposeNotifier>>; +typedef _$SeamlessBangProvider = + AutoDisposeNotifier>>; // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/bangs/domain/repositories/sync.dart b/app/lib/features/bangs/domain/repositories/sync.dart index 407d660f..3b151a61 100644 --- a/app/lib/features/bangs/domain/repositories/sync.dart +++ b/app/lib/features/bangs/domain/repositories/sync.dart @@ -29,16 +29,14 @@ class BangSyncRepository extends _$BangSyncRepository { } final result = await sourceService.getBangs(url, group); - return result.flatMapAsync( - (remoteBangs) async { - await db.syncDao.syncBangs( - group: group, - remoteBangs: remoteBangs, - syncTime: DateTime.now(), - ); - await db.optimizeFtsIndex(); - }, - ); + return result.flatMapAsync((remoteBangs) async { + await db.syncDao.syncBangs( + group: group, + remoteBangs: remoteBangs, + syncTime: DateTime.now(), + ); + await db.optimizeFtsIndex(); + }); } Future> syncBangGroup( @@ -47,7 +45,9 @@ class BangSyncRepository extends _$BangSyncRepository { ) async { try { return Result.success( - await ref.read(bangDatabaseProvider).computeWithDatabase( + await ref + .read(bangDatabaseProvider) + .computeWithDatabase( connect: BangDatabase.new, computation: (db) async { final ref = ProviderContainer(); @@ -92,8 +92,10 @@ class BangSyncRepository extends _$BangSyncRepository { //Run isolated operations final futures = groups.map( - (source) => syncBangGroup(source, syncInterval) - .then((result) => MapEntry(source, result)), + (source) => syncBangGroup( + source, + syncInterval, + ).then((result) => MapEntry(source, result)), ); return Map.fromEntries(await Future.wait(futures)); diff --git a/app/lib/features/bangs/domain/repositories/sync.g.dart b/app/lib/features/bangs/domain/repositories/sync.g.dart index 48cbdc99..086e5680 100644 --- a/app/lib/features/bangs/domain/repositories/sync.g.dart +++ b/app/lib/features/bangs/domain/repositories/sync.g.dart @@ -13,14 +13,15 @@ String _$bangSyncRepositoryHash() => @ProviderFor(BangSyncRepository) final bangSyncRepositoryProvider = NotifierProvider.internal( - BangSyncRepository.new, - name: r'bangSyncRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$bangSyncRepositoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + BangSyncRepository.new, + name: r'bangSyncRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bangSyncRepositoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$BangSyncRepository = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/bangs/presentation/screens/categories.dart b/app/lib/features/bangs/presentation/screens/categories.dart index 8da57404..0d162200 100644 --- a/app/lib/features/bangs/presentation/screens/categories.dart +++ b/app/lib/features/bangs/presentation/screens/categories.dart @@ -45,38 +45,43 @@ class BangCategoriesScreen extends HookConsumerWidget { expanded.value = {...expanded.value}..remove(key); } }, - children: categories.entries - .map( - (category) => ExpansionPanel( - canTapOnHeader: true, - isExpanded: expanded.value.contains(category.key), - headerBuilder: (context, isExpanded) => ListTile( - title: Text(category.key), - ), - body: Padding( - padding: const EdgeInsets.only(left: 16.0), - child: Column( - mainAxisSize: MainAxisSize.min, - children: category.value - .map( - (subCategory) => ListTile( - title: Text(subCategory), - onTap: () async { - await context.push( - BangSubCategoryRoute( - category: category.key, - subCategory: subCategory, - ).location, - ); - }, - ), - ) - .toList(), + children: + categories.entries + .map( + (category) => ExpansionPanel( + canTapOnHeader: true, + isExpanded: expanded.value.contains( + category.key, + ), + headerBuilder: + (context, isExpanded) => + ListTile(title: Text(category.key)), + body: Padding( + padding: const EdgeInsets.only(left: 16.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: + category.value + .map( + (subCategory) => ListTile( + title: Text(subCategory), + onTap: () async { + await context.push( + BangSubCategoryRoute( + category: category.key, + subCategory: + subCategory, + ).location, + ); + }, + ), + ) + .toList(), + ), + ), ), - ), - ), - ) - .toList(), + ) + .toList(), ); }, ), @@ -84,12 +89,13 @@ class BangCategoriesScreen extends HookConsumerWidget { }, ); }, - error: (error, stackTrace) => Center( - child: FailureWidget( - title: 'Failed to load Bang Categories', - exception: error, - ), - ), + error: + (error, stackTrace) => Center( + child: FailureWidget( + title: 'Failed to load Bang Categories', + exception: error, + ), + ), loading: () => const Center(child: CircularProgressIndicator()), ), ); diff --git a/app/lib/features/bangs/presentation/screens/list.dart b/app/lib/features/bangs/presentation/screens/list.dart index 42cc8e39..9db671ca 100644 --- a/app/lib/features/bangs/presentation/screens/list.dart +++ b/app/lib/features/bangs/presentation/screens/list.dart @@ -35,9 +35,7 @@ class BangListScreen extends HookConsumerWidget { return Scaffold( body: CustomScrollView( slivers: [ - SliverAppBar.medium( - title: Text('$category: $subCategory'), - ), + SliverAppBar.medium(title: Text('$category: $subCategory')), bangsAsync.when( data: (bangs) { return SliverList.builder( @@ -53,10 +51,10 @@ class BangListScreen extends HookConsumerWidget { if (ref.read(bottomSheetControllerProvider) is! CreateTabSheet) { - ref.read(bottomSheetControllerProvider.notifier).show( - CreateTabSheet( - preferredTool: KagiTool.search, - ), + ref + .read(bottomSheetControllerProvider.notifier) + .show( + CreateTabSheet(preferredTool: KagiTool.search), ); } @@ -66,17 +64,19 @@ class BangListScreen extends HookConsumerWidget { }, ); }, - error: (error, stackTrace) => SliverToBoxAdapter( - child: Center( - child: FailureWidget( - title: 'Failed to load Bangs', - exception: error, + error: + (error, stackTrace) => SliverToBoxAdapter( + child: Center( + child: FailureWidget( + title: 'Failed to load Bangs', + exception: error, + ), + ), + ), + loading: + () => const SliverToBoxAdapter( + child: Center(child: CircularProgressIndicator()), ), - ), - ), - loading: () => const SliverToBoxAdapter( - child: Center(child: CircularProgressIndicator()), - ), ), ], ), diff --git a/app/lib/features/bangs/presentation/screens/search.dart b/app/lib/features/bangs/presentation/screens/search.dart index 6286a224..f96e9fba 100644 --- a/app/lib/features/bangs/presentation/screens/search.dart +++ b/app/lib/features/bangs/presentation/screens/search.dart @@ -22,8 +22,9 @@ class BangSearchScreen extends HookConsumerWidget { final resultsAsync = ref.watch(bangSearchProvider); final incognitoEnabled = ref.watch(incognitoModeEnabledProvider); - final textEditingController = - useTextEditingController(text: initialSearchText); + final textEditingController = useTextEditingController( + text: initialSearchText, + ); useListenableCallback(textEditingController, () async { unawaited( @@ -57,42 +58,44 @@ class BangSearchScreen extends HookConsumerWidget { ), body: resultsAsync.when( skipLoadingOnReload: true, - data: (bangs) => FadingScroll( - fadingSize: 25, - builder: (context, controller) { - return ListView.builder( - controller: controller, - itemCount: bangs.length, - itemBuilder: (context, index) { - final bang = bangs[index]; - return BangDetails( - bang, - onTap: () { - ref - .read(selectedBangTriggerProvider().notifier) - .setTrigger(bang.trigger); + data: + (bangs) => FadingScroll( + fadingSize: 25, + builder: (context, controller) { + return ListView.builder( + controller: controller, + itemCount: bangs.length, + itemBuilder: (context, index) { + final bang = bangs[index]; + return BangDetails( + bang, + onTap: () { + ref + .read(selectedBangTriggerProvider().notifier) + .setTrigger(bang.trigger); - // if (ref.read(bottomSheetControllerProvider) - // is! CreateTabSheet) { - // ref.read(bottomSheetControllerProvider.notifier).show( - // CreateTabSheet(preferredTool: KagiTool.search), - // ); - // } + // if (ref.read(bottomSheetControllerProvider) + // is! CreateTabSheet) { + // ref.read(bottomSheetControllerProvider.notifier).show( + // CreateTabSheet(preferredTool: KagiTool.search), + // ); + // } - // context.go(BrowserRoute().location); - context.pop(); + // context.go(BrowserRoute().location); + context.pop(); + }, + ); }, ); }, - ); - }, - ), - error: (error, stackTrace) => Center( - child: FailureWidget( - title: 'Bang Search failed', - exception: error, - ), - ), + ), + error: + (error, stackTrace) => Center( + child: FailureWidget( + title: 'Bang Search failed', + exception: error, + ), + ), loading: () => const SizedBox.shrink(), ), ); diff --git a/app/lib/features/bangs/presentation/widgets/bang_details.dart b/app/lib/features/bangs/presentation/widgets/bang_details.dart index 575e8ecf..c977de94 100644 --- a/app/lib/features/bangs/presentation/widgets/bang_details.dart +++ b/app/lib/features/bangs/presentation/widgets/bang_details.dart @@ -63,8 +63,9 @@ class BangDetails extends HookConsumerWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ FilledButton.tonalIcon( - style: - const ButtonStyle(visualDensity: VisualDensity.compact), + style: const ButtonStyle( + visualDensity: VisualDensity.compact, + ), onPressed: () async { final url = Uri.parse(bangData.getUrl('').origin); @@ -79,9 +80,7 @@ class BangDetails extends HookConsumerWidget { label: Text(bangData.domain), icon: const Icon(Icons.open_in_new), ), - const SizedBox( - width: 8, - ), + const SizedBox(width: 8), Expanded( child: Text( '!${bangData.trigger}', diff --git a/app/lib/features/bangs/presentation/widgets/site_search.dart b/app/lib/features/bangs/presentation/widgets/site_search.dart index f921b399..526e4777 100644 --- a/app/lib/features/bangs/presentation/widgets/site_search.dart +++ b/app/lib/features/bangs/presentation/widgets/site_search.dart @@ -30,14 +30,11 @@ class SiteSearch extends HookConsumerWidget { final searchTextController = useTextEditingController(); - useListenableCallback( - searchTextController, - () async { - ref - .read(searchSuggestionsProvider().notifier) - .addQuery(searchTextController.text); - }, - ); + useListenableCallback(searchTextController, () async { + ref + .read(searchSuggestionsProvider().notifier) + .addQuery(searchTextController.text); + }); final selectedBang = ref.watch(selectedBangDataProvider(domain: domain)); @@ -73,15 +70,11 @@ class SiteSearch extends HookConsumerWidget { selectedItem: selectedBang, onSelected: (bang) { ref - .read( - selectedBangTriggerProvider(domain: domain).notifier, - ) + .read(selectedBangTriggerProvider(domain: domain).notifier) .setTrigger(bang.trigger); }, onDeleted: (bang) { - if (ref.read( - selectedBangTriggerProvider(domain: domain), - ) == + if (ref.read(selectedBangTriggerProvider(domain: domain)) == bang.trigger) { ref .read( diff --git a/app/lib/features/chat/features/chat_store/data/database/daos/messages.dart b/app/lib/features/chat/features/chat_store/data/database/daos/messages.dart index ac92750b..741152f5 100644 --- a/app/lib/features/chat/features/chat_store/data/database/daos/messages.dart +++ b/app/lib/features/chat/features/chat_store/data/database/daos/messages.dart @@ -13,9 +13,7 @@ class MessagesDao extends DatabaseAccessor MessagesDao(super.db); Selectable messageCount({required String chatId}) { - return db.chatMessage.count( - where: (row) => row.chatId.equals(chatId), - ); + return db.chatMessage.count(where: (row) => row.chatId.equals(chatId)); } Selectable chatMessages({required String chatId}) { @@ -29,9 +27,9 @@ class MessagesDao extends DatabaseAccessor db.chatMessage.select()..where((row) => row.messageId.equals(messageId)), ); - return db.selectExpressions([existsExpression]).map( - (row) => row.read(existsExpression)!, - ); + return db + .selectExpressions([existsExpression]) + .map((row) => row.read(existsExpression)!); } SingleOrNullSelectable messageIndex({ @@ -52,39 +50,39 @@ class MessagesDao extends DatabaseAccessor return null; } - return db.transaction( - () async { - final String orderKey; - if (index != null) { - if (index <= 0) { - orderKey = - await db.leadingOrderKey(bucket: 0, chatId: chatId).getSingle(); - } else { - orderKey = await db - .orderKeyBeforeIndex(chatId: chatId, rowIdx: index + 1) - .getSingle(); - } + return db.transaction(() async { + final String orderKey; + if (index != null) { + if (index <= 0) { + orderKey = + await db.leadingOrderKey(bucket: 0, chatId: chatId).getSingle(); } else { orderKey = - await db.trailingOrderKey(bucket: 0, chatId: chatId).getSingle(); + await db + .orderKeyBeforeIndex(chatId: chatId, rowIdx: index + 1) + .getSingle(); } + } else { + orderKey = + await db.trailingOrderKey(bucket: 0, chatId: chatId).getSingle(); + } - await db.chatMessage.insertOne( - ChatMessageCompanion.insert( - messageId: message.id, - chatId: chatId, - orderKey: orderKey, - messageJson: jsonEncode(message.toJson()), - ), - ); + await db.chatMessage.insertOne( + ChatMessageCompanion.insert( + messageId: message.id, + chatId: chatId, + orderKey: orderKey, + messageJson: jsonEncode(message.toJson()), + ), + ); - final rowIdx = await db - .messageIndex(chatId: chatId, messageId: message.id) - .getSingle(); + final rowIdx = + await db + .messageIndex(chatId: chatId, messageId: message.id) + .getSingle(); - return rowIdx - 1; - }, - ); + return rowIdx - 1; + }); } Future removeMessage({required String messageId}) { @@ -98,10 +96,10 @@ class MessagesDao extends DatabaseAccessor return (db.chatMessage.update() ..where((row) => row.messageId.equals(messageId))) .write( - ChatMessageCompanion( - messageJson: Value(jsonEncode(message.toJson())), - ), - ); + ChatMessageCompanion( + messageJson: Value(jsonEncode(message.toJson())), + ), + ); } Future deleteChatMessages({required String chatId}) { @@ -120,21 +118,19 @@ class MessagesDao extends DatabaseAccessor await db.leadingOrderKey(bucket: 0, chatId: chatId).getSingle(); await db.chatMessage.insertAll( - messages.map( - (message) { - final insertable = ChatMessageCompanion.insert( - messageId: message.id, - chatId: chatId, - messageJson: jsonEncode(message.toJson()), - orderKey: currentOrderKey, - // timestamp: DateTime.now(), - ); + messages.map((message) { + final insertable = ChatMessageCompanion.insert( + messageId: message.id, + chatId: chatId, + messageJson: jsonEncode(message.toJson()), + orderKey: currentOrderKey, + // timestamp: DateTime.now(), + ); - currentOrderKey = LexoRank.parse(currentOrderKey).genPrev().value; + currentOrderKey = LexoRank.parse(currentOrderKey).genPrev().value; - return insertable; - }, - ), + return insertable; + }), ); }); } diff --git a/app/lib/features/chat/features/chat_store/data/database/daos/metadata.dart b/app/lib/features/chat/features/chat_store/data/database/daos/metadata.dart index 4d3b8f07..e72a7982 100644 --- a/app/lib/features/chat/features/chat_store/data/database/daos/metadata.dart +++ b/app/lib/features/chat/features/chat_store/data/database/daos/metadata.dart @@ -10,9 +10,10 @@ class MetadataDao extends DatabaseAccessor MetadataDao(super.db); SingleOrNullSelectable chatMetadata(String chatId) { - final statement = db.chatData.selectOnly() - ..addColumns([db.chatData.metadata]) - ..where(db.chatData.chatId.equals(chatId)); + final statement = + db.chatData.selectOnly() + ..addColumns([db.chatData.metadata]) + ..where(db.chatData.chatId.equals(chatId)); return statement.map((row) => row.readWithConverter(db.chatData.metadata)!); } diff --git a/app/lib/features/chat/features/chat_store/data/database/database.g.dart b/app/lib/features/chat/features/chat_store/data/database/database.g.dart index bbf9cdd0..c50b6d5e 100644 --- a/app/lib/features/chat/features/chat_store/data/database/database.g.dart +++ b/app/lib/features/chat/features/chat_store/data/database/database.g.dart @@ -9,16 +9,22 @@ class ChatData extends Table with TableInfo { final String? _alias; ChatData(this.attachedDatabase, [this._alias]); late final GeneratedColumn chatId = GeneratedColumn( - 'chat_id', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'PRIMARY KEY NOT NULL'); + 'chat_id', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'PRIMARY KEY NOT NULL', + ); late final GeneratedColumnWithTypeConverter metadata = - GeneratedColumn('metadata', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL') - .withConverter(ChatData.$convertermetadata); + GeneratedColumn( + 'metadata', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ).withConverter(ChatData.$convertermetadata); @override List get $columns => [chatId, metadata]; @override @@ -32,10 +38,17 @@ class ChatData extends Table with TableInfo { ChatDataData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return ChatDataData( - chatId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}chat_id'])!, - metadata: ChatData.$convertermetadata.fromSql(attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}metadata'])!), + chatId: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}chat_id'], + )!, + metadata: ChatData.$convertermetadata.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}metadata'], + )!, + ), ); } @@ -59,14 +72,17 @@ class ChatDataData extends DataClass implements Insertable { final map = {}; map['chat_id'] = Variable(chatId); { - map['metadata'] = - Variable(ChatData.$convertermetadata.toSql(metadata)); + map['metadata'] = Variable( + ChatData.$convertermetadata.toSql(metadata), + ); } return map; } - factory ChatDataData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory ChatDataData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return ChatDataData( chatId: serializer.fromJson(json['chat_id']), @@ -126,8 +142,8 @@ class ChatDataCompanion extends UpdateCompanion { required String chatId, required ChatMetadata metadata, this.rowid = const Value.absent(), - }) : chatId = Value(chatId), - metadata = Value(metadata); + }) : chatId = Value(chatId), + metadata = Value(metadata); static Insertable custom({ Expression? chatId, Expression? metadata, @@ -140,10 +156,11 @@ class ChatDataCompanion extends UpdateCompanion { }); } - ChatDataCompanion copyWith( - {Value? chatId, - Value? metadata, - Value? rowid}) { + ChatDataCompanion copyWith({ + Value? chatId, + Value? metadata, + Value? rowid, + }) { return ChatDataCompanion( chatId: chatId ?? this.chatId, metadata: metadata ?? this.metadata, @@ -158,8 +175,9 @@ class ChatDataCompanion extends UpdateCompanion { map['chat_id'] = Variable(chatId.value); } if (metadata.present) { - map['metadata'] = - Variable(ChatData.$convertermetadata.toSql(metadata.value)); + map['metadata'] = Variable( + ChatData.$convertermetadata.toSql(metadata.value), + ); } if (rowid.present) { map['rowid'] = Variable(rowid.value); @@ -184,28 +202,44 @@ class ChatMessage extends Table with TableInfo { final String? _alias; ChatMessage(this.attachedDatabase, [this._alias]); late final GeneratedColumn messageId = GeneratedColumn( - 'message_id', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'PRIMARY KEY NOT NULL'); + 'message_id', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'PRIMARY KEY NOT NULL', + ); late final GeneratedColumn chatId = GeneratedColumn( - 'chat_id', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'chat_id', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn orderKey = GeneratedColumn( - 'order_key', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'order_key', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn messageJson = GeneratedColumn( - 'message_json', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'message_json', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); @override - List get $columns => - [messageId, chatId, orderKey, messageJson]; + List get $columns => [ + messageId, + chatId, + orderKey, + messageJson, + ]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -217,14 +251,26 @@ class ChatMessage extends Table with TableInfo { ChatMessageData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return ChatMessageData( - messageId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}message_id'])!, - chatId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}chat_id'])!, - orderKey: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}order_key'])!, - messageJson: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}message_json'])!, + messageId: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}message_id'], + )!, + chatId: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}chat_id'], + )!, + orderKey: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}order_key'], + )!, + messageJson: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}message_json'], + )!, ); } @@ -242,11 +288,12 @@ class ChatMessageData extends DataClass implements Insertable { final String chatId; final String orderKey; final String messageJson; - const ChatMessageData( - {required this.messageId, - required this.chatId, - required this.orderKey, - required this.messageJson}); + const ChatMessageData({ + required this.messageId, + required this.chatId, + required this.orderKey, + required this.messageJson, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -257,8 +304,10 @@ class ChatMessageData extends DataClass implements Insertable { return map; } - factory ChatMessageData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory ChatMessageData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return ChatMessageData( messageId: serializer.fromJson(json['message_id']), @@ -278,17 +327,17 @@ class ChatMessageData extends DataClass implements Insertable { }; } - ChatMessageData copyWith( - {String? messageId, - String? chatId, - String? orderKey, - String? messageJson}) => - ChatMessageData( - messageId: messageId ?? this.messageId, - chatId: chatId ?? this.chatId, - orderKey: orderKey ?? this.orderKey, - messageJson: messageJson ?? this.messageJson, - ); + ChatMessageData copyWith({ + String? messageId, + String? chatId, + String? orderKey, + String? messageJson, + }) => ChatMessageData( + messageId: messageId ?? this.messageId, + chatId: chatId ?? this.chatId, + orderKey: orderKey ?? this.orderKey, + messageJson: messageJson ?? this.messageJson, + ); ChatMessageData copyWithCompanion(ChatMessageCompanion data) { return ChatMessageData( messageId: data.messageId.present ? data.messageId.value : this.messageId, @@ -341,10 +390,10 @@ class ChatMessageCompanion extends UpdateCompanion { required String orderKey, required String messageJson, this.rowid = const Value.absent(), - }) : messageId = Value(messageId), - chatId = Value(chatId), - orderKey = Value(orderKey), - messageJson = Value(messageJson); + }) : messageId = Value(messageId), + chatId = Value(chatId), + orderKey = Value(orderKey), + messageJson = Value(messageJson); static Insertable custom({ Expression? messageId, Expression? chatId, @@ -361,12 +410,13 @@ class ChatMessageCompanion extends UpdateCompanion { }); } - ChatMessageCompanion copyWith( - {Value? messageId, - Value? chatId, - Value? orderKey, - Value? messageJson, - Value? rowid}) { + ChatMessageCompanion copyWith({ + Value? messageId, + Value? chatId, + Value? orderKey, + Value? messageJson, + Value? rowid, + }) { return ChatMessageCompanion( messageId: messageId ?? this.messageId, chatId: chatId ?? this.chatId, @@ -415,80 +465,79 @@ abstract class _$ChatDatabase extends GeneratedDatabase { $ChatDatabaseManager get managers => $ChatDatabaseManager(this); late final ChatData chatData = ChatData(this); late final ChatMessage chatMessage = ChatMessage(this); - late final Index groupOrderIdx = Index('group_order_idx', - 'CREATE UNIQUE INDEX group_order_idx ON chat_message (chat_id, order_key)'); + late final Index groupOrderIdx = Index( + 'group_order_idx', + 'CREATE UNIQUE INDEX group_order_idx ON chat_message (chat_id, order_key)', + ); late final MessagesDao messagesDao = MessagesDao(this as ChatDatabase); late final MetadataDao metadataDao = MetadataDao(this as ChatDatabase); - Selectable leadingOrderKey( - {required int bucket, required String chatId}) { + Selectable leadingOrderKey({ + required int bucket, + required String chatId, + }) { return customSelect( - 'SELECT lexo_rank_previous(?1, (SELECT order_key FROM chat_message WHERE chat_id = ?2 ORDER BY order_key LIMIT 1)) AS _c0', - variables: [ - Variable(bucket), - Variable(chatId) - ], - readsFrom: { - chatMessage, - }).map((QueryRow row) => row.read('_c0')); + 'SELECT lexo_rank_previous(?1, (SELECT order_key FROM chat_message WHERE chat_id = ?2 ORDER BY order_key LIMIT 1)) AS _c0', + variables: [Variable(bucket), Variable(chatId)], + readsFrom: {chatMessage}, + ).map((QueryRow row) => row.read('_c0')); } - Selectable trailingOrderKey( - {required int bucket, required String chatId}) { + Selectable trailingOrderKey({ + required int bucket, + required String chatId, + }) { return customSelect( - 'SELECT lexo_rank_next(?1, (SELECT order_key FROM chat_message WHERE chat_id = ?2 ORDER BY order_key DESC LIMIT 1)) AS _c0', - variables: [ - Variable(bucket), - Variable(chatId) - ], - readsFrom: { - chatMessage, - }).map((QueryRow row) => row.read('_c0')); + 'SELECT lexo_rank_next(?1, (SELECT order_key FROM chat_message WHERE chat_id = ?2 ORDER BY order_key DESC LIMIT 1)) AS _c0', + variables: [Variable(bucket), Variable(chatId)], + readsFrom: {chatMessage}, + ).map((QueryRow row) => row.read('_c0')); } - Selectable orderKeyBeforeIndex( - {required String chatId, required int rowIdx}) { + Selectable orderKeyBeforeIndex({ + required String chatId, + required int rowIdx, + }) { return customSelect( - 'WITH ordered_table AS (SELECT message_id, order_key, LEAD(order_key)OVER (ORDER BY order_key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS next_order_key, ROW_NUMBER()OVER (ORDER BY order_key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS row_idx, COUNT(*)OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS total_rows FROM chat_message WHERE chat_id = ?1) SELECT lexo_rank_reorder_after(order_key, next_order_key) AS _c0 FROM ordered_table WHERE row_idx = MIN(?2, total_rows)', - variables: [ - Variable(chatId), - Variable(rowIdx) - ], - readsFrom: { - chatMessage, - }).map((QueryRow row) => row.read('_c0')); + 'WITH ordered_table AS (SELECT message_id, order_key, LEAD(order_key)OVER (ORDER BY order_key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS next_order_key, ROW_NUMBER()OVER (ORDER BY order_key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS row_idx, COUNT(*)OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS total_rows FROM chat_message WHERE chat_id = ?1) SELECT lexo_rank_reorder_after(order_key, next_order_key) AS _c0 FROM ordered_table WHERE row_idx = MIN(?2, total_rows)', + variables: [Variable(chatId), Variable(rowIdx)], + readsFrom: {chatMessage}, + ).map((QueryRow row) => row.read('_c0')); } - Selectable messageIndex( - {required String chatId, required String messageId}) { + Selectable messageIndex({ + required String chatId, + required String messageId, + }) { return customSelect( - 'WITH ordered_table AS (SELECT message_id, ROW_NUMBER()OVER (ORDER BY order_key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS row_idx FROM chat_message WHERE chat_id = ?1) SELECT row_idx FROM ordered_table WHERE message_id = ?2', - variables: [ - Variable(chatId), - Variable(messageId) - ], - readsFrom: { - chatMessage, - }).map((QueryRow row) => row.read('row_idx')); + 'WITH ordered_table AS (SELECT message_id, ROW_NUMBER()OVER (ORDER BY order_key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS row_idx FROM chat_message WHERE chat_id = ?1) SELECT row_idx FROM ordered_table WHERE message_id = ?2', + variables: [Variable(chatId), Variable(messageId)], + readsFrom: {chatMessage}, + ).map((QueryRow row) => row.read('row_idx')); } @override Iterable> get allTables => allSchemaEntities.whereType>(); @override - List get allSchemaEntities => - [chatData, chatMessage, groupOrderIdx]; + List get allSchemaEntities => [ + chatData, + chatMessage, + groupOrderIdx, + ]; } -typedef $ChatDataCreateCompanionBuilder = ChatDataCompanion Function({ - required String chatId, - required ChatMetadata metadata, - Value rowid, -}); -typedef $ChatDataUpdateCompanionBuilder = ChatDataCompanion Function({ - Value chatId, - Value metadata, - Value rowid, -}); +typedef $ChatDataCreateCompanionBuilder = + ChatDataCompanion Function({ + required String chatId, + required ChatMetadata metadata, + Value rowid, + }); +typedef $ChatDataUpdateCompanionBuilder = + ChatDataCompanion Function({ + Value chatId, + Value metadata, + Value rowid, + }); class $ChatDataFilterComposer extends Composer<_$ChatDatabase, ChatData> { $ChatDataFilterComposer({ @@ -499,12 +548,15 @@ class $ChatDataFilterComposer extends Composer<_$ChatDatabase, ChatData> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get chatId => $composableBuilder( - column: $table.chatId, builder: (column) => ColumnFilters(column)); + column: $table.chatId, + builder: (column) => ColumnFilters(column), + ); ColumnWithTypeConverterFilters - get metadata => $composableBuilder( - column: $table.metadata, - builder: (column) => ColumnWithTypeConverterFilters(column)); + get metadata => $composableBuilder( + column: $table.metadata, + builder: (column) => ColumnWithTypeConverterFilters(column), + ); } class $ChatDataOrderingComposer extends Composer<_$ChatDatabase, ChatData> { @@ -516,10 +568,14 @@ class $ChatDataOrderingComposer extends Composer<_$ChatDatabase, ChatData> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get chatId => $composableBuilder( - column: $table.chatId, builder: (column) => ColumnOrderings(column)); + column: $table.chatId, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get metadata => $composableBuilder( - column: $table.metadata, builder: (column) => ColumnOrderings(column)); + column: $table.metadata, + builder: (column) => ColumnOrderings(column), + ); } class $ChatDataAnnotationComposer extends Composer<_$ChatDatabase, ChatData> { @@ -537,81 +593,100 @@ class $ChatDataAnnotationComposer extends Composer<_$ChatDatabase, ChatData> { $composableBuilder(column: $table.metadata, builder: (column) => column); } -class $ChatDataTableManager extends RootTableManager< - _$ChatDatabase, - ChatData, - ChatDataData, - $ChatDataFilterComposer, - $ChatDataOrderingComposer, - $ChatDataAnnotationComposer, - $ChatDataCreateCompanionBuilder, - $ChatDataUpdateCompanionBuilder, - (ChatDataData, BaseReferences<_$ChatDatabase, ChatData, ChatDataData>), - ChatDataData, - PrefetchHooks Function()> { +class $ChatDataTableManager + extends + RootTableManager< + _$ChatDatabase, + ChatData, + ChatDataData, + $ChatDataFilterComposer, + $ChatDataOrderingComposer, + $ChatDataAnnotationComposer, + $ChatDataCreateCompanionBuilder, + $ChatDataUpdateCompanionBuilder, + ( + ChatDataData, + BaseReferences<_$ChatDatabase, ChatData, ChatDataData>, + ), + ChatDataData, + PrefetchHooks Function() + > { $ChatDataTableManager(_$ChatDatabase db, ChatData table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $ChatDataFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $ChatDataOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $ChatDataAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value chatId = const Value.absent(), - Value metadata = const Value.absent(), - Value rowid = const Value.absent(), - }) => - ChatDataCompanion( - chatId: chatId, - metadata: metadata, - rowid: rowid, - ), - createCompanionCallback: ({ - required String chatId, - required ChatMetadata metadata, - Value rowid = const Value.absent(), - }) => - ChatDataCompanion.insert( - chatId: chatId, - metadata: metadata, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $ChatDataFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $ChatDataOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $ChatDataAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value chatId = const Value.absent(), + Value metadata = const Value.absent(), + Value rowid = const Value.absent(), + }) => ChatDataCompanion( + chatId: chatId, + metadata: metadata, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String chatId, + required ChatMetadata metadata, + Value rowid = const Value.absent(), + }) => ChatDataCompanion.insert( + chatId: chatId, + metadata: metadata, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $ChatDataProcessedTableManager = ProcessedTableManager< - _$ChatDatabase, - ChatData, - ChatDataData, - $ChatDataFilterComposer, - $ChatDataOrderingComposer, - $ChatDataAnnotationComposer, - $ChatDataCreateCompanionBuilder, - $ChatDataUpdateCompanionBuilder, - (ChatDataData, BaseReferences<_$ChatDatabase, ChatData, ChatDataData>), - ChatDataData, - PrefetchHooks Function()>; -typedef $ChatMessageCreateCompanionBuilder = ChatMessageCompanion Function({ - required String messageId, - required String chatId, - required String orderKey, - required String messageJson, - Value rowid, -}); -typedef $ChatMessageUpdateCompanionBuilder = ChatMessageCompanion Function({ - Value messageId, - Value chatId, - Value orderKey, - Value messageJson, - Value rowid, -}); +typedef $ChatDataProcessedTableManager = + ProcessedTableManager< + _$ChatDatabase, + ChatData, + ChatDataData, + $ChatDataFilterComposer, + $ChatDataOrderingComposer, + $ChatDataAnnotationComposer, + $ChatDataCreateCompanionBuilder, + $ChatDataUpdateCompanionBuilder, + (ChatDataData, BaseReferences<_$ChatDatabase, ChatData, ChatDataData>), + ChatDataData, + PrefetchHooks Function() + >; +typedef $ChatMessageCreateCompanionBuilder = + ChatMessageCompanion Function({ + required String messageId, + required String chatId, + required String orderKey, + required String messageJson, + Value rowid, + }); +typedef $ChatMessageUpdateCompanionBuilder = + ChatMessageCompanion Function({ + Value messageId, + Value chatId, + Value orderKey, + Value messageJson, + Value rowid, + }); class $ChatMessageFilterComposer extends Composer<_$ChatDatabase, ChatMessage> { $ChatMessageFilterComposer({ @@ -622,16 +697,24 @@ class $ChatMessageFilterComposer extends Composer<_$ChatDatabase, ChatMessage> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get messageId => $composableBuilder( - column: $table.messageId, builder: (column) => ColumnFilters(column)); + column: $table.messageId, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get chatId => $composableBuilder( - column: $table.chatId, builder: (column) => ColumnFilters(column)); + column: $table.chatId, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get orderKey => $composableBuilder( - column: $table.orderKey, builder: (column) => ColumnFilters(column)); + column: $table.orderKey, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get messageJson => $composableBuilder( - column: $table.messageJson, builder: (column) => ColumnFilters(column)); + column: $table.messageJson, + builder: (column) => ColumnFilters(column), + ); } class $ChatMessageOrderingComposer @@ -644,16 +727,24 @@ class $ChatMessageOrderingComposer super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get messageId => $composableBuilder( - column: $table.messageId, builder: (column) => ColumnOrderings(column)); + column: $table.messageId, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get chatId => $composableBuilder( - column: $table.chatId, builder: (column) => ColumnOrderings(column)); + column: $table.chatId, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get orderKey => $composableBuilder( - column: $table.orderKey, builder: (column) => ColumnOrderings(column)); + column: $table.orderKey, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get messageJson => $composableBuilder( - column: $table.messageJson, builder: (column) => ColumnOrderings(column)); + column: $table.messageJson, + builder: (column) => ColumnOrderings(column), + ); } class $ChatMessageAnnotationComposer @@ -675,84 +766,100 @@ class $ChatMessageAnnotationComposer $composableBuilder(column: $table.orderKey, builder: (column) => column); GeneratedColumn get messageJson => $composableBuilder( - column: $table.messageJson, builder: (column) => column); + column: $table.messageJson, + builder: (column) => column, + ); } -class $ChatMessageTableManager extends RootTableManager< - _$ChatDatabase, - ChatMessage, - ChatMessageData, - $ChatMessageFilterComposer, - $ChatMessageOrderingComposer, - $ChatMessageAnnotationComposer, - $ChatMessageCreateCompanionBuilder, - $ChatMessageUpdateCompanionBuilder, - ( - ChatMessageData, - BaseReferences<_$ChatDatabase, ChatMessage, ChatMessageData> - ), - ChatMessageData, - PrefetchHooks Function()> { +class $ChatMessageTableManager + extends + RootTableManager< + _$ChatDatabase, + ChatMessage, + ChatMessageData, + $ChatMessageFilterComposer, + $ChatMessageOrderingComposer, + $ChatMessageAnnotationComposer, + $ChatMessageCreateCompanionBuilder, + $ChatMessageUpdateCompanionBuilder, + ( + ChatMessageData, + BaseReferences<_$ChatDatabase, ChatMessage, ChatMessageData>, + ), + ChatMessageData, + PrefetchHooks Function() + > { $ChatMessageTableManager(_$ChatDatabase db, ChatMessage table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $ChatMessageFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $ChatMessageOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $ChatMessageAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value messageId = const Value.absent(), - Value chatId = const Value.absent(), - Value orderKey = const Value.absent(), - Value messageJson = const Value.absent(), - Value rowid = const Value.absent(), - }) => - ChatMessageCompanion( - messageId: messageId, - chatId: chatId, - orderKey: orderKey, - messageJson: messageJson, - rowid: rowid, - ), - createCompanionCallback: ({ - required String messageId, - required String chatId, - required String orderKey, - required String messageJson, - Value rowid = const Value.absent(), - }) => - ChatMessageCompanion.insert( - messageId: messageId, - chatId: chatId, - orderKey: orderKey, - messageJson: messageJson, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $ChatMessageFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $ChatMessageOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $ChatMessageAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value messageId = const Value.absent(), + Value chatId = const Value.absent(), + Value orderKey = const Value.absent(), + Value messageJson = const Value.absent(), + Value rowid = const Value.absent(), + }) => ChatMessageCompanion( + messageId: messageId, + chatId: chatId, + orderKey: orderKey, + messageJson: messageJson, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String messageId, + required String chatId, + required String orderKey, + required String messageJson, + Value rowid = const Value.absent(), + }) => ChatMessageCompanion.insert( + messageId: messageId, + chatId: chatId, + orderKey: orderKey, + messageJson: messageJson, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $ChatMessageProcessedTableManager = ProcessedTableManager< - _$ChatDatabase, - ChatMessage, - ChatMessageData, - $ChatMessageFilterComposer, - $ChatMessageOrderingComposer, - $ChatMessageAnnotationComposer, - $ChatMessageCreateCompanionBuilder, - $ChatMessageUpdateCompanionBuilder, - ( +typedef $ChatMessageProcessedTableManager = + ProcessedTableManager< + _$ChatDatabase, + ChatMessage, ChatMessageData, - BaseReferences<_$ChatDatabase, ChatMessage, ChatMessageData> - ), - ChatMessageData, - PrefetchHooks Function()>; + $ChatMessageFilterComposer, + $ChatMessageOrderingComposer, + $ChatMessageAnnotationComposer, + $ChatMessageCreateCompanionBuilder, + $ChatMessageUpdateCompanionBuilder, + ( + ChatMessageData, + BaseReferences<_$ChatDatabase, ChatMessage, ChatMessageData>, + ), + ChatMessageData, + PrefetchHooks Function() + >; class $ChatDatabaseManager { final _$ChatDatabase _db; diff --git a/app/lib/features/chat/features/chat_store/data/models/chat_metadata.g.dart b/app/lib/features/chat/features/chat_store/data/models/chat_metadata.g.dart index 2f1b7598..526b847c 100644 --- a/app/lib/features/chat/features/chat_store/data/models/chat_metadata.g.dart +++ b/app/lib/features/chat/features/chat_store/data/models/chat_metadata.g.dart @@ -7,9 +7,9 @@ part of 'chat_metadata.dart'; // ************************************************************************** ChatMetadata _$ChatMetadataFromJson(Map json) => ChatMetadata( - mainDocumentId: json['mainDocumentId'] as String?, - contextId: json['contextId'] as String?, - ); + mainDocumentId: json['mainDocumentId'] as String?, + contextId: json['contextId'] as String?, +); Map _$ChatMetadataToJson(ChatMetadata instance) => { diff --git a/app/lib/features/chat/features/chat_store/domain/chat_memory.dart b/app/lib/features/chat/features/chat_store/domain/chat_memory.dart index c7edc9dd..49c2e083 100644 --- a/app/lib/features/chat/features/chat_store/domain/chat_memory.dart +++ b/app/lib/features/chat/features/chat_store/domain/chat_memory.dart @@ -59,44 +59,46 @@ class ChatMemory implements BaseMemory { Future loadMemoryVariables([ MemoryInputValues values = const {}, ]) async { - final messages = _controller.messages - .whereNot( - (message) => message.metadata?['hideFromModelChatHistory'] == true, - ) - .map( - (message) => switch (message) { - TextMessage( - authorId: final authorId, - text: final text, - metadata: final metadata, - ) => - () { - if (authorId == MessageAuthor.system.user.id) { - return SystemChatMessage(content: text); - } - if (authorId == MessageAuthor.human.user.id) { - return HumanChatMessage( - content: ChatMessageContent.text(text), - ); - } - if (authorId == MessageAuthor.ai.user.id) { - final toolsRaw = metadata?['toolCalls']; - if (toolsRaw is String) { - return AIChatMessage( - content: text, - toolCalls: _deserializeToolCalls(toolsRaw), - ); - } - return AIChatMessage(content: text); - } - throw UnimplementedError(); - }(), - ImageMessage() => throw UnimplementedError(), - CustomMessage() => throw UnimplementedError(), - UnsupportedMessage() => throw UnimplementedError() - }, - ) - .toList(); + final messages = + _controller.messages + .whereNot( + (message) => + message.metadata?['hideFromModelChatHistory'] == true, + ) + .map( + (message) => switch (message) { + TextMessage( + authorId: final authorId, + text: final text, + metadata: final metadata, + ) => + () { + if (authorId == MessageAuthor.system.user.id) { + return SystemChatMessage(content: text); + } + if (authorId == MessageAuthor.human.user.id) { + return HumanChatMessage( + content: ChatMessageContent.text(text), + ); + } + if (authorId == MessageAuthor.ai.user.id) { + final toolsRaw = metadata?['toolCalls']; + if (toolsRaw is String) { + return AIChatMessage( + content: text, + toolCalls: _deserializeToolCalls(toolsRaw), + ); + } + return AIChatMessage(content: text); + } + throw UnimplementedError(); + }(), + ImageMessage() => throw UnimplementedError(), + CustomMessage() => throw UnimplementedError(), + UnsupportedMessage() => throw UnimplementedError(), + }, + ) + .toList(); int currentBufferLength = await llm.countTokens(PromptValue.chat(messages)); // Prune buffer if it exceeds max token limit @@ -124,16 +126,17 @@ class ChatMemory implements BaseMemory { List _deserializeToolCalls(String toolsRaw) { final decoded = jsonDecode(toolsRaw) as List; - final tools = decoded - .map( - (tool) => AIChatMessageToolCall( - id: tool['id'] as String, - name: tool['name'] as String, - arguments: tool['arguments'] as Map, - argumentsRaw: tool['argumentsRaw'] as String, - ), - ) - .toList(); + final tools = + decoded + .map( + (tool) => AIChatMessageToolCall( + id: tool['id'] as String, + name: tool['name'] as String, + arguments: tool['arguments'] as Map, + argumentsRaw: tool['argumentsRaw'] as String, + ), + ) + .toList(); return tools; } diff --git a/app/lib/features/chat/features/chat_store/domain/drift_chat_controller.dart b/app/lib/features/chat/features/chat_store/domain/drift_chat_controller.dart index f021608d..d345a9b3 100644 --- a/app/lib/features/chat/features/chat_store/domain/drift_chat_controller.dart +++ b/app/lib/features/chat/features/chat_store/domain/drift_chat_controller.dart @@ -17,30 +17,26 @@ class DriftChatController implements ChatController { late final BehaviorSubject> _intermediateMessages; DriftChatController(this._dao, {required this.chatId}) { - final chatMessagesStream = _dao - .chatMessages(chatId: chatId) - .map( - (data) => Message.fromJson( - jsonDecode(data.messageJson) as Map, - ), - ) - .watch(); + final chatMessagesStream = + _dao + .chatMessages(chatId: chatId) + .map( + (data) => Message.fromJson( + jsonDecode(data.messageJson) as Map, + ), + ) + .watch(); _intermediateMessages = BehaviorSubject.seeded({}); - _mergedMessagesStream = Rx.combineLatest2( - chatMessagesStream, - _intermediateMessages, - (a, b) { - if (a.isNotEmpty && b.isNotEmpty) { - return [ - for (final message in a) b[message.id] ?? message, - ]; - } + _mergedMessagesStream = + Rx.combineLatest2(chatMessagesStream, _intermediateMessages, (a, b) { + if (a.isNotEmpty && b.isNotEmpty) { + return [for (final message in a) b[message.id] ?? message]; + } - return a; - }, - ).shareValue(); + return a; + }).shareValue(); //Set initial messages unawaited( @@ -80,9 +76,10 @@ class DriftChatController implements ChatController { @override Future remove(Message message) async { - final index = await _dao - .messageIndex(chatId: chatId, messageId: message.id) - .getSingleOrNull(); + final index = + await _dao + .messageIndex(chatId: chatId, messageId: message.id) + .getSingleOrNull(); if (index != null) { await _dao.removeMessage(messageId: message.id); diff --git a/app/lib/features/chat/features/chat_store/domain/providers.g.dart b/app/lib/features/chat/features/chat_store/domain/providers.g.dart index 4fac3ea2..f0a04a82 100644 --- a/app/lib/features/chat/features/chat_store/domain/providers.g.dart +++ b/app/lib/features/chat/features/chat_store/domain/providers.g.dart @@ -39,21 +39,15 @@ class ChatControllerFamily extends Family { const ChatControllerFamily(); /// See also [chatController]. - ChatControllerProvider call( - String chatId, - ) { - return ChatControllerProvider( - chatId, - ); + ChatControllerProvider call(String chatId) { + return ChatControllerProvider(chatId); } @override ChatControllerProvider getProviderOverride( covariant ChatControllerProvider provider, ) { - return call( - provider.chatId, - ); + return call(provider.chatId); } static const Iterable? _dependencies = null; @@ -74,24 +68,20 @@ class ChatControllerFamily extends Family { /// See also [chatController]. class ChatControllerProvider extends AutoDisposeProvider { /// See also [chatController]. - ChatControllerProvider( - String chatId, - ) : this._internal( - (ref) => chatController( - ref as ChatControllerRef, - chatId, - ), - from: chatControllerProvider, - name: r'chatControllerProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$chatControllerHash, - dependencies: ChatControllerFamily._dependencies, - allTransitiveDependencies: - ChatControllerFamily._allTransitiveDependencies, - chatId: chatId, - ); + ChatControllerProvider(String chatId) + : this._internal( + (ref) => chatController(ref as ChatControllerRef, chatId), + from: chatControllerProvider, + name: r'chatControllerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$chatControllerHash, + dependencies: ChatControllerFamily._dependencies, + allTransitiveDependencies: + ChatControllerFamily._allTransitiveDependencies, + chatId: chatId, + ); ChatControllerProvider._internal( super._createNotifier, { @@ -170,21 +160,15 @@ class ChatMetadataFamily extends Family> { const ChatMetadataFamily(); /// See also [chatMetadata]. - ChatMetadataProvider call( - String chatId, - ) { - return ChatMetadataProvider( - chatId, - ); + ChatMetadataProvider call(String chatId) { + return ChatMetadataProvider(chatId); } @override ChatMetadataProvider getProviderOverride( covariant ChatMetadataProvider provider, ) { - return call( - provider.chatId, - ); + return call(provider.chatId); } static const Iterable? _dependencies = null; @@ -205,24 +189,20 @@ class ChatMetadataFamily extends Family> { /// See also [chatMetadata]. class ChatMetadataProvider extends AutoDisposeStreamProvider { /// See also [chatMetadata]. - ChatMetadataProvider( - String chatId, - ) : this._internal( - (ref) => chatMetadata( - ref as ChatMetadataRef, - chatId, - ), - from: chatMetadataProvider, - name: r'chatMetadataProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$chatMetadataHash, - dependencies: ChatMetadataFamily._dependencies, - allTransitiveDependencies: - ChatMetadataFamily._allTransitiveDependencies, - chatId: chatId, - ); + ChatMetadataProvider(String chatId) + : this._internal( + (ref) => chatMetadata(ref as ChatMetadataRef, chatId), + from: chatMetadataProvider, + name: r'chatMetadataProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$chatMetadataHash, + dependencies: ChatMetadataFamily._dependencies, + allTransitiveDependencies: + ChatMetadataFamily._allTransitiveDependencies, + chatId: chatId, + ); ChatMetadataProvider._internal( super._createNotifier, { @@ -288,5 +268,6 @@ class _ChatMetadataProviderElement @override String get chatId => (origin as ChatMetadataProvider).chatId; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/chat/features/chat_store/domain/repositories/chat_message.dart b/app/lib/features/chat/features/chat_store/domain/repositories/chat_message.dart index e8e041f3..3bedca24 100644 --- a/app/lib/features/chat/features/chat_store/domain/repositories/chat_message.dart +++ b/app/lib/features/chat/features/chat_store/domain/repositories/chat_message.dart @@ -31,9 +31,7 @@ class ChatMessageRepository extends _$ChatMessageRepository { id: uuid.v4(), authorId: author.user.id, createdAt: DateTime.now().toUtc(), - metadata: { - 'type': 'typing', - }, + metadata: {'type': 'typing'}, ), ); @@ -65,12 +63,13 @@ class ChatMessageRepository extends _$ChatMessageRepository { createdAt: DateTime.now().toUtc(), text: content, isOnlyEmoji: isOnlyEmoji(content), - metadata: (hideFromModelChatHistory || (toolCalls?.isNotEmpty ?? false)) - ? { - 'toolCalls': toolCalls?.map((tool) => tool.toMap()).toList(), - if (hideFromModelChatHistory) 'hideFromModelChatHistory': true, - } - : null, + metadata: + (hideFromModelChatHistory || (toolCalls?.isNotEmpty ?? false)) + ? { + 'toolCalls': toolCalls?.map((tool) => tool.toMap()).toList(), + if (hideFromModelChatHistory) 'hideFromModelChatHistory': true, + } + : null, ); return Result.fromAsync(() async { diff --git a/app/lib/features/chat/features/chat_store/domain/repositories/chat_message.g.dart b/app/lib/features/chat/features/chat_store/domain/repositories/chat_message.g.dart index 82a2cd20..c10c4ecf 100644 --- a/app/lib/features/chat/features/chat_store/domain/repositories/chat_message.g.dart +++ b/app/lib/features/chat/features/chat_store/domain/repositories/chat_message.g.dart @@ -34,9 +34,7 @@ abstract class _$ChatMessageRepository extends BuildlessAutoDisposeNotifier { late final String chatId; - void build( - String chatId, - ); + void build(String chatId); } /// See also [ChatMessageRepository]. @@ -49,21 +47,15 @@ class ChatMessageRepositoryFamily extends Family { const ChatMessageRepositoryFamily(); /// See also [ChatMessageRepository]. - ChatMessageRepositoryProvider call( - String chatId, - ) { - return ChatMessageRepositoryProvider( - chatId, - ); + ChatMessageRepositoryProvider call(String chatId) { + return ChatMessageRepositoryProvider(chatId); } @override ChatMessageRepositoryProvider getProviderOverride( covariant ChatMessageRepositoryProvider provider, ) { - return call( - provider.chatId, - ); + return call(provider.chatId); } static const Iterable? _dependencies = null; @@ -85,21 +77,20 @@ class ChatMessageRepositoryFamily extends Family { class ChatMessageRepositoryProvider extends AutoDisposeNotifierProviderImpl { /// See also [ChatMessageRepository]. - ChatMessageRepositoryProvider( - String chatId, - ) : this._internal( - () => ChatMessageRepository()..chatId = chatId, - from: chatMessageRepositoryProvider, - name: r'chatMessageRepositoryProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$chatMessageRepositoryHash, - dependencies: ChatMessageRepositoryFamily._dependencies, - allTransitiveDependencies: - ChatMessageRepositoryFamily._allTransitiveDependencies, - chatId: chatId, - ); + ChatMessageRepositoryProvider(String chatId) + : this._internal( + () => ChatMessageRepository()..chatId = chatId, + from: chatMessageRepositoryProvider, + name: r'chatMessageRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$chatMessageRepositoryHash, + dependencies: ChatMessageRepositoryFamily._dependencies, + allTransitiveDependencies: + ChatMessageRepositoryFamily._allTransitiveDependencies, + chatId: chatId, + ); ChatMessageRepositoryProvider._internal( super._createNotifier, { @@ -114,12 +105,8 @@ class ChatMessageRepositoryProvider final String chatId; @override - void runNotifierBuild( - covariant ChatMessageRepository notifier, - ) { - return notifier.build( - chatId, - ); + void runNotifierBuild(covariant ChatMessageRepository notifier) { + return notifier.build(chatId); } @override @@ -140,7 +127,7 @@ class ChatMessageRepositoryProvider @override AutoDisposeNotifierProviderElement - createElement() { + createElement() { return _ChatMessageRepositoryProviderElement(this); } @@ -173,5 +160,6 @@ class _ChatMessageRepositoryProviderElement @override String get chatId => (origin as ChatMessageRepositoryProvider).chatId; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/chat/features/chat_store/domain/repositories/chat_metadata.g.dart b/app/lib/features/chat/features/chat_store/domain/repositories/chat_metadata.g.dart index 71e0d410..2df00afe 100644 --- a/app/lib/features/chat/features/chat_store/domain/repositories/chat_metadata.g.dart +++ b/app/lib/features/chat/features/chat_store/domain/repositories/chat_metadata.g.dart @@ -34,9 +34,7 @@ abstract class _$ChatMetadataRepository extends BuildlessAutoDisposeNotifier { late final String chatId; - void build( - String chatId, - ); + void build(String chatId); } /// See also [ChatMetadataRepository]. @@ -49,21 +47,15 @@ class ChatMetadataRepositoryFamily extends Family { const ChatMetadataRepositoryFamily(); /// See also [ChatMetadataRepository]. - ChatMetadataRepositoryProvider call( - String chatId, - ) { - return ChatMetadataRepositoryProvider( - chatId, - ); + ChatMetadataRepositoryProvider call(String chatId) { + return ChatMetadataRepositoryProvider(chatId); } @override ChatMetadataRepositoryProvider getProviderOverride( covariant ChatMetadataRepositoryProvider provider, ) { - return call( - provider.chatId, - ); + return call(provider.chatId); } static const Iterable? _dependencies = null; @@ -85,21 +77,20 @@ class ChatMetadataRepositoryFamily extends Family { class ChatMetadataRepositoryProvider extends AutoDisposeNotifierProviderImpl { /// See also [ChatMetadataRepository]. - ChatMetadataRepositoryProvider( - String chatId, - ) : this._internal( - () => ChatMetadataRepository()..chatId = chatId, - from: chatMetadataRepositoryProvider, - name: r'chatMetadataRepositoryProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$chatMetadataRepositoryHash, - dependencies: ChatMetadataRepositoryFamily._dependencies, - allTransitiveDependencies: - ChatMetadataRepositoryFamily._allTransitiveDependencies, - chatId: chatId, - ); + ChatMetadataRepositoryProvider(String chatId) + : this._internal( + () => ChatMetadataRepository()..chatId = chatId, + from: chatMetadataRepositoryProvider, + name: r'chatMetadataRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$chatMetadataRepositoryHash, + dependencies: ChatMetadataRepositoryFamily._dependencies, + allTransitiveDependencies: + ChatMetadataRepositoryFamily._allTransitiveDependencies, + chatId: chatId, + ); ChatMetadataRepositoryProvider._internal( super._createNotifier, { @@ -114,12 +105,8 @@ class ChatMetadataRepositoryProvider final String chatId; @override - void runNotifierBuild( - covariant ChatMetadataRepository notifier, - ) { - return notifier.build( - chatId, - ); + void runNotifierBuild(covariant ChatMetadataRepository notifier) { + return notifier.build(chatId); } @override @@ -140,7 +127,7 @@ class ChatMetadataRepositoryProvider @override AutoDisposeNotifierProviderElement - createElement() { + createElement() { return _ChatMetadataRepositoryProviderElement(this); } @@ -173,5 +160,6 @@ class _ChatMetadataRepositoryProviderElement @override String get chatId => (origin as ChatMetadataRepositoryProvider).chatId; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/chat_archive/data/database/daos/search.dart b/app/lib/features/chat_archive/data/database/daos/search.dart index 8d4ceaa7..47c41779 100644 --- a/app/lib/features/chat_archive/data/database/daos/search.dart +++ b/app/lib/features/chat_archive/data/database/daos/search.dart @@ -24,9 +24,7 @@ class SearchDao extends DatabaseAccessor return db.chat.insertOne( chat, onConflict: DoUpdate( - (old) => ChatCompanion.custom( - content: Variable(chat.content.value), - ), + (old) => ChatCompanion.custom(content: Variable(chat.content.value)), ), ); } diff --git a/app/lib/features/chat_archive/data/database/database.dart b/app/lib/features/chat_archive/data/database/database.dart index 165e078b..7ed123f1 100644 --- a/app/lib/features/chat_archive/data/database/database.dart +++ b/app/lib/features/chat_archive/data/database/database.dart @@ -4,10 +4,7 @@ import 'package:lensai/features/search/domain/fts_tokenizer.dart'; part 'database.g.dart'; -@DriftDatabase( - include: {'database.drift'}, - daos: [SearchDao], -) +@DriftDatabase(include: {'database.drift'}, daos: [SearchDao]) class ChatSearchDatabase extends _$ChatSearchDatabase with TrigramQueryBuilderMixin { @override diff --git a/app/lib/features/chat_archive/data/database/database.g.dart b/app/lib/features/chat_archive/data/database/database.g.dart index f763219a..46fed13e 100644 --- a/app/lib/features/chat_archive/data/database/database.g.dart +++ b/app/lib/features/chat_archive/data/database/database.g.dart @@ -9,20 +9,29 @@ class Chat extends Table with TableInfo { final String? _alias; Chat(this.attachedDatabase, [this._alias]); late final GeneratedColumn fileName = GeneratedColumn( - 'file_name', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'PRIMARY KEY NOT NULL'); + 'file_name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'PRIMARY KEY NOT NULL', + ); late final GeneratedColumn title = GeneratedColumn( - 'title', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'title', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn content = GeneratedColumn( - 'content', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'content', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); @override List get $columns => [fileName, title, content]; @override @@ -36,12 +45,21 @@ class Chat extends Table with TableInfo { ChatData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return ChatData( - fileName: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}file_name'])!, - title: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}title'])!, - content: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}content'])!, + fileName: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}file_name'], + )!, + title: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}title'], + )!, + content: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}content'], + )!, ); } @@ -58,8 +76,11 @@ class ChatData extends DataClass implements Insertable { final String fileName; final String title; final String content; - const ChatData( - {required this.fileName, required this.title, required this.content}); + const ChatData({ + required this.fileName, + required this.title, + required this.content, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -69,8 +90,10 @@ class ChatData extends DataClass implements Insertable { return map; } - factory ChatData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory ChatData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return ChatData( fileName: serializer.fromJson(json['file_name']), @@ -139,9 +162,9 @@ class ChatCompanion extends UpdateCompanion { required String title, required String content, this.rowid = const Value.absent(), - }) : fileName = Value(fileName), - title = Value(title), - content = Value(content); + }) : fileName = Value(fileName), + title = Value(title), + content = Value(content); static Insertable custom({ Expression? fileName, Expression? title, @@ -156,11 +179,12 @@ class ChatCompanion extends UpdateCompanion { }); } - ChatCompanion copyWith( - {Value? fileName, - Value? title, - Value? content, - Value? rowid}) { + ChatCompanion copyWith({ + Value? fileName, + Value? title, + Value? content, + Value? rowid, + }) { return ChatCompanion( fileName: fileName ?? this.fileName, title: title ?? this.title, @@ -206,15 +230,21 @@ class ChatFts extends Table final String? _alias; ChatFts(this.attachedDatabase, [this._alias]); late final GeneratedColumn title = GeneratedColumn( - 'title', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: ''); + 'title', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: '', + ); late final GeneratedColumn content = GeneratedColumn( - 'content', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: ''); + 'content', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: '', + ); @override List get $columns => [title, content]; @override @@ -228,10 +258,16 @@ class ChatFts extends Table ChatFt map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return ChatFt( - title: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}title'])!, - content: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}content'])!, + title: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}title'], + )!, + content: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}content'], + )!, ); } @@ -259,8 +295,10 @@ class ChatFt extends DataClass implements Insertable { return map; } - factory ChatFt.fromJson(Map json, - {ValueSerializer? serializer}) { + factory ChatFt.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return ChatFt( title: serializer.fromJson(json['title']), @@ -276,10 +314,8 @@ class ChatFt extends DataClass implements Insertable { }; } - ChatFt copyWith({String? title, String? content}) => ChatFt( - title: title ?? this.title, - content: content ?? this.content, - ); + ChatFt copyWith({String? title, String? content}) => + ChatFt(title: title ?? this.title, content: content ?? this.content); ChatFt copyWithCompanion(ChatFtsCompanion data) { return ChatFt( title: data.title.present ? data.title.value : this.title, @@ -319,8 +355,8 @@ class ChatFtsCompanion extends UpdateCompanion { required String title, required String content, this.rowid = const Value.absent(), - }) : title = Value(title), - content = Value(content); + }) : title = Value(title), + content = Value(content); static Insertable custom({ Expression? title, Expression? content, @@ -333,8 +369,11 @@ class ChatFtsCompanion extends UpdateCompanion { }); } - ChatFtsCompanion copyWith( - {Value? title, Value? content, Value? rowid}) { + ChatFtsCompanion copyWith({ + Value? title, + Value? content, + Value? rowid, + }) { return ChatFtsCompanion( title: title ?? this.title, content: content ?? this.content, @@ -374,86 +413,95 @@ abstract class _$ChatSearchDatabase extends GeneratedDatabase { late final Chat chat = Chat(this); late final ChatFts chatFts = ChatFts(this); late final Trigger chatAfterInsert = Trigger( - 'CREATE TRIGGER chat_after_insert AFTER INSERT ON chat BEGIN INSERT INTO chat_fts ("rowid", title, content) VALUES (new."rowid", new.title, new.content);END', - 'chat_after_insert'); + 'CREATE TRIGGER chat_after_insert AFTER INSERT ON chat BEGIN INSERT INTO chat_fts ("rowid", title, content) VALUES (new."rowid", new.title, new.content);END', + 'chat_after_insert', + ); late final Trigger chatAfterDelete = Trigger( - 'CREATE TRIGGER chat_after_delete AFTER DELETE ON chat BEGIN INSERT INTO chat_fts (chat_fts, "rowid", title, content) VALUES (\'delete\', old."rowid", old.title, old.content);END', - 'chat_after_delete'); + 'CREATE TRIGGER chat_after_delete AFTER DELETE ON chat BEGIN INSERT INTO chat_fts (chat_fts, "rowid", title, content) VALUES (\'delete\', old."rowid", old.title, old.content);END', + 'chat_after_delete', + ); late final Trigger chatAfterUpdate = Trigger( - 'CREATE TRIGGER chat_after_update AFTER UPDATE ON chat BEGIN INSERT INTO chat_fts (chat_fts, "rowid", title, content) VALUES (\'delete\', old."rowid", old.title, old.content);INSERT INTO chat_fts ("rowid", title, content) VALUES (new."rowid", new.title, new.content);END', - 'chat_after_update'); + 'CREATE TRIGGER chat_after_update AFTER UPDATE ON chat BEGIN INSERT INTO chat_fts (chat_fts, "rowid", title, content) VALUES (\'delete\', old."rowid", old.title, old.content);INSERT INTO chat_fts ("rowid", title, content) VALUES (new."rowid", new.title, new.content);END', + 'chat_after_update', + ); late final SearchDao searchDao = SearchDao(this as ChatSearchDatabase); - Selectable chatQuery( - {required String beforeMatch, - required String afterMatch, - required String ellipsis, - required int snippetLength, - required String query}) { + Selectable chatQuery({ + required String beforeMatch, + required String afterMatch, + required String ellipsis, + required int snippetLength, + required String query, + }) { return customSelect( - 'SELECT c.file_name, highlight(chat_fts, 0, ?1, ?2) AS title, snippet(chat_fts, 1, ?1, ?2, ?3, ?4) AS content_snippet FROM chat_fts(?5)AS fts INNER JOIN chat AS c ON c."rowid" = fts."rowid" ORDER BY RANK', - variables: [ - Variable(beforeMatch), - Variable(afterMatch), - Variable(ellipsis), - Variable(snippetLength), - Variable(query) - ], - readsFrom: { - chat, - chatFts, - }).map((QueryRow row) => ChatQueryResult( - fileName: row.read('file_name'), - title: row.readNullable('title'), - contentSnippet: row.readNullable('content_snippet'), - )); + 'SELECT c.file_name, highlight(chat_fts, 0, ?1, ?2) AS title, snippet(chat_fts, 1, ?1, ?2, ?3, ?4) AS content_snippet FROM chat_fts(?5)AS fts INNER JOIN chat AS c ON c."rowid" = fts."rowid" ORDER BY RANK', + variables: [ + Variable(beforeMatch), + Variable(afterMatch), + Variable(ellipsis), + Variable(snippetLength), + Variable(query), + ], + readsFrom: {chat, chatFts}, + ).map( + (QueryRow row) => ChatQueryResult( + fileName: row.read('file_name'), + title: row.readNullable('title'), + contentSnippet: row.readNullable('content_snippet'), + ), + ); } @override Iterable> get allTables => allSchemaEntities.whereType>(); @override - List get allSchemaEntities => - [chat, chatFts, chatAfterInsert, chatAfterDelete, chatAfterUpdate]; + List get allSchemaEntities => [ + chat, + chatFts, + chatAfterInsert, + chatAfterDelete, + chatAfterUpdate, + ]; @override - StreamQueryUpdateRules get streamUpdateRules => const StreamQueryUpdateRules( - [ - WritePropagation( - on: TableUpdateQuery.onTableName('chat', - limitUpdateKind: UpdateKind.insert), - result: [ - TableUpdate('chat_fts', kind: UpdateKind.insert), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('chat', - limitUpdateKind: UpdateKind.delete), - result: [ - TableUpdate('chat_fts', kind: UpdateKind.insert), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('chat', - limitUpdateKind: UpdateKind.update), - result: [ - TableUpdate('chat_fts', kind: UpdateKind.insert), - ], - ), - ], - ); + StreamQueryUpdateRules get streamUpdateRules => const StreamQueryUpdateRules([ + WritePropagation( + on: TableUpdateQuery.onTableName( + 'chat', + limitUpdateKind: UpdateKind.insert, + ), + result: [TableUpdate('chat_fts', kind: UpdateKind.insert)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'chat', + limitUpdateKind: UpdateKind.delete, + ), + result: [TableUpdate('chat_fts', kind: UpdateKind.insert)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'chat', + limitUpdateKind: UpdateKind.update, + ), + result: [TableUpdate('chat_fts', kind: UpdateKind.insert)], + ), + ]); } -typedef $ChatCreateCompanionBuilder = ChatCompanion Function({ - required String fileName, - required String title, - required String content, - Value rowid, -}); -typedef $ChatUpdateCompanionBuilder = ChatCompanion Function({ - Value fileName, - Value title, - Value content, - Value rowid, -}); +typedef $ChatCreateCompanionBuilder = + ChatCompanion Function({ + required String fileName, + required String title, + required String content, + Value rowid, + }); +typedef $ChatUpdateCompanionBuilder = + ChatCompanion Function({ + Value fileName, + Value title, + Value content, + Value rowid, + }); class $ChatFilterComposer extends Composer<_$ChatSearchDatabase, Chat> { $ChatFilterComposer({ @@ -464,13 +512,19 @@ class $ChatFilterComposer extends Composer<_$ChatSearchDatabase, Chat> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get fileName => $composableBuilder( - column: $table.fileName, builder: (column) => ColumnFilters(column)); + column: $table.fileName, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get title => $composableBuilder( - column: $table.title, builder: (column) => ColumnFilters(column)); + column: $table.title, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get content => $composableBuilder( - column: $table.content, builder: (column) => ColumnFilters(column)); + column: $table.content, + builder: (column) => ColumnFilters(column), + ); } class $ChatOrderingComposer extends Composer<_$ChatSearchDatabase, Chat> { @@ -482,13 +536,19 @@ class $ChatOrderingComposer extends Composer<_$ChatSearchDatabase, Chat> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get fileName => $composableBuilder( - column: $table.fileName, builder: (column) => ColumnOrderings(column)); + column: $table.fileName, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get title => $composableBuilder( - column: $table.title, builder: (column) => ColumnOrderings(column)); + column: $table.title, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get content => $composableBuilder( - column: $table.content, builder: (column) => ColumnOrderings(column)); + column: $table.content, + builder: (column) => ColumnOrderings(column), + ); } class $ChatAnnotationComposer extends Composer<_$ChatSearchDatabase, Chat> { @@ -509,81 +569,97 @@ class $ChatAnnotationComposer extends Composer<_$ChatSearchDatabase, Chat> { $composableBuilder(column: $table.content, builder: (column) => column); } -class $ChatTableManager extends RootTableManager< - _$ChatSearchDatabase, - Chat, - ChatData, - $ChatFilterComposer, - $ChatOrderingComposer, - $ChatAnnotationComposer, - $ChatCreateCompanionBuilder, - $ChatUpdateCompanionBuilder, - (ChatData, BaseReferences<_$ChatSearchDatabase, Chat, ChatData>), - ChatData, - PrefetchHooks Function()> { +class $ChatTableManager + extends + RootTableManager< + _$ChatSearchDatabase, + Chat, + ChatData, + $ChatFilterComposer, + $ChatOrderingComposer, + $ChatAnnotationComposer, + $ChatCreateCompanionBuilder, + $ChatUpdateCompanionBuilder, + (ChatData, BaseReferences<_$ChatSearchDatabase, Chat, ChatData>), + ChatData, + PrefetchHooks Function() + > { $ChatTableManager(_$ChatSearchDatabase db, Chat table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $ChatFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $ChatOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $ChatAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value fileName = const Value.absent(), - Value title = const Value.absent(), - Value content = const Value.absent(), - Value rowid = const Value.absent(), - }) => - ChatCompanion( - fileName: fileName, - title: title, - content: content, - rowid: rowid, - ), - createCompanionCallback: ({ - required String fileName, - required String title, - required String content, - Value rowid = const Value.absent(), - }) => - ChatCompanion.insert( - fileName: fileName, - title: title, - content: content, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $ChatFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $ChatOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $ChatAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value fileName = const Value.absent(), + Value title = const Value.absent(), + Value content = const Value.absent(), + Value rowid = const Value.absent(), + }) => ChatCompanion( + fileName: fileName, + title: title, + content: content, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String fileName, + required String title, + required String content, + Value rowid = const Value.absent(), + }) => ChatCompanion.insert( + fileName: fileName, + title: title, + content: content, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $ChatProcessedTableManager = ProcessedTableManager< - _$ChatSearchDatabase, - Chat, - ChatData, - $ChatFilterComposer, - $ChatOrderingComposer, - $ChatAnnotationComposer, - $ChatCreateCompanionBuilder, - $ChatUpdateCompanionBuilder, - (ChatData, BaseReferences<_$ChatSearchDatabase, Chat, ChatData>), - ChatData, - PrefetchHooks Function()>; -typedef $ChatFtsCreateCompanionBuilder = ChatFtsCompanion Function({ - required String title, - required String content, - Value rowid, -}); -typedef $ChatFtsUpdateCompanionBuilder = ChatFtsCompanion Function({ - Value title, - Value content, - Value rowid, -}); +typedef $ChatProcessedTableManager = + ProcessedTableManager< + _$ChatSearchDatabase, + Chat, + ChatData, + $ChatFilterComposer, + $ChatOrderingComposer, + $ChatAnnotationComposer, + $ChatCreateCompanionBuilder, + $ChatUpdateCompanionBuilder, + (ChatData, BaseReferences<_$ChatSearchDatabase, Chat, ChatData>), + ChatData, + PrefetchHooks Function() + >; +typedef $ChatFtsCreateCompanionBuilder = + ChatFtsCompanion Function({ + required String title, + required String content, + Value rowid, + }); +typedef $ChatFtsUpdateCompanionBuilder = + ChatFtsCompanion Function({ + Value title, + Value content, + Value rowid, + }); class $ChatFtsFilterComposer extends Composer<_$ChatSearchDatabase, ChatFts> { $ChatFtsFilterComposer({ @@ -594,10 +670,14 @@ class $ChatFtsFilterComposer extends Composer<_$ChatSearchDatabase, ChatFts> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get title => $composableBuilder( - column: $table.title, builder: (column) => ColumnFilters(column)); + column: $table.title, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get content => $composableBuilder( - column: $table.content, builder: (column) => ColumnFilters(column)); + column: $table.content, + builder: (column) => ColumnFilters(column), + ); } class $ChatFtsOrderingComposer extends Composer<_$ChatSearchDatabase, ChatFts> { @@ -609,10 +689,14 @@ class $ChatFtsOrderingComposer extends Composer<_$ChatSearchDatabase, ChatFts> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get title => $composableBuilder( - column: $table.title, builder: (column) => ColumnOrderings(column)); + column: $table.title, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get content => $composableBuilder( - column: $table.content, builder: (column) => ColumnOrderings(column)); + column: $table.content, + builder: (column) => ColumnOrderings(column), + ); } class $ChatFtsAnnotationComposer @@ -631,67 +715,81 @@ class $ChatFtsAnnotationComposer $composableBuilder(column: $table.content, builder: (column) => column); } -class $ChatFtsTableManager extends RootTableManager< - _$ChatSearchDatabase, - ChatFts, - ChatFt, - $ChatFtsFilterComposer, - $ChatFtsOrderingComposer, - $ChatFtsAnnotationComposer, - $ChatFtsCreateCompanionBuilder, - $ChatFtsUpdateCompanionBuilder, - (ChatFt, BaseReferences<_$ChatSearchDatabase, ChatFts, ChatFt>), - ChatFt, - PrefetchHooks Function()> { +class $ChatFtsTableManager + extends + RootTableManager< + _$ChatSearchDatabase, + ChatFts, + ChatFt, + $ChatFtsFilterComposer, + $ChatFtsOrderingComposer, + $ChatFtsAnnotationComposer, + $ChatFtsCreateCompanionBuilder, + $ChatFtsUpdateCompanionBuilder, + (ChatFt, BaseReferences<_$ChatSearchDatabase, ChatFts, ChatFt>), + ChatFt, + PrefetchHooks Function() + > { $ChatFtsTableManager(_$ChatSearchDatabase db, ChatFts table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $ChatFtsFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $ChatFtsOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $ChatFtsAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value title = const Value.absent(), - Value content = const Value.absent(), - Value rowid = const Value.absent(), - }) => - ChatFtsCompanion( - title: title, - content: content, - rowid: rowid, - ), - createCompanionCallback: ({ - required String title, - required String content, - Value rowid = const Value.absent(), - }) => - ChatFtsCompanion.insert( - title: title, - content: content, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $ChatFtsFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $ChatFtsOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $ChatFtsAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value title = const Value.absent(), + Value content = const Value.absent(), + Value rowid = const Value.absent(), + }) => ChatFtsCompanion( + title: title, + content: content, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String title, + required String content, + Value rowid = const Value.absent(), + }) => ChatFtsCompanion.insert( + title: title, + content: content, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $ChatFtsProcessedTableManager = ProcessedTableManager< - _$ChatSearchDatabase, - ChatFts, - ChatFt, - $ChatFtsFilterComposer, - $ChatFtsOrderingComposer, - $ChatFtsAnnotationComposer, - $ChatFtsCreateCompanionBuilder, - $ChatFtsUpdateCompanionBuilder, - (ChatFt, BaseReferences<_$ChatSearchDatabase, ChatFts, ChatFt>), - ChatFt, - PrefetchHooks Function()>; +typedef $ChatFtsProcessedTableManager = + ProcessedTableManager< + _$ChatSearchDatabase, + ChatFts, + ChatFt, + $ChatFtsFilterComposer, + $ChatFtsOrderingComposer, + $ChatFtsAnnotationComposer, + $ChatFtsCreateCompanionBuilder, + $ChatFtsUpdateCompanionBuilder, + (ChatFt, BaseReferences<_$ChatSearchDatabase, ChatFts, ChatFt>), + ChatFt, + PrefetchHooks Function() + >; class $ChatSearchDatabaseManager { final _$ChatSearchDatabase _db; @@ -704,9 +802,5 @@ class ChatQueryResult { final String fileName; final String? title; final String? contentSnippet; - ChatQueryResult({ - required this.fileName, - this.title, - this.contentSnippet, - }); + ChatQueryResult({required this.fileName, this.title, this.contentSnippet}); } diff --git a/app/lib/features/chat_archive/data/providers.g.dart b/app/lib/features/chat_archive/data/providers.g.dart index 6d23314d..076892e7 100644 --- a/app/lib/features/chat_archive/data/providers.g.dart +++ b/app/lib/features/chat_archive/data/providers.g.dart @@ -13,14 +13,15 @@ String _$chatSearchDatabaseHash() => @ProviderFor(chatSearchDatabase) final chatSearchDatabaseProvider = AutoDisposeProvider.internal( - chatSearchDatabase, - name: r'chatSearchDatabaseProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$chatSearchDatabaseHash, - dependencies: null, - allTransitiveDependencies: null, -); + chatSearchDatabase, + name: r'chatSearchDatabaseProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$chatSearchDatabaseHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element diff --git a/app/lib/features/chat_archive/data/services/file.dart b/app/lib/features/chat_archive/data/services/file.dart index 314688ca..7d7b44aa 100644 --- a/app/lib/features/chat_archive/data/services/file.dart +++ b/app/lib/features/chat_archive/data/services/file.dart @@ -11,19 +11,21 @@ class ChatArchiveFileService extends _$ChatArchiveFileService { final Future _archiveDirectoryFuture; ChatArchiveFileService() - : _archiveDirectoryFuture = - path_provider.getApplicationDocumentsDirectory().then( - (documentDirectory) => Directory( - path.join(documentDirectory.path, 'archive', 'chat'), - ).create(recursive: true), - ); + : _archiveDirectoryFuture = path_provider + .getApplicationDocumentsDirectory() + .then( + (documentDirectory) => Directory( + path.join(documentDirectory.path, 'archive', 'chat'), + ).create(recursive: true), + ); Future> list() { return _archiveDirectoryFuture.then( - (value) => value - .list() - .where((file) => path.extension(file.path) == '.md') - .toList(), + (value) => + value + .list() + .where((file) => path.extension(file.path) == '.md') + .toList(), ); } @@ -56,8 +58,9 @@ class ChatArchiveFileService extends _$ChatArchiveFileService { Stream _directoryStream() async* { final watcher = DirectoryWatcher( - await _archiveDirectoryFuture - .then((archiveDirectory) => archiveDirectory.absolute.path), + await _archiveDirectoryFuture.then( + (archiveDirectory) => archiveDirectory.absolute.path, + ), ); yield* watcher.events.where((event) => path.extension(event.path) == '.md'); diff --git a/app/lib/features/chat_archive/data/services/file.g.dart b/app/lib/features/chat_archive/data/services/file.g.dart index c7cd9f09..dab2ab80 100644 --- a/app/lib/features/chat_archive/data/services/file.g.dart +++ b/app/lib/features/chat_archive/data/services/file.g.dart @@ -12,12 +12,15 @@ String _$chatArchiveFileServiceHash() => /// See also [ChatArchiveFileService]. @ProviderFor(ChatArchiveFileService) final chatArchiveFileServiceProvider = AutoDisposeNotifierProvider< - ChatArchiveFileService, Raw>>.internal( + ChatArchiveFileService, + Raw> +>.internal( ChatArchiveFileService.new, name: r'chatArchiveFileServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$chatArchiveFileServiceHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$chatArchiveFileServiceHash, dependencies: null, allTransitiveDependencies: null, ); diff --git a/app/lib/features/chat_archive/domain/repositories/archive.dart b/app/lib/features/chat_archive/domain/repositories/archive.dart index fa81fb88..a2f5cf69 100644 --- a/app/lib/features/chat_archive/domain/repositories/archive.dart +++ b/app/lib/features/chat_archive/domain/repositories/archive.dart @@ -21,8 +21,9 @@ class ChatArchiveRepository extends _$ChatArchiveRepository { } Future> archiveChat(String fileName, Uri url) async { - final contentsResult = - await ref.read(kagiChatServiceProvider.notifier).downloadChat(url); + final contentsResult = await ref + .read(kagiChatServiceProvider.notifier) + .downloadChat(url); return contentsResult.flatMapAsync( (contents) => ref @@ -37,14 +38,15 @@ class ChatArchiveRepository extends _$ChatArchiveRepository { ); return contentsResult.fold( - (value) => (value == null) - ? Result.failure( - ErrorMessage( - source: 'Chat Archive', - message: 'Chat $fileName not found', - ), - ) - : Result.success(value), + (value) => + (value == null) + ? Result.failure( + ErrorMessage( + source: 'Chat Archive', + message: 'Chat $fileName not found', + ), + ) + : Result.success(value), onFailure: Result.failure, ); } @@ -55,17 +57,16 @@ class ChatArchiveRepository extends _$ChatArchiveRepository { yield* ConcatStream([ listArchivedChats().asStream(), - fileRepository.asyncMap( - (_) => listArchivedChats(), - ), + fileRepository.asyncMap((_) => listArchivedChats()), ]); } } @Riverpod() Future readArchivedChat(Ref ref, String fileName) async { - final result = - await ref.read(chatArchiveRepositoryProvider.notifier).readChat(fileName); + final result = await ref + .read(chatArchiveRepositoryProvider.notifier) + .readChat(fileName); return result.value; } diff --git a/app/lib/features/chat_archive/domain/repositories/archive.g.dart b/app/lib/features/chat_archive/domain/repositories/archive.g.dart index 6d96a748..2cc4037a 100644 --- a/app/lib/features/chat_archive/domain/repositories/archive.g.dart +++ b/app/lib/features/chat_archive/domain/repositories/archive.g.dart @@ -39,21 +39,15 @@ class ReadArchivedChatFamily extends Family> { const ReadArchivedChatFamily(); /// See also [readArchivedChat]. - ReadArchivedChatProvider call( - String fileName, - ) { - return ReadArchivedChatProvider( - fileName, - ); + ReadArchivedChatProvider call(String fileName) { + return ReadArchivedChatProvider(fileName); } @override ReadArchivedChatProvider getProviderOverride( covariant ReadArchivedChatProvider provider, ) { - return call( - provider.fileName, - ); + return call(provider.fileName); } static const Iterable? _dependencies = null; @@ -74,24 +68,20 @@ class ReadArchivedChatFamily extends Family> { /// See also [readArchivedChat]. class ReadArchivedChatProvider extends AutoDisposeFutureProvider { /// See also [readArchivedChat]. - ReadArchivedChatProvider( - String fileName, - ) : this._internal( - (ref) => readArchivedChat( - ref as ReadArchivedChatRef, - fileName, - ), - from: readArchivedChatProvider, - name: r'readArchivedChatProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$readArchivedChatHash, - dependencies: ReadArchivedChatFamily._dependencies, - allTransitiveDependencies: - ReadArchivedChatFamily._allTransitiveDependencies, - fileName: fileName, - ); + ReadArchivedChatProvider(String fileName) + : this._internal( + (ref) => readArchivedChat(ref as ReadArchivedChatRef, fileName), + from: readArchivedChatProvider, + name: r'readArchivedChatProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$readArchivedChatHash, + dependencies: ReadArchivedChatFamily._dependencies, + allTransitiveDependencies: + ReadArchivedChatFamily._allTransitiveDependencies, + fileName: fileName, + ); ReadArchivedChatProvider._internal( super._createNotifier, { @@ -150,7 +140,8 @@ mixin ReadArchivedChatRef on AutoDisposeFutureProviderRef { } class _ReadArchivedChatProviderElement - extends AutoDisposeFutureProviderElement with ReadArchivedChatRef { + extends AutoDisposeFutureProviderElement + with ReadArchivedChatRef { _ReadArchivedChatProviderElement(super.provider); @override @@ -163,12 +154,15 @@ String _$chatArchiveRepositoryHash() => /// See also [ChatArchiveRepository]. @ProviderFor(ChatArchiveRepository) final chatArchiveRepositoryProvider = AutoDisposeStreamNotifierProvider< - ChatArchiveRepository, List>.internal( + ChatArchiveRepository, + List +>.internal( ChatArchiveRepository.new, name: r'chatArchiveRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$chatArchiveRepositoryHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$chatArchiveRepositoryHash, dependencies: null, allTransitiveDependencies: null, ); diff --git a/app/lib/features/chat_archive/domain/repositories/search.dart b/app/lib/features/chat_archive/domain/repositories/search.dart index 4d464815..345cd733 100644 --- a/app/lib/features/chat_archive/domain/repositories/search.dart +++ b/app/lib/features/chat_archive/domain/repositories/search.dart @@ -74,13 +74,11 @@ class ChatArchiveSearchRepository extends _$ChatArchiveSearchRepository { ellipsis: ellipsis, ) .get() - .then( - (value) { - if (!_streamController.isClosed) { - _streamController.add(value); - } - }, - ); + .then((value) { + if (!_streamController.isClosed) { + _streamController.add(value); + } + }); } } @@ -96,23 +94,24 @@ class ChatArchiveSearchRepository extends _$ChatArchiveSearchRepository { await searchDatabase.searchDao.indexChats(await _availableChats()); _populatedCompleter.complete(); - final changeStreamSubscription = - ref.watch(chatArchiveFileServiceProvider).listen((event) async { - final chat = ChatEntity.fromFileName(path.basename(event.path)); + final changeStreamSubscription = ref + .watch(chatArchiveFileServiceProvider) + .listen((event) async { + final chat = ChatEntity.fromFileName(path.basename(event.path)); - switch (event.type) { - case ChangeType.ADD: - case ChangeType.MODIFY: - if (chat.name != null) { - final companion = await _readChat(chat); - if (companion != null) { - await searchDatabase.searchDao.upsertChat(companion); - } + switch (event.type) { + case ChangeType.ADD: + case ChangeType.MODIFY: + if (chat.name != null) { + final companion = await _readChat(chat); + if (companion != null) { + await searchDatabase.searchDao.upsertChat(companion); + } + } + case ChangeType.REMOVE: + await searchDatabase.searchDao.deleteChat(chat.fileName); } - case ChangeType.REMOVE: - await searchDatabase.searchDao.deleteChat(chat.fileName); - } - }); + }); ref.onDispose(() async { await changeStreamSubscription.cancel(); diff --git a/app/lib/features/chat_archive/domain/repositories/search.g.dart b/app/lib/features/chat_archive/domain/repositories/search.g.dart index f4f7e975..f2da377d 100644 --- a/app/lib/features/chat_archive/domain/repositories/search.g.dart +++ b/app/lib/features/chat_archive/domain/repositories/search.g.dart @@ -12,17 +12,20 @@ String _$chatArchiveSearchRepositoryHash() => /// See also [ChatArchiveSearchRepository]. @ProviderFor(ChatArchiveSearchRepository) final chatArchiveSearchRepositoryProvider = AutoDisposeStreamNotifierProvider< - ChatArchiveSearchRepository, List>.internal( + ChatArchiveSearchRepository, + List +>.internal( ChatArchiveSearchRepository.new, name: r'chatArchiveSearchRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$chatArchiveSearchRepositoryHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$chatArchiveSearchRepositoryHash, dependencies: null, allTransitiveDependencies: null, ); -typedef _$ChatArchiveSearchRepository - = AutoDisposeStreamNotifier>; +typedef _$ChatArchiveSearchRepository = + AutoDisposeStreamNotifier>; // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/chat_archive/presentation/screens/detail.dart b/app/lib/features/chat_archive/presentation/screens/detail.dart index c07d940a..5a7cd03c 100644 --- a/app/lib/features/chat_archive/presentation/screens/detail.dart +++ b/app/lib/features/chat_archive/presentation/screens/detail.dart @@ -62,9 +62,7 @@ class ChatArchiveDetailScreen extends HookConsumerWidget { onPressed: () async { if (chatAsync.valueOrNull != null) { await Clipboard.setData( - ClipboardData( - text: chatAsync.valueOrNull!, - ), + ClipboardData(text: chatAsync.valueOrNull!), ); } }, @@ -94,23 +92,24 @@ class ChatArchiveDetailScreen extends HookConsumerWidget { enabled: chatAsync.isLoading, justifyMultiLineText: false, child: chatAsync.when( - data: (data) => Markdown( - data: data, - selectable: true, - onTapLink: (text, href, title) async { - if (href != null) { - if (Uri.parse(href) case final Uri url) { - await ref - .read(tabRepositoryProvider.notifier) - .addTab(url: url); + data: + (data) => Markdown( + data: data, + selectable: true, + onTapLink: (text, href, title) async { + if (href != null) { + if (Uri.parse(href) case final Uri url) { + await ref + .read(tabRepositoryProvider.notifier) + .addTab(url: url); - if (context.mounted) { - context.go(BrowserRoute().location); + if (context.mounted) { + context.go(BrowserRoute().location); + } + } } - } - } - }, - ), + }, + ), error: (error, stackTrace) { return FailureWidget( title: 'Could not load chat', @@ -118,9 +117,7 @@ class ChatArchiveDetailScreen extends HookConsumerWidget { onRetry: () => ref.refresh(readArchivedChatProvider(fileName)), ); }, - loading: () => const Bone.multiText( - lines: 15, - ), + loading: () => const Bone.multiText(lines: 15), ), ), ); diff --git a/app/lib/features/chat_archive/presentation/screens/list.dart b/app/lib/features/chat_archive/presentation/screens/list.dart index 2100ff23..d225e087 100644 --- a/app/lib/features/chat_archive/presentation/screens/list.dart +++ b/app/lib/features/chat_archive/presentation/screens/list.dart @@ -48,8 +48,9 @@ class ChatArchiveListScreen extends HookConsumerWidget { ), onTap: () async { await context.push( - ChatArchiveDetailRoute(fileName: chat.fileName) - .location, + ChatArchiveDetailRoute( + fileName: chat.fileName, + ).location, ); }, ); @@ -65,13 +66,15 @@ class ChatArchiveListScreen extends HookConsumerWidget { onRetry: () => ref.refresh(chatArchiveRepositoryProvider), ); }, - loading: () => ListView.builder( - itemCount: 3, - itemBuilder: (context, index) => const ListTile( - title: Bone.text(), - subtitle: Bone.text(), - ), - ), + loading: + () => ListView.builder( + itemCount: 3, + itemBuilder: + (context, index) => const ListTile( + title: Bone.text(), + subtitle: Bone.text(), + ), + ), ), ), ); diff --git a/app/lib/features/chat_archive/presentation/screens/search.dart b/app/lib/features/chat_archive/presentation/screens/search.dart index 183b970f..5e96546f 100644 --- a/app/lib/features/chat_archive/presentation/screens/search.dart +++ b/app/lib/features/chat_archive/presentation/screens/search.dart @@ -56,58 +56,58 @@ class ChatArchiveSearchScreen extends HookConsumerWidget { ), body: resultsAsync.when( skipLoadingOnReload: true, - data: (chats) => FadingScroll( - fadingSize: 25, - builder: (context, controller) { - return ListView.builder( - controller: controller, - itemCount: chats.length, - itemBuilder: (context, index) { - final chat = chats[index]; - final chatEntity = ChatEntity.fromFileName(chat.fileName); + data: + (chats) => FadingScroll( + fadingSize: 25, + builder: (context, controller) { + return ListView.builder( + controller: controller, + itemCount: chats.length, + itemBuilder: (context, index) { + final chat = chats[index]; + final chatEntity = ChatEntity.fromFileName(chat.fileName); - return Card( - clipBehavior: Clip.antiAlias, - child: InkWell( - onTap: () async { - await context.push( - ChatArchiveDetailRoute(fileName: chat.fileName) - .location, - ); - }, - child: Padding( - padding: const EdgeInsets.all(16.0), - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - MarkdownBody( - data: '## ${chat.title}', + return Card( + clipBehavior: Clip.antiAlias, + child: InkWell( + onTap: () async { + await context.push( + ChatArchiveDetailRoute( + fileName: chat.fileName, + ).location, + ); + }, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + MarkdownBody(data: '## ${chat.title}'), + if (chatEntity.dateTime != null) + Text( + chatEntity.dateTime! + .formatWithMinutePrecision(), + ), + const SizedBox(height: 8.0), + if (chat.contentSnippet != null) + MarkdownBody(data: chat.contentSnippet!), + ], ), - if (chatEntity.dateTime != null) - Text( - chatEntity.dateTime!.formatWithMinutePrecision(), - ), - const SizedBox(height: 8.0), - if (chat.contentSnippet != null) - MarkdownBody( - data: chat.contentSnippet!, - ), - ], + ), ), - ), - ), + ); + }, ); }, - ); - }, - ), - error: (error, stackTrace) => Center( - child: FailureWidget( - title: 'Chat Search failed', - exception: error, - ), - ), + ), + error: + (error, stackTrace) => Center( + child: FailureWidget( + title: 'Chat Search failed', + exception: error, + ), + ), loading: () => const SizedBox.shrink(), ), ); diff --git a/app/lib/features/geckoview/domain/controllers/bottom_sheet.dart b/app/lib/features/geckoview/domain/controllers/bottom_sheet.dart index cf496a6b..2eb0e2b2 100644 --- a/app/lib/features/geckoview/domain/controllers/bottom_sheet.dart +++ b/app/lib/features/geckoview/domain/controllers/bottom_sheet.dart @@ -42,7 +42,8 @@ class BottomSheetExtend extends _$BottomSheetExtend { await _extentStreamController.close(); }); - return _extentStreamController.stream - .sampleTime(const Duration(milliseconds: 50)); + return _extentStreamController.stream.sampleTime( + const Duration(milliseconds: 50), + ); } } diff --git a/app/lib/features/geckoview/domain/controllers/bottom_sheet.g.dart b/app/lib/features/geckoview/domain/controllers/bottom_sheet.g.dart index 53b6b562..665d2ec2 100644 --- a/app/lib/features/geckoview/domain/controllers/bottom_sheet.g.dart +++ b/app/lib/features/geckoview/domain/controllers/bottom_sheet.g.dart @@ -13,14 +13,15 @@ String _$bottomSheetControllerHash() => @ProviderFor(BottomSheetController) final bottomSheetControllerProvider = AutoDisposeNotifierProvider.internal( - BottomSheetController.new, - name: r'bottomSheetControllerProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$bottomSheetControllerHash, - dependencies: null, - allTransitiveDependencies: null, -); + BottomSheetController.new, + name: r'bottomSheetControllerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bottomSheetControllerHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$BottomSheetController = AutoDisposeNotifier; String _$bottomSheetExtendHash() => r'7e11b9047c15bdeb4dfcb488a8573daadb64e25c'; @@ -29,14 +30,15 @@ String _$bottomSheetExtendHash() => r'7e11b9047c15bdeb4dfcb488a8573daadb64e25c'; @ProviderFor(BottomSheetExtend) final bottomSheetExtendProvider = StreamNotifierProvider.internal( - BottomSheetExtend.new, - name: r'bottomSheetExtendProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$bottomSheetExtendHash, - dependencies: null, - allTransitiveDependencies: null, -); + BottomSheetExtend.new, + name: r'bottomSheetExtendProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$bottomSheetExtendHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$BottomSheetExtend = StreamNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/domain/controllers/overlay_dialog.g.dart b/app/lib/features/geckoview/domain/controllers/overlay_dialog.g.dart index ccfe7094..f855d5f4 100644 --- a/app/lib/features/geckoview/domain/controllers/overlay_dialog.g.dart +++ b/app/lib/features/geckoview/domain/controllers/overlay_dialog.g.dart @@ -13,14 +13,15 @@ String _$overlayDialogControllerHash() => @ProviderFor(OverlayDialogController) final overlayDialogControllerProvider = AutoDisposeNotifierProvider.internal( - OverlayDialogController.new, - name: r'overlayDialogControllerProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$overlayDialogControllerHash, - dependencies: null, - allTransitiveDependencies: null, -); + OverlayDialogController.new, + name: r'overlayDialogControllerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$overlayDialogControllerHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$OverlayDialogController = AutoDisposeNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/domain/entities/browser_icon.dart b/app/lib/features/geckoview/domain/entities/browser_icon.dart index 84b3664f..f006ad9b 100644 --- a/app/lib/features/geckoview/domain/entities/browser_icon.dart +++ b/app/lib/features/geckoview/domain/entities/browser_icon.dart @@ -18,8 +18,9 @@ class BrowserIcon with FastEquatable { required Color? dominantColor, required IconSource source, }) async { - final image = - await tryDecodeImage(bytes).then((image) => image!.toEquatable()); + final image = await tryDecodeImage( + bytes, + ).then((image) => image!.toEquatable()); return BrowserIcon( image: image, @@ -38,9 +39,5 @@ class BrowserIcon with FastEquatable { bool get cacheHash => true; @override - List get hashParameters => [ - image, - dominantColor, - source, - ]; + List get hashParameters => [image, dominantColor, source]; } diff --git a/app/lib/features/geckoview/domain/entities/find_result_state.dart b/app/lib/features/geckoview/domain/entities/find_result_state.dart index 9ee3fb6b..70588786 100644 --- a/app/lib/features/geckoview/domain/entities/find_result_state.dart +++ b/app/lib/features/geckoview/domain/entities/find_result_state.dart @@ -12,17 +12,17 @@ class FindResultState with FastEquatable { }); factory FindResultState.$default() => FindResultState( - activeMatchOrdinal: -1, - numberOfMatches: 0, - isDoneCounting: false, - ); + activeMatchOrdinal: -1, + numberOfMatches: 0, + isDoneCounting: false, + ); @override List get hashParameters => [ - activeMatchOrdinal, - numberOfMatches, - isDoneCounting, - ]; + activeMatchOrdinal, + numberOfMatches, + isDoneCounting, + ]; @override bool get cacheHash => true; diff --git a/app/lib/features/geckoview/domain/entities/history_state.dart b/app/lib/features/geckoview/domain/entities/history_state.dart index 47519b73..93e759b6 100644 --- a/app/lib/features/geckoview/domain/entities/history_state.dart +++ b/app/lib/features/geckoview/domain/entities/history_state.dart @@ -28,16 +28,20 @@ class HistoryState with FastEquatable { }); factory HistoryState.$default() => HistoryState( - items: const [], - currentIndex: 0, - canGoBack: false, - canGoForward: false, - ); + items: const [], + currentIndex: 0, + canGoBack: false, + canGoForward: false, + ); @override bool get cacheHash => true; @override - List get hashParameters => - [items, currentIndex, canGoBack, canGoForward]; + List get hashParameters => [ + items, + currentIndex, + canGoBack, + canGoForward, + ]; } diff --git a/app/lib/features/geckoview/domain/entities/readerable_state.dart b/app/lib/features/geckoview/domain/entities/readerable_state.dart index 13ea1fd3..6a3f2376 100644 --- a/app/lib/features/geckoview/domain/entities/readerable_state.dart +++ b/app/lib/features/geckoview/domain/entities/readerable_state.dart @@ -5,15 +5,10 @@ class ReaderableState with FastEquatable { final bool active; - ReaderableState({ - required this.readerable, - required this.active, - }); + ReaderableState({required this.readerable, required this.active}); - factory ReaderableState.$default() => ReaderableState( - readerable: false, - active: false, - ); + factory ReaderableState.$default() => + ReaderableState(readerable: false, active: false); @override bool get cacheHash => true; diff --git a/app/lib/features/geckoview/domain/entities/security_state.dart b/app/lib/features/geckoview/domain/entities/security_state.dart index bb3b2c06..3197de8b 100644 --- a/app/lib/features/geckoview/domain/entities/security_state.dart +++ b/app/lib/features/geckoview/domain/entities/security_state.dart @@ -11,11 +11,8 @@ class SecurityState with FastEquatable { required this.issuer, }); - factory SecurityState.$default() => SecurityState( - secure: false, - host: "", - issuer: "", - ); + factory SecurityState.$default() => + SecurityState(secure: false, host: "", issuer: ""); @override bool get cacheHash => true; diff --git a/app/lib/features/geckoview/domain/entities/tab_state.dart b/app/lib/features/geckoview/domain/entities/tab_state.dart index d4847e02..75db16ba 100644 --- a/app/lib/features/geckoview/domain/entities/tab_state.dart +++ b/app/lib/features/geckoview/domain/entities/tab_state.dart @@ -26,12 +26,12 @@ class TabState extends WebPageInfo with FastEquatable { @override BrowserIcon? get favicon => icon.mapNotNull( - (icon) => BrowserIcon( - image: icon, - dominantColor: null, - source: IconSource.memory, - ), - ); + (icon) => BrowserIcon( + image: icon, + dominantColor: null, + source: IconSource.memory, + ), + ); final EquatableImage? thumbnail; @@ -64,40 +64,40 @@ class TabState extends WebPageInfo with FastEquatable { }) : super(title: title); factory TabState.$default(String tabId) => TabState( - id: tabId, - contextId: null, - url: Uri.parse('about:blank'), - title: "", - icon: null, - thumbnail: null, - progress: 0, - isPrivate: false, - isFullScreen: false, - isLoading: false, - securityInfoState: SecurityState.$default(), - historyState: HistoryState.$default(), - readerableState: ReaderableState.$default(), - findResultState: FindResultState.$default(), - ); + id: tabId, + contextId: null, + url: Uri.parse('about:blank'), + title: "", + icon: null, + thumbnail: null, + progress: 0, + isPrivate: false, + isFullScreen: false, + isLoading: false, + securityInfoState: SecurityState.$default(), + historyState: HistoryState.$default(), + readerableState: ReaderableState.$default(), + findResultState: FindResultState.$default(), + ); @override bool get cacheHash => true; @override List get hashParameters => [ - id, - contextId, - url, - title, - icon, - thumbnail, - progress, - isPrivate, - isFullScreen, - isLoading, - securityInfoState, - historyState, - readerableState, - findResultState, - ]; + id, + contextId, + url, + title, + icon, + thumbnail, + progress, + isPrivate, + isFullScreen, + isLoading, + securityInfoState, + historyState, + readerableState, + findResultState, + ]; } diff --git a/app/lib/features/geckoview/domain/entities/tab_state.g.dart b/app/lib/features/geckoview/domain/entities/tab_state.g.dart index 2cc7141d..f0425c2b 100644 --- a/app/lib/features/geckoview/domain/entities/tab_state.g.dart +++ b/app/lib/features/geckoview/domain/entities/tab_state.g.dart @@ -106,7 +106,6 @@ class _$TabStateCWProxyImpl implements _$TabStateCWProxy { this(findResultState: findResultState); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `TabState(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -130,58 +129,71 @@ class _$TabStateCWProxyImpl implements _$TabStateCWProxy { }) { return TabState( id: _value.id, - contextId: contextId == const $CopyWithPlaceholder() - ? _value.contextId - // ignore: cast_nullable_to_non_nullable - : contextId as String?, - url: url == const $CopyWithPlaceholder() - ? _value.url - // ignore: cast_nullable_to_non_nullable - : url as Uri, - title: title == const $CopyWithPlaceholder() - ? _value.title - // ignore: cast_nullable_to_non_nullable - : title as String, - icon: icon == const $CopyWithPlaceholder() - ? _value.icon - // ignore: cast_nullable_to_non_nullable - : icon as EquatableImage?, - thumbnail: thumbnail == const $CopyWithPlaceholder() - ? _value.thumbnail - // ignore: cast_nullable_to_non_nullable - : thumbnail as EquatableImage?, - progress: progress == const $CopyWithPlaceholder() - ? _value.progress - // ignore: cast_nullable_to_non_nullable - : progress as int, - isPrivate: isPrivate == const $CopyWithPlaceholder() - ? _value.isPrivate - // ignore: cast_nullable_to_non_nullable - : isPrivate as bool, - isFullScreen: isFullScreen == const $CopyWithPlaceholder() - ? _value.isFullScreen - // ignore: cast_nullable_to_non_nullable - : isFullScreen as bool, - isLoading: isLoading == const $CopyWithPlaceholder() - ? _value.isLoading - // ignore: cast_nullable_to_non_nullable - : isLoading as bool, - securityInfoState: securityInfoState == const $CopyWithPlaceholder() - ? _value.securityInfoState - // ignore: cast_nullable_to_non_nullable - : securityInfoState as SecurityState, - historyState: historyState == const $CopyWithPlaceholder() - ? _value.historyState - // ignore: cast_nullable_to_non_nullable - : historyState as HistoryState, - readerableState: readerableState == const $CopyWithPlaceholder() - ? _value.readerableState - // ignore: cast_nullable_to_non_nullable - : readerableState as ReaderableState, - findResultState: findResultState == const $CopyWithPlaceholder() - ? _value.findResultState - // ignore: cast_nullable_to_non_nullable - : findResultState as FindResultState, + contextId: + contextId == const $CopyWithPlaceholder() + ? _value.contextId + // ignore: cast_nullable_to_non_nullable + : contextId as String?, + url: + url == const $CopyWithPlaceholder() + ? _value.url + // ignore: cast_nullable_to_non_nullable + : url as Uri, + title: + title == const $CopyWithPlaceholder() + ? _value.title + // ignore: cast_nullable_to_non_nullable + : title as String, + icon: + icon == const $CopyWithPlaceholder() + ? _value.icon + // ignore: cast_nullable_to_non_nullable + : icon as EquatableImage?, + thumbnail: + thumbnail == const $CopyWithPlaceholder() + ? _value.thumbnail + // ignore: cast_nullable_to_non_nullable + : thumbnail as EquatableImage?, + progress: + progress == const $CopyWithPlaceholder() + ? _value.progress + // ignore: cast_nullable_to_non_nullable + : progress as int, + isPrivate: + isPrivate == const $CopyWithPlaceholder() + ? _value.isPrivate + // ignore: cast_nullable_to_non_nullable + : isPrivate as bool, + isFullScreen: + isFullScreen == const $CopyWithPlaceholder() + ? _value.isFullScreen + // ignore: cast_nullable_to_non_nullable + : isFullScreen as bool, + isLoading: + isLoading == const $CopyWithPlaceholder() + ? _value.isLoading + // ignore: cast_nullable_to_non_nullable + : isLoading as bool, + securityInfoState: + securityInfoState == const $CopyWithPlaceholder() + ? _value.securityInfoState + // ignore: cast_nullable_to_non_nullable + : securityInfoState as SecurityState, + historyState: + historyState == const $CopyWithPlaceholder() + ? _value.historyState + // ignore: cast_nullable_to_non_nullable + : historyState as HistoryState, + readerableState: + readerableState == const $CopyWithPlaceholder() + ? _value.readerableState + // ignore: cast_nullable_to_non_nullable + : readerableState as ReaderableState, + findResultState: + findResultState == const $CopyWithPlaceholder() + ? _value.findResultState + // ignore: cast_nullable_to_non_nullable + : findResultState as FindResultState, ); } } diff --git a/app/lib/features/geckoview/domain/entities/web_extension_state.dart b/app/lib/features/geckoview/domain/entities/web_extension_state.dart index f0f09420..ec992e43 100644 --- a/app/lib/features/geckoview/domain/entities/web_extension_state.dart +++ b/app/lib/features/geckoview/domain/entities/web_extension_state.dart @@ -33,12 +33,12 @@ class WebExtensionState with FastEquatable { @override List get hashParameters => [ - extensionId, - title, - enabled, - badgeText, - badgeTextColor, - badgeBackgroundColor, - icon, - ]; + extensionId, + title, + enabled, + badgeText, + badgeTextColor, + badgeBackgroundColor, + icon, + ]; } diff --git a/app/lib/features/geckoview/domain/entities/web_extension_state.g.dart b/app/lib/features/geckoview/domain/entities/web_extension_state.g.dart index 292f01ff..dab26e02 100644 --- a/app/lib/features/geckoview/domain/entities/web_extension_state.g.dart +++ b/app/lib/features/geckoview/domain/entities/web_extension_state.g.dart @@ -69,7 +69,6 @@ class _$WebExtensionStateCWProxyImpl implements _$WebExtensionStateCWProxy { WebExtensionState icon(EquatableImage? icon) => this(icon: icon); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `WebExtensionState(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -86,34 +85,41 @@ class _$WebExtensionStateCWProxyImpl implements _$WebExtensionStateCWProxy { Object? icon = const $CopyWithPlaceholder(), }) { return WebExtensionState( - extensionId: extensionId == const $CopyWithPlaceholder() - ? _value.extensionId - // ignore: cast_nullable_to_non_nullable - : extensionId as String, - enabled: enabled == const $CopyWithPlaceholder() - ? _value.enabled - // ignore: cast_nullable_to_non_nullable - : enabled as bool, - title: title == const $CopyWithPlaceholder() - ? _value.title - // ignore: cast_nullable_to_non_nullable - : title as String?, - badgeText: badgeText == const $CopyWithPlaceholder() - ? _value.badgeText - // ignore: cast_nullable_to_non_nullable - : badgeText as String?, - badgeTextColor: badgeTextColor == const $CopyWithPlaceholder() - ? _value.badgeTextColor - // ignore: cast_nullable_to_non_nullable - : badgeTextColor as Color?, - badgeBackgroundColor: badgeBackgroundColor == const $CopyWithPlaceholder() - ? _value.badgeBackgroundColor - // ignore: cast_nullable_to_non_nullable - : badgeBackgroundColor as Color?, - icon: icon == const $CopyWithPlaceholder() - ? _value.icon - // ignore: cast_nullable_to_non_nullable - : icon as EquatableImage?, + extensionId: + extensionId == const $CopyWithPlaceholder() + ? _value.extensionId + // ignore: cast_nullable_to_non_nullable + : extensionId as String, + enabled: + enabled == const $CopyWithPlaceholder() + ? _value.enabled + // ignore: cast_nullable_to_non_nullable + : enabled as bool, + title: + title == const $CopyWithPlaceholder() + ? _value.title + // ignore: cast_nullable_to_non_nullable + : title as String?, + badgeText: + badgeText == const $CopyWithPlaceholder() + ? _value.badgeText + // ignore: cast_nullable_to_non_nullable + : badgeText as String?, + badgeTextColor: + badgeTextColor == const $CopyWithPlaceholder() + ? _value.badgeTextColor + // ignore: cast_nullable_to_non_nullable + : badgeTextColor as Color?, + badgeBackgroundColor: + badgeBackgroundColor == const $CopyWithPlaceholder() + ? _value.badgeBackgroundColor + // ignore: cast_nullable_to_non_nullable + : badgeBackgroundColor as Color?, + icon: + icon == const $CopyWithPlaceholder() + ? _value.icon + // ignore: cast_nullable_to_non_nullable + : icon as EquatableImage?, ); } } diff --git a/app/lib/features/geckoview/domain/providers.dart b/app/lib/features/geckoview/domain/providers.dart index b73957b4..2d2ed309 100644 --- a/app/lib/features/geckoview/domain/providers.dart +++ b/app/lib/features/geckoview/domain/providers.dart @@ -13,16 +13,15 @@ import 'package:url_launcher/url_launcher.dart'; part 'providers.g.dart'; @Riverpod(keepAlive: true) -GeckoSelectionActionService selectionActionService( - Ref ref, -) { +GeckoSelectionActionService selectionActionService(Ref ref) { final service = GeckoSelectionActionService.setUp(); unawaited( service.setActions([ SearchAction((text) async { - final defaultSearchBang = - await ref.read(defaultSearchBangDataProvider.future); + final defaultSearchBang = await ref.read( + defaultSearchBangDataProvider.future, + ); if (defaultSearchBang != null) { await ref @@ -33,14 +32,14 @@ GeckoSelectionActionService selectionActionService( } }), PrivateSearchAction((text) async { - final defaultSearchBang = - await ref.read(defaultSearchBangDataProvider.future); + final defaultSearchBang = await ref.read( + defaultSearchBangDataProvider.future, + ); if (defaultSearchBang != null) { - await ref.read(tabRepositoryProvider.notifier).addTab( - url: defaultSearchBang.getUrl(text), - private: true, - ); + await ref + .read(tabRepositoryProvider.notifier) + .addTab(url: defaultSearchBang.getUrl(text), private: true); } else { logger.e('No default search bang found'); } @@ -132,12 +131,13 @@ class EngineReadyState extends _$EngineReadyState { eventService.engineReadyStateEvents .firstWhere((value) => value == true) .timeout( - const Duration(seconds: 5), - onTimeout: () { - logger.w('Waiting for engine ready state timed out'); - return true; - }, - ).whenComplete(() => state = true), + const Duration(seconds: 5), + onTimeout: () { + logger.w('Waiting for engine ready state timed out'); + return true; + }, + ) + .whenComplete(() => state = true), ); } diff --git a/app/lib/features/geckoview/domain/providers.g.dart b/app/lib/features/geckoview/domain/providers.g.dart index d8ed4af6..2be351bc 100644 --- a/app/lib/features/geckoview/domain/providers.g.dart +++ b/app/lib/features/geckoview/domain/providers.g.dart @@ -13,14 +13,15 @@ String _$selectionActionServiceHash() => @ProviderFor(selectionActionService) final selectionActionServiceProvider = Provider.internal( - selectionActionService, - name: r'selectionActionServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$selectionActionServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + selectionActionService, + name: r'selectionActionServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$selectionActionServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element @@ -64,9 +65,10 @@ String _$tabContentServiceHash() => r'd9a991add907ecc138c62790883e59d8e9aa9266'; final tabContentServiceProvider = Provider.internal( tabContentService, name: r'tabContentServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$tabContentServiceHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$tabContentServiceHash, dependencies: null, allTransitiveDependencies: null, ); @@ -81,14 +83,15 @@ String _$engineSuggestionsServiceHash() => @ProviderFor(engineSuggestionsService) final engineSuggestionsServiceProvider = Provider.internal( - engineSuggestionsService, - name: r'engineSuggestionsServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$engineSuggestionsServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + engineSuggestionsService, + name: r'engineSuggestionsServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$engineSuggestionsServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element @@ -100,14 +103,15 @@ String _$selectedTabSessionNotifierHash() => @ProviderFor(selectedTabSessionNotifier) final selectedTabSessionNotifierProvider = AutoDisposeProvider>.internal( - selectedTabSessionNotifier, - name: r'selectedTabSessionNotifierProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$selectedTabSessionNotifierHash, - dependencies: null, - allTransitiveDependencies: null, -); + selectedTabSessionNotifier, + name: r'selectedTabSessionNotifierProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$selectedTabSessionNotifierHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element @@ -118,14 +122,15 @@ String _$engineReadyStateHash() => r'c682333e2e07cf0635aa7ae793a2088ca648c950'; @ProviderFor(EngineReadyState) final engineReadyStateProvider = NotifierProvider.internal( - EngineReadyState.new, - name: r'engineReadyStateProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$engineReadyStateHash, - dependencies: null, - allTransitiveDependencies: null, -); + EngineReadyState.new, + name: r'engineReadyStateProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$engineReadyStateHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$EngineReadyState = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/domain/providers/selected_tab.dart b/app/lib/features/geckoview/domain/providers/selected_tab.dart index 66b791c5..22ad2f6c 100644 --- a/app/lib/features/geckoview/domain/providers/selected_tab.dart +++ b/app/lib/features/geckoview/domain/providers/selected_tab.dart @@ -12,21 +12,18 @@ class SelectedTab extends _$SelectedTab { String? build() { final eventSerivce = ref.watch(eventServiceProvider); - ref.listen( - fireImmediately: true, - engineReadyStateProvider, - (previous, next) async { - if (next) { - await GeckoTabService().syncEvents(onSelectedTabChange: true); - } - }, - ); + ref.listen(fireImmediately: true, engineReadyStateProvider, ( + previous, + next, + ) async { + if (next) { + await GeckoTabService().syncEvents(onSelectedTabChange: true); + } + }); - final selectedTabSub = eventSerivce.selectedTabEvents.listen( - (tabId) async { - state = tabId; - }, - ); + final selectedTabSub = eventSerivce.selectedTabEvents.listen((tabId) async { + state = tabId; + }); ref.onDispose(() { unawaited(selectedTabSub.cancel()); diff --git a/app/lib/features/geckoview/domain/providers/tab_list.dart b/app/lib/features/geckoview/domain/providers/tab_list.dart index 0926b063..b54361c5 100644 --- a/app/lib/features/geckoview/domain/providers/tab_list.dart +++ b/app/lib/features/geckoview/domain/providers/tab_list.dart @@ -13,23 +13,20 @@ class TabList extends _$TabList { List build() { final eventService = ref.watch(eventServiceProvider); - ref.listen( - fireImmediately: true, - engineReadyStateProvider, - (previous, next) async { - if (next) { - await GeckoTabService().syncEvents(onTabListChange: true); - } - }, - ); + ref.listen(fireImmediately: true, engineReadyStateProvider, ( + previous, + next, + ) async { + if (next) { + await GeckoTabService().syncEvents(onTabListChange: true); + } + }); - final tabListSub = eventService.tabListEvents.listen( - (tabs) async { - if (!const DeepCollectionEquality().equals(state, tabs)) { - state = tabs; - } - }, - ); + final tabListSub = eventService.tabListEvents.listen((tabs) async { + if (!const DeepCollectionEquality().equals(state, tabs)) { + state = tabs; + } + }); ref.onDispose(() { unawaited(tabListSub.cancel()); diff --git a/app/lib/features/geckoview/domain/providers/tab_session.dart b/app/lib/features/geckoview/domain/providers/tab_session.dart index cc7f6bd2..90c222cf 100644 --- a/app/lib/features/geckoview/domain/providers/tab_session.dart +++ b/app/lib/features/geckoview/domain/providers/tab_session.dart @@ -43,8 +43,9 @@ class TabSession extends _$TabSession { @override void build({required String? tabId}) { - _sessionService = (tabId != null) - ? GeckoSessionService(tabId: tabId) - : GeckoSessionService.forActiveTab(); + _sessionService = + (tabId != null) + ? GeckoSessionService(tabId: tabId) + : GeckoSessionService.forActiveTab(); } } diff --git a/app/lib/features/geckoview/domain/providers/tab_session.g.dart b/app/lib/features/geckoview/domain/providers/tab_session.g.dart index 72131273..06b9a5f7 100644 --- a/app/lib/features/geckoview/domain/providers/tab_session.g.dart +++ b/app/lib/features/geckoview/domain/providers/tab_session.g.dart @@ -32,9 +32,7 @@ class _SystemHash { abstract class _$TabSession extends BuildlessAutoDisposeNotifier { late final String? tabId; - void build({ - required String? tabId, - }); + void build({required String? tabId}); } /// See also [TabSession]. @@ -47,21 +45,15 @@ class TabSessionFamily extends Family { const TabSessionFamily(); /// See also [TabSession]. - TabSessionProvider call({ - required String? tabId, - }) { - return TabSessionProvider( - tabId: tabId, - ); + TabSessionProvider call({required String? tabId}) { + return TabSessionProvider(tabId: tabId); } @override TabSessionProvider getProviderOverride( covariant TabSessionProvider provider, ) { - return call( - tabId: provider.tabId, - ); + return call(tabId: provider.tabId); } static const Iterable? _dependencies = null; @@ -83,21 +75,19 @@ class TabSessionFamily extends Family { class TabSessionProvider extends AutoDisposeNotifierProviderImpl { /// See also [TabSession]. - TabSessionProvider({ - required String? tabId, - }) : this._internal( - () => TabSession()..tabId = tabId, - from: tabSessionProvider, - name: r'tabSessionProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$tabSessionHash, - dependencies: TabSessionFamily._dependencies, - allTransitiveDependencies: - TabSessionFamily._allTransitiveDependencies, - tabId: tabId, - ); + TabSessionProvider({required String? tabId}) + : this._internal( + () => TabSession()..tabId = tabId, + from: tabSessionProvider, + name: r'tabSessionProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$tabSessionHash, + dependencies: TabSessionFamily._dependencies, + allTransitiveDependencies: TabSessionFamily._allTransitiveDependencies, + tabId: tabId, + ); TabSessionProvider._internal( super._createNotifier, { @@ -112,12 +102,8 @@ class TabSessionProvider final String? tabId; @override - void runNotifierBuild( - covariant TabSession notifier, - ) { - return notifier.build( - tabId: tabId, - ); + void runNotifierBuild(covariant TabSession notifier) { + return notifier.build(tabId: tabId); } @override @@ -170,5 +156,6 @@ class _TabSessionProviderElement @override String? get tabId => (origin as TabSessionProvider).tabId; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/geckoview/domain/providers/tab_state.dart b/app/lib/features/geckoview/domain/providers/tab_state.dart index b91ecc2c..9f400b9c 100644 --- a/app/lib/features/geckoview/domain/providers/tab_state.dart +++ b/app/lib/features/geckoview/domain/providers/tab_state.dart @@ -24,12 +24,14 @@ class TabStates extends _$TabStates { void _onTabContentStateChange(TabContentState contentState) { final current = state[contentState.id] ?? TabState.$default(contentState.id); - state = {...state}..[contentState.id] = current.copyWith( + state = {...state} + ..[contentState.id] = current.copyWith( contextId: contentState.contextId, url: Uri.parse(contentState.url), - title: (contentState.title.isNotEmpty) - ? contentState.title - : current.title, + title: + (contentState.title.isNotEmpty) + ? contentState.title + : current.title, progress: contentState.progress, isPrivate: contentState.isPrivate, isFullScreen: contentState.isFullScreen, @@ -65,7 +67,8 @@ class TabStates extends _$TabStates { final SecurityInfoEvent(:tabId, :securityInfo) = event; final current = state[tabId] ?? TabState.$default(tabId); - state = {...state}..[tabId] = current.copyWith.securityInfoState( + state = {...state} + ..[tabId] = current.copyWith.securityInfoState( SecurityState( secure: securityInfo.secure, host: securityInfo.host, @@ -78,14 +81,18 @@ class TabStates extends _$TabStates { final HistoryEvent(:tabId, :history) = event; final current = state[tabId] ?? TabState.$default(tabId); - state = {...state}..[tabId] = current.copyWith.historyState( + state = {...state} + ..[tabId] = current.copyWith.historyState( HistoryState( - items: history.items.nonNulls - .map( - (item) => - HistoryItem(url: Uri.parse(item.url), title: item.title), - ) - .toList(), + items: + history.items.nonNulls + .map( + (item) => HistoryItem( + url: Uri.parse(item.url), + title: item.title, + ), + ) + .toList(), currentIndex: history.currentIndex, canGoBack: history.canGoBack, canGoForward: history.canGoForward, @@ -97,7 +104,8 @@ class TabStates extends _$TabStates { final ReaderableEvent(:tabId, :readerable) = event; final current = state[tabId] ?? TabState.$default(tabId); - state = {...state}..[tabId] = current.copyWith.readerableState( + state = {...state} + ..[tabId] = current.copyWith.readerableState( ReaderableState( readerable: readerable.readerable, active: readerable.active, @@ -112,7 +120,8 @@ class TabStates extends _$TabStates { final result = results.last; final current = state[tabId] ?? TabState.$default(tabId); - state = {...state}..[tabId] = current.copyWith.findResultState( + state = {...state} + ..[tabId] = current.copyWith.findResultState( FindResultState( activeMatchOrdinal: result.activeMatchOrdinal, numberOfMatches: result.numberOfMatches, @@ -127,59 +136,44 @@ class TabStates extends _$TabStates { final eventService = ref.watch(eventServiceProvider); final subscriptions = [ - eventService.tabContentEvents.listen( - (event) async { - await _lock.synchronized(() => _onTabContentStateChange(event)); - }, - ), - eventService.iconChangeEvents.listen( - (event) async { - await _lock.synchronized(() => _onIconChange(event)); - }, - ), - eventService.thumbnailEvents.listen( - (event) async { - await _lock.synchronized(() => _onThumbnailChange(event)); - }, - ), - eventService.securityInfoEvents.listen( - (event) async { - await _lock.synchronized(() => _onSecurityInfoStateChange(event)); - }, - ), - eventService.historyEvents.listen( - (event) async { - await _lock.synchronized(() => _onHistoryStateChange(event)); - }, - ), - eventService.readerableEvents.listen( - (event) async { - await _lock.synchronized(() => _onReaderableStateChange(event)); - }, - ), - eventService.findResultsEvent.listen( - (event) async { - await _lock.synchronized(() => _onFindResultsChange(event)); - }, - ), + eventService.tabContentEvents.listen((event) async { + await _lock.synchronized(() => _onTabContentStateChange(event)); + }), + eventService.iconChangeEvents.listen((event) async { + await _lock.synchronized(() => _onIconChange(event)); + }), + eventService.thumbnailEvents.listen((event) async { + await _lock.synchronized(() => _onThumbnailChange(event)); + }), + eventService.securityInfoEvents.listen((event) async { + await _lock.synchronized(() => _onSecurityInfoStateChange(event)); + }), + eventService.historyEvents.listen((event) async { + await _lock.synchronized(() => _onHistoryStateChange(event)); + }), + eventService.readerableEvents.listen((event) async { + await _lock.synchronized(() => _onReaderableStateChange(event)); + }), + eventService.findResultsEvent.listen((event) async { + await _lock.synchronized(() => _onFindResultsChange(event)); + }), ]; - ref.listen( - fireImmediately: true, - engineReadyStateProvider, - (previous, next) async { - if (next) { - await GeckoTabService().syncEvents( - onTabContentStateChange: true, - onIconChange: true, - onThumbnailChange: true, - onSecurityInfoStateChange: true, - onHistoryStateChange: true, - onFindResults: true, - ); - } - }, - ); + ref.listen(fireImmediately: true, engineReadyStateProvider, ( + previous, + next, + ) async { + if (next) { + await GeckoTabService().syncEvents( + onTabContentStateChange: true, + onIconChange: true, + onThumbnailChange: true, + onSecurityInfoStateChange: true, + onHistoryStateChange: true, + onFindResults: true, + ); + } + }); ref.onDispose(() { for (final sub in subscriptions) { @@ -197,9 +191,7 @@ TabState? tabState(Ref ref, String? tabId) { return null; } - return ref.watch( - tabStatesProvider.select((tabs) => tabs[tabId]), - ); + return ref.watch(tabStatesProvider.select((tabs) => tabs[tabId])); } @Riverpod() diff --git a/app/lib/features/geckoview/domain/providers/tab_state.g.dart b/app/lib/features/geckoview/domain/providers/tab_state.g.dart index de40ce7a..345e22bc 100644 --- a/app/lib/features/geckoview/domain/providers/tab_state.g.dart +++ b/app/lib/features/geckoview/domain/providers/tab_state.g.dart @@ -39,21 +39,13 @@ class TabStateFamily extends Family { const TabStateFamily(); /// See also [tabState]. - TabStateProvider call( - String? tabId, - ) { - return TabStateProvider( - tabId, - ); + TabStateProvider call(String? tabId) { + return TabStateProvider(tabId); } @override - TabStateProvider getProviderOverride( - covariant TabStateProvider provider, - ) { - return call( - provider.tabId, - ); + TabStateProvider getProviderOverride(covariant TabStateProvider provider) { + return call(provider.tabId); } static const Iterable? _dependencies = null; @@ -74,23 +66,19 @@ class TabStateFamily extends Family { /// See also [tabState]. class TabStateProvider extends AutoDisposeProvider { /// See also [tabState]. - TabStateProvider( - String? tabId, - ) : this._internal( - (ref) => tabState( - ref as TabStateRef, - tabId, - ), - from: tabStateProvider, - name: r'tabStateProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$tabStateHash, - dependencies: TabStateFamily._dependencies, - allTransitiveDependencies: TabStateFamily._allTransitiveDependencies, - tabId: tabId, - ); + TabStateProvider(String? tabId) + : this._internal( + (ref) => tabState(ref as TabStateRef, tabId), + from: tabStateProvider, + name: r'tabStateProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$tabStateHash, + dependencies: TabStateFamily._dependencies, + allTransitiveDependencies: TabStateFamily._allTransitiveDependencies, + tabId: tabId, + ); TabStateProvider._internal( super._createNotifier, { @@ -105,9 +93,7 @@ class TabStateProvider extends AutoDisposeProvider { final String? tabId; @override - Override overrideWith( - TabState? Function(TabStateRef provider) create, - ) { + Override overrideWith(TabState? Function(TabStateRef provider) create) { return ProviderOverride( origin: this, override: TabStateProvider._internal( @@ -163,9 +149,10 @@ String _$selectedTabStateHash() => r'dbd36af7af286bd9d079f30e8e11bbda23bf7728'; final selectedTabStateProvider = AutoDisposeProvider.internal( selectedTabState, name: r'selectedTabStateProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$selectedTabStateHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$selectedTabStateHash, dependencies: null, allTransitiveDependencies: null, ); @@ -179,13 +166,15 @@ String _$tabStatesHash() => r'296d85ec016b22236b5830fce6b01cda81fbc02d'; @ProviderFor(TabStates) final tabStatesProvider = NotifierProvider>.internal( - TabStates.new, - name: r'tabStatesProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') ? null : _$tabStatesHash, - dependencies: null, - allTransitiveDependencies: null, -); + TabStates.new, + name: r'tabStatesProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$tabStatesHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$TabStates = Notifier>; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/domain/providers/web_extensions_state.dart b/app/lib/features/geckoview/domain/providers/web_extensions_state.dart index d622550b..986d8282 100644 --- a/app/lib/features/geckoview/domain/providers/web_extensions_state.dart +++ b/app/lib/features/geckoview/domain/providers/web_extensions_state.dart @@ -23,21 +23,25 @@ class WebExtensionsState extends _$WebExtensionsState { final ExtensionDataEvent(:extensionId, :data) = event; if (data != null) { - final current = state[extensionId] ?? + final current = + state[extensionId] ?? WebExtensionState( extensionId: extensionId, icon: _imageCache[extensionId], enabled: false, ); - state = {...state}..[extensionId] = current.copyWith( + state = {...state} + ..[extensionId] = current.copyWith( title: data.title, enabled: data.enabled ?? current.enabled, badgeText: data.badgeText, - badgeTextColor: - data.badgeTextColor.mapNotNull((color) => Color(color)), - badgeBackgroundColor: - data.badgeBackgroundColor.mapNotNull((color) => Color(color)), + badgeTextColor: data.badgeTextColor.mapNotNull( + (color) => Color(color), + ), + badgeBackgroundColor: data.badgeBackgroundColor.mapNotNull( + (color) => Color(color), + ), ); } else { if (state.containsKey(extensionId)) { @@ -49,16 +53,17 @@ class WebExtensionsState extends _$WebExtensionsState { Future _onIconChange(ExtensionIconEvent event) async { final ExtensionIconEvent(:extensionId, :bytes) = event; - final image = - await tryDecodeImage(bytes).then((image) async => image?.toEquatable()); + final image = await tryDecodeImage( + bytes, + ).then((image) async => image?.toEquatable()); if (image != null) { if (_imageCache[extensionId] != image) { _imageCache[extensionId] = image; if (state.containsKey(extensionId)) { - state = {...state}..[extensionId] = - state[extensionId]!.copyWith.icon(image); + state = {...state} + ..[extensionId] = state[extensionId]!.copyWith.icon(image); } } } @@ -70,29 +75,21 @@ class WebExtensionsState extends _$WebExtensionsState { final subscriptions = switch (actionType) { WebExtensionActionType.browser => [ - addonService.browserExtensionStream.listen( - (event) async { - await _lock.synchronized(() => _onExtensionUpdate(event)); - }, - ), - addonService.browserIconStream.listen( - (event) async { - await _lock.synchronized(() => _onIconChange(event)); - }, - ), - ], + addonService.browserExtensionStream.listen((event) async { + await _lock.synchronized(() => _onExtensionUpdate(event)); + }), + addonService.browserIconStream.listen((event) async { + await _lock.synchronized(() => _onIconChange(event)); + }), + ], WebExtensionActionType.page => [ - addonService.pageExtensionStream.listen( - (event) async { - await _lock.synchronized(() => _onExtensionUpdate(event)); - }, - ), - addonService.pageIconStream.listen( - (event) async { - await _lock.synchronized(() => _onIconChange(event)); - }, - ), - ], + addonService.pageExtensionStream.listen((event) async { + await _lock.synchronized(() => _onExtensionUpdate(event)); + }), + addonService.pageIconStream.listen((event) async { + await _lock.synchronized(() => _onIconChange(event)); + }), + ], }; ref.onDispose(() { diff --git a/app/lib/features/geckoview/domain/providers/web_extensions_state.g.dart b/app/lib/features/geckoview/domain/providers/web_extensions_state.g.dart index bdd4a44e..07118415 100644 --- a/app/lib/features/geckoview/domain/providers/web_extensions_state.g.dart +++ b/app/lib/features/geckoview/domain/providers/web_extensions_state.g.dart @@ -34,9 +34,7 @@ abstract class _$WebExtensionsState extends BuildlessNotifier> { late final WebExtensionActionType actionType; - Map build( - WebExtensionActionType actionType, - ); + Map build(WebExtensionActionType actionType); } /// See also [WebExtensionsState]. @@ -49,21 +47,15 @@ class WebExtensionsStateFamily extends Family> { const WebExtensionsStateFamily(); /// See also [WebExtensionsState]. - WebExtensionsStateProvider call( - WebExtensionActionType actionType, - ) { - return WebExtensionsStateProvider( - actionType, - ); + WebExtensionsStateProvider call(WebExtensionActionType actionType) { + return WebExtensionsStateProvider(actionType); } @override WebExtensionsStateProvider getProviderOverride( covariant WebExtensionsStateProvider provider, ) { - return call( - provider.actionType, - ); + return call(provider.actionType); } static const Iterable? _dependencies = null; @@ -82,24 +74,27 @@ class WebExtensionsStateFamily extends Family> { } /// See also [WebExtensionsState]. -class WebExtensionsStateProvider extends NotifierProviderImpl< - WebExtensionsState, Map> { +class WebExtensionsStateProvider + extends + NotifierProviderImpl< + WebExtensionsState, + Map + > { /// See also [WebExtensionsState]. - WebExtensionsStateProvider( - WebExtensionActionType actionType, - ) : this._internal( - () => WebExtensionsState()..actionType = actionType, - from: webExtensionsStateProvider, - name: r'webExtensionsStateProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$webExtensionsStateHash, - dependencies: WebExtensionsStateFamily._dependencies, - allTransitiveDependencies: - WebExtensionsStateFamily._allTransitiveDependencies, - actionType: actionType, - ); + WebExtensionsStateProvider(WebExtensionActionType actionType) + : this._internal( + () => WebExtensionsState()..actionType = actionType, + from: webExtensionsStateProvider, + name: r'webExtensionsStateProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$webExtensionsStateHash, + dependencies: WebExtensionsStateFamily._dependencies, + allTransitiveDependencies: + WebExtensionsStateFamily._allTransitiveDependencies, + actionType: actionType, + ); WebExtensionsStateProvider._internal( super._createNotifier, { @@ -117,9 +112,7 @@ class WebExtensionsStateProvider extends NotifierProviderImpl< Map runNotifierBuild( covariant WebExtensionsState notifier, ) { - return notifier.build( - actionType, - ); + return notifier.build(actionType); } @override @@ -140,7 +133,7 @@ class WebExtensionsStateProvider extends NotifierProviderImpl< @override NotifierProviderElement> - createElement() { + createElement() { return _WebExtensionsStateProviderElement(this); } @@ -167,14 +160,19 @@ mixin WebExtensionsStateRef WebExtensionActionType get actionType; } -class _WebExtensionsStateProviderElement extends NotifierProviderElement< - WebExtensionsState, - Map> with WebExtensionsStateRef { +class _WebExtensionsStateProviderElement + extends + NotifierProviderElement< + WebExtensionsState, + Map + > + with WebExtensionsStateRef { _WebExtensionsStateProviderElement(super.provider); @override WebExtensionActionType get actionType => (origin as WebExtensionsStateProvider).actionType; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/geckoview/domain/repositories/tab.dart b/app/lib/features/geckoview/domain/repositories/tab.dart index eb4aae64..a3146690 100644 --- a/app/lib/features/geckoview/domain/repositories/tab.dart +++ b/app/lib/features/geckoview/domain/repositories/tab.dart @@ -98,16 +98,17 @@ class TabRepository extends _$TabRepository { final db = ref.watch(tabDatabaseProvider); - final tabAddedSub = eventSerivce.tabAddedStream.listen( - (tabId) async { - final containerId = ref.read(selectedContainerProvider); - await db.tabDao - .upsertUnassignedTab(tabId, containerId: Value(containerId)); - }, - ); + final tabAddedSub = eventSerivce.tabAddedStream.listen((tabId) async { + final containerId = ref.read(selectedContainerProvider); + await db.tabDao.upsertUnassignedTab( + tabId, + containerId: Value(containerId), + ); + }); - final tabContentSub = - tabContentService.tabContentStream.listen((content) async { + final tabContentSub = tabContentService.tabContentStream.listen(( + content, + ) async { await db.tabDao.updateTabContent( content.tabId, isProbablyReaderable: content.isProbablyReaderable, @@ -118,42 +119,33 @@ class TabRepository extends _$TabRepository { ); }); - ref.listen( - selectedTabProvider, - (previous, tabId) async { - if (tabId != null) { - await db.tabDao.touchTab(tabId, timestamp: DateTime.now()); - } - }, - ); + ref.listen(selectedTabProvider, (previous, tabId) async { + if (tabId != null) { + await db.tabDao.touchTab(tabId, timestamp: DateTime.now()); + } + }); - ref.listen( - tabListProvider, - (previous, next) async { - //Only sync tabs if there has been a previous value or is not empty - final syncTabs = next.isNotEmpty || (previous?.isNotEmpty ?? false); + ref.listen(tabListProvider, (previous, next) async { + //Only sync tabs if there has been a previous value or is not empty + final syncTabs = next.isNotEmpty || (previous?.isNotEmpty ?? false); - if (syncTabs) { - await db.tabDao.syncTabs(retainTabIds: next); - } - }, - ); + if (syncTabs) { + await db.tabDao.syncTabs(retainTabIds: next); + } + }); - ref.listen( - tabStatesProvider, - (previous, next) async { - //Since state changes occure pretty often and our map always contains - //the latest state, we cache the value before starting debouncing and - //later diff to that, to avoid frequent database writes - if (!tabStateDebouncer.isDebouncing) { - debounceStartValue = previous; - } + ref.listen(tabStatesProvider, (previous, next) async { + //Since state changes occure pretty often and our map always contains + //the latest state, we cache the value before starting debouncing and + //later diff to that, to avoid frequent database writes + if (!tabStateDebouncer.isDebouncing) { + debounceStartValue = previous; + } - tabStateDebouncer.eventOccured(() async { - await db.tabDao.updateTabs(debounceStartValue, next); - }); - }, - ); + tabStateDebouncer.eventOccured(() async { + await db.tabDao.updateTabs(debounceStartValue, next); + }); + }); ref.onDispose(() { tabStateDebouncer.dispose(); diff --git a/app/lib/features/geckoview/domain/repositories/tab.g.dart b/app/lib/features/geckoview/domain/repositories/tab.g.dart index 889ecae9..341760bb 100644 --- a/app/lib/features/geckoview/domain/repositories/tab.g.dart +++ b/app/lib/features/geckoview/domain/repositories/tab.g.dart @@ -13,9 +13,10 @@ String _$tabRepositoryHash() => r'85af29fa18ea5a4a67fbffbb9478c801dafddac2'; final tabRepositoryProvider = NotifierProvider.internal( TabRepository.new, name: r'tabRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$tabRepositoryHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$tabRepositoryHash, dependencies: null, allTransitiveDependencies: null, ); diff --git a/app/lib/features/geckoview/features/browser/domain/providers.dart b/app/lib/features/geckoview/features/browser/domain/providers.dart index d21e0bad..6287d4ec 100644 --- a/app/lib/features/geckoview/features/browser/domain/providers.dart +++ b/app/lib/features/geckoview/features/browser/domain/providers.dart @@ -40,15 +40,16 @@ class SelectedBangData extends _$SelectedBangData { @override BangData? build({String? domain}) { final repository = ref.watch(bangDataRepositoryProvider.notifier); - final selectedBangTrigger = - ref.watch(selectedBangTriggerProvider(domain: domain)); - - final subscription = repository.watchBang(selectedBangTrigger).listen( - (value) { - state = value; - }, + final selectedBangTrigger = ref.watch( + selectedBangTriggerProvider(domain: domain), ); + final subscription = repository.watchBang(selectedBangTrigger).listen(( + value, + ) { + state = value; + }); + ref.onDispose(() { unawaited(subscription.cancel()); }); @@ -111,8 +112,9 @@ EquatableCollection> availableTabIds( ContainerFilter containerFilter, ) { final containerTabs = ref.watch( - containerTabIdsProvider(containerFilter) - .select((value) => value.valueOrNull), + containerTabIdsProvider( + containerFilter, + ).select((value) => value.valueOrNull), ); final tabList = ref.watch(tabListProvider); @@ -130,13 +132,10 @@ EquatableCollection> availableTabStates( final availableTabs = ref.watch(availableTabIdsProvider(containerFilter)); final tabStates = ref.watch(tabStatesProvider); - return EquatableCollection( - { - for (final tabId in availableTabs.collection) - if (tabStates.containsKey(tabId)) tabId: tabStates[tabId]!, - }, - immutable: true, - ); + return EquatableCollection({ + for (final tabId in availableTabs.collection) + if (tabStates.containsKey(tabId)) tabId: tabStates[tabId]!, + }, immutable: true); } @Riverpod() @@ -145,16 +144,17 @@ EquatableCollection> seamlessFilteredTabIds( TabSearchPartition searchPartition, ContainerFilter containerFilter, ) { - final tabSearchResults = ref - .watch( - tabSearchRepositoryProvider(searchPartition).select( - (value) => EquatableCollection( - value.valueOrNull?.map((tab) => tab.id).toList(), - immutable: true, - ), - ), - ) - .collection; + final tabSearchResults = + ref + .watch( + tabSearchRepositoryProvider(searchPartition).select( + (value) => EquatableCollection( + value.valueOrNull?.map((tab) => tab.id).toList(), + immutable: true, + ), + ), + ) + .collection; final availableTabs = ref.watch(availableTabIdsProvider(containerFilter)); @@ -176,19 +176,19 @@ EquatableCollection> seamlessFilteredTabPreviews( TabSearchPartition searchPartition, ContainerFilter containerFilter, ) { - final tabSearchResults = ref - .watch( - tabSearchRepositoryProvider(searchPartition).select( - (value) => EquatableCollection( - value.valueOrNull, - immutable: true, - ), - ), - ) - .collection; + final tabSearchResults = + ref + .watch( + tabSearchRepositoryProvider(searchPartition).select( + (value) => + EquatableCollection(value.valueOrNull, immutable: true), + ), + ) + .collection; - final availableTabStates = - ref.watch(availableTabStatesProvider(containerFilter)); + final availableTabStates = ref.watch( + availableTabStatesProvider(containerFilter), + ); if (tabSearchResults == null) { return EquatableCollection( @@ -216,7 +216,8 @@ EquatableCollection> seamlessFilteredTabPreviews( id: tab.id, title: tab.title ?? availableTabStates.collection[tab.id]!.title, icon: null, - url: tab.cleanUrl.mapNotNull(Uri.tryParse) ?? + url: + tab.cleanUrl.mapNotNull(Uri.tryParse) ?? availableTabStates.collection[tab.id]!.url, highlightedUrl: tab.url, content: tab.extractedContent ?? tab.fullContent, diff --git a/app/lib/features/geckoview/features/browser/domain/providers.g.dart b/app/lib/features/geckoview/features/browser/domain/providers.g.dart index a8af11a3..9ef5151e 100644 --- a/app/lib/features/geckoview/features/browser/domain/providers.g.dart +++ b/app/lib/features/geckoview/features/browser/domain/providers.g.dart @@ -39,21 +39,15 @@ class AvailableTabIdsFamily extends Family>> { const AvailableTabIdsFamily(); /// See also [availableTabIds]. - AvailableTabIdsProvider call( - ContainerFilter containerFilter, - ) { - return AvailableTabIdsProvider( - containerFilter, - ); + AvailableTabIdsProvider call(ContainerFilter containerFilter) { + return AvailableTabIdsProvider(containerFilter); } @override AvailableTabIdsProvider getProviderOverride( covariant AvailableTabIdsProvider provider, ) { - return call( - provider.containerFilter, - ); + return call(provider.containerFilter); } static const Iterable? _dependencies = null; @@ -75,24 +69,20 @@ class AvailableTabIdsFamily extends Family>> { class AvailableTabIdsProvider extends AutoDisposeProvider>> { /// See also [availableTabIds]. - AvailableTabIdsProvider( - ContainerFilter containerFilter, - ) : this._internal( - (ref) => availableTabIds( - ref as AvailableTabIdsRef, - containerFilter, - ), - from: availableTabIdsProvider, - name: r'availableTabIdsProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$availableTabIdsHash, - dependencies: AvailableTabIdsFamily._dependencies, - allTransitiveDependencies: - AvailableTabIdsFamily._allTransitiveDependencies, - containerFilter: containerFilter, - ); + AvailableTabIdsProvider(ContainerFilter containerFilter) + : this._internal( + (ref) => availableTabIds(ref as AvailableTabIdsRef, containerFilter), + from: availableTabIdsProvider, + name: r'availableTabIdsProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$availableTabIdsHash, + dependencies: AvailableTabIdsFamily._dependencies, + allTransitiveDependencies: + AvailableTabIdsFamily._allTransitiveDependencies, + containerFilter: containerFilter, + ); AvailableTabIdsProvider._internal( super._createNotifier, { @@ -109,7 +99,7 @@ class AvailableTabIdsProvider @override Override overrideWith( EquatableCollection> Function(AvailableTabIdsRef provider) - create, + create, ) { return ProviderOverride( origin: this, @@ -127,7 +117,7 @@ class AvailableTabIdsProvider @override AutoDisposeProviderElement>> - createElement() { + createElement() { return _AvailableTabIdsProviderElement(this); } @@ -178,21 +168,15 @@ class AvailableTabStatesFamily const AvailableTabStatesFamily(); /// See also [availableTabStates]. - AvailableTabStatesProvider call( - ContainerFilter containerFilter, - ) { - return AvailableTabStatesProvider( - containerFilter, - ); + AvailableTabStatesProvider call(ContainerFilter containerFilter) { + return AvailableTabStatesProvider(containerFilter); } @override AvailableTabStatesProvider getProviderOverride( covariant AvailableTabStatesProvider provider, ) { - return call( - provider.containerFilter, - ); + return call(provider.containerFilter); } static const Iterable? _dependencies = null; @@ -214,24 +198,21 @@ class AvailableTabStatesFamily class AvailableTabStatesProvider extends AutoDisposeProvider>> { /// See also [availableTabStates]. - AvailableTabStatesProvider( - ContainerFilter containerFilter, - ) : this._internal( - (ref) => availableTabStates( - ref as AvailableTabStatesRef, - containerFilter, - ), - from: availableTabStatesProvider, - name: r'availableTabStatesProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$availableTabStatesHash, - dependencies: AvailableTabStatesFamily._dependencies, - allTransitiveDependencies: - AvailableTabStatesFamily._allTransitiveDependencies, - containerFilter: containerFilter, - ); + AvailableTabStatesProvider(ContainerFilter containerFilter) + : this._internal( + (ref) => + availableTabStates(ref as AvailableTabStatesRef, containerFilter), + from: availableTabStatesProvider, + name: r'availableTabStatesProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$availableTabStatesHash, + dependencies: AvailableTabStatesFamily._dependencies, + allTransitiveDependencies: + AvailableTabStatesFamily._allTransitiveDependencies, + containerFilter: containerFilter, + ); AvailableTabStatesProvider._internal( super._createNotifier, { @@ -248,8 +229,9 @@ class AvailableTabStatesProvider @override Override overrideWith( EquatableCollection> Function( - AvailableTabStatesRef provider) - create, + AvailableTabStatesRef provider, + ) + create, ) { return ProviderOverride( origin: this, @@ -267,7 +249,7 @@ class AvailableTabStatesProvider @override AutoDisposeProviderElement>> - createElement() { + createElement() { return _AvailableTabStatesProviderElement(this); } @@ -294,8 +276,10 @@ mixin AvailableTabStatesRef ContainerFilter get containerFilter; } -class _AvailableTabStatesProviderElement extends AutoDisposeProviderElement< - EquatableCollection>> with AvailableTabStatesRef { +class _AvailableTabStatesProviderElement + extends + AutoDisposeProviderElement>> + with AvailableTabStatesRef { _AvailableTabStatesProviderElement(super.provider); @override @@ -321,20 +305,14 @@ class SeamlessFilteredTabIdsFamily TabSearchPartition searchPartition, ContainerFilter containerFilter, ) { - return SeamlessFilteredTabIdsProvider( - searchPartition, - containerFilter, - ); + return SeamlessFilteredTabIdsProvider(searchPartition, containerFilter); } @override SeamlessFilteredTabIdsProvider getProviderOverride( covariant SeamlessFilteredTabIdsProvider provider, ) { - return call( - provider.searchPartition, - provider.containerFilter, - ); + return call(provider.searchPartition, provider.containerFilter); } static const Iterable? _dependencies = null; @@ -360,23 +338,23 @@ class SeamlessFilteredTabIdsProvider TabSearchPartition searchPartition, ContainerFilter containerFilter, ) : this._internal( - (ref) => seamlessFilteredTabIds( - ref as SeamlessFilteredTabIdsRef, - searchPartition, - containerFilter, - ), - from: seamlessFilteredTabIdsProvider, - name: r'seamlessFilteredTabIdsProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$seamlessFilteredTabIdsHash, - dependencies: SeamlessFilteredTabIdsFamily._dependencies, - allTransitiveDependencies: - SeamlessFilteredTabIdsFamily._allTransitiveDependencies, - searchPartition: searchPartition, - containerFilter: containerFilter, - ); + (ref) => seamlessFilteredTabIds( + ref as SeamlessFilteredTabIdsRef, + searchPartition, + containerFilter, + ), + from: seamlessFilteredTabIdsProvider, + name: r'seamlessFilteredTabIdsProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$seamlessFilteredTabIdsHash, + dependencies: SeamlessFilteredTabIdsFamily._dependencies, + allTransitiveDependencies: + SeamlessFilteredTabIdsFamily._allTransitiveDependencies, + searchPartition: searchPartition, + containerFilter: containerFilter, + ); SeamlessFilteredTabIdsProvider._internal( super._createNotifier, { @@ -395,8 +373,9 @@ class SeamlessFilteredTabIdsProvider @override Override overrideWith( EquatableCollection> Function( - SeamlessFilteredTabIdsRef provider) - create, + SeamlessFilteredTabIdsRef provider, + ) + create, ) { return ProviderOverride( origin: this, @@ -415,7 +394,7 @@ class SeamlessFilteredTabIdsProvider @override AutoDisposeProviderElement>> - createElement() { + createElement() { return _SeamlessFilteredTabIdsProviderElement(this); } @@ -488,10 +467,7 @@ class SeamlessFilteredTabPreviewsFamily SeamlessFilteredTabPreviewsProvider getProviderOverride( covariant SeamlessFilteredTabPreviewsProvider provider, ) { - return call( - provider.searchPartition, - provider.containerFilter, - ); + return call(provider.searchPartition, provider.containerFilter); } static const Iterable? _dependencies = null; @@ -517,23 +493,23 @@ class SeamlessFilteredTabPreviewsProvider TabSearchPartition searchPartition, ContainerFilter containerFilter, ) : this._internal( - (ref) => seamlessFilteredTabPreviews( - ref as SeamlessFilteredTabPreviewsRef, - searchPartition, - containerFilter, - ), - from: seamlessFilteredTabPreviewsProvider, - name: r'seamlessFilteredTabPreviewsProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$seamlessFilteredTabPreviewsHash, - dependencies: SeamlessFilteredTabPreviewsFamily._dependencies, - allTransitiveDependencies: - SeamlessFilteredTabPreviewsFamily._allTransitiveDependencies, - searchPartition: searchPartition, - containerFilter: containerFilter, - ); + (ref) => seamlessFilteredTabPreviews( + ref as SeamlessFilteredTabPreviewsRef, + searchPartition, + containerFilter, + ), + from: seamlessFilteredTabPreviewsProvider, + name: r'seamlessFilteredTabPreviewsProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$seamlessFilteredTabPreviewsHash, + dependencies: SeamlessFilteredTabPreviewsFamily._dependencies, + allTransitiveDependencies: + SeamlessFilteredTabPreviewsFamily._allTransitiveDependencies, + searchPartition: searchPartition, + containerFilter: containerFilter, + ); SeamlessFilteredTabPreviewsProvider._internal( super._createNotifier, { @@ -552,8 +528,9 @@ class SeamlessFilteredTabPreviewsProvider @override Override overrideWith( EquatableCollection> Function( - SeamlessFilteredTabPreviewsRef provider) - create, + SeamlessFilteredTabPreviewsRef provider, + ) + create, ) { return ProviderOverride( origin: this, @@ -572,7 +549,7 @@ class SeamlessFilteredTabPreviewsProvider @override AutoDisposeProviderElement>> - createElement() { + createElement() { return _SeamlessFilteredTabPreviewsProviderElement(this); } @@ -623,9 +600,7 @@ String _$selectedBangTriggerHash() => abstract class _$SelectedBangTrigger extends BuildlessNotifier { late final String? domain; - String? build({ - String? domain, - }); + String? build({String? domain}); } /// See also [SelectedBangTrigger]. @@ -638,21 +613,15 @@ class SelectedBangTriggerFamily extends Family { const SelectedBangTriggerFamily(); /// See also [SelectedBangTrigger]. - SelectedBangTriggerProvider call({ - String? domain, - }) { - return SelectedBangTriggerProvider( - domain: domain, - ); + SelectedBangTriggerProvider call({String? domain}) { + return SelectedBangTriggerProvider(domain: domain); } @override SelectedBangTriggerProvider getProviderOverride( covariant SelectedBangTriggerProvider provider, ) { - return call( - domain: provider.domain, - ); + return call(domain: provider.domain); } static const Iterable? _dependencies = null; @@ -674,21 +643,20 @@ class SelectedBangTriggerFamily extends Family { class SelectedBangTriggerProvider extends NotifierProviderImpl { /// See also [SelectedBangTrigger]. - SelectedBangTriggerProvider({ - String? domain, - }) : this._internal( - () => SelectedBangTrigger()..domain = domain, - from: selectedBangTriggerProvider, - name: r'selectedBangTriggerProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$selectedBangTriggerHash, - dependencies: SelectedBangTriggerFamily._dependencies, - allTransitiveDependencies: - SelectedBangTriggerFamily._allTransitiveDependencies, - domain: domain, - ); + SelectedBangTriggerProvider({String? domain}) + : this._internal( + () => SelectedBangTrigger()..domain = domain, + from: selectedBangTriggerProvider, + name: r'selectedBangTriggerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$selectedBangTriggerHash, + dependencies: SelectedBangTriggerFamily._dependencies, + allTransitiveDependencies: + SelectedBangTriggerFamily._allTransitiveDependencies, + domain: domain, + ); SelectedBangTriggerProvider._internal( super._createNotifier, { @@ -703,12 +671,8 @@ class SelectedBangTriggerProvider final String? domain; @override - String? runNotifierBuild( - covariant SelectedBangTrigger notifier, - ) { - return notifier.build( - domain: domain, - ); + String? runNotifierBuild(covariant SelectedBangTrigger notifier) { + return notifier.build(domain: domain); } @override @@ -768,9 +732,7 @@ abstract class _$SelectedBangData extends BuildlessAutoDisposeNotifier { late final String? domain; - BangData? build({ - String? domain, - }); + BangData? build({String? domain}); } /// See also [SelectedBangData]. @@ -783,21 +745,15 @@ class SelectedBangDataFamily extends Family { const SelectedBangDataFamily(); /// See also [SelectedBangData]. - SelectedBangDataProvider call({ - String? domain, - }) { - return SelectedBangDataProvider( - domain: domain, - ); + SelectedBangDataProvider call({String? domain}) { + return SelectedBangDataProvider(domain: domain); } @override SelectedBangDataProvider getProviderOverride( covariant SelectedBangDataProvider provider, ) { - return call( - domain: provider.domain, - ); + return call(domain: provider.domain); } static const Iterable? _dependencies = null; @@ -819,21 +775,20 @@ class SelectedBangDataFamily extends Family { class SelectedBangDataProvider extends AutoDisposeNotifierProviderImpl { /// See also [SelectedBangData]. - SelectedBangDataProvider({ - String? domain, - }) : this._internal( - () => SelectedBangData()..domain = domain, - from: selectedBangDataProvider, - name: r'selectedBangDataProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$selectedBangDataHash, - dependencies: SelectedBangDataFamily._dependencies, - allTransitiveDependencies: - SelectedBangDataFamily._allTransitiveDependencies, - domain: domain, - ); + SelectedBangDataProvider({String? domain}) + : this._internal( + () => SelectedBangData()..domain = domain, + from: selectedBangDataProvider, + name: r'selectedBangDataProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$selectedBangDataHash, + dependencies: SelectedBangDataFamily._dependencies, + allTransitiveDependencies: + SelectedBangDataFamily._allTransitiveDependencies, + domain: domain, + ); SelectedBangDataProvider._internal( super._createNotifier, { @@ -848,12 +803,8 @@ class SelectedBangDataProvider final String? domain; @override - BangData? runNotifierBuild( - covariant SelectedBangData notifier, - ) { - return notifier.build( - domain: domain, - ); + BangData? runNotifierBuild(covariant SelectedBangData notifier) { + return notifier.build(domain: domain); } @override @@ -874,7 +825,7 @@ class SelectedBangDataProvider @override AutoDisposeNotifierProviderElement - createElement() { + createElement() { return _SelectedBangDataProviderElement(this); } @@ -915,14 +866,15 @@ String _$lastUsedAssistantModeHash() => @ProviderFor(LastUsedAssistantMode) final lastUsedAssistantModeProvider = NotifierProvider.internal( - LastUsedAssistantMode.new, - name: r'lastUsedAssistantModeProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$lastUsedAssistantModeHash, - dependencies: null, - allTransitiveDependencies: null, -); + LastUsedAssistantMode.new, + name: r'lastUsedAssistantModeProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$lastUsedAssistantModeHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$LastUsedAssistantMode = Notifier; String _$activeResearchVariantHash() => @@ -932,14 +884,15 @@ String _$activeResearchVariantHash() => @ProviderFor(ActiveResearchVariant) final activeResearchVariantProvider = NotifierProvider.internal( - ActiveResearchVariant.new, - name: r'activeResearchVariantProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$activeResearchVariantHash, - dependencies: null, - allTransitiveDependencies: null, -); + ActiveResearchVariant.new, + name: r'activeResearchVariantProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$activeResearchVariantHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$ActiveResearchVariant = Notifier; String _$activeChatModelHash() => r'675f406af8b4aa92699d59e37b5805a81d03a799'; @@ -948,14 +901,15 @@ String _$activeChatModelHash() => r'675f406af8b4aa92699d59e37b5805a81d03a799'; @ProviderFor(ActiveChatModel) final activeChatModelProvider = NotifierProvider.internal( - ActiveChatModel.new, - name: r'activeChatModelProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$activeChatModelHash, - dependencies: null, - allTransitiveDependencies: null, -); + ActiveChatModel.new, + name: r'activeChatModelProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$activeChatModelHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$ActiveChatModel = Notifier; String _$showFindInPageHash() => r'7ee5703f7d0c7e8a8dd6b0849d7b1e0a41fe24d9'; @@ -965,9 +919,10 @@ String _$showFindInPageHash() => r'7ee5703f7d0c7e8a8dd6b0849d7b1e0a41fe24d9'; final showFindInPageProvider = NotifierProvider.internal( ShowFindInPage.new, name: r'showFindInPageProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$showFindInPageHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$showFindInPageHash, dependencies: null, allTransitiveDependencies: null, ); diff --git a/app/lib/features/geckoview/features/browser/domain/services/create_tab.dart b/app/lib/features/geckoview/features/browser/domain/services/create_tab.dart index 894da417..cde7e8e2 100644 --- a/app/lib/features/geckoview/features/browser/domain/services/create_tab.dart +++ b/app/lib/features/geckoview/features/browser/domain/services/create_tab.dart @@ -13,18 +13,19 @@ part 'create_tab.g.dart'; final _parameterToCreateTabSheetTransformer = StreamTransformer.fromHandlers( - handleData: (parameter, sink) { - final createTab = CreateTabSheet( - preferredTool: KagiTool.values - .firstWhereOrNull((tool) => tool.name == parameter.tool), - content: parameter.content, - ); + handleData: (parameter, sink) { + final createTab = CreateTabSheet( + preferredTool: KagiTool.values.firstWhereOrNull( + (tool) => tool.name == parameter.tool, + ), + content: parameter.content, + ); - if (createTab.hasParameters) { - sink.add(createTab); - } - }, -); + if (createTab.hasParameters) { + sink.add(createTab); + } + }, + ); @Riverpod() class CreateTabStream extends _$CreateTabStream { diff --git a/app/lib/features/geckoview/features/browser/domain/services/create_tab.g.dart b/app/lib/features/geckoview/features/browser/domain/services/create_tab.g.dart index fc65f9f0..83f3bd8b 100644 --- a/app/lib/features/geckoview/features/browser/domain/services/create_tab.g.dart +++ b/app/lib/features/geckoview/features/browser/domain/services/create_tab.g.dart @@ -12,14 +12,15 @@ String _$createTabStreamHash() => r'2e802a10ecaf1862074f32b76e89c26997bdd7b2'; @ProviderFor(CreateTabStream) final createTabStreamProvider = AutoDisposeStreamNotifierProvider.internal( - CreateTabStream.new, - name: r'createTabStreamProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$createTabStreamHash, - dependencies: null, - allTransitiveDependencies: null, -); + CreateTabStream.new, + name: r'createTabStreamProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$createTabStreamHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$CreateTabStream = AutoDisposeStreamNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/browser/domain/services/delete_browser_data.g.dart b/app/lib/features/geckoview/features/browser/domain/services/delete_browser_data.g.dart index 28eaf360..4be732cb 100644 --- a/app/lib/features/geckoview/features/browser/domain/services/delete_browser_data.g.dart +++ b/app/lib/features/geckoview/features/browser/domain/services/delete_browser_data.g.dart @@ -13,14 +13,15 @@ String _$deleteBrowserDataServiceHash() => @ProviderFor(DeleteBrowserDataService) final deleteBrowserDataServiceProvider = AutoDisposeNotifierProvider.internal( - DeleteBrowserDataService.new, - name: r'deleteBrowserDataServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$deleteBrowserDataServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + DeleteBrowserDataService.new, + name: r'deleteBrowserDataServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$deleteBrowserDataServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$DeleteBrowserDataService = AutoDisposeNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/browser/domain/services/engine_settings_replication.dart b/app/lib/features/geckoview/features/browser/domain/services/engine_settings_replication.dart index 54b19918..fba3b461 100644 --- a/app/lib/features/geckoview/features/browser/domain/services/engine_settings_replication.dart +++ b/app/lib/features/geckoview/features/browser/domain/services/engine_settings_replication.dart @@ -16,8 +16,9 @@ class EngineSettingsReplicationService var initialSettingsSent = false; ref.listen( - generalSettingsRepositoryProvider - .select((settings) => settings.themeMode), + generalSettingsRepositoryProvider.select( + (settings) => settings.themeMode, + ), (previous, next) async { final theme = switch (next) { ThemeMode.system => ColorScheme.system, @@ -29,62 +30,63 @@ class EngineSettingsReplicationService }, ); - ref.listen( - engineSettingsRepositoryProvider, - (previous, next) async { - if (initialSettingsSent && previous != null) { - if (previous.javascriptEnabled != next.javascriptEnabled) { - await _service.javascriptEnabled(next.javascriptEnabled); - } - if (previous.trackingProtectionPolicy != - next.trackingProtectionPolicy) { - await _service - .trackingProtectionPolicy(next.trackingProtectionPolicy); - } - if (previous.httpsOnlyMode != next.httpsOnlyMode) { - await _service.httpsOnlyMode(next.httpsOnlyMode); - } - if (previous.globalPrivacyControlEnabled != - next.globalPrivacyControlEnabled) { - await _service - .globalPrivacyControlEnabled(next.globalPrivacyControlEnabled); - } - if (previous.preferredColorScheme != next.preferredColorScheme) { - await _service.preferredColorScheme(next.preferredColorScheme); - } - if (previous.cookieBannerHandlingMode != - next.cookieBannerHandlingMode) { - await _service - .cookieBannerHandlingMode(next.cookieBannerHandlingMode); - } - if (previous.cookieBannerHandlingModePrivateBrowsing != - next.cookieBannerHandlingModePrivateBrowsing) { - await _service.cookieBannerHandlingModePrivateBrowsing( - next.cookieBannerHandlingModePrivateBrowsing, - ); - } - if (previous.cookieBannerHandlingGlobalRules != - next.cookieBannerHandlingGlobalRules) { - await _service.cookieBannerHandlingGlobalRules( - next.cookieBannerHandlingGlobalRules, - ); - } - if (previous.cookieBannerHandlingGlobalRulesSubFrames != - next.cookieBannerHandlingGlobalRulesSubFrames) { - await _service.cookieBannerHandlingGlobalRulesSubFrames( - next.cookieBannerHandlingGlobalRulesSubFrames, - ); - } - if (previous.webContentIsolationStrategy != - next.webContentIsolationStrategy) { - await _service - .webContentIsolationStrategy(next.webContentIsolationStrategy); - } - } else { - await _service.setDefaultSettings(next); - initialSettingsSent = true; + ref.listen(engineSettingsRepositoryProvider, (previous, next) async { + if (initialSettingsSent && previous != null) { + if (previous.javascriptEnabled != next.javascriptEnabled) { + await _service.javascriptEnabled(next.javascriptEnabled); } - }, - ); + if (previous.trackingProtectionPolicy != + next.trackingProtectionPolicy) { + await _service.trackingProtectionPolicy( + next.trackingProtectionPolicy, + ); + } + if (previous.httpsOnlyMode != next.httpsOnlyMode) { + await _service.httpsOnlyMode(next.httpsOnlyMode); + } + if (previous.globalPrivacyControlEnabled != + next.globalPrivacyControlEnabled) { + await _service.globalPrivacyControlEnabled( + next.globalPrivacyControlEnabled, + ); + } + if (previous.preferredColorScheme != next.preferredColorScheme) { + await _service.preferredColorScheme(next.preferredColorScheme); + } + if (previous.cookieBannerHandlingMode != + next.cookieBannerHandlingMode) { + await _service.cookieBannerHandlingMode( + next.cookieBannerHandlingMode, + ); + } + if (previous.cookieBannerHandlingModePrivateBrowsing != + next.cookieBannerHandlingModePrivateBrowsing) { + await _service.cookieBannerHandlingModePrivateBrowsing( + next.cookieBannerHandlingModePrivateBrowsing, + ); + } + if (previous.cookieBannerHandlingGlobalRules != + next.cookieBannerHandlingGlobalRules) { + await _service.cookieBannerHandlingGlobalRules( + next.cookieBannerHandlingGlobalRules, + ); + } + if (previous.cookieBannerHandlingGlobalRulesSubFrames != + next.cookieBannerHandlingGlobalRulesSubFrames) { + await _service.cookieBannerHandlingGlobalRulesSubFrames( + next.cookieBannerHandlingGlobalRulesSubFrames, + ); + } + if (previous.webContentIsolationStrategy != + next.webContentIsolationStrategy) { + await _service.webContentIsolationStrategy( + next.webContentIsolationStrategy, + ); + } + } else { + await _service.setDefaultSettings(next); + initialSettingsSent = true; + } + }); } } diff --git a/app/lib/features/geckoview/features/browser/domain/services/engine_settings_replication.g.dart b/app/lib/features/geckoview/features/browser/domain/services/engine_settings_replication.g.dart index 63850815..44ff7d95 100644 --- a/app/lib/features/geckoview/features/browser/domain/services/engine_settings_replication.g.dart +++ b/app/lib/features/geckoview/features/browser/domain/services/engine_settings_replication.g.dart @@ -13,14 +13,15 @@ String _$engineSettingsReplicationServiceHash() => @ProviderFor(EngineSettingsReplicationService) final engineSettingsReplicationServiceProvider = NotifierProvider.internal( - EngineSettingsReplicationService.new, - name: r'engineSettingsReplicationServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$engineSettingsReplicationServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + EngineSettingsReplicationService.new, + name: r'engineSettingsReplicationServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$engineSettingsReplicationServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$EngineSettingsReplicationService = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/browser/domain/services/proxy_settings_replucation.dart b/app/lib/features/geckoview/features/browser/domain/services/proxy_settings_replucation.dart index fab3c828..aa2bfeda 100644 --- a/app/lib/features/geckoview/features/browser/domain/services/proxy_settings_replucation.dart +++ b/app/lib/features/geckoview/features/browser/domain/services/proxy_settings_replucation.dart @@ -12,14 +12,14 @@ class ProxySettingsReplucation extends _$ProxySettingsReplucation { @override void build() { - ref.listen( - torProxyServiceProvider.select((data) => data.valueOrNull), - (previous, next) async { - if (next != null) { - await _service.setProxyPort(next); - } - }, - ); + ref.listen(torProxyServiceProvider.select((data) => data.valueOrNull), ( + previous, + next, + ) async { + if (next != null) { + await _service.setProxyPort(next); + } + }); ref.listen( containersWithCountProvider.select( diff --git a/app/lib/features/geckoview/features/browser/domain/services/proxy_settings_replucation.g.dart b/app/lib/features/geckoview/features/browser/domain/services/proxy_settings_replucation.g.dart index fe46d2cd..9d2fbc3c 100644 --- a/app/lib/features/geckoview/features/browser/domain/services/proxy_settings_replucation.g.dart +++ b/app/lib/features/geckoview/features/browser/domain/services/proxy_settings_replucation.g.dart @@ -13,14 +13,15 @@ String _$proxySettingsReplucationHash() => @ProviderFor(ProxySettingsReplucation) final proxySettingsReplucationProvider = NotifierProvider.internal( - ProxySettingsReplucation.new, - name: r'proxySettingsReplucationProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$proxySettingsReplucationHash, - dependencies: null, - allTransitiveDependencies: null, -); + ProxySettingsReplucation.new, + name: r'proxySettingsReplucationProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$proxySettingsReplucationHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$ProxySettingsReplucation = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/browser/presentation/dialogs/web_page_dialog.dart b/app/lib/features/geckoview/features/browser/presentation/dialogs/web_page_dialog.dart index 23c34fe9..eeaaed0f 100644 --- a/app/lib/features/geckoview/features/browser/presentation/dialogs/web_page_dialog.dart +++ b/app/lib/features/geckoview/features/browser/presentation/dialogs/web_page_dialog.dart @@ -36,11 +36,7 @@ class WebPageDialog extends HookConsumerWidget { final Uri url; final WebPageInfo? precachedInfo; - const WebPageDialog({ - required this.url, - this.precachedInfo, - super.key, - }); + const WebPageDialog({required this.url, this.precachedInfo, super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -63,8 +59,10 @@ class WebPageDialog extends HookConsumerWidget { context: context, removeBottom: true, child: Dialog( - insetPadding: - const EdgeInsets.symmetric(horizontal: 16.0, vertical: 64.0), + insetPadding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 64.0, + ), child: Column( mainAxisSize: MainAxisSize.min, children: [ @@ -79,26 +77,24 @@ class WebPageDialog extends HookConsumerWidget { padding: const EdgeInsets.symmetric(horizontal: 16.0), child: HookConsumer( builder: (context, ref, child) { - final addressTextController = - useTextEditingController(text: url.toString()); + final addressTextController = useTextEditingController( + text: url.toString(), + ); final addressTextFocusNode = useFocusNode(); final suggestion = useState(null); - useListenableCallback( - addressTextController, - () async { - if (addressTextController.text.isNotEmpty) { - final result = await ref - .read(engineSuggestionsProvider.notifier) - .getAutocompleteSuggestion( - addressTextController.text, - ); + useListenableCallback(addressTextController, () async { + if (addressTextController.text.isNotEmpty) { + final result = await ref + .read(engineSuggestionsProvider.notifier) + .getAutocompleteSuggestion( + addressTextController.text, + ); - suggestion.value = result; - } - }, - ); + suggestion.value = result; + } + }); return AutoSuggestTextField( controller: addressTextController, @@ -121,12 +117,15 @@ class WebPageDialog extends HookConsumerWidget { }, onSubmitted: (value) async { if (value.isNotEmpty) { - var newUrl = - uri_parser.tryParseUrl(value, eagerParsing: true); + var newUrl = uri_parser.tryParseUrl( + value, + eagerParsing: true, + ); if (newUrl == null) { - final defaultSearchBang = await ref - .read(defaultSearchBangDataProvider.future); + final defaultSearchBang = await ref.read( + defaultSearchBangDataProvider.future, + ); newUrl = defaultSearchBang?.getUrl(value); } @@ -147,9 +146,7 @@ class WebPageDialog extends HookConsumerWidget { ), ), ), - const SizedBox( - height: 4, - ), + const SizedBox(height: 4), const Divider(), Flexible( child: FadingScroll( @@ -173,21 +170,23 @@ class WebPageDialog extends HookConsumerWidget { availableBangs: availableBangs, ); }, - error: (error, stackTrace) => FailureWidget( - title: 'Could not load bangs', - exception: error, - ), - loading: () => SiteSearch( - domain: url.host, - availableBangs: [ - BangData( - websiteName: 'websiteName', - domain: 'domain', - trigger: 'trigger', - urlTemplate: 'urlTemplate', + error: + (error, stackTrace) => FailureWidget( + title: 'Could not load bangs', + exception: error, + ), + loading: + () => SiteSearch( + domain: url.host, + availableBangs: [ + BangData( + websiteName: 'websiteName', + domain: 'domain', + trigger: 'trigger', + urlTemplate: 'urlTemplate', + ), + ], ), - ], - ), ), ), if (availableBangsAsync.isLoading || @@ -241,31 +240,30 @@ class WebPageDialog extends HookConsumerWidget { leading: const Icon(Icons.mobile_screen_share), title: const Text('Share screenshot'), onTap: () async { - final screenshot = await ref - .read(selectedTabSessionNotifierProvider) - .requestScreenshot(); + final screenshot = + await ref + .read(selectedTabSessionNotifierProvider) + .requestScreenshot(); if (screenshot != null) { - ui.decodeImageFromList( - screenshot, - (result) async { - final png = await result.toByteData( - format: ui.ImageByteFormat.png, + ui.decodeImageFromList(screenshot, ( + result, + ) async { + final png = await result.toByteData( + format: ui.ImageByteFormat.png, + ); + + if (png != null) { + final file = XFile.fromData( + png.buffer.asUint8List(), + mimeType: 'image/png', ); - if (png != null) { - final file = XFile.fromData( - png.buffer.asUint8List(), - mimeType: 'image/png', - ); - - await Share.shareXFiles( - [file], - subject: precachedInfo?.title, - ); - } - }, - ); + await Share.shareXFiles([ + file, + ], subject: precachedInfo?.title); + } + }); } if (context.mounted) { diff --git a/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart b/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart index 5fba90e5..c4834b0c 100644 --- a/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart +++ b/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart @@ -53,8 +53,9 @@ class BrowserScreen extends HookConsumerWidget { final displayedSheet = ref.watch(bottomSheetControllerProvider); final displayedOverlayDialog = ref.watch(overlayDialogControllerProvider); - final selectedTabId = - ref.watch(selectedTabStateProvider.select((value) => value?.id)); + final selectedTabId = ref.watch( + selectedTabStateProvider.select((value) => value?.id), + ); final trippleDotMenuController = useMenuController(); final tabMenuController = useMenuController(); @@ -65,16 +66,13 @@ class BrowserScreen extends HookConsumerWidget { final activeKagiTool = useValueNotifier(null, [displayedSheet]); - ref.listen( - overlayDialogControllerProvider, - (previous, next) { - if (next != null) { - overlayController.show(); - } else { - overlayController.hide(); - } - }, - ); + ref.listen(overlayDialogControllerProvider, (previous, next) { + if (next != null) { + overlayController.show(); + } else { + overlayController.hide(); + } + }); // ref.listen( // generalSettingsRepositoryProvider @@ -96,8 +94,9 @@ class BrowserScreen extends HookConsumerWidget { bottomNavigationBar: Consumer( builder: (context, ref, child) { final tabInFullScreen = ref.watch( - selectedTabStateProvider - .select((value) => value?.isFullScreen ?? false), + selectedTabStateProvider.select( + (value) => value?.isFullScreen ?? false, + ), ); return Visibility( @@ -108,15 +107,17 @@ class BrowserScreen extends HookConsumerWidget { child: AppBar( automaticallyImplyLeading: false, titleSpacing: 8.0, - title: (selectedTabId != null && - displayedSheet is! ViewTabsSheet) - ? Consumer( - builder: (context, ref, child) { - final tabState = - ref.watch(tabStateProvider(selectedTabId)); + title: + (selectedTabId != null && + displayedSheet is! ViewTabsSheet) + ? Consumer( + builder: (context, ref, child) { + final tabState = ref.watch( + tabStateProvider(selectedTabId), + ); - return (tabState != null) - ? AppBarTitle( + return (tabState != null) + ? AppBarTitle( tab: tabState, onTap: () async { await context.push( @@ -129,93 +130,95 @@ class BrowserScreen extends HookConsumerWidget { onDoubleTap: () async { final newUrl = await showDialog( context: context, - builder: (context) => EditUrlDialog( - initialUrl: tabState.url, - ), + builder: + (context) => EditUrlDialog( + initialUrl: tabState.url, + ), ); if (newUrl != null) { await ref .read( - tabSessionProvider(tabId: null) - .notifier, + tabSessionProvider( + tabId: null, + ).notifier, ) .loadUrl(url: newUrl); } }, ) - : const SizedBox.shrink(); - }, - ) - : HookBuilder( - builder: (context) { - // final activeTool = useListenableSelector( - // activeKagiTool, - // () { - // if (displayedSheet is CreateTabSheetWidget) { - // return null; - // } + : const SizedBox.shrink(); + }, + ) + : HookBuilder( + builder: (context) { + // final activeTool = useListenableSelector( + // activeKagiTool, + // () { + // if (displayedSheet is CreateTabSheetWidget) { + // return null; + // } - // return activeKagiTool.value; - // }, - // ); + // return activeKagiTool.value; + // }, + // ); - return Row( - children: [ - // IconButton( - // color: (activeTool == KagiTool.search) - // ? Theme.of(context).colorScheme.primary - // : null, - // onPressed: () async { - // // ref - // // .read(createTabStreamProvider.notifier) - // // .createTab( - // // CreateTabSheet( - // // preferredTool: KagiTool.search, - // // ), - // // ); - // await context - // .push(const SearchRoute().location); - // }, - // icon: Icon(KagiTool.search.icon), - // ), - // IconButton( - // color: (activeTool == KagiTool.summarizer) - // ? Theme.of(context).colorScheme.primary - // : null, - // onPressed: () { - // ref - // .read(createTabStreamProvider.notifier) - // .createTab( - // CreateTabSheet( - // preferredTool: KagiTool.summarizer, - // ), - // ); - // }, - // icon: Icon(KagiTool.summarizer.icon), - // ), - // if (showEarlyAccessFeatures) - // IconButton( - // color: (activeTool == KagiTool.assistant) - // ? Theme.of(context).colorScheme.primary - // : null, - // onPressed: () { - // ref - // .read( - // createTabStreamProvider.notifier, - // ) - // .createTab( - // CreateTabSheet( - // preferredTool: KagiTool.assistant, - // ), - // ); - // }, - // icon: Icon(KagiTool.assistant.icon), - // ), - ], - ); - }, - ), + return Row( + children: [ + // IconButton( + // color: (activeTool == KagiTool.search) + // ? Theme.of(context).colorScheme.primary + // : null, + // onPressed: () async { + // // ref + // // .read(createTabStreamProvider.notifier) + // // .createTab( + // // CreateTabSheet( + // // preferredTool: KagiTool.search, + // // ), + // // ); + // await context + // .push(const SearchRoute().location); + // }, + // icon: Icon(KagiTool.search.icon), + // ), + // IconButton( + // color: (activeTool == KagiTool.summarizer) + // ? Theme.of(context).colorScheme.primary + // : null, + // onPressed: () { + // ref + // .read(createTabStreamProvider.notifier) + // .createTab( + // CreateTabSheet( + // preferredTool: KagiTool.summarizer, + // ), + // ); + // }, + // icon: Icon(KagiTool.summarizer.icon), + // ), + // if (showEarlyAccessFeatures) + // IconButton( + // color: (activeTool == KagiTool.assistant) + // ? Theme.of(context).colorScheme.primary + // : null, + // onPressed: () { + // ref + // .read( + // createTabStreamProvider.notifier, + // ) + // .createTab( + // CreateTabSheet( + // preferredTool: KagiTool.assistant, + // ), + // ); + // }, + // icon: Icon(KagiTool.assistant.icon), + // ), + ], + ); + }, + ), actions: [ if (selectedTabId != null && displayedSheet is! ViewTabsSheet) @@ -278,9 +281,7 @@ class BrowserScreen extends HookConsumerWidget { MenuItemButton( onPressed: () async { await ref - .read( - tabRepositoryProvider.notifier, - ) + .read(tabRepositoryProvider.notifier) .closeTab(selectedTabId); }, leadingIcon: const Icon(Icons.close), @@ -488,8 +489,9 @@ class BrowserScreen extends HookConsumerWidget { if (selectedTabId != null) MenuItemButton( onPressed: () async { - final tabState = - ref.read(tabStateProvider(selectedTabId)); + final tabState = ref.read( + tabStateProvider(selectedTabId), + ); if (tabState?.url case final Uri url) { await ui_helper.launchUrlFeedback(context, url); @@ -501,8 +503,9 @@ class BrowserScreen extends HookConsumerWidget { if (selectedTabId != null) MenuItemButton( onPressed: () async { - final tabState = - ref.read(tabStateProvider(selectedTabId)); + final tabState = ref.read( + tabStateProvider(selectedTabId), + ); if (tabState?.url case final Uri url) { await Share.shareUri(url); @@ -530,8 +533,9 @@ class BrowserScreen extends HookConsumerWidget { MenuItemButton( onPressed: () async { final controller = ref.read( - tabSessionProvider(tabId: selectedTabId) - .notifier, + tabSessionProvider( + tabId: selectedTabId, + ).notifier, ); await controller.reload(); @@ -545,39 +549,45 @@ class BrowserScreen extends HookConsumerWidget { Consumer( builder: (context, ref, child) { final history = ref.watch( - tabStateProvider(selectedTabId) - .select((value) => value?.historyState), + tabStateProvider( + selectedTabId, + ).select((value) => value?.historyState), ); return Row( children: [ Expanded( - child: (history?.canGoBack == true) - ? IconButton( - onPressed: () async { - final controller = ref.read( - tabSessionProvider( - tabId: selectedTabId, - ).notifier, - ); + child: + (history?.canGoBack == true) + ? IconButton( + onPressed: () async { + final controller = ref.read( + tabSessionProvider( + tabId: selectedTabId, + ).notifier, + ); - await controller.goBack(); - trippleDotMenuController.close(); - }, - icon: const Icon(Icons.arrow_back), - ) - : IconButton( - onPressed: () async { - await ref - .read( - tabRepositoryProvider - .notifier, - ) - .closeTab(selectedTabId); - trippleDotMenuController.close(); - }, - icon: const Icon(Icons.close), - ), + await controller.goBack(); + trippleDotMenuController + .close(); + }, + icon: const Icon( + Icons.arrow_back, + ), + ) + : IconButton( + onPressed: () async { + await ref + .read( + tabRepositoryProvider + .notifier, + ) + .closeTab(selectedTabId); + trippleDotMenuController + .close(); + }, + icon: const Icon(Icons.close), + ), ), const SizedBox( height: 48, @@ -585,18 +595,20 @@ class BrowserScreen extends HookConsumerWidget { ), Expanded( child: IconButton( - onPressed: (history?.canGoForward == true) - ? () async { - final controller = ref.read( - tabSessionProvider( - tabId: selectedTabId, - ).notifier, - ); + onPressed: + (history?.canGoForward == true) + ? () async { + final controller = ref.read( + tabSessionProvider( + tabId: selectedTabId, + ).notifier, + ); - await controller.goForward(); - trippleDotMenuController.close(); - } - : null, + await controller.goForward(); + trippleDotMenuController + .close(); + } + : null, icon: const Icon(Icons.arrow_forward), ), ), @@ -640,20 +652,22 @@ class BrowserScreen extends HookConsumerWidget { return displayedOverlayDialog!; }, child: Listener( - onPointerDown: (displayedSheet != null) - ? (_) { - ref - .read(bottomSheetControllerProvider.notifier) - .dismiss(); - } - : null, + onPointerDown: + (displayedSheet != null) + ? (_) { + ref + .read(bottomSheetControllerProvider.notifier) + .dismiss(); + } + : null, child: HookConsumer( builder: (context, ref, child) { return BackButtonListener( onBackButtonPressed: () async { - final tabState = (selectedTabId != null) - ? ref.read(tabStateProvider(selectedTabId)) - : null; + final tabState = + (selectedTabId != null) + ? ref.read(tabStateProvider(selectedTabId)) + : null; final tabCount = ref.read( tabListProvider.select((tabs) => tabs.length), @@ -698,8 +712,9 @@ class BrowserScreen extends HookConsumerWidget { } if (lastBackButtonPress.value != null && - DateTime.now() - .difference(lastBackButtonPress.value!) < + DateTime.now().difference( + lastBackButtonPress.value!, + ) < const Duration(seconds: 2)) { lastBackButtonPress.value = null; @@ -718,13 +733,14 @@ class BrowserScreen extends HookConsumerWidget { ..clearSnackBars() ..showSnackBar( SnackBar( - content: (tabCount > 1) - ? const Text( - 'Please click BACK again to close current tab', - ) - : const Text( - 'Please click BACK again to exit app', - ), + content: + (tabCount > 1) + ? const Text( + 'Please click BACK again to close current tab', + ) + : const Text( + 'Please click BACK again to exit app', + ), ), ); @@ -744,16 +760,16 @@ class BrowserScreen extends HookConsumerWidget { child: Consumer( builder: (context, ref, child) { final value = ref.watch( - selectedTabStateProvider.select( - (state) { - if (state?.isLoading == true) { - return state?.progress ?? 100; - } + selectedTabStateProvider.select(( + state, + ) { + if (state?.isLoading == true) { + return state?.progress ?? 100; + } - //When not loading we assumed finished - return 100; - }, - ), + //When not loading we assumed finished + return 100; + }), ); return Visibility( @@ -774,11 +790,13 @@ class BrowserScreen extends HookConsumerWidget { final value = ref.watch( selectedTabStateProvider.select( (state) => EdgeInsets.only( - bottom: (state?.isLoading == true && - state?.progress != null && - state!.progress < 100) - ? 4.0 - : 0.0, + bottom: + (state?.isLoading == true && + state?.progress != + null && + state!.progress < 100) + ? 4.0 + : 0.0, ), ), ); @@ -794,7 +812,7 @@ class BrowserScreen extends HookConsumerWidget { ModalBarrier( color: Theme.of(context).dialogTheme.barrierColor ?? - Colors.black54, + Colors.black54, ), ], ), @@ -806,22 +824,25 @@ class BrowserScreen extends HookConsumerWidget { }, ), floatingActionButton: ReaderAppearanceButton(), - bottomSheet: (displayedSheet != null) - ? NotificationListener( - onNotification: (notification) { - if (notification.extent <= 0.1) { - ref.read(bottomSheetControllerProvider.notifier).dismiss(); - return true; - } else { - ref - .read(bottomSheetExtendProvider.notifier) - .add(notification.extent); - } + bottomSheet: + (displayedSheet != null) + ? NotificationListener( + onNotification: (notification) { + if (notification.extent <= 0.1) { + ref + .read(bottomSheetControllerProvider.notifier) + .dismiss(); + return true; + } else { + ref + .read(bottomSheetExtendProvider.notifier) + .add(notification.extent); + } - return false; - }, - child: switch (displayedSheet) { - ViewTabsSheet() => HookBuilder( + return false; + }, + child: switch (displayedSheet) { + ViewTabsSheet() => HookBuilder( builder: (localContext) { final draggableScrollableController = useDraggableScrollableController(); @@ -855,7 +876,7 @@ class BrowserScreen extends HookConsumerWidget { ); }, ), - final CreateTabSheet parameter => DraggableScrollableSheet( + final CreateTabSheet parameter => DraggableScrollableSheet( key: ValueKey(displayedSheet), expand: false, initialChildSize: 0.8, @@ -883,7 +904,7 @@ class BrowserScreen extends HookConsumerWidget { ); }, ), - final TabQaChatSheet parameter => HookBuilder( + final TabQaChatSheet parameter => HookBuilder( builder: (localContext) { final draggableScrollableController = useDraggableScrollableController(); @@ -937,9 +958,9 @@ class BrowserScreen extends HookConsumerWidget { ); }, ), - }, - ) - : null, + }, + ) + : null, ), ); } diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/app_bar_title.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/app_bar_title.dart index 8e0950ae..963fd278 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/app_bar_title.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/app_bar_title.dart @@ -31,15 +31,9 @@ class AppBarTitle extends StatelessWidget { size: 14, ); } else if (!tab.isLoading) { - return const Icon( - MdiIcons.lock, - size: 14, - ); + return const Icon(MdiIcons.lock, size: 14); } else { - return const Icon( - MdiIcons.timerSand, - size: 14, - ); + return const Icon(MdiIcons.timerSand, size: 14); } } @@ -54,19 +48,11 @@ class AppBarTitle extends StatelessWidget { Skeletonizer( enabled: tab.icon == null, child: Skeleton.replace( - replacement: const Bone.icon( - size: 16, - ), - child: RawImage( - image: tab.icon?.value, - height: 16, - width: 16, - ), + replacement: const Bone.icon(size: 16), + child: RawImage(image: tab.icon?.value, height: 16, width: 16), ), ), - const SizedBox( - width: 8, - ), + const SizedBox(width: 8), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -82,8 +68,9 @@ class AppBarTitle extends StatelessWidget { child: TextScroll( key: ValueKey(tab.title), tab.title, - style: theme.textTheme.bodyLarge - ?.copyWith(color: theme.colorScheme.onSurface), + style: theme.textTheme.bodyLarge?.copyWith( + color: theme.colorScheme.onSurface, + ), // mode: TextScrollMode.bouncing, velocity: const Velocity(pixelsPerSecond: Offset(75, 0)), delayBefore: const Duration(milliseconds: 500), @@ -99,14 +86,13 @@ class AppBarTitle extends StatelessWidget { Row( children: [ _securityStatusIcon(context), - const SizedBox( - width: 4, - ), + const SizedBox(width: 4), Expanded( child: Text( tab.url.authority, - style: theme.textTheme.bodyMedium - ?.copyWith(color: theme.colorScheme.onSurface), + style: theme.textTheme.bodyMedium?.copyWith( + color: theme.colorScheme.onSurface, + ), ), ), ], diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_view.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_view.dart index f056e649..feae857e 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_view.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_view.dart @@ -42,17 +42,18 @@ class _BrowserViewState extends ConsumerState .read(selectedTabSessionNotifierProvider) .requestScreenshot(requireImageResult: false) .onError((error, stackTrace) { - logger.e(error, stackTrace: stackTrace); - timer.cancel(); + logger.e(error, stackTrace: stackTrace); + timer.cancel(); - return null; - }); + return null; + }); } @override Widget build(BuildContext context) { - final hasTab = - ref.watch(selectedTabProvider.select((value) => value != null)); + final hasTab = ref.watch( + selectedTabProvider.select((value) => value != null), + ); ref.listen( selectedTabStateProvider.select( @@ -68,43 +69,41 @@ class _BrowserViewState extends ConsumerState if (next.isLoading == false && (_periodicScreenshotUpdate?.isActive ?? false) == false) { _timerPaused = false; - _periodicScreenshotUpdate = - Timer.periodic(widget.screenshotPeriod, _timerTick); + _periodicScreenshotUpdate = Timer.periodic( + widget.screenshotPeriod, + _timerTick, + ); } }, ); return Visibility( visible: hasTab, - replacement: SizedBox.expand( - child: Container( - color: Colors.grey[800], - ), - ), + replacement: SizedBox.expand(child: Container(color: Colors.grey[800])), child: GeckoView( preInitializationStep: () async { await ref .read(generalSettingsRepositoryProvider.notifier) .fetch() .then((settings) { - ref - .read(deleteBrowserDataServiceProvider.notifier) - .deleteData(settings.deleteBrowsingDataOnQuit); - }); + ref + .read(deleteBrowserDataServiceProvider.notifier) + .deleteData(settings.deleteBrowsingDataOnQuit); + }); await ref .read(eventServiceProvider) .viewReadyStateEvents .firstWhere((state) => state == true) .timeout( - const Duration(seconds: 3), - onTimeout: () { - logger.e( - 'Browser fragement not reported ready, trying to intitialize anyways', + const Duration(seconds: 3), + onTimeout: () { + logger.e( + 'Browser fragement not reported ready, trying to intitialize anyways', + ); + return true; + }, ); - return true; - }, - ); }, postInitializationStep: () async { await widget.postInitializationStep?.call(); @@ -123,10 +122,7 @@ class _BrowserViewState extends ConsumerState ref.listenManual(tabRepositoryProvider, (previous, next) {}); ref.listenManual(documentRepositoryProvider, (previous, next) {}); - ref.listenManual( - selectionActionServiceProvider, - (previous, next) {}, - ); + ref.listenManual(selectionActionServiceProvider, (previous, next) {}); ref.listenManual( webExtensionsStateProvider(WebExtensionActionType.browser), @@ -138,20 +134,14 @@ class _BrowserViewState extends ConsumerState (previous, next) {}, ); - ref.listenManual( - cacheRepositoryProvider, - (previous, next) {}, - ); + ref.listenManual(cacheRepositoryProvider, (previous, next) {}); ref.listenManual( engineSettingsReplicationServiceProvider, (previous, next) {}, ); - ref.listenManual( - proxySettingsReplucationProvider, - (previous, next) {}, - ); + ref.listenManual(proxySettingsReplucationProvider, (previous, next) {}); } @override @@ -173,8 +163,10 @@ class _BrowserViewState extends ConsumerState .evictCacheOnBackground(); case AppLifecycleState.resumed: if (_timerPaused) { - _periodicScreenshotUpdate = - Timer.periodic(widget.screenshotPeriod, _timerTick); + _periodicScreenshotUpdate = Timer.periodic( + widget.screenshotPeriod, + _timerTick, + ); _timerPaused = false; } } diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/draggable_scrollable_header.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/draggable_scrollable_header.dart index 8b5a6113..a233f2a8 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/draggable_scrollable_header.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/draggable_scrollable_header.dart @@ -18,12 +18,7 @@ class DraggableScrollableHeader extends StatelessWidget { onVerticalDragUpdate: (details) { // Use the DraggableScrollableSheet's controller controller.jumpTo( - min( - 1, - controller.pixelsToSize( - controller.pixels - details.delta.dy, - ), - ), + min(1, controller.pixelsToSize(controller.pixels - details.delta.dy)), ); }, child: child, diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/edit_url_dialog.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/edit_url_dialog.dart index b19d3828..96f0a04d 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/edit_url_dialog.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/edit_url_dialog.dart @@ -20,9 +20,7 @@ class EditUrlDialog extends HookWidget { controller: urlController, maxLines: null, keyboardType: TextInputType.url, - decoration: const InputDecoration( - hintText: 'Enter URL', - ), + decoration: const InputDecoration(hintText: 'Enter URL'), validator: (value) { if (value == null || value.isEmpty) { return 'Please enter a URL'; diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/error_container.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/error_container.dart index a32a9c69..d4dc68fa 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/error_container.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/error_container.dart @@ -25,9 +25,7 @@ class ErrorContainer extends StatelessWidget { color: theme.colorScheme.onErrorContainer, ), ), - Expanded( - child: content, - ), + Expanded(child: content), ], ), ); diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/extension_badge_icon.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/extension_badge_icon.dart index ea0ab257..1da7bdec 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/extension_badge_icon.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/extension_badge_icon.dart @@ -15,11 +15,7 @@ class ExtensionBadgeIcon extends StatelessWidget { label: hasBadge ? Text(state.badgeText!) : null, textColor: state.badgeTextColor, backgroundColor: state.badgeBackgroundColor, - child: RawImage( - image: state.icon?.value, - width: 24, - height: 24, - ), + child: RawImage(image: state.icon?.value, width: 24, height: 24), ); } } diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/landing/action.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/landing/action.dart index 89c60624..240467f7 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/landing/action.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/landing/action.dart @@ -28,7 +28,8 @@ class LandingAction extends HookConsumerWidget { await context.push(SettingsRoute().location); } }, - data: '## No Kagi Session Provided\n' + data: + '## No Kagi Session Provided\n' 'Please navigate to [Settings](settings) and enter your Kagi Session Token.\n' "You must provide a valid session in order to use Kagi's features.", ), diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/landing/content.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/landing/content.dart index f19f1f65..03aa5b83 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/landing/content.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/landing/content.dart @@ -33,8 +33,9 @@ class LandingContent extends HookConsumerWidget { children: [ Text( 'Lensai', - style: - textTheme.titleLarge?.copyWith(fontWeight: FontWeight.bold), + style: textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.bold, + ), textAlign: TextAlign.center, ), Padding( @@ -52,16 +53,17 @@ class LandingContent extends HookConsumerWidget { const LandingAction(), Consumer( builder: (context, ref, child) { - final errors = ref - .watch( - appInitializationServiceProvider.select( - (result) => EquatableCollection( - result.valueOrNull?.errors, - immutable: false, - ), - ), - ) - .collection; + final errors = + ref + .watch( + appInitializationServiceProvider.select( + (result) => EquatableCollection( + result.valueOrNull?.errors, + immutable: false, + ), + ), + ) + .collection; if (errors == null || errors.isEmpty) { return const SizedBox.shrink(); @@ -70,35 +72,31 @@ class LandingContent extends HookConsumerWidget { return Column( mainAxisSize: MainAxisSize.min, children: [ - ...errors.map( - (error) { - final theme = Theme.of(context); - return Padding( - padding: const EdgeInsets.symmetric(vertical: 8.0), - child: ErrorContainer( - content: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - 'Error during App Initialization!', - style: theme.textTheme.titleMedium, - ), - Text( - error.message, - style: theme.textTheme.titleSmall, - ), - if (error.details != null) - Text(error.details.toString()), - ], - ), + ...errors.map((error) { + final theme = Theme.of(context); + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0), + child: ErrorContainer( + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Error during App Initialization!', + style: theme.textTheme.titleMedium, + ), + Text( + error.message, + style: theme.textTheme.titleSmall, + ), + if (error.details != null) + Text(error.details.toString()), + ], ), - ); - }, - ), - const SizedBox( - height: 8, - ), + ), + ); + }), + const SizedBox(height: 8), Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0), child: SizedBox( @@ -138,14 +136,12 @@ class LandingContent extends HookConsumerWidget { ), Text( 'Changelog', - style: - textTheme.titleLarge?.copyWith(fontWeight: FontWeight.bold), + style: textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.bold, + ), textAlign: TextAlign.center, ), - MarkdownBody( - data: changelogAsset.data ?? '', - selectable: true, - ), + MarkdownBody(data: changelogAsset.data ?? '', selectable: true), ], ), ); diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/sheets/create_tab.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/sheets/create_tab.dart index 7c27f53b..c234b9a1 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/sheets/create_tab.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/sheets/create_tab.dart @@ -25,8 +25,9 @@ class CreateTabSheetWidget extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final sharedContent = useMemoized( - () => parameter.content - .mapNotNull((content) => SharedContent.parse(content)), + () => parameter.content.mapNotNull( + (content) => SharedContent.parse(content), + ), [parameter], ); @@ -34,13 +35,12 @@ class CreateTabSheetWidget extends HookConsumerWidget { () => parameter.preferredTool?.index ?? switch (sharedContent) { - SharedText(text: final _) => KagiTool.search.index + SharedText(text: final _) => KagiTool.search.index, // (showEarlyAccessFeatures && text.length > 25) // ? KagiTool.assistant.index // : KagiTool.search.index, - , SharedUrl() => KagiTool.summarizer.index, - null => KagiTool.search.index + null => KagiTool.search.index, // showEarlyAccessFeatures // ? KagiTool.assistant.index // : KagiTool.search.index, @@ -62,15 +62,12 @@ class CreateTabSheetWidget extends HookConsumerWidget { }, ); - useEffect( - () { - WidgetsBinding.instance.addPostFrameCallback((_) { - onActiveToolChanged?.call(KagiTool.values[initialIndex]); - }); - return null; - }, - [initialIndex], - ); + useEffect(() { + WidgetsBinding.instance.addPostFrameCallback((_) { + onActiveToolChanged?.call(KagiTool.values[initialIndex]); + }); + return null; + }, [initialIndex]); return Column( mainAxisSize: MainAxisSize.min, @@ -82,10 +79,7 @@ class CreateTabSheetWidget extends HookConsumerWidget { // icon: Icon(KagiTool.search.icon), // text: 'Search', // ), - Tab( - icon: Icon(KagiTool.summarizer.icon), - text: 'Summarize', - ), + Tab(icon: Icon(KagiTool.summarizer.icon), text: 'Summarize'), // if (showEarlyAccessFeatures) // Tab( // icon: Icon(KagiTool.assistant.icon), @@ -102,10 +96,7 @@ class CreateTabSheetWidget extends HookConsumerWidget { // sharedContent: sharedContent, // onSubmit: onSubmit, // ), - SummarizeTab( - sharedContent: sharedContent, - onSubmit: onSubmit, - ), + SummarizeTab(sharedContent: sharedContent, onSubmit: onSubmit), // if (showEarlyAccessFeatures) // AssistantTab( // sharedContent: sharedContent, diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/sheets/view_tabs.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/sheets/view_tabs.dart index 7eef6ba5..4c1d95ba 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/sheets/view_tabs.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/sheets/view_tabs.dart @@ -91,26 +91,19 @@ class _Tab extends HookConsumerWidget { () => searchTextController.text.isNotEmpty, ); - useListenableCallback( - searchTextController, - () async { - await ref - .read( - tabSearchRepositoryProvider(TabSearchPartition.preview).notifier, - ) - .addQuery(searchTextController.text); - }, - ); + useListenableCallback(searchTextController, () async { + await ref + .read( + tabSearchRepositoryProvider(TabSearchPartition.preview).notifier, + ) + .addQuery(searchTextController.text); + }); return Material( //Fix layout issue https://github.com/flutter/flutter/issues/78748#issuecomment-1194680555 child: Align( child: Padding( - padding: const EdgeInsets.only( - right: 8.0, - left: 8.0, - top: 8.0, - ), + padding: const EdgeInsets.only(right: 8.0, left: 8.0, top: 8.0), child: Column( mainAxisSize: MainAxisSize.min, children: [ @@ -175,8 +168,9 @@ class _Tab extends HookConsumerWidget { child: Consumer( builder: (context, ref, child) { final selectedContainer = ref.watch( - selectedContainerDataProvider - .select((value) => value.valueOrNull), + selectedContainerDataProvider.select( + (value) => value.valueOrNull, + ), ); return ContainerChips( @@ -280,89 +274,79 @@ class ViewTabsSheetWidget extends HookConsumerWidget { [MediaQuery.of(context).size.width], ); - useEffect( - () { - final index = filteredTabIds.collection - .indexWhere((webView) => webView == activeTab); + useEffect(() { + final index = filteredTabIds.collection.indexWhere( + (webView) => webView == activeTab, + ); - if (index > -1) { - final offset = (index ~/ 2) * itemHeight; + if (index > -1) { + final offset = (index ~/ 2) * itemHeight; - if (offset != sheetScrollController.offset) { - unawaited( - sheetScrollController.animateTo( - offset, - duration: const Duration(milliseconds: 200), - curve: Curves.easeInOut, - ), - ); - } + if (offset != sheetScrollController.offset) { + unawaited( + sheetScrollController.animateTo( + offset, + duration: const Duration(milliseconds: 200), + curve: Curves.easeInOut, + ), + ); } + } - return null; - }, - [filteredTabIds, activeTab], - ); + return null; + }, [filteredTabIds, activeTab]); - final tabs = useMemoized( - () { - return filteredTabIds.collection - .mapIndexed( - (index, tabId) => CustomDraggable( - key: Key(tabId), - data: TabDragData(tabId), - child: Consumer( - child: _TabDraggable( - tabId: tabId, - activeTabId: activeTab, - onClose: onClose, - ), - builder: (context, ref, child) { - final dragData = ref.watch( - willAcceptDropProvider.select((value) { - final dragTabId = switch (value) { - ContainerDropData() => value.tabId, - DeleteDropData() => value.tabId, - null => null, - }; - - return (dragTabId == tabId) - ? value - : null; - }), - ); - - return switch (dragData) { - ContainerDropData() => Opacity( - opacity: 0.3, - child: Transform.scale( - scale: 0.9, - child: child, - ), - ), - DeleteDropData() => Opacity( - opacity: 0.3, - child: ColorFiltered( - colorFilter: const ColorFilter.mode( - Colors.red, - BlendMode.modulate, - ), - child: child, - ), - ), - null => child!, - }; - }, + final tabs = useMemoized(() { + return filteredTabIds.collection + .mapIndexed( + (index, tabId) => CustomDraggable( + key: Key(tabId), + data: TabDragData(tabId), + child: Consumer( + child: _TabDraggable( + tabId: tabId, + activeTabId: activeTab, + onClose: onClose, ), + builder: (context, ref, child) { + final dragData = ref.watch( + willAcceptDropProvider.select((value) { + final dragTabId = switch (value) { + ContainerDropData() => value.tabId, + DeleteDropData() => value.tabId, + null => null, + }; + + return (dragTabId == tabId) ? value : null; + }), + ); + + return switch (dragData) { + ContainerDropData() => Opacity( + opacity: 0.3, + child: Transform.scale( + scale: 0.9, + child: child, + ), + ), + DeleteDropData() => Opacity( + opacity: 0.3, + child: ColorFiltered( + colorFilter: const ColorFilter.mode( + Colors.red, + BlendMode.modulate, + ), + child: child, + ), + ), + null => child!, + }; + }, ), - ) - .toList(); - }, - [ - filteredTabIds, - activeTab, - ], - ); + ), + ) + .toList(); + }, [filteredTabIds, activeTab]); return Padding( padding: const EdgeInsets.symmetric(horizontal: 4.0), @@ -381,8 +365,9 @@ class ViewTabsSheetWidget extends HookConsumerWidget { final oldIndex = positions.first.oldIndex; final newIndex = positions.first.newIndex; - final containerRepository = - ref.read(containerRepositoryProvider.notifier); + final containerRepository = ref.read( + containerRepositoryProvider.notifier, + ); final tabId = filteredTabIds.collection[oldIndex]; final containerId = await ref @@ -391,12 +376,14 @@ class ViewTabsSheetWidget extends HookConsumerWidget { final String key; if (newIndex <= 0) { - key = await containerRepository - .getLeadingOrderKey(containerId); + key = await containerRepository.getLeadingOrderKey( + containerId, + ); } else if (newIndex >= filteredTabIds.collection.length - 1) { - key = await containerRepository - .getTrailingOrderKey(containerId); + key = await containerRepository.getTrailingOrderKey( + containerId, + ); } else { final orderAfterIndex = newIndex; key = await containerRepository.getOrderKeyAfterTab( @@ -414,12 +401,12 @@ class ViewTabsSheetWidget extends HookConsumerWidget { controller: sheetScrollController, gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( - //Sync values for itemHeight calculation _calculateItemHeight - childAspectRatio: 0.75, - mainAxisSpacing: 8.0, - crossAxisSpacing: 8.0, - crossAxisCount: 2, - ), + //Sync values for itemHeight calculation _calculateItemHeight + childAspectRatio: 0.75, + mainAxisSpacing: 8.0, + crossAxisSpacing: 8.0, + crossAxisCount: 2, + ), itemCount: children.length, itemBuilder: (context, index) => children[index], ); @@ -432,10 +419,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget { ], ), Padding( - padding: const EdgeInsets.only( - top: _Tab.headerSize + 4, - right: 4, - ), + padding: const EdgeInsets.only(top: _Tab.headerSize + 4, right: 4), child: FloatingActionButton.small( onPressed: () async { await context.push(const SearchRoute().location); diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/tab_preview.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/tab_preview.dart index 4c04c1a3..a4896519 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/tab_preview.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/tab_preview.dart @@ -51,8 +51,10 @@ class TabPreview extends StatelessWidget { ), ), IconButton( - visualDensity: - const VisualDensity(horizontal: -4.0, vertical: -4.0), + visualDensity: const VisualDensity( + horizontal: -4.0, + vertical: -4.0, + ), onPressed: onDelete, icon: const Icon(Icons.close), ), @@ -60,17 +62,9 @@ class TabPreview extends StatelessWidget { ), Row( children: [ - const SizedBox( - width: 6.0, - ), - RawImage( - image: tab.icon?.value, - height: 16, - width: 16, - ), - const SizedBox( - width: 6.0, - ), + const SizedBox(width: 6.0), + RawImage(image: tab.icon?.value, height: 16, width: 16), + const SizedBox(width: 6.0), Expanded( child: Text( tab.url.authority, @@ -79,9 +73,7 @@ class TabPreview extends StatelessWidget { ), ], ), - const SizedBox( - height: 6, - ), + const SizedBox(height: 6), if (tab.thumbnail != null) Expanded( child: ClipRRect( diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/tabs_action_button.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/tabs_action_button.dart index 94ea28e5..6ddb22a9 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/tabs_action_button.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/tabs_action_button.dart @@ -24,17 +24,15 @@ class TabsActionButton extends HookConsumerWidget { onTap: onTap, onLongPress: onLongPress, child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 8.0, - vertical: 15.0, - ), + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 15.0), child: Container( decoration: BoxDecoration( border: Border.all( width: 2.0, - color: isActive - ? theme.colorScheme.primary - : DefaultTextStyle.of(context).style.color!, + color: + isActive + ? theme.colorScheme.primary + : DefaultTextStyle.of(context).style.color!, ), borderRadius: BorderRadius.circular(5.0), ), diff --git a/app/lib/features/geckoview/features/find_in_page/domain/repositories/find_in_page.dart b/app/lib/features/geckoview/features/find_in_page/domain/repositories/find_in_page.dart index 37947488..50a77b22 100644 --- a/app/lib/features/geckoview/features/find_in_page/domain/repositories/find_in_page.dart +++ b/app/lib/features/geckoview/features/find_in_page/domain/repositories/find_in_page.dart @@ -9,9 +9,10 @@ class FindInPageRepository extends _$FindInPageRepository { @override void build(String? tabId) { - _service = (tabId != null) - ? GeckoFindInPageService(tabId: tabId) - : GeckoFindInPageService.forActiveTab(); + _service = + (tabId != null) + ? GeckoFindInPageService(tabId: tabId) + : GeckoFindInPageService.forActiveTab(); } Future findAll({required String text}) { diff --git a/app/lib/features/geckoview/features/find_in_page/domain/repositories/find_in_page.g.dart b/app/lib/features/geckoview/features/find_in_page/domain/repositories/find_in_page.g.dart index abfff6b4..95b38ebc 100644 --- a/app/lib/features/geckoview/features/find_in_page/domain/repositories/find_in_page.g.dart +++ b/app/lib/features/geckoview/features/find_in_page/domain/repositories/find_in_page.g.dart @@ -34,9 +34,7 @@ abstract class _$FindInPageRepository extends BuildlessAutoDisposeNotifier { late final String? tabId; - void build( - String? tabId, - ); + void build(String? tabId); } /// See also [FindInPageRepository]. @@ -49,21 +47,15 @@ class FindInPageRepositoryFamily extends Family { const FindInPageRepositoryFamily(); /// See also [FindInPageRepository]. - FindInPageRepositoryProvider call( - String? tabId, - ) { - return FindInPageRepositoryProvider( - tabId, - ); + FindInPageRepositoryProvider call(String? tabId) { + return FindInPageRepositoryProvider(tabId); } @override FindInPageRepositoryProvider getProviderOverride( covariant FindInPageRepositoryProvider provider, ) { - return call( - provider.tabId, - ); + return call(provider.tabId); } static const Iterable? _dependencies = null; @@ -85,21 +77,20 @@ class FindInPageRepositoryFamily extends Family { class FindInPageRepositoryProvider extends AutoDisposeNotifierProviderImpl { /// See also [FindInPageRepository]. - FindInPageRepositoryProvider( - String? tabId, - ) : this._internal( - () => FindInPageRepository()..tabId = tabId, - from: findInPageRepositoryProvider, - name: r'findInPageRepositoryProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$findInPageRepositoryHash, - dependencies: FindInPageRepositoryFamily._dependencies, - allTransitiveDependencies: - FindInPageRepositoryFamily._allTransitiveDependencies, - tabId: tabId, - ); + FindInPageRepositoryProvider(String? tabId) + : this._internal( + () => FindInPageRepository()..tabId = tabId, + from: findInPageRepositoryProvider, + name: r'findInPageRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$findInPageRepositoryHash, + dependencies: FindInPageRepositoryFamily._dependencies, + allTransitiveDependencies: + FindInPageRepositoryFamily._allTransitiveDependencies, + tabId: tabId, + ); FindInPageRepositoryProvider._internal( super._createNotifier, { @@ -114,12 +105,8 @@ class FindInPageRepositoryProvider final String? tabId; @override - void runNotifierBuild( - covariant FindInPageRepository notifier, - ) { - return notifier.build( - tabId, - ); + void runNotifierBuild(covariant FindInPageRepository notifier) { + return notifier.build(tabId); } @override @@ -140,7 +127,7 @@ class FindInPageRepositoryProvider @override AutoDisposeNotifierProviderElement - createElement() { + createElement() { return _FindInPageRepositoryProviderElement(this); } @@ -173,5 +160,6 @@ class _FindInPageRepositoryProviderElement @override String? get tabId => (origin as FindInPageRepositoryProvider).tabId; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page_visibility.g.dart b/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page_visibility.g.dart index 0965297b..0a58ce9e 100644 --- a/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page_visibility.g.dart +++ b/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page_visibility.g.dart @@ -13,14 +13,15 @@ String _$findInPageVisibilityControllerHash() => @ProviderFor(FindInPageVisibilityController) final findInPageVisibilityControllerProvider = AutoDisposeNotifierProvider.internal( - FindInPageVisibilityController.new, - name: r'findInPageVisibilityControllerProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$findInPageVisibilityControllerHash, - dependencies: null, - allTransitiveDependencies: null, -); + FindInPageVisibilityController.new, + name: r'findInPageVisibilityControllerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$findInPageVisibilityControllerHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$FindInPageVisibilityController = AutoDisposeNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart b/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart index 00f29a48..442d10d6 100644 --- a/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart +++ b/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart @@ -13,8 +13,9 @@ class FindInPageWidget extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final showFindInPage = ref.watch(findInPageVisibilityControllerProvider); - final findInteractionController = - ref.watch(findInPageRepositoryProvider(null).notifier); + final findInteractionController = ref.watch( + findInPageRepositoryProvider(null).notifier, + ); final textController = useTextEditingController(); @@ -47,8 +48,9 @@ class FindInPageWidget extends HookConsumerWidget { HookConsumer( builder: (context, ref, child) { final searchResult = ref.watch( - selectedTabStateProvider - .select((state) => state?.findResultState), + selectedTabStateProvider.select( + (state) => state?.findResultState, + ), ); if (searchResult != null) { diff --git a/app/lib/features/geckoview/features/preferences/data/models/preference_setting.dart b/app/lib/features/geckoview/features/preferences/data/models/preference_setting.dart index 217f3cd0..c4cccb98 100644 --- a/app/lib/features/geckoview/features/preferences/data/models/preference_setting.dart +++ b/app/lib/features/geckoview/features/preferences/data/models/preference_setting.dart @@ -10,24 +10,19 @@ class PreferenceSettingGroup with FastEquatable { final Map settings; - bool get isActive => settings.values - .every((setting) => setting.requireUserOptIn || setting.isActive); + bool get isActive => settings.values.every( + (setting) => setting.requireUserOptIn || setting.isActive, + ); bool get isPartlyActive => settings.values.any((setting) => setting.isActive); - PreferenceSettingGroup({ - required this.description, - required this.settings, - }); + PreferenceSettingGroup({required this.description, required this.settings}); @override bool get cacheHash => true; @override - List get hashParameters => [ - description, - settings, - ]; + List get hashParameters => [description, settings]; } @JsonSerializable() @@ -65,11 +60,11 @@ class PreferenceSetting with FastEquatable { @override List get hashParameters => [ - value, - actualValue, - title, - description, - requireUserOptIn, - shouldBeDefault, - ]; + value, + actualValue, + title, + description, + requireUserOptIn, + shouldBeDefault, + ]; } diff --git a/app/lib/features/geckoview/features/preferences/data/models/preference_setting.g.dart b/app/lib/features/geckoview/features/preferences/data/models/preference_setting.g.dart index 1dee4e96..4b55c34f 100644 --- a/app/lib/features/geckoview/features/preferences/data/models/preference_setting.g.dart +++ b/app/lib/features/geckoview/features/preferences/data/models/preference_setting.g.dart @@ -39,7 +39,6 @@ class _$PreferenceSettingGroupCWProxyImpl this(settings: settings); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `PreferenceSettingGroup(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -51,14 +50,16 @@ class _$PreferenceSettingGroupCWProxyImpl Object? settings = const $CopyWithPlaceholder(), }) { return PreferenceSettingGroup( - description: description == const $CopyWithPlaceholder() - ? _value.description - // ignore: cast_nullable_to_non_nullable - : description as String?, - settings: settings == const $CopyWithPlaceholder() - ? _value.settings - // ignore: cast_nullable_to_non_nullable - : settings as Map, + description: + description == const $CopyWithPlaceholder() + ? _value.description + // ignore: cast_nullable_to_non_nullable + : description as String?, + settings: + settings == const $CopyWithPlaceholder() + ? _value.settings + // ignore: cast_nullable_to_non_nullable + : settings as Map, ); } } @@ -128,7 +129,6 @@ class _$PreferenceSettingCWProxyImpl implements _$PreferenceSettingCWProxy { this(shouldBeDefault: shouldBeDefault); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `PreferenceSetting(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -144,30 +144,36 @@ class _$PreferenceSettingCWProxyImpl implements _$PreferenceSettingCWProxy { Object? shouldBeDefault = const $CopyWithPlaceholder(), }) { return PreferenceSetting( - value: value == const $CopyWithPlaceholder() - ? _value.value - // ignore: cast_nullable_to_non_nullable - : value as Object, - title: title == const $CopyWithPlaceholder() - ? _value.title - // ignore: cast_nullable_to_non_nullable - : title as String?, - description: description == const $CopyWithPlaceholder() - ? _value.description - // ignore: cast_nullable_to_non_nullable - : description as String?, - actualValue: actualValue == const $CopyWithPlaceholder() - ? _value.actualValue - // ignore: cast_nullable_to_non_nullable - : actualValue as Object?, - requireUserOptIn: requireUserOptIn == const $CopyWithPlaceholder() - ? _value.requireUserOptIn - // ignore: cast_nullable_to_non_nullable - : requireUserOptIn as bool, - shouldBeDefault: shouldBeDefault == const $CopyWithPlaceholder() - ? _value.shouldBeDefault - // ignore: cast_nullable_to_non_nullable - : shouldBeDefault as bool, + value: + value == const $CopyWithPlaceholder() + ? _value.value + // ignore: cast_nullable_to_non_nullable + : value as Object, + title: + title == const $CopyWithPlaceholder() + ? _value.title + // ignore: cast_nullable_to_non_nullable + : title as String?, + description: + description == const $CopyWithPlaceholder() + ? _value.description + // ignore: cast_nullable_to_non_nullable + : description as String?, + actualValue: + actualValue == const $CopyWithPlaceholder() + ? _value.actualValue + // ignore: cast_nullable_to_non_nullable + : actualValue as Object?, + requireUserOptIn: + requireUserOptIn == const $CopyWithPlaceholder() + ? _value.requireUserOptIn + // ignore: cast_nullable_to_non_nullable + : requireUserOptIn as bool, + shouldBeDefault: + shouldBeDefault == const $CopyWithPlaceholder() + ? _value.shouldBeDefault + // ignore: cast_nullable_to_non_nullable + : shouldBeDefault as bool, ); } } diff --git a/app/lib/features/geckoview/features/preferences/data/repositories/preference_settings.dart b/app/lib/features/geckoview/features/preferences/data/repositories/preference_settings.dart index 09953823..f43eb68b 100644 --- a/app/lib/features/geckoview/features/preferences/data/repositories/preference_settings.dart +++ b/app/lib/features/geckoview/features/preferences/data/repositories/preference_settings.dart @@ -15,8 +15,9 @@ part 'preference_settings.g.dart'; @Riverpod(keepAlive: true) Future> _preferenceSettingContent(Ref ref) async { return await rootBundle - .loadString('assets/preferences/settings.json') - .then(jsonDecode) as Map; + .loadString('assets/preferences/settings.json') + .then(jsonDecode) + as Map; } @Riverpod(keepAlive: true) @@ -85,8 +86,9 @@ class UnifiedPreferenceSettingsRepository Map? _statelessGroups; Future apply() async { - _statelessGroups = - await ref.read(_preferenceSettingGroupsProvider(partition).future); + _statelessGroups = await ref.read( + _preferenceSettingGroupsProvider(partition).future, + ); final prefs = { for (final group in _statelessGroups!.values) @@ -101,13 +103,15 @@ class UnifiedPreferenceSettingsRepository } Future reset() async { - _statelessGroups = - await ref.read(_preferenceSettingGroupsProvider(partition).future); + _statelessGroups = await ref.read( + _preferenceSettingGroupsProvider(partition).future, + ); - final prefs = _statelessGroups!.values - .map((group) => group.settings.keys) - .flattened - .toList(); + final prefs = + _statelessGroups!.values + .map((group) => group.settings.keys) + .flattened + .toList(); await ref.read(_preferenceRepositoryProvider.notifier).resetPrefs(prefs); } @@ -116,8 +120,9 @@ class UnifiedPreferenceSettingsRepository Stream> build( PreferencePartition partition, ) async* { - _statelessGroups = - await ref.watch(_preferenceSettingGroupsProvider(partition).future); + _statelessGroups = await ref.watch( + _preferenceSettingGroupsProvider(partition).future, + ); final prefStream = ref.watch(_preferenceRepositoryProvider); @@ -145,8 +150,9 @@ class PreferenceSettingsGroupRepository PreferenceSettingGroup? _statelessSettingGroup; Future apply({List? filter}) async { - _statelessSettingGroup ??= await ref - .read(_preferenceSettingGroupProvider(partition, groupName).future); + _statelessSettingGroup ??= await ref.read( + _preferenceSettingGroupProvider(partition, groupName).future, + ); final prefs = Map.fromEntries( filter?.map( @@ -165,8 +171,9 @@ class PreferenceSettingsGroupRepository } Future reset({List? filter}) async { - _statelessSettingGroup ??= await ref - .read(_preferenceSettingGroupProvider(partition, groupName).future); + _statelessSettingGroup ??= await ref.read( + _preferenceSettingGroupProvider(partition, groupName).future, + ); if (filter != null && filter.any( @@ -185,8 +192,9 @@ class PreferenceSettingsGroupRepository PreferencePartition partition, String groupName, ) async* { - _statelessSettingGroup = await ref - .watch(_preferenceSettingGroupProvider(partition, groupName).future); + _statelessSettingGroup = await ref.watch( + _preferenceSettingGroupProvider(partition, groupName).future, + ); final prefStream = ref.watch(_preferenceRepositoryProvider); diff --git a/app/lib/features/geckoview/features/preferences/data/repositories/preference_settings.g.dart b/app/lib/features/geckoview/features/preferences/data/repositories/preference_settings.g.dart index 18798b30..203199da 100644 --- a/app/lib/features/geckoview/features/preferences/data/repositories/preference_settings.g.dart +++ b/app/lib/features/geckoview/features/preferences/data/repositories/preference_settings.g.dart @@ -13,14 +13,15 @@ String _$preferenceSettingContentHash() => @ProviderFor(_preferenceSettingContent) final _preferenceSettingContentProvider = FutureProvider>.internal( - _preferenceSettingContent, - name: r'_preferenceSettingContentProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$preferenceSettingContentHash, - dependencies: null, - allTransitiveDependencies: null, -); + _preferenceSettingContent, + name: r'_preferenceSettingContentProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$preferenceSettingContentHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element @@ -60,21 +61,15 @@ class _PreferenceSettingGroupsFamily const _PreferenceSettingGroupsFamily(); /// See also [_preferenceSettingGroups]. - _PreferenceSettingGroupsProvider call( - PreferencePartition partition, - ) { - return _PreferenceSettingGroupsProvider( - partition, - ); + _PreferenceSettingGroupsProvider call(PreferencePartition partition) { + return _PreferenceSettingGroupsProvider(partition); } @override _PreferenceSettingGroupsProvider getProviderOverride( covariant _PreferenceSettingGroupsProvider provider, ) { - return call( - provider.partition, - ); + return call(provider.partition); } static const Iterable? _dependencies = null; @@ -96,24 +91,23 @@ class _PreferenceSettingGroupsFamily class _PreferenceSettingGroupsProvider extends FutureProvider> { /// See also [_preferenceSettingGroups]. - _PreferenceSettingGroupsProvider( - PreferencePartition partition, - ) : this._internal( - (ref) => _preferenceSettingGroups( - ref as _PreferenceSettingGroupsRef, - partition, - ), - from: _preferenceSettingGroupsProvider, - name: r'_preferenceSettingGroupsProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$preferenceSettingGroupsHash, - dependencies: _PreferenceSettingGroupsFamily._dependencies, - allTransitiveDependencies: - _PreferenceSettingGroupsFamily._allTransitiveDependencies, - partition: partition, - ); + _PreferenceSettingGroupsProvider(PreferencePartition partition) + : this._internal( + (ref) => _preferenceSettingGroups( + ref as _PreferenceSettingGroupsRef, + partition, + ), + from: _preferenceSettingGroupsProvider, + name: r'_preferenceSettingGroupsProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$preferenceSettingGroupsHash, + dependencies: _PreferenceSettingGroupsFamily._dependencies, + allTransitiveDependencies: + _PreferenceSettingGroupsFamily._allTransitiveDependencies, + partition: partition, + ); _PreferenceSettingGroupsProvider._internal( super._createNotifier, { @@ -130,8 +124,9 @@ class _PreferenceSettingGroupsProvider @override Override overrideWith( FutureOr> Function( - _PreferenceSettingGroupsRef provider) - create, + _PreferenceSettingGroupsRef provider, + ) + create, ) { return ProviderOverride( origin: this, @@ -203,20 +198,14 @@ class _PreferenceSettingGroupFamily PreferencePartition partition, String groupName, ) { - return _PreferenceSettingGroupProvider( - partition, - groupName, - ); + return _PreferenceSettingGroupProvider(partition, groupName); } @override _PreferenceSettingGroupProvider getProviderOverride( covariant _PreferenceSettingGroupProvider provider, ) { - return call( - provider.partition, - provider.groupName, - ); + return call(provider.partition, provider.groupName); } static const Iterable? _dependencies = null; @@ -242,23 +231,23 @@ class _PreferenceSettingGroupProvider PreferencePartition partition, String groupName, ) : this._internal( - (ref) => _preferenceSettingGroup( - ref as _PreferenceSettingGroupRef, - partition, - groupName, - ), - from: _preferenceSettingGroupProvider, - name: r'_preferenceSettingGroupProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$preferenceSettingGroupHash, - dependencies: _PreferenceSettingGroupFamily._dependencies, - allTransitiveDependencies: - _PreferenceSettingGroupFamily._allTransitiveDependencies, - partition: partition, - groupName: groupName, - ); + (ref) => _preferenceSettingGroup( + ref as _PreferenceSettingGroupRef, + partition, + groupName, + ), + from: _preferenceSettingGroupProvider, + name: r'_preferenceSettingGroupProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$preferenceSettingGroupHash, + dependencies: _PreferenceSettingGroupFamily._dependencies, + allTransitiveDependencies: + _PreferenceSettingGroupFamily._allTransitiveDependencies, + partition: partition, + groupName: groupName, + ); _PreferenceSettingGroupProvider._internal( super._createNotifier, { @@ -277,8 +266,9 @@ class _PreferenceSettingGroupProvider @override Override overrideWith( FutureOr Function( - _PreferenceSettingGroupRef provider) - create, + _PreferenceSettingGroupRef provider, + ) + create, ) { return ProviderOverride( origin: this, @@ -345,24 +335,29 @@ String _$preferenceRepositoryHash() => /// See also [_PreferenceRepository]. @ProviderFor(_PreferenceRepository) final _preferenceRepositoryProvider = AutoDisposeNotifierProvider< - _PreferenceRepository, Raw>>>.internal( + _PreferenceRepository, + Raw>> +>.internal( _PreferenceRepository.new, name: r'_preferenceRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$preferenceRepositoryHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$preferenceRepositoryHash, dependencies: null, allTransitiveDependencies: null, ); -typedef _$PreferenceRepository - = AutoDisposeNotifier>>>; +typedef _$PreferenceRepository = + AutoDisposeNotifier>>>; String _$unifiedPreferenceSettingsRepositoryHash() => r'35aa16ffa7aa1453c8331ed7470ef85a68d27178'; abstract class _$UnifiedPreferenceSettingsRepository - extends BuildlessAutoDisposeStreamNotifier< - Map> { + extends + BuildlessAutoDisposeStreamNotifier< + Map + > { late final PreferencePartition partition; Stream> build( @@ -385,18 +380,14 @@ class UnifiedPreferenceSettingsRepositoryFamily UnifiedPreferenceSettingsRepositoryProvider call( PreferencePartition partition, ) { - return UnifiedPreferenceSettingsRepositoryProvider( - partition, - ); + return UnifiedPreferenceSettingsRepositoryProvider(partition); } @override UnifiedPreferenceSettingsRepositoryProvider getProviderOverride( covariant UnifiedPreferenceSettingsRepositoryProvider provider, ) { - return call( - provider.partition, - ); + return call(provider.partition); } static const Iterable? _dependencies = null; @@ -416,25 +407,27 @@ class UnifiedPreferenceSettingsRepositoryFamily /// See also [UnifiedPreferenceSettingsRepository]. class UnifiedPreferenceSettingsRepositoryProvider - extends AutoDisposeStreamNotifierProviderImpl< - UnifiedPreferenceSettingsRepository, - Map> { + extends + AutoDisposeStreamNotifierProviderImpl< + UnifiedPreferenceSettingsRepository, + Map + > { /// See also [UnifiedPreferenceSettingsRepository]. - UnifiedPreferenceSettingsRepositoryProvider( - PreferencePartition partition, - ) : this._internal( - () => UnifiedPreferenceSettingsRepository()..partition = partition, - from: unifiedPreferenceSettingsRepositoryProvider, - name: r'unifiedPreferenceSettingsRepositoryProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$unifiedPreferenceSettingsRepositoryHash, - dependencies: UnifiedPreferenceSettingsRepositoryFamily._dependencies, - allTransitiveDependencies: UnifiedPreferenceSettingsRepositoryFamily - ._allTransitiveDependencies, - partition: partition, - ); + UnifiedPreferenceSettingsRepositoryProvider(PreferencePartition partition) + : this._internal( + () => UnifiedPreferenceSettingsRepository()..partition = partition, + from: unifiedPreferenceSettingsRepositoryProvider, + name: r'unifiedPreferenceSettingsRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$unifiedPreferenceSettingsRepositoryHash, + dependencies: UnifiedPreferenceSettingsRepositoryFamily._dependencies, + allTransitiveDependencies: + UnifiedPreferenceSettingsRepositoryFamily + ._allTransitiveDependencies, + partition: partition, + ); UnifiedPreferenceSettingsRepositoryProvider._internal( super._createNotifier, { @@ -452,9 +445,7 @@ class UnifiedPreferenceSettingsRepositoryProvider Stream> runNotifierBuild( covariant UnifiedPreferenceSettingsRepository notifier, ) { - return notifier.build( - partition, - ); + return notifier.build(partition); } @override @@ -474,8 +465,11 @@ class UnifiedPreferenceSettingsRepositoryProvider } @override - AutoDisposeStreamNotifierProviderElement> createElement() { + AutoDisposeStreamNotifierProviderElement< + UnifiedPreferenceSettingsRepository, + Map + > + createElement() { return _UnifiedPreferenceSettingsRepositoryProviderElement(this); } @@ -497,16 +491,20 @@ class UnifiedPreferenceSettingsRepositoryProvider @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element mixin UnifiedPreferenceSettingsRepositoryRef - on AutoDisposeStreamNotifierProviderRef< - Map> { + on + AutoDisposeStreamNotifierProviderRef< + Map + > { /// The parameter `partition` of this provider. PreferencePartition get partition; } class _UnifiedPreferenceSettingsRepositoryProviderElement - extends AutoDisposeStreamNotifierProviderElement< - UnifiedPreferenceSettingsRepository, - Map> + extends + AutoDisposeStreamNotifierProviderElement< + UnifiedPreferenceSettingsRepository, + Map + > with UnifiedPreferenceSettingsRepositoryRef { _UnifiedPreferenceSettingsRepositoryProviderElement(super.provider); @@ -545,20 +543,14 @@ class PreferenceSettingsGroupRepositoryFamily PreferencePartition partition, String groupName, ) { - return PreferenceSettingsGroupRepositoryProvider( - partition, - groupName, - ); + return PreferenceSettingsGroupRepositoryProvider(partition, groupName); } @override PreferenceSettingsGroupRepositoryProvider getProviderOverride( covariant PreferenceSettingsGroupRepositoryProvider provider, ) { - return call( - provider.partition, - provider.groupName, - ); + return call(provider.partition, provider.groupName); } static const Iterable? _dependencies = null; @@ -578,28 +570,32 @@ class PreferenceSettingsGroupRepositoryFamily /// See also [PreferenceSettingsGroupRepository]. class PreferenceSettingsGroupRepositoryProvider - extends AutoDisposeStreamNotifierProviderImpl< - PreferenceSettingsGroupRepository, PreferenceSettingGroup> { + extends + AutoDisposeStreamNotifierProviderImpl< + PreferenceSettingsGroupRepository, + PreferenceSettingGroup + > { /// See also [PreferenceSettingsGroupRepository]. PreferenceSettingsGroupRepositoryProvider( PreferencePartition partition, String groupName, ) : this._internal( - () => PreferenceSettingsGroupRepository() - ..partition = partition - ..groupName = groupName, - from: preferenceSettingsGroupRepositoryProvider, - name: r'preferenceSettingsGroupRepositoryProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$preferenceSettingsGroupRepositoryHash, - dependencies: PreferenceSettingsGroupRepositoryFamily._dependencies, - allTransitiveDependencies: PreferenceSettingsGroupRepositoryFamily - ._allTransitiveDependencies, - partition: partition, - groupName: groupName, - ); + () => + PreferenceSettingsGroupRepository() + ..partition = partition + ..groupName = groupName, + from: preferenceSettingsGroupRepositoryProvider, + name: r'preferenceSettingsGroupRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$preferenceSettingsGroupRepositoryHash, + dependencies: PreferenceSettingsGroupRepositoryFamily._dependencies, + allTransitiveDependencies: + PreferenceSettingsGroupRepositoryFamily._allTransitiveDependencies, + partition: partition, + groupName: groupName, + ); PreferenceSettingsGroupRepositoryProvider._internal( super._createNotifier, { @@ -619,10 +615,7 @@ class PreferenceSettingsGroupRepositoryProvider Stream runNotifierBuild( covariant PreferenceSettingsGroupRepository notifier, ) { - return notifier.build( - partition, - groupName, - ); + return notifier.build(partition, groupName); } @override @@ -630,9 +623,10 @@ class PreferenceSettingsGroupRepositoryProvider return ProviderOverride( origin: this, override: PreferenceSettingsGroupRepositoryProvider._internal( - () => create() - ..partition = partition - ..groupName = groupName, + () => + create() + ..partition = partition + ..groupName = groupName, from: from, name: null, dependencies: null, @@ -645,8 +639,11 @@ class PreferenceSettingsGroupRepositoryProvider } @override - AutoDisposeStreamNotifierProviderElement createElement() { + AutoDisposeStreamNotifierProviderElement< + PreferenceSettingsGroupRepository, + PreferenceSettingGroup + > + createElement() { return _PreferenceSettingsGroupRepositoryProviderElement(this); } @@ -679,9 +676,12 @@ mixin PreferenceSettingsGroupRepositoryRef } class _PreferenceSettingsGroupRepositoryProviderElement - extends AutoDisposeStreamNotifierProviderElement< - PreferenceSettingsGroupRepository, - PreferenceSettingGroup> with PreferenceSettingsGroupRepositoryRef { + extends + AutoDisposeStreamNotifierProviderElement< + PreferenceSettingsGroupRepository, + PreferenceSettingGroup + > + with PreferenceSettingsGroupRepositoryRef { _PreferenceSettingsGroupRepositoryProviderElement(super.provider); @override @@ -691,5 +691,6 @@ class _PreferenceSettingsGroupRepositoryProviderElement String get groupName => (origin as PreferenceSettingsGroupRepositoryProvider).groupName; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/geckoview/features/readerview/domain/providers/readerable.g.dart b/app/lib/features/geckoview/features/readerview/domain/providers/readerable.g.dart index f8e083bc..d499b42d 100644 --- a/app/lib/features/geckoview/features/readerview/domain/providers/readerable.g.dart +++ b/app/lib/features/geckoview/features/readerview/domain/providers/readerable.g.dart @@ -13,9 +13,10 @@ String _$readerableServiceHash() => r'03182c8afc41f5184322a3206473cbfa96df5819'; final readerableServiceProvider = Provider.internal( readerableService, name: r'readerableServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$readerableServiceHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$readerableServiceHash, dependencies: null, allTransitiveDependencies: null, ); @@ -30,14 +31,15 @@ String _$appearanceButtonVisibilityHash() => @ProviderFor(appearanceButtonVisibility) final appearanceButtonVisibilityProvider = AutoDisposeStreamProvider.internal( - appearanceButtonVisibility, - name: r'appearanceButtonVisibilityProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$appearanceButtonVisibilityHash, - dependencies: null, - allTransitiveDependencies: null, -); + appearanceButtonVisibility, + name: r'appearanceButtonVisibilityProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$appearanceButtonVisibilityHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element diff --git a/app/lib/features/geckoview/features/readerview/presentation/controllers/readerable.g.dart b/app/lib/features/geckoview/features/readerview/presentation/controllers/readerable.g.dart index a2981dd3..55574241 100644 --- a/app/lib/features/geckoview/features/readerview/presentation/controllers/readerable.g.dart +++ b/app/lib/features/geckoview/features/readerview/presentation/controllers/readerable.g.dart @@ -13,14 +13,15 @@ String _$readerableScreenControllerHash() => @ProviderFor(ReaderableScreenController) final readerableScreenControllerProvider = AsyncNotifierProvider.internal( - ReaderableScreenController.new, - name: r'readerableScreenControllerProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$readerableScreenControllerHash, - dependencies: null, - allTransitiveDependencies: null, -); + ReaderableScreenController.new, + name: r'readerableScreenControllerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$readerableScreenControllerHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$ReaderableScreenController = AsyncNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/readerview/presentation/widgets/reader_appearance_button.dart b/app/lib/features/geckoview/features/readerview/presentation/widgets/reader_appearance_button.dart index 80583f15..7aa2349e 100644 --- a/app/lib/features/geckoview/features/readerview/presentation/widgets/reader_appearance_button.dart +++ b/app/lib/features/geckoview/features/readerview/presentation/widgets/reader_appearance_button.dart @@ -9,8 +9,9 @@ class ReaderAppearanceButton extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final buttonVisible = ref.watch( - appearanceButtonVisibilityProvider - .select((value) => value.valueOrNull ?? false), + appearanceButtonVisibilityProvider.select( + (value) => value.valueOrNull ?? false, + ), ); final readerabilityState = ref.watch( diff --git a/app/lib/features/geckoview/features/readerview/presentation/widgets/reader_button.dart b/app/lib/features/geckoview/features/readerview/presentation/widgets/reader_button.dart index 9bdc057a..c61bdc59 100644 --- a/app/lib/features/geckoview/features/readerview/presentation/widgets/reader_button.dart +++ b/app/lib/features/geckoview/features/readerview/presentation/widgets/reader_button.dart @@ -16,8 +16,9 @@ class ReaderButton extends HookConsumerWidget { final readerChanging = ref.watch(readerableScreenControllerProvider); final enableReadability = ref.watch( - generalSettingsRepositoryProvider - .select((value) => value.enableReadability), + generalSettingsRepositoryProvider.select( + (value) => value.enableReadability, + ), ); final readerabilityState = ref.watch( @@ -27,55 +28,56 @@ class ReaderButton extends HookConsumerWidget { ); final icon = useMemoized( - () => readerabilityState.active - ? Icon( - MdiIcons.bookOpen, - color: Theme.of(context).colorScheme.primary, - ) - : const Icon( - MdiIcons.bookOpenOutline, - color: Colors.white, - ), + () => + readerabilityState.active + ? Icon( + MdiIcons.bookOpen, + color: Theme.of(context).colorScheme.primary, + ) + : const Icon(MdiIcons.bookOpenOutline, color: Colors.white), [readerabilityState.active], ); return Visibility( - visible: readerabilityState.readerable && + visible: + readerabilityState.readerable && (enableReadability || readerabilityState.active), child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 15.0, - horizontal: 8.0, - ), + padding: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 8.0), child: readerChanging.when( - data: (_) => Visibility( - visible: readerabilityState.readerable, - child: InkWell( - onTap: readerChanging.isLoading - ? null - : () async { - await ref - .read(readerableScreenControllerProvider.notifier) - .toggleReaderView(!readerabilityState.active); - }, - child: icon, - ), - ), + data: + (_) => Visibility( + visible: readerabilityState.readerable, + child: InkWell( + onTap: + readerChanging.isLoading + ? null + : () async { + await ref + .read( + readerableScreenControllerProvider.notifier, + ) + .toggleReaderView(!readerabilityState.active); + }, + child: icon, + ), + ), error: (error, stackTrace) => SizedBox.shrink(), - loading: () => AnimateGradientShader( - duration: const Duration(milliseconds: 500), - primaryEnd: Alignment.bottomLeft, - secondaryEnd: Alignment.topRight, - primaryColors: [ - colorScheme.primary, - colorScheme.primaryContainer, - ], - secondaryColors: [ - colorScheme.secondary, - colorScheme.secondaryContainer, - ], - child: icon, - ), + loading: + () => AnimateGradientShader( + duration: const Duration(milliseconds: 500), + primaryEnd: Alignment.bottomLeft, + secondaryEnd: Alignment.topRight, + primaryColors: [ + colorScheme.primary, + colorScheme.primaryContainer, + ], + secondaryColors: [ + colorScheme.secondary, + colorScheme.secondaryContainer, + ], + child: icon, + ), ), ), ); diff --git a/app/lib/features/geckoview/features/search/domain/entities/tab_preview.dart b/app/lib/features/geckoview/features/search/domain/entities/tab_preview.dart index e665fdf6..086bb936 100644 --- a/app/lib/features/geckoview/features/search/domain/entities/tab_preview.dart +++ b/app/lib/features/geckoview/features/search/domain/entities/tab_preview.dart @@ -23,13 +23,13 @@ class TabPreview with FastEquatable { @override List get hashParameters => [ - id, - title, - icon, - url, - highlightedUrl, - content, - ]; + id, + title, + icon, + url, + highlightedUrl, + content, + ]; @override bool get cacheHash => true; diff --git a/app/lib/features/geckoview/features/search/domain/providers/engine_suggestions.dart b/app/lib/features/geckoview/features/search/domain/providers/engine_suggestions.dart index d538136c..195ae7e1 100644 --- a/app/lib/features/geckoview/features/search/domain/providers/engine_suggestions.dart +++ b/app/lib/features/geckoview/features/search/domain/providers/engine_suggestions.dart @@ -18,9 +18,7 @@ class EngineSuggestions extends _$EngineSuggestions { Future addQuery( String query, { - List providers = const [ - GeckoSuggestionType.history, - ], + List providers = const [GeckoSuggestionType.history], }) { return ref .read(engineSuggestionsServiceProvider) @@ -39,16 +37,18 @@ AsyncValue> engineHistorySuggestions(Ref ref) { return ref.watch( engineSuggestionsProvider.select( (suggestions) => suggestions.whenData( - (suggestions) => suggestions - .where( - (suggestion) => - suggestion.type == GeckoSuggestionType.history && - (suggestion.title?.isNotEmpty ?? false) && - (suggestion.description - .mapNotNull((url) => Uri.tryParse(url)) != - null), - ) - .toList(), + (suggestions) => + suggestions + .where( + (suggestion) => + suggestion.type == GeckoSuggestionType.history && + (suggestion.title?.isNotEmpty ?? false) && + (suggestion.description.mapNotNull( + (url) => Uri.tryParse(url), + ) != + null), + ) + .toList(), ), ), ); diff --git a/app/lib/features/geckoview/features/search/domain/providers/engine_suggestions.g.dart b/app/lib/features/geckoview/features/search/domain/providers/engine_suggestions.g.dart index 6ff9bc3e..b7e5c713 100644 --- a/app/lib/features/geckoview/features/search/domain/providers/engine_suggestions.g.dart +++ b/app/lib/features/geckoview/features/search/domain/providers/engine_suggestions.g.dart @@ -13,30 +13,34 @@ String _$engineHistorySuggestionsHash() => @ProviderFor(engineHistorySuggestions) final engineHistorySuggestionsProvider = AutoDisposeProvider>>.internal( - engineHistorySuggestions, - name: r'engineHistorySuggestionsProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$engineHistorySuggestionsHash, - dependencies: null, - allTransitiveDependencies: null, -); + engineHistorySuggestions, + name: r'engineHistorySuggestionsProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$engineHistorySuggestionsHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element -typedef EngineHistorySuggestionsRef - = AutoDisposeProviderRef>>; +typedef EngineHistorySuggestionsRef = + AutoDisposeProviderRef>>; String _$engineSuggestionsHash() => r'ba2c2d7f0a5e99fd9e639acd020b8cf3016c6126'; /// See also [EngineSuggestions]. @ProviderFor(EngineSuggestions) final engineSuggestionsProvider = AutoDisposeStreamNotifierProvider< - EngineSuggestions, List>.internal( + EngineSuggestions, + List +>.internal( EngineSuggestions.new, name: r'engineSuggestionsProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$engineSuggestionsHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$engineSuggestionsHash, dependencies: null, allTransitiveDependencies: null, ); diff --git a/app/lib/features/geckoview/features/search/domain/providers/search_suggestions.dart b/app/lib/features/geckoview/features/search/domain/providers/search_suggestions.dart index affaea3f..80f790b8 100644 --- a/app/lib/features/geckoview/features/search/domain/providers/search_suggestions.dart +++ b/app/lib/features/geckoview/features/search/domain/providers/search_suggestions.dart @@ -18,18 +18,17 @@ class SearchSuggestions extends _$SearchSuggestions { void addQuery(String query) => _addQueryBinding(query); @override - Stream> build({ - ISearchSuggestionProvider? suggestionsProvider, - }) { + Stream> build({ISearchSuggestionProvider? suggestionsProvider}) { final defaultProvider = ref.watch(defaultSearchSuggestionsProvider); final resolvedProvider = suggestionsProvider ?? defaultProvider; - _addQueryBinding = ref - .watch(searchSuggestionsRepositoryProvider(resolvedProvider).notifier) - .addQuery; + _addQueryBinding = + ref + .watch( + searchSuggestionsRepositoryProvider(resolvedProvider).notifier, + ) + .addQuery; - return ref.watch( - searchSuggestionsRepositoryProvider(resolvedProvider), - ); + return ref.watch(searchSuggestionsRepositoryProvider(resolvedProvider)); } } diff --git a/app/lib/features/geckoview/features/search/domain/providers/search_suggestions.g.dart b/app/lib/features/geckoview/features/search/domain/providers/search_suggestions.g.dart index 000570e5..cf3ee47b 100644 --- a/app/lib/features/geckoview/features/search/domain/providers/search_suggestions.g.dart +++ b/app/lib/features/geckoview/features/search/domain/providers/search_suggestions.g.dart @@ -13,14 +13,15 @@ String _$defaultSearchSuggestionsHash() => @ProviderFor(defaultSearchSuggestions) final defaultSearchSuggestionsProvider = Provider.internal( - defaultSearchSuggestions, - name: r'defaultSearchSuggestionsProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$defaultSearchSuggestionsHash, - dependencies: null, - allTransitiveDependencies: null, -); + defaultSearchSuggestions, + name: r'defaultSearchSuggestionsProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$defaultSearchSuggestionsHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element @@ -52,9 +53,7 @@ abstract class _$SearchSuggestions extends BuildlessAutoDisposeStreamNotifier> { late final ISearchSuggestionProvider? suggestionsProvider; - Stream> build({ - ISearchSuggestionProvider? suggestionsProvider, - }); + Stream> build({ISearchSuggestionProvider? suggestionsProvider}); } /// See also [SearchSuggestions]. @@ -70,18 +69,14 @@ class SearchSuggestionsFamily extends Family>> { SearchSuggestionsProvider call({ ISearchSuggestionProvider? suggestionsProvider, }) { - return SearchSuggestionsProvider( - suggestionsProvider: suggestionsProvider, - ); + return SearchSuggestionsProvider(suggestionsProvider: suggestionsProvider); } @override SearchSuggestionsProvider getProviderOverride( covariant SearchSuggestionsProvider provider, ) { - return call( - suggestionsProvider: provider.suggestionsProvider, - ); + return call(suggestionsProvider: provider.suggestionsProvider); } static const Iterable? _dependencies = null; @@ -100,24 +95,24 @@ class SearchSuggestionsFamily extends Family>> { } /// See also [SearchSuggestions]. -class SearchSuggestionsProvider extends AutoDisposeStreamNotifierProviderImpl< - SearchSuggestions, List> { +class SearchSuggestionsProvider + extends + AutoDisposeStreamNotifierProviderImpl> { /// See also [SearchSuggestions]. - SearchSuggestionsProvider({ - ISearchSuggestionProvider? suggestionsProvider, - }) : this._internal( - () => SearchSuggestions()..suggestionsProvider = suggestionsProvider, - from: searchSuggestionsProvider, - name: r'searchSuggestionsProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$searchSuggestionsHash, - dependencies: SearchSuggestionsFamily._dependencies, - allTransitiveDependencies: - SearchSuggestionsFamily._allTransitiveDependencies, - suggestionsProvider: suggestionsProvider, - ); + SearchSuggestionsProvider({ISearchSuggestionProvider? suggestionsProvider}) + : this._internal( + () => SearchSuggestions()..suggestionsProvider = suggestionsProvider, + from: searchSuggestionsProvider, + name: r'searchSuggestionsProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$searchSuggestionsHash, + dependencies: SearchSuggestionsFamily._dependencies, + allTransitiveDependencies: + SearchSuggestionsFamily._allTransitiveDependencies, + suggestionsProvider: suggestionsProvider, + ); SearchSuggestionsProvider._internal( super._createNotifier, { @@ -132,12 +127,8 @@ class SearchSuggestionsProvider extends AutoDisposeStreamNotifierProviderImpl< final ISearchSuggestionProvider? suggestionsProvider; @override - Stream> runNotifierBuild( - covariant SearchSuggestions notifier, - ) { - return notifier.build( - suggestionsProvider: suggestionsProvider, - ); + Stream> runNotifierBuild(covariant SearchSuggestions notifier) { + return notifier.build(suggestionsProvider: suggestionsProvider); } @override @@ -158,7 +149,7 @@ class SearchSuggestionsProvider extends AutoDisposeStreamNotifierProviderImpl< @override AutoDisposeStreamNotifierProviderElement> - createElement() { + createElement() { return _SearchSuggestionsProviderElement(this); } @@ -186,13 +177,18 @@ mixin SearchSuggestionsRef } class _SearchSuggestionsProviderElement - extends AutoDisposeStreamNotifierProviderElement> with SearchSuggestionsRef { + extends + AutoDisposeStreamNotifierProviderElement< + SearchSuggestions, + List + > + with SearchSuggestionsRef { _SearchSuggestionsProviderElement(super.provider); @override ISearchSuggestionProvider? get suggestionsProvider => (origin as SearchSuggestionsProvider).suggestionsProvider; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/geckoview/features/search/presentation/screens/search.dart b/app/lib/features/geckoview/features/search/presentation/screens/search.dart index 53cc1d85..8a36e7d0 100644 --- a/app/lib/features/geckoview/features/search/presentation/screens/search.dart +++ b/app/lib/features/geckoview/features/search/presentation/screens/search.dart @@ -23,8 +23,9 @@ class SearchScreen extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final formKey = useMemoized(() => GlobalKey()); - final searchTextController = - useTextEditingController(text: initialSearchText); + final searchTextController = useTextEditingController( + text: initialSearchText, + ); final searchFocusNode = useFocusNode(); final defaultSearchBang = ref.watch( @@ -35,16 +36,13 @@ class SearchScreen extends HookConsumerWidget { final activeBang = selectedBang.value ?? defaultSearchBang; final showBangIcon = useState(false); - ref.listen( - selectedBangDataProvider(), - (previous, next) { - if (previous != next) { - showBangIcon.value = true; - } + ref.listen(selectedBangDataProvider(), (previous, next) { + if (previous != next) { + showBangIcon.value = true; + } - selectedBang.value = next; - }, - ); + selectedBang.value = next; + }); Future submitSearch(String query) async { if (activeBang != null && (formKey.currentState?.validate() == true)) { @@ -78,12 +76,14 @@ class SearchScreen extends HookConsumerWidget { autofocus: true, onSubmitted: (value) async { if (value.isNotEmpty) { - var newUrl = - uri_parser.tryParseUrl(value, eagerParsing: true); + var newUrl = uri_parser.tryParseUrl( + value, + eagerParsing: true, + ); if (newUrl == null) { - final defaultSearchBang = ref - .read(selectedBangDataProvider()) ?? + final defaultSearchBang = + ref.read(selectedBangDataProvider()) ?? await ref.read(defaultSearchBangDataProvider.future); newUrl = defaultSearchBang?.getUrl(value); @@ -108,23 +108,15 @@ class SearchScreen extends HookConsumerWidget { showSuggestions: true, ), ), - const SliverToBoxAdapter( - child: Divider(), - ), + const SliverToBoxAdapter(child: Divider()), SearchTermSuggestions( searchTextController: searchTextController, activeBang: activeBang, submitSearch: submitSearch, ), - const SliverToBoxAdapter( - child: Divider(), - ), - TabSearch( - searchTextController: searchTextController, - ), - HistorySuggestions( - searchTextController: searchTextController, - ), + const SliverToBoxAdapter(child: Divider()), + TabSearch(searchTextController: searchTextController), + HistorySuggestions(searchTextController: searchTextController), ], ), ), diff --git a/app/lib/features/geckoview/features/search/presentation/widgets/bang_chips.dart b/app/lib/features/geckoview/features/search/presentation/widgets/bang_chips.dart index 9dce37ec..bac54cb1 100644 --- a/app/lib/features/geckoview/features/search/presentation/widgets/bang_chips.dart +++ b/app/lib/features/geckoview/features/search/presentation/widgets/bang_chips.dart @@ -31,24 +31,21 @@ class BangChips extends HookConsumerWidget { ) { return showDialog( context: context, - builder: (context) => AlertDialog( - title: Text( - 'Reset usage frequency of $triggerName?', - ), - content: const Text( - 'This will remove the Bang from quick select.', - ), - actions: [ - TextButton( - onPressed: () => Navigator.pop(context, false), - child: const Text('Cancel'), + builder: + (context) => AlertDialog( + title: Text('Reset usage frequency of $triggerName?'), + content: const Text('This will remove the Bang from quick select.'), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text('Cancel'), + ), + TextButton( + onPressed: () => Navigator.pop(context, true), + child: const Text('Reset'), + ), + ], ), - TextButton( - onPressed: () => Navigator.pop(context, true), - child: const Text('Reset'), - ), - ], - ), ); } @@ -56,14 +53,11 @@ class BangChips extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final availableBangs = ref.watch(seamlessBangProviderProvider); - useListenableCallback( - searchTextController, - () { - ref - .read(seamlessBangProviderProvider.notifier) - .search(searchTextController!.text); - }, - ); + useListenableCallback(searchTextController, () { + ref + .read(seamlessBangProviderProvider.notifier) + .search(searchTextController!.text); + }); return availableBangs.when( data: (availableBangs) { @@ -75,8 +69,8 @@ class BangChips extends HookConsumerWidget { Expanded( child: SelectableChips( itemId: (bang) => bang.trigger, - itemAvatar: (bang) => - UrlIcon(bang.getUrl(''), iconSize: 20), + itemAvatar: + (bang) => UrlIcon(bang.getUrl(''), iconSize: 20), itemLabel: (bang) => Text(bang.websiteName), availableItems: availableBangs, selectedItem: activeBang, @@ -104,9 +98,10 @@ class BangChips extends HookConsumerWidget { await context.push( BangSearchRoute( - searchText: (searchText?.isEmpty ?? true) - ? BangSearchRoute.emptySearchText - : searchText!, + searchText: + (searchText?.isEmpty ?? true) + ? BangSearchRoute.emptySearchText + : searchText!, ).location, ); }, @@ -117,10 +112,7 @@ class BangChips extends HookConsumerWidget { ); }, error: (error, stackTrace) => const SizedBox.shrink(), - loading: () => const SizedBox( - height: 48, - width: double.infinity, - ), + loading: () => const SizedBox(height: 48, width: double.infinity), ); } } diff --git a/app/lib/features/geckoview/features/search/presentation/widgets/search_field.dart b/app/lib/features/geckoview/features/search/presentation/widgets/search_field.dart index 6e2388b9..2b8ede3b 100644 --- a/app/lib/features/geckoview/features/search/presentation/widgets/search_field.dart +++ b/app/lib/features/geckoview/features/search/presentation/widgets/search_field.dart @@ -44,18 +44,15 @@ class SearchField extends HookConsumerWidget { final suggestion = useState(null); if (showSuggestions) { - useListenableCallback( - textEditingController, - () async { - if (textEditingController.text.isNotEmpty) { - final result = await ref - .read(engineSuggestionsProvider.notifier) - .getAutocompleteSuggestion(textEditingController.text); + useListenableCallback(textEditingController, () async { + if (textEditingController.text.isNotEmpty) { + final result = await ref + .read(engineSuggestionsProvider.notifier) + .getAutocompleteSuggestion(textEditingController.text); - suggestion.value = result; - } - }, - ); + suggestion.value = result; + } + }); } return AutoSuggestTextField( @@ -66,33 +63,36 @@ class SearchField extends HookConsumerWidget { autofocus: autofocus, decoration: InputDecoration( border: InputBorder.none, - prefixIcon: (showBangIcon && activeBang != null) - ? Padding( - padding: const EdgeInsetsDirectional.all(12.0), - child: UrlIcon(activeBang!.getUrl(''), iconSize: 24.0), - ) - : null, + prefixIcon: + (showBangIcon && activeBang != null) + ? Padding( + padding: const EdgeInsetsDirectional.all(12.0), + child: UrlIcon(activeBang!.getUrl(''), iconSize: 24.0), + ) + : null, label: label ?? const Text('Search'), // hintText: 'Ask anything...', floatingLabelBehavior: FloatingLabelBehavior.always, - suffixIcon: hasText - ? IconButton( - onPressed: () { - textEditingController.clear(); - }, - icon: const Icon(Icons.clear), - ) - : SpeechToTextButton( - onTextReceived: (data) { - textEditingController.text = data.toString(); - }, - ), + suffixIcon: + hasText + ? IconButton( + onPressed: () { + textEditingController.clear(); + }, + icon: const Icon(Icons.clear), + ) + : SpeechToTextButton( + onTextReceived: (data) { + textEditingController.text = data.toString(); + }, + ), ), - onTapOutside: (focusNode != null) - ? (event) { - focusNode!.unfocus(); - } - : null, + onTapOutside: + (focusNode != null) + ? (event) { + focusNode!.unfocus(); + } + : null, onSubmitted: onSubmitted, ); } diff --git a/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/history_suggestions.dart b/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/history_suggestions.dart index 05bab9e9..3497ed77 100644 --- a/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/history_suggestions.dart +++ b/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/history_suggestions.dart @@ -22,14 +22,11 @@ class HistorySuggestions extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final historySuggestions = ref.watch(engineHistorySuggestionsProvider); - useListenableCallback( - searchTextController, - () async { - await ref - .watch(engineSuggestionsProvider.notifier) - .addQuery(searchTextController.text); - }, - ); + useListenableCallback(searchTextController, () async { + await ref + .watch(engineSuggestionsProvider.notifier) + .addQuery(searchTextController.text); + }); if (historySuggestions.hasValue && (historySuggestions.valueOrNull?.isEmpty ?? true)) { @@ -38,9 +35,7 @@ class HistorySuggestions extends HookConsumerWidget { return MultiSliver( children: [ - const SliverToBoxAdapter( - child: Divider(), - ), + const SliverToBoxAdapter(child: Divider()), SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.only(left: 16.0), @@ -76,8 +71,9 @@ class HistorySuggestions extends HookConsumerWidget { width: 24, ), ), - title: - suggestion.title.mapNotNull((title) => Text(title)), + title: suggestion.title.mapNotNull( + (title) => Text(title), + ), subtitle: suggestion.description.mapNotNull( (description) => Text( description, @@ -117,14 +113,13 @@ class HistorySuggestions extends HookConsumerWidget { exception: error, ); }, - loading: () => SliverList.builder( - itemCount: historySuggestions.valueOrNull?.length ?? 3, - itemBuilder: (context, index) { - return const ListTile( - title: Bone.text(), - ); - }, - ), + loading: + () => SliverList.builder( + itemCount: historySuggestions.valueOrNull?.length ?? 3, + itemBuilder: (context, index) { + return const ListTile(title: Bone.text()); + }, + ), ), ), ], diff --git a/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/search_suggestions.dart b/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/search_suggestions.dart index 72d92091..1e6983f8 100644 --- a/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/search_suggestions.dart +++ b/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/search_suggestions.dart @@ -40,14 +40,11 @@ class SearchTermSuggestions extends HookConsumerWidget { final searchHistory = ref.watch(searchHistoryProvider); - useListenableCallback( - searchTextController, - () async { - ref - .read(searchSuggestionsProvider().notifier) - .addQuery(searchTextController.text); - }, - ); + useListenableCallback(searchTextController, () async { + ref + .read(searchSuggestionsProvider().notifier) + .addQuery(searchTextController.text); + }); final Widget listSliver; @@ -135,9 +132,7 @@ class SearchTermSuggestions extends HookConsumerWidget { if (ref.read(selectedBangTriggerProvider()) == bang.trigger) { ref - .read( - selectedBangTriggerProvider().notifier, - ) + .read(selectedBangTriggerProvider().notifier) .clearTrigger(); } else { final dialogResult = await BangChips.resetBangDialog( @@ -167,9 +162,7 @@ class SearchTermSuggestions extends HookConsumerWidget { return CustomScrollView( shrinkWrap: true, controller: controller, - slivers: [ - listSliver, - ], + slivers: [listSliver], ); }, ), diff --git a/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/tab_search.dart b/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/tab_search.dart index f0b98a1b..d589a3a0 100644 --- a/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/tab_search.dart +++ b/app/lib/features/geckoview/features/search/presentation/widgets/search_modules/tab_search.dart @@ -32,33 +32,31 @@ class TabSearch extends HookConsumerWidget { ), ); - final tabs = ref - .watch( - seamlessFilteredTabPreviewsProvider( - TabSearchPartition.search, - (selectedContainer.value != null) - ? ContainerFilterById(containerId: selectedContainer.value!.id) - : ContainerFilterDisabled(), - ), - ) - .collection; - - useListenableCallback( - searchTextController, - () async { - await ref - .read( - tabSearchRepositoryProvider(TabSearchPartition.search).notifier, + final tabs = + ref + .watch( + seamlessFilteredTabPreviewsProvider( + TabSearchPartition.search, + (selectedContainer.value != null) + ? ContainerFilterById( + containerId: selectedContainer.value!.id, + ) + : ContainerFilterDisabled(), + ), ) - .addQuery( - searchTextController.text, - // ignore: avoid_redundant_argument_values - matchPrefix: _matchPrefix, - // ignore: avoid_redundant_argument_values - matchSuffix: _matchSuffix, - ); - }, - ); + .collection; + + useListenableCallback(searchTextController, () async { + await ref + .read(tabSearchRepositoryProvider(TabSearchPartition.search).notifier) + .addQuery( + searchTextController.text, + // ignore: avoid_redundant_argument_values + matchPrefix: _matchPrefix, + // ignore: avoid_redundant_argument_values + matchSuffix: _matchSuffix, + ); + }); return MultiSliver( children: [ @@ -68,10 +66,7 @@ class TabSearch extends HookConsumerWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - 'Tabs', - style: Theme.of(context).textTheme.labelSmall, - ), + Text('Tabs', style: Theme.of(context).textTheme.labelSmall), ContainerChips( displayMenu: false, selectedContainer: selectedContainer.value, @@ -100,48 +95,49 @@ class TabSearch extends HookConsumerWidget { return ListTile( leading: RepaintBoundary( - child: (result.icon != null) - ? RawImage( - image: result.icon?.value, - height: 24, - width: 24, - ) - : UrlIcon(result.url, iconSize: 24), + child: + (result.icon != null) + ? RawImage( + image: result.icon?.value, + height: 24, + width: 24, + ) + : UrlIcon(result.url, iconSize: 24), ), title: result.title.mapNotNull( (title) => MarkdownBody( data: title, styleSheet: MarkdownStyleSheet( p: Theme.of(context).textTheme.bodyLarge?.copyWith( - color: Theme.of(context).colorScheme.onSurface, - ), + color: Theme.of(context).colorScheme.onSurface, + ), ), ), ), - subtitle: (bodyHasMatch || urlHasMatch) - ? MarkdownBody( - data: bodyHasMatch - ? result.content! - : result.highlightedUrl!, - styleSheet: MarkdownStyleSheet( - p: Theme.of(context).textTheme.bodyMedium?.copyWith( - color: Theme.of(context) - .colorScheme - .onSurfaceVariant, - ), - a: Theme.of(context).textTheme.bodyMedium?.copyWith( - color: Theme.of(context) - .colorScheme - .onSurfaceVariant, - decoration: TextDecoration.none, - ), + subtitle: + (bodyHasMatch || urlHasMatch) + ? MarkdownBody( + data: + bodyHasMatch + ? result.content! + : result.highlightedUrl!, + styleSheet: MarkdownStyleSheet( + p: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: + Theme.of(context).colorScheme.onSurfaceVariant, + ), + a: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: + Theme.of(context).colorScheme.onSurfaceVariant, + decoration: TextDecoration.none, + ), + ), + ) + : Text( + result.url.toString(), + maxLines: 2, + overflow: TextOverflow.ellipsis, ), - ) - : Text( - result.url.toString(), - maxLines: 2, - overflow: TextOverflow.ellipsis, - ), onTap: () async { await ref .read(tabRepositoryProvider.notifier) diff --git a/app/lib/features/geckoview/features/tabs/data/database/daos/container.dart b/app/lib/features/geckoview/features/tabs/data/database/daos/container.dart index c4ef4c3a..a235bf62 100644 --- a/app/lib/features/geckoview/features/tabs/data/database/daos/container.dart +++ b/app/lib/features/geckoview/features/tabs/data/database/daos/container.dart @@ -42,12 +42,14 @@ class ContainerDao extends DatabaseAccessor } Selectable getDistinctColors() { - final query = db.selectOnly(db.container, distinct: true) - ..addColumns([db.container.color]) - ..where(db.container.color.isNotNull()); + final query = + db.selectOnly(db.container, distinct: true) + ..addColumns([db.container.color]) + ..where(db.container.color.isNotNull()); - return query - .map((row) => row.readWithConverter(db.container.color)!); + return query.map( + (row) => row.readWithConverter(db.container.color)!, + ); } SingleSelectable generateLeadingOrderKey( diff --git a/app/lib/features/geckoview/features/tabs/data/database/daos/tab.dart b/app/lib/features/geckoview/features/tabs/data/database/daos/tab.dart index b8defc40..4e4c95da 100644 --- a/app/lib/features/geckoview/features/tabs/data/database/daos/tab.dart +++ b/app/lib/features/geckoview/features/tabs/data/database/daos/tab.dart @@ -21,30 +21,33 @@ class TabDao extends DatabaseAccessor with _$TabDaoMixin { db.tab.select()..where((t) => t.id.equals(id)); Selectable containerTabIds(String? containerId) { - final query = selectOnly(db.tab) - ..addColumns([db.tab.id]) - ..where( - (containerId != null) - ? db.tab.containerId.equals(containerId) - : db.tab.containerId.isNull(), - ) - ..orderBy([OrderingTerm.asc(db.tab.orderKey)]); + final query = + selectOnly(db.tab) + ..addColumns([db.tab.id]) + ..where( + (containerId != null) + ? db.tab.containerId.equals(containerId) + : db.tab.containerId.isNull(), + ) + ..orderBy([OrderingTerm.asc(db.tab.orderKey)]); return query.map((row) => row.read(db.tab.id)!); } Selectable allTabIds() { - final query = selectOnly(db.tab) - ..addColumns([db.tab.id]) - ..orderBy([OrderingTerm.asc(db.tab.orderKey)]); + final query = + selectOnly(db.tab) + ..addColumns([db.tab.id]) + ..orderBy([OrderingTerm.asc(db.tab.orderKey)]); return query.map((row) => row.read(db.tab.id)!); } SingleOrNullSelectable tabContainerId(String tabId) { - final query = selectOnly(db.tab) - ..addColumns([db.tab.containerId]) - ..where(db.tab.id.equals(tabId)); + final query = + selectOnly(db.tab) + ..addColumns([db.tab.containerId]) + ..where(db.tab.id.equals(tabId)); return query.map((row) => row.read(db.tab.containerId)); } @@ -57,7 +60,8 @@ class TabDao extends DatabaseAccessor with _$TabDaoMixin { return db.transaction(() async { final tabId = await createTab(); - final currentOrderKey = orderKey.value ?? + final currentOrderKey = + orderKey.value ?? await db.containerDao .generateLeadingOrderKey(containerId.value) .getSingle(); @@ -89,7 +93,8 @@ class TabDao extends DatabaseAccessor with _$TabDaoMixin { Value orderKey = const Value.absent(), }) { return db.transaction(() async { - final currentOrderKey = orderKey.value ?? + final currentOrderKey = + orderKey.value ?? await db.containerDao .generateLeadingOrderKey(containerId.value) .getSingle(); @@ -115,34 +120,19 @@ class TabDao extends DatabaseAccessor with _$TabDaoMixin { }); } - Future assignContainer( - String id, { - required String? containerId, - }) { + Future assignContainer(String id, {required String? containerId}) { final statement = _updateByIdStatement(id); - return statement.write( - TabCompanion(containerId: Value(containerId)), - ); + return statement.write(TabCompanion(containerId: Value(containerId))); } - Future assignOrderKey( - String id, { - required String orderKey, - }) { + Future assignOrderKey(String id, {required String orderKey}) { final statement = _updateByIdStatement(id); - return statement.write( - TabCompanion(orderKey: Value(orderKey)), - ); + return statement.write(TabCompanion(orderKey: Value(orderKey))); } - Future touchTab( - String id, { - required DateTime timestamp, - }) { + Future touchTab(String id, {required DateTime timestamp}) { final statement = _updateByIdStatement(id); - return statement.write( - TabCompanion(timestamp: Value(timestamp)), - ); + return statement.write(TabCompanion(timestamp: Value(timestamp))); } Future updateTabContent( @@ -180,12 +170,14 @@ class TabDao extends DatabaseAccessor with _$TabDaoMixin { batch.update( db.tab, TabCompanion( - url: (previousState?.url != state.url) - ? Value(state.url.toString()) - : const Value.absent(), - title: (previousState?.title != state.title) - ? Value(state.title) - : const Value.absent(), + url: + (previousState?.url != state.url) + ? Value(state.url.toString()) + : const Value.absent(), + title: + (previousState?.title != state.title) + ? Value(state.title) + : const Value.absent(), ), where: (t) => t.id.equals(state.id), ); @@ -202,19 +194,17 @@ class TabDao extends DatabaseAccessor with _$TabDaoMixin { await db.containerDao.generateLeadingOrderKey(null).getSingle(); await db.tab.insertAll( - retainTabIds.map( - (id) { - final insertable = TabCompanion.insert( - id: id, - orderKey: currentOrderKey, - timestamp: DateTime.now(), - ); + retainTabIds.map((id) { + final insertable = TabCompanion.insert( + id: id, + orderKey: currentOrderKey, + timestamp: DateTime.now(), + ); - currentOrderKey = LexoRank.parse(currentOrderKey).genPrev().value; + currentOrderKey = LexoRank.parse(currentOrderKey).genPrev().value; - return insertable; - }, - ), + return insertable; + }), mode: InsertMode.insertOrIgnore, ); }); diff --git a/app/lib/features/geckoview/features/tabs/data/database/database.dart b/app/lib/features/geckoview/features/tabs/data/database/database.dart index 64ada17f..0deffb4d 100644 --- a/app/lib/features/geckoview/features/tabs/data/database/database.dart +++ b/app/lib/features/geckoview/features/tabs/data/database/database.dart @@ -30,23 +30,23 @@ class TabDatabase extends _$TabDatabase with TrigramQueryBuilderMixin { @override MigrationStrategy get migration => MigrationStrategy( - onCreate: (m) async { - final migrator = - VectorDatabaseMigrator(dimensions: embeddingDimensions); + onCreate: (m) async { + final migrator = VectorDatabaseMigrator(dimensions: embeddingDimensions); - await m.database.customStatement(migrator.vectorTableDefinition); + await m.database.customStatement(migrator.vectorTableDefinition); - //instead of m.createAll(); we igoner vec0 table - for (final entity - in allSchemaEntities.where((entity) => entity is! DocumentVec)) { - await m.create(entity); - } - }, - beforeOpen: (details) async { - await customStatement('PRAGMA foreign_keys = ON;'); - await optimizeFtsIndex(); - }, - ); + //instead of m.createAll(); we igoner vec0 table + for (final entity in allSchemaEntities.where( + (entity) => entity is! DocumentVec, + )) { + await m.create(entity); + } + }, + beforeOpen: (details) async { + await customStatement('PRAGMA foreign_keys = ON;'); + await optimizeFtsIndex(); + }, + ); TabDatabase(super.e, {required this.embeddingDimensions}); } diff --git a/app/lib/features/geckoview/features/tabs/data/database/database.g.dart b/app/lib/features/geckoview/features/tabs/data/database/database.g.dart index 04cfdc9d..11f16260 100644 --- a/app/lib/features/geckoview/features/tabs/data/database/database.g.dart +++ b/app/lib/features/geckoview/features/tabs/data/database/database.g.dart @@ -9,27 +9,39 @@ class Container extends Table with TableInfo { final String? _alias; Container(this.attachedDatabase, [this._alias]); late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'PRIMARY KEY NOT NULL'); + 'id', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'PRIMARY KEY NOT NULL', + ); late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'name', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumnWithTypeConverter color = - GeneratedColumn('color', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL') - .withConverter(Container.$convertercolor); + GeneratedColumn( + 'color', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ).withConverter(Container.$convertercolor); late final GeneratedColumnWithTypeConverter - metadata = GeneratedColumn('metadata', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: '') - .withConverter(Container.$convertermetadatan); + metadata = GeneratedColumn( + 'metadata', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ).withConverter(Container.$convertermetadatan); @override List get $columns => [id, name, color, metadata]; @override @@ -43,15 +55,27 @@ class Container extends Table with TableInfo { ContainerData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return ContainerData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name']), - color: Container.$convertercolor.fromSql(attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}color'])!), - metadata: Container.$convertermetadatan.fromSql(attachedDatabase - .typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}metadata'])), + id: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}id'], + )!, + name: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}name'], + ), + color: Container.$convertercolor.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}color'], + )!, + ), + metadata: Container.$convertermetadatan.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}metadata'], + ), + ), ); } @@ -88,8 +112,8 @@ class ContainerCompanion extends UpdateCompanion { required Color color, this.metadata = const Value.absent(), this.rowid = const Value.absent(), - }) : id = Value(id), - color = Value(color); + }) : id = Value(id), + color = Value(color); static Insertable custom({ Expression? id, Expression? name, @@ -106,12 +130,13 @@ class ContainerCompanion extends UpdateCompanion { }); } - ContainerCompanion copyWith( - {Value? id, - Value? name, - Value? color, - Value? metadata, - Value? rowid}) { + ContainerCompanion copyWith({ + Value? id, + Value? name, + Value? color, + Value? metadata, + Value? rowid, + }) { return ContainerCompanion( id: id ?? this.id, name: name ?? this.name, @@ -131,12 +156,14 @@ class ContainerCompanion extends UpdateCompanion { map['name'] = Variable(name.value); } if (color.present) { - map['color'] = - Variable(Container.$convertercolor.toSql(color.value)); + map['color'] = Variable( + Container.$convertercolor.toSql(color.value), + ); } if (metadata.present) { - map['metadata'] = - Variable(Container.$convertermetadatan.toSql(metadata.value)); + map['metadata'] = Variable( + Container.$convertermetadatan.toSql(metadata.value), + ); } if (rowid.present) { map['rowid'] = Variable(rowid.value); @@ -163,74 +190,110 @@ class Tab extends Table with TableInfo { final String? _alias; Tab(this.attachedDatabase, [this._alias]); late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'PRIMARY KEY NOT NULL'); + 'id', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'PRIMARY KEY NOT NULL', + ); late final GeneratedColumn containerId = GeneratedColumn( - 'container_id', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: 'REFERENCES container(id)ON DELETE CASCADE'); + 'container_id', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: 'REFERENCES container(id)ON DELETE CASCADE', + ); late final GeneratedColumn orderKey = GeneratedColumn( - 'order_key', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'order_key', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn url = GeneratedColumn( - 'url', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'url', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn title = GeneratedColumn( - 'title', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'title', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn isProbablyReaderable = GeneratedColumn( - 'is_probably_readerable', aliasedName, true, - type: DriftSqlType.bool, - requiredDuringInsert: false, - $customConstraints: ''); + 'is_probably_readerable', + aliasedName, + true, + type: DriftSqlType.bool, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn extractedContentMarkdown = - GeneratedColumn('extracted_content_markdown', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + GeneratedColumn( + 'extracted_content_markdown', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn extractedContentPlain = - GeneratedColumn('extracted_content_plain', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + GeneratedColumn( + 'extracted_content_plain', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn fullContentMarkdown = - GeneratedColumn('full_content_markdown', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + GeneratedColumn( + 'full_content_markdown', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn fullContentPlain = GeneratedColumn( - 'full_content_plain', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'full_content_plain', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn timestamp = GeneratedColumn( - 'timestamp', aliasedName, false, - type: DriftSqlType.dateTime, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'timestamp', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); @override List get $columns => [ - id, - containerId, - orderKey, - url, - title, - isProbablyReaderable, - extractedContentMarkdown, - extractedContentPlain, - fullContentMarkdown, - fullContentPlain, - timestamp - ]; + id, + containerId, + orderKey, + url, + title, + isProbablyReaderable, + extractedContentMarkdown, + extractedContentPlain, + fullContentMarkdown, + fullContentPlain, + timestamp, + ]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -242,30 +305,53 @@ class Tab extends Table with TableInfo { TabData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return TabData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - containerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}container_id']), - orderKey: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}order_key'])!, - url: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}url']), - title: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}title']), + id: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}id'], + )!, + containerId: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}container_id'], + ), + orderKey: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}order_key'], + )!, + url: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}url'], + ), + title: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}title'], + ), isProbablyReaderable: attachedDatabase.typeMapping.read( - DriftSqlType.bool, data['${effectivePrefix}is_probably_readerable']), + DriftSqlType.bool, + data['${effectivePrefix}is_probably_readerable'], + ), extractedContentMarkdown: attachedDatabase.typeMapping.read( - DriftSqlType.string, - data['${effectivePrefix}extracted_content_markdown']), + DriftSqlType.string, + data['${effectivePrefix}extracted_content_markdown'], + ), extractedContentPlain: attachedDatabase.typeMapping.read( - DriftSqlType.string, - data['${effectivePrefix}extracted_content_plain']), + DriftSqlType.string, + data['${effectivePrefix}extracted_content_plain'], + ), fullContentMarkdown: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}full_content_markdown']), + DriftSqlType.string, + data['${effectivePrefix}full_content_markdown'], + ), fullContentPlain: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}full_content_plain']), - timestamp: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}timestamp'])!, + DriftSqlType.string, + data['${effectivePrefix}full_content_plain'], + ), + timestamp: + attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}timestamp'], + )!, ); } @@ -290,18 +376,19 @@ class TabData extends DataClass implements Insertable { final String? fullContentMarkdown; final String? fullContentPlain; final DateTime timestamp; - const TabData( - {required this.id, - this.containerId, - required this.orderKey, - this.url, - this.title, - this.isProbablyReaderable, - this.extractedContentMarkdown, - this.extractedContentPlain, - this.fullContentMarkdown, - this.fullContentPlain, - required this.timestamp}); + const TabData({ + required this.id, + this.containerId, + required this.orderKey, + this.url, + this.title, + this.isProbablyReaderable, + this.extractedContentMarkdown, + this.extractedContentPlain, + this.fullContentMarkdown, + this.fullContentPlain, + required this.timestamp, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -320,8 +407,9 @@ class TabData extends DataClass implements Insertable { map['is_probably_readerable'] = Variable(isProbablyReaderable); } if (!nullToAbsent || extractedContentMarkdown != null) { - map['extracted_content_markdown'] = - Variable(extractedContentMarkdown); + map['extracted_content_markdown'] = Variable( + extractedContentMarkdown, + ); } if (!nullToAbsent || extractedContentPlain != null) { map['extracted_content_plain'] = Variable(extractedContentPlain); @@ -336,8 +424,10 @@ class TabData extends DataClass implements Insertable { return map; } - factory TabData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory TabData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return TabData( id: serializer.fromJson(json['id']), @@ -345,16 +435,21 @@ class TabData extends DataClass implements Insertable { orderKey: serializer.fromJson(json['order_key']), url: serializer.fromJson(json['url']), title: serializer.fromJson(json['title']), - isProbablyReaderable: - serializer.fromJson(json['is_probably_readerable']), - extractedContentMarkdown: - serializer.fromJson(json['extracted_content_markdown']), - extractedContentPlain: - serializer.fromJson(json['extracted_content_plain']), - fullContentMarkdown: - serializer.fromJson(json['full_content_markdown']), - fullContentPlain: - serializer.fromJson(json['full_content_plain']), + isProbablyReaderable: serializer.fromJson( + json['is_probably_readerable'], + ), + extractedContentMarkdown: serializer.fromJson( + json['extracted_content_markdown'], + ), + extractedContentPlain: serializer.fromJson( + json['extracted_content_plain'], + ), + fullContentMarkdown: serializer.fromJson( + json['full_content_markdown'], + ), + fullContentPlain: serializer.fromJson( + json['full_content_plain'], + ), timestamp: serializer.fromJson(json['timestamp']), ); } @@ -368,51 +463,58 @@ class TabData extends DataClass implements Insertable { 'url': serializer.toJson(url), 'title': serializer.toJson(title), 'is_probably_readerable': serializer.toJson(isProbablyReaderable), - 'extracted_content_markdown': - serializer.toJson(extractedContentMarkdown), - 'extracted_content_plain': - serializer.toJson(extractedContentPlain), + 'extracted_content_markdown': serializer.toJson( + extractedContentMarkdown, + ), + 'extracted_content_plain': serializer.toJson( + extractedContentPlain, + ), 'full_content_markdown': serializer.toJson(fullContentMarkdown), 'full_content_plain': serializer.toJson(fullContentPlain), 'timestamp': serializer.toJson(timestamp), }; } - TabData copyWith( - {String? id, - Value containerId = const Value.absent(), - String? orderKey, - Value url = const Value.absent(), - Value title = const Value.absent(), - Value isProbablyReaderable = const Value.absent(), - Value extractedContentMarkdown = const Value.absent(), - Value extractedContentPlain = const Value.absent(), - Value fullContentMarkdown = const Value.absent(), - Value fullContentPlain = const Value.absent(), - DateTime? timestamp}) => - TabData( - id: id ?? this.id, - containerId: containerId.present ? containerId.value : this.containerId, - orderKey: orderKey ?? this.orderKey, - url: url.present ? url.value : this.url, - title: title.present ? title.value : this.title, - isProbablyReaderable: isProbablyReaderable.present + TabData copyWith({ + String? id, + Value containerId = const Value.absent(), + String? orderKey, + Value url = const Value.absent(), + Value title = const Value.absent(), + Value isProbablyReaderable = const Value.absent(), + Value extractedContentMarkdown = const Value.absent(), + Value extractedContentPlain = const Value.absent(), + Value fullContentMarkdown = const Value.absent(), + Value fullContentPlain = const Value.absent(), + DateTime? timestamp, + }) => TabData( + id: id ?? this.id, + containerId: containerId.present ? containerId.value : this.containerId, + orderKey: orderKey ?? this.orderKey, + url: url.present ? url.value : this.url, + title: title.present ? title.value : this.title, + isProbablyReaderable: + isProbablyReaderable.present ? isProbablyReaderable.value : this.isProbablyReaderable, - extractedContentMarkdown: extractedContentMarkdown.present + extractedContentMarkdown: + extractedContentMarkdown.present ? extractedContentMarkdown.value : this.extractedContentMarkdown, - extractedContentPlain: extractedContentPlain.present + extractedContentPlain: + extractedContentPlain.present ? extractedContentPlain.value : this.extractedContentPlain, - fullContentMarkdown: fullContentMarkdown.present + fullContentMarkdown: + fullContentMarkdown.present ? fullContentMarkdown.value : this.fullContentMarkdown, - fullContentPlain: fullContentPlain.present + fullContentPlain: + fullContentPlain.present ? fullContentPlain.value : this.fullContentPlain, - timestamp: timestamp ?? this.timestamp, - ); + timestamp: timestamp ?? this.timestamp, + ); TabData copyWithCompanion(TabCompanion data) { return TabData( id: data.id.present ? data.id.value : this.id, @@ -421,21 +523,26 @@ class TabData extends DataClass implements Insertable { orderKey: data.orderKey.present ? data.orderKey.value : this.orderKey, url: data.url.present ? data.url.value : this.url, title: data.title.present ? data.title.value : this.title, - isProbablyReaderable: data.isProbablyReaderable.present - ? data.isProbablyReaderable.value - : this.isProbablyReaderable, - extractedContentMarkdown: data.extractedContentMarkdown.present - ? data.extractedContentMarkdown.value - : this.extractedContentMarkdown, - extractedContentPlain: data.extractedContentPlain.present - ? data.extractedContentPlain.value - : this.extractedContentPlain, - fullContentMarkdown: data.fullContentMarkdown.present - ? data.fullContentMarkdown.value - : this.fullContentMarkdown, - fullContentPlain: data.fullContentPlain.present - ? data.fullContentPlain.value - : this.fullContentPlain, + isProbablyReaderable: + data.isProbablyReaderable.present + ? data.isProbablyReaderable.value + : this.isProbablyReaderable, + extractedContentMarkdown: + data.extractedContentMarkdown.present + ? data.extractedContentMarkdown.value + : this.extractedContentMarkdown, + extractedContentPlain: + data.extractedContentPlain.present + ? data.extractedContentPlain.value + : this.extractedContentPlain, + fullContentMarkdown: + data.fullContentMarkdown.present + ? data.fullContentMarkdown.value + : this.fullContentMarkdown, + fullContentPlain: + data.fullContentPlain.present + ? data.fullContentPlain.value + : this.fullContentPlain, timestamp: data.timestamp.present ? data.timestamp.value : this.timestamp, ); } @@ -460,17 +567,18 @@ class TabData extends DataClass implements Insertable { @override int get hashCode => Object.hash( - id, - containerId, - orderKey, - url, - title, - isProbablyReaderable, - extractedContentMarkdown, - extractedContentPlain, - fullContentMarkdown, - fullContentPlain, - timestamp); + id, + containerId, + orderKey, + url, + title, + isProbablyReaderable, + extractedContentMarkdown, + extractedContentPlain, + fullContentMarkdown, + fullContentPlain, + timestamp, + ); @override bool operator ==(Object other) => identical(this, other) || @@ -528,9 +636,9 @@ class TabCompanion extends UpdateCompanion { this.fullContentPlain = const Value.absent(), required DateTime timestamp, this.rowid = const Value.absent(), - }) : id = Value(id), - orderKey = Value(orderKey), - timestamp = Value(timestamp); + }) : id = Value(id), + orderKey = Value(orderKey), + timestamp = Value(timestamp); static Insertable custom({ Expression? id, Expression? containerId, @@ -565,19 +673,20 @@ class TabCompanion extends UpdateCompanion { }); } - TabCompanion copyWith( - {Value? id, - Value? containerId, - Value? orderKey, - Value? url, - Value? title, - Value? isProbablyReaderable, - Value? extractedContentMarkdown, - Value? extractedContentPlain, - Value? fullContentMarkdown, - Value? fullContentPlain, - Value? timestamp, - Value? rowid}) { + TabCompanion copyWith({ + Value? id, + Value? containerId, + Value? orderKey, + Value? url, + Value? title, + Value? isProbablyReaderable, + Value? extractedContentMarkdown, + Value? extractedContentPlain, + Value? fullContentMarkdown, + Value? fullContentPlain, + Value? timestamp, + Value? rowid, + }) { return TabCompanion( id: id ?? this.id, containerId: containerId ?? this.containerId, @@ -615,20 +724,24 @@ class TabCompanion extends UpdateCompanion { map['title'] = Variable(title.value); } if (isProbablyReaderable.present) { - map['is_probably_readerable'] = - Variable(isProbablyReaderable.value); + map['is_probably_readerable'] = Variable( + isProbablyReaderable.value, + ); } if (extractedContentMarkdown.present) { - map['extracted_content_markdown'] = - Variable(extractedContentMarkdown.value); + map['extracted_content_markdown'] = Variable( + extractedContentMarkdown.value, + ); } if (extractedContentPlain.present) { - map['extracted_content_plain'] = - Variable(extractedContentPlain.value); + map['extracted_content_plain'] = Variable( + extractedContentPlain.value, + ); } if (fullContentMarkdown.present) { - map['full_content_markdown'] = - Variable(fullContentMarkdown.value); + map['full_content_markdown'] = Variable( + fullContentMarkdown.value, + ); } if (fullContentPlain.present) { map['full_content_plain'] = Variable(fullContentPlain.value); @@ -668,38 +781,62 @@ class Document extends Table with TableInfo { final String? _alias; Document(this.attachedDatabase, [this._alias]); late final GeneratedColumn documentId = GeneratedColumn( - 'document_id', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL PRIMARY KEY'); + 'document_id', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL PRIMARY KEY', + ); late final GeneratedColumn mainDocumentId = GeneratedColumn( - 'main_document_id', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'main_document_id', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn contextId = GeneratedColumn( - 'context_id', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'context_id', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn content = GeneratedColumn( - 'content', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'content', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn contentHash = GeneratedColumn( - 'content_hash', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'content_hash', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn metadata = GeneratedColumn( - 'metadata', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'metadata', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); @override - List get $columns => - [documentId, mainDocumentId, contextId, content, contentHash, metadata]; + List get $columns => [ + documentId, + mainDocumentId, + contextId, + content, + contentHash, + metadata, + ]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -711,18 +848,33 @@ class Document extends Table with TableInfo { DocumentData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return DocumentData( - documentId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}document_id'])!, + documentId: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}document_id'], + )!, mainDocumentId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}main_document_id']), - contextId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}context_id']), - content: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}content'])!, - contentHash: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}content_hash'])!, - metadata: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}metadata']), + DriftSqlType.string, + data['${effectivePrefix}main_document_id'], + ), + contextId: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}context_id'], + ), + content: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}content'], + )!, + contentHash: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}content_hash'], + )!, + metadata: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}metadata'], + ), ); } @@ -742,13 +894,14 @@ class DocumentData extends DataClass implements Insertable { final String content; final String contentHash; final String? metadata; - const DocumentData( - {required this.documentId, - this.mainDocumentId, - this.contextId, - required this.content, - required this.contentHash, - this.metadata}); + const DocumentData({ + required this.documentId, + this.mainDocumentId, + this.contextId, + required this.content, + required this.contentHash, + this.metadata, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -767,8 +920,10 @@ class DocumentData extends DataClass implements Insertable { return map; } - factory DocumentData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory DocumentData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return DocumentData( documentId: serializer.fromJson(json['document_id']), @@ -792,29 +947,30 @@ class DocumentData extends DataClass implements Insertable { }; } - DocumentData copyWith( - {String? documentId, - Value mainDocumentId = const Value.absent(), - Value contextId = const Value.absent(), - String? content, - String? contentHash, - Value metadata = const Value.absent()}) => - DocumentData( - documentId: documentId ?? this.documentId, - mainDocumentId: - mainDocumentId.present ? mainDocumentId.value : this.mainDocumentId, - contextId: contextId.present ? contextId.value : this.contextId, - content: content ?? this.content, - contentHash: contentHash ?? this.contentHash, - metadata: metadata.present ? metadata.value : this.metadata, - ); + DocumentData copyWith({ + String? documentId, + Value mainDocumentId = const Value.absent(), + Value contextId = const Value.absent(), + String? content, + String? contentHash, + Value metadata = const Value.absent(), + }) => DocumentData( + documentId: documentId ?? this.documentId, + mainDocumentId: + mainDocumentId.present ? mainDocumentId.value : this.mainDocumentId, + contextId: contextId.present ? contextId.value : this.contextId, + content: content ?? this.content, + contentHash: contentHash ?? this.contentHash, + metadata: metadata.present ? metadata.value : this.metadata, + ); DocumentData copyWithCompanion(DocumentCompanion data) { return DocumentData( documentId: data.documentId.present ? data.documentId.value : this.documentId, - mainDocumentId: data.mainDocumentId.present - ? data.mainDocumentId.value - : this.mainDocumentId, + mainDocumentId: + data.mainDocumentId.present + ? data.mainDocumentId.value + : this.mainDocumentId, contextId: data.contextId.present ? data.contextId.value : this.contextId, content: data.content.present ? data.content.value : this.content, contentHash: @@ -838,7 +994,13 @@ class DocumentData extends DataClass implements Insertable { @override int get hashCode => Object.hash( - documentId, mainDocumentId, contextId, content, contentHash, metadata); + documentId, + mainDocumentId, + contextId, + content, + contentHash, + metadata, + ); @override bool operator ==(Object other) => identical(this, other) || @@ -876,9 +1038,9 @@ class DocumentCompanion extends UpdateCompanion { required String contentHash, this.metadata = const Value.absent(), this.rowid = const Value.absent(), - }) : documentId = Value(documentId), - content = Value(content), - contentHash = Value(contentHash); + }) : documentId = Value(documentId), + content = Value(content), + contentHash = Value(contentHash); static Insertable custom({ Expression? documentId, Expression? mainDocumentId, @@ -899,14 +1061,15 @@ class DocumentCompanion extends UpdateCompanion { }); } - DocumentCompanion copyWith( - {Value? documentId, - Value? mainDocumentId, - Value? contextId, - Value? content, - Value? contentHash, - Value? metadata, - Value? rowid}) { + DocumentCompanion copyWith({ + Value? documentId, + Value? mainDocumentId, + Value? contextId, + Value? content, + Value? contentHash, + Value? metadata, + Value? rowid, + }) { return DocumentCompanion( documentId: documentId ?? this.documentId, mainDocumentId: mainDocumentId ?? this.mainDocumentId, @@ -967,28 +1130,45 @@ class TabFts extends Table final String? _alias; TabFts(this.attachedDatabase, [this._alias]); late final GeneratedColumn title = GeneratedColumn( - 'title', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: ''); + 'title', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: '', + ); late final GeneratedColumn url = GeneratedColumn( - 'url', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: ''); + 'url', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: '', + ); late final GeneratedColumn extractedContentPlain = - GeneratedColumn('extracted_content_plain', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: ''); + GeneratedColumn( + 'extracted_content_plain', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: '', + ); late final GeneratedColumn fullContentPlain = GeneratedColumn( - 'full_content_plain', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: ''); + 'full_content_plain', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: '', + ); @override - List get $columns => - [title, url, extractedContentPlain, fullContentPlain]; + List get $columns => [ + title, + url, + extractedContentPlain, + fullContentPlain, + ]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1000,15 +1180,26 @@ class TabFts extends Table TabFt map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return TabFt( - title: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}title'])!, - url: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}url'])!, - extractedContentPlain: attachedDatabase.typeMapping.read( - DriftSqlType.string, - data['${effectivePrefix}extracted_content_plain'])!, - fullContentPlain: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}full_content_plain'])!, + title: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}title'], + )!, + url: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}url'], + )!, + extractedContentPlain: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}extracted_content_plain'], + )!, + fullContentPlain: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}full_content_plain'], + )!, ); } @@ -1029,11 +1220,12 @@ class TabFt extends DataClass implements Insertable { final String url; final String extractedContentPlain; final String fullContentPlain; - const TabFt( - {required this.title, - required this.url, - required this.extractedContentPlain, - required this.fullContentPlain}); + const TabFt({ + required this.title, + required this.url, + required this.extractedContentPlain, + required this.fullContentPlain, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -1044,14 +1236,17 @@ class TabFt extends DataClass implements Insertable { return map; } - factory TabFt.fromJson(Map json, - {ValueSerializer? serializer}) { + factory TabFt.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return TabFt( title: serializer.fromJson(json['title']), url: serializer.fromJson(json['url']), - extractedContentPlain: - serializer.fromJson(json['extracted_content_plain']), + extractedContentPlain: serializer.fromJson( + json['extracted_content_plain'], + ), fullContentPlain: serializer.fromJson(json['full_content_plain']), ); } @@ -1061,34 +1256,36 @@ class TabFt extends DataClass implements Insertable { return { 'title': serializer.toJson(title), 'url': serializer.toJson(url), - 'extracted_content_plain': - serializer.toJson(extractedContentPlain), + 'extracted_content_plain': serializer.toJson( + extractedContentPlain, + ), 'full_content_plain': serializer.toJson(fullContentPlain), }; } - TabFt copyWith( - {String? title, - String? url, - String? extractedContentPlain, - String? fullContentPlain}) => - TabFt( - title: title ?? this.title, - url: url ?? this.url, - extractedContentPlain: - extractedContentPlain ?? this.extractedContentPlain, - fullContentPlain: fullContentPlain ?? this.fullContentPlain, - ); + TabFt copyWith({ + String? title, + String? url, + String? extractedContentPlain, + String? fullContentPlain, + }) => TabFt( + title: title ?? this.title, + url: url ?? this.url, + extractedContentPlain: extractedContentPlain ?? this.extractedContentPlain, + fullContentPlain: fullContentPlain ?? this.fullContentPlain, + ); TabFt copyWithCompanion(TabFtsCompanion data) { return TabFt( title: data.title.present ? data.title.value : this.title, url: data.url.present ? data.url.value : this.url, - extractedContentPlain: data.extractedContentPlain.present - ? data.extractedContentPlain.value - : this.extractedContentPlain, - fullContentPlain: data.fullContentPlain.present - ? data.fullContentPlain.value - : this.fullContentPlain, + extractedContentPlain: + data.extractedContentPlain.present + ? data.extractedContentPlain.value + : this.extractedContentPlain, + fullContentPlain: + data.fullContentPlain.present + ? data.fullContentPlain.value + : this.fullContentPlain, ); } @@ -1135,10 +1332,10 @@ class TabFtsCompanion extends UpdateCompanion { required String extractedContentPlain, required String fullContentPlain, this.rowid = const Value.absent(), - }) : title = Value(title), - url = Value(url), - extractedContentPlain = Value(extractedContentPlain), - fullContentPlain = Value(fullContentPlain); + }) : title = Value(title), + url = Value(url), + extractedContentPlain = Value(extractedContentPlain), + fullContentPlain = Value(fullContentPlain); static Insertable custom({ Expression? title, Expression? url, @@ -1156,12 +1353,13 @@ class TabFtsCompanion extends UpdateCompanion { }); } - TabFtsCompanion copyWith( - {Value? title, - Value? url, - Value? extractedContentPlain, - Value? fullContentPlain, - Value? rowid}) { + TabFtsCompanion copyWith({ + Value? title, + Value? url, + Value? extractedContentPlain, + Value? fullContentPlain, + Value? rowid, + }) { return TabFtsCompanion( title: title ?? this.title, url: url ?? this.url, @@ -1182,8 +1380,9 @@ class TabFtsCompanion extends UpdateCompanion { map['url'] = Variable(url.value); } if (extractedContentPlain.present) { - map['extracted_content_plain'] = - Variable(extractedContentPlain.value); + map['extracted_content_plain'] = Variable( + extractedContentPlain.value, + ); } if (fullContentPlain.present) { map['full_content_plain'] = Variable(fullContentPlain.value); @@ -1213,43 +1412,71 @@ class DocumentVec extends Table with TableInfo { final String? _alias; DocumentVec(this.attachedDatabase, [this._alias]); late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL PRIMARY KEY'); + 'id', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL PRIMARY KEY', + ); late final GeneratedColumn mainDocumentId = GeneratedColumn( - 'main_document_id', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'main_document_id', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn contextId = GeneratedColumn( - 'context_id', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'context_id', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn embedding = GeneratedColumn( - 'embedding', aliasedName, false, - type: DriftSqlType.blob, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'embedding', + aliasedName, + false, + type: DriftSqlType.blob, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn contentHash = GeneratedColumn( - 'content_hash', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'content_hash', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn distance = GeneratedColumn( - 'distance', aliasedName, true, - type: DriftSqlType.double, - requiredDuringInsert: false, - $customConstraints: ''); + 'distance', + aliasedName, + true, + type: DriftSqlType.double, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn k = GeneratedColumn( - 'k', aliasedName, true, - type: DriftSqlType.int, - requiredDuringInsert: false, - $customConstraints: ''); + 'k', + aliasedName, + true, + type: DriftSqlType.int, + requiredDuringInsert: false, + $customConstraints: '', + ); @override - List get $columns => - [id, mainDocumentId, contextId, embedding, contentHash, distance, k]; + List get $columns => [ + id, + mainDocumentId, + contextId, + embedding, + contentHash, + distance, + k, + ]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1261,20 +1488,37 @@ class DocumentVec extends Table with TableInfo { DocumentVecData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return DocumentVecData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, + id: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}id'], + )!, mainDocumentId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}main_document_id']), - contextId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}context_id']), - embedding: attachedDatabase.typeMapping - .read(DriftSqlType.blob, data['${effectivePrefix}embedding'])!, - contentHash: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}content_hash'])!, - distance: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}distance']), - k: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}k']), + DriftSqlType.string, + data['${effectivePrefix}main_document_id'], + ), + contextId: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}context_id'], + ), + embedding: + attachedDatabase.typeMapping.read( + DriftSqlType.blob, + data['${effectivePrefix}embedding'], + )!, + contentHash: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}content_hash'], + )!, + distance: attachedDatabase.typeMapping.read( + DriftSqlType.double, + data['${effectivePrefix}distance'], + ), + k: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}k'], + ), ); } @@ -1297,14 +1541,15 @@ class DocumentVecData extends DataClass implements Insertable { final String contentHash; final double? distance; final int? k; - const DocumentVecData( - {required this.id, - this.mainDocumentId, - this.contextId, - required this.embedding, - required this.contentHash, - this.distance, - this.k}); + const DocumentVecData({ + required this.id, + this.mainDocumentId, + this.contextId, + required this.embedding, + required this.contentHash, + this.distance, + this.k, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -1326,8 +1571,10 @@ class DocumentVecData extends DataClass implements Insertable { return map; } - factory DocumentVecData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory DocumentVecData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return DocumentVecData( id: serializer.fromJson(json['id']), @@ -1353,30 +1600,31 @@ class DocumentVecData extends DataClass implements Insertable { }; } - DocumentVecData copyWith( - {String? id, - Value mainDocumentId = const Value.absent(), - Value contextId = const Value.absent(), - Uint8List? embedding, - String? contentHash, - Value distance = const Value.absent(), - Value k = const Value.absent()}) => - DocumentVecData( - id: id ?? this.id, - mainDocumentId: - mainDocumentId.present ? mainDocumentId.value : this.mainDocumentId, - contextId: contextId.present ? contextId.value : this.contextId, - embedding: embedding ?? this.embedding, - contentHash: contentHash ?? this.contentHash, - distance: distance.present ? distance.value : this.distance, - k: k.present ? k.value : this.k, - ); + DocumentVecData copyWith({ + String? id, + Value mainDocumentId = const Value.absent(), + Value contextId = const Value.absent(), + Uint8List? embedding, + String? contentHash, + Value distance = const Value.absent(), + Value k = const Value.absent(), + }) => DocumentVecData( + id: id ?? this.id, + mainDocumentId: + mainDocumentId.present ? mainDocumentId.value : this.mainDocumentId, + contextId: contextId.present ? contextId.value : this.contextId, + embedding: embedding ?? this.embedding, + contentHash: contentHash ?? this.contentHash, + distance: distance.present ? distance.value : this.distance, + k: k.present ? k.value : this.k, + ); DocumentVecData copyWithCompanion(DocumentVecCompanion data) { return DocumentVecData( id: data.id.present ? data.id.value : this.id, - mainDocumentId: data.mainDocumentId.present - ? data.mainDocumentId.value - : this.mainDocumentId, + mainDocumentId: + data.mainDocumentId.present + ? data.mainDocumentId.value + : this.mainDocumentId, contextId: data.contextId.present ? data.contextId.value : this.contextId, embedding: data.embedding.present ? data.embedding.value : this.embedding, contentHash: @@ -1401,8 +1649,15 @@ class DocumentVecData extends DataClass implements Insertable { } @override - int get hashCode => Object.hash(id, mainDocumentId, contextId, - $driftBlobEquality.hash(embedding), contentHash, distance, k); + int get hashCode => Object.hash( + id, + mainDocumentId, + contextId, + $driftBlobEquality.hash(embedding), + contentHash, + distance, + k, + ); @override bool operator ==(Object other) => identical(this, other) || @@ -1444,9 +1699,9 @@ class DocumentVecCompanion extends UpdateCompanion { this.distance = const Value.absent(), this.k = const Value.absent(), this.rowid = const Value.absent(), - }) : id = Value(id), - embedding = Value(embedding), - contentHash = Value(contentHash); + }) : id = Value(id), + embedding = Value(embedding), + contentHash = Value(contentHash); static Insertable custom({ Expression? id, Expression? mainDocumentId, @@ -1469,15 +1724,16 @@ class DocumentVecCompanion extends UpdateCompanion { }); } - DocumentVecCompanion copyWith( - {Value? id, - Value? mainDocumentId, - Value? contextId, - Value? embedding, - Value? contentHash, - Value? distance, - Value? k, - Value? rowid}) { + DocumentVecCompanion copyWith({ + Value? id, + Value? mainDocumentId, + Value? contextId, + Value? embedding, + Value? contentHash, + Value? distance, + Value? k, + Value? rowid, + }) { return DocumentVecCompanion( id: id ?? this.id, mainDocumentId: mainDocumentId ?? this.mainDocumentId, @@ -1543,29 +1799,39 @@ abstract class _$TabDatabase extends GeneratedDatabase { late final Tab tab = Tab(this); late final Document document = Document(this); late final Trigger tabDocumentDelete = Trigger( - 'CREATE TRIGGER tab_document_delete AFTER DELETE ON tab BEGIN DELETE FROM document WHERE main_document_id = old.id;END', - 'tab_document_delete'); + 'CREATE TRIGGER tab_document_delete AFTER DELETE ON tab BEGIN DELETE FROM document WHERE main_document_id = old.id;END', + 'tab_document_delete', + ); late final TabFts tabFts = TabFts(this); late final Trigger tabAfterInsert = Trigger( - 'CREATE TRIGGER tab_after_insert AFTER INSERT ON tab BEGIN INSERT INTO tab_fts ("rowid", title, url, extracted_content_plain, full_content_plain) VALUES (new."rowid", new.title, new.url, new.extracted_content_plain, new.full_content_plain);END', - 'tab_after_insert'); + 'CREATE TRIGGER tab_after_insert AFTER INSERT ON tab BEGIN INSERT INTO tab_fts ("rowid", title, url, extracted_content_plain, full_content_plain) VALUES (new."rowid", new.title, new.url, new.extracted_content_plain, new.full_content_plain);END', + 'tab_after_insert', + ); late final Trigger tabAfterDelete = Trigger( - 'CREATE TRIGGER tab_after_delete AFTER DELETE ON tab BEGIN INSERT INTO tab_fts (tab_fts, "rowid", title, url, extracted_content_plain, full_content_plain) VALUES (\'delete\', old."rowid", old.title, old.url, old.extracted_content_plain, old.full_content_plain);END', - 'tab_after_delete'); + 'CREATE TRIGGER tab_after_delete AFTER DELETE ON tab BEGIN INSERT INTO tab_fts (tab_fts, "rowid", title, url, extracted_content_plain, full_content_plain) VALUES (\'delete\', old."rowid", old.title, old.url, old.extracted_content_plain, old.full_content_plain);END', + 'tab_after_delete', + ); late final Trigger tabAfterUpdate = Trigger( - 'CREATE TRIGGER tab_after_update AFTER UPDATE ON tab BEGIN INSERT INTO tab_fts (tab_fts, "rowid", title, url, extracted_content_plain, full_content_plain) VALUES (\'delete\', old."rowid", old.title, old.url, old.extracted_content_plain, old.full_content_plain);INSERT INTO tab_fts ("rowid", title, url, extracted_content_plain, full_content_plain) VALUES (new."rowid", new.title, new.url, new.extracted_content_plain, new.full_content_plain);END', - 'tab_after_update'); - late final Index documentMainDocumentId = Index('document_main_document_id', - 'CREATE INDEX document_main_document_id ON document (main_document_id)'); - late final Index documentContextId = Index('document_context_id', - 'CREATE INDEX document_context_id ON document (context_id)'); + 'CREATE TRIGGER tab_after_update AFTER UPDATE ON tab BEGIN INSERT INTO tab_fts (tab_fts, "rowid", title, url, extracted_content_plain, full_content_plain) VALUES (\'delete\', old."rowid", old.title, old.url, old.extracted_content_plain, old.full_content_plain);INSERT INTO tab_fts ("rowid", title, url, extracted_content_plain, full_content_plain) VALUES (new."rowid", new.title, new.url, new.extracted_content_plain, new.full_content_plain);END', + 'tab_after_update', + ); + late final Index documentMainDocumentId = Index( + 'document_main_document_id', + 'CREATE INDEX document_main_document_id ON document (main_document_id)', + ); + late final Index documentContextId = Index( + 'document_context_id', + 'CREATE INDEX document_context_id ON document (context_id)', + ); late final DocumentVec documentVec = DocumentVec(this); late final Trigger documentDelete = Trigger( - 'CREATE TRIGGER document_delete AFTER DELETE ON document BEGIN DELETE FROM document_vec WHERE id = old.document_id;END', - 'document_delete'); + 'CREATE TRIGGER document_delete AFTER DELETE ON document BEGIN DELETE FROM document_vec WHERE id = old.document_id;END', + 'document_delete', + ); late final Trigger documentUpdateDelete = Trigger( - 'CREATE TRIGGER document_update_delete AFTER UPDATE ON document BEGIN DELETE FROM document_vec WHERE id = new.document_id AND content_hash != new.content_hash;END', - 'document_update_delete'); + 'CREATE TRIGGER document_update_delete AFTER UPDATE ON document BEGIN DELETE FROM document_vec WHERE id = new.document_id AND content_hash != new.content_hash;END', + 'document_update_delete', + ); late final ContainerDao containerDao = ContainerDao(this as TabDatabase); late final TabDao tabDao = TabDao(this as TabDatabase); late final VectorDao vectorDao = VectorDao(this as TabDatabase); @@ -1579,151 +1845,149 @@ abstract class _$TabDatabase extends GeneratedDatabase { Selectable containersWithCount() { return customSelect( - 'SELECT container.*, tab_agg.tab_count FROM container LEFT JOIN (SELECT container_id, COUNT(*) AS tab_count, MAX(timestamp) AS last_updated FROM tab GROUP BY container_id) AS tab_agg ON container.id = tab_agg.container_id ORDER BY tab_agg.last_updated DESC NULLS LAST', - variables: [], - readsFrom: { - container, - tab, - }).map((QueryRow row) => ContainerDataWithCount( - id: row.read('id'), - name: row.readNullable('name'), - color: Container.$convertercolor.fromSql(row.read('color')), - metadata: NullAwareTypeConverter.wrapFromSql( - Container.$convertermetadata, - row.readNullable('metadata')), - tabCount: row.readNullable('tab_count'), - )); + 'SELECT container.*, tab_agg.tab_count FROM container LEFT JOIN (SELECT container_id, COUNT(*) AS tab_count, MAX(timestamp) AS last_updated FROM tab GROUP BY container_id) AS tab_agg ON container.id = tab_agg.container_id ORDER BY tab_agg.last_updated DESC NULLS LAST', + variables: [], + readsFrom: {container, tab}, + ).map( + (QueryRow row) => ContainerDataWithCount( + id: row.read('id'), + name: row.readNullable('name'), + color: Container.$convertercolor.fromSql(row.read('color')), + metadata: NullAwareTypeConverter.wrapFromSql( + Container.$convertermetadata, + row.readNullable('metadata'), + ), + tabCount: row.readNullable('tab_count'), + ), + ); } - Selectable leadingOrderKey( - {required int bucket, String? containerId}) { + Selectable leadingOrderKey({ + required int bucket, + String? containerId, + }) { return customSelect( - 'SELECT lexo_rank_previous(?1, (SELECT order_key FROM tab WHERE container_id IS ?2 ORDER BY order_key LIMIT 1)) AS _c0', - variables: [ - Variable(bucket), - Variable(containerId) - ], - readsFrom: { - tab, - }).map((QueryRow row) => row.read('_c0')); + 'SELECT lexo_rank_previous(?1, (SELECT order_key FROM tab WHERE container_id IS ?2 ORDER BY order_key LIMIT 1)) AS _c0', + variables: [Variable(bucket), Variable(containerId)], + readsFrom: {tab}, + ).map((QueryRow row) => row.read('_c0')); } - Selectable trailingOrderKey( - {required int bucket, String? containerId}) { + Selectable trailingOrderKey({ + required int bucket, + String? containerId, + }) { return customSelect( - 'SELECT lexo_rank_next(?1, (SELECT order_key FROM tab WHERE container_id IS ?2 ORDER BY order_key DESC LIMIT 1)) AS _c0', - variables: [ - Variable(bucket), - Variable(containerId) - ], - readsFrom: { - tab, - }).map((QueryRow row) => row.read('_c0')); + 'SELECT lexo_rank_next(?1, (SELECT order_key FROM tab WHERE container_id IS ?2 ORDER BY order_key DESC LIMIT 1)) AS _c0', + variables: [Variable(bucket), Variable(containerId)], + readsFrom: {tab}, + ).map((QueryRow row) => row.read('_c0')); } - Selectable orderKeyAfterTab( - {String? containerId, required String tabId}) { + Selectable orderKeyAfterTab({ + String? containerId, + required String tabId, + }) { return customSelect( - 'WITH ordered_table AS (SELECT id, order_key, LEAD(order_key)OVER (ORDER BY order_key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS next_order_key FROM tab WHERE container_id IS ?1) SELECT lexo_rank_reorder_after(order_key, next_order_key) AS _c0 FROM ordered_table WHERE id = ?2', - variables: [ - Variable(containerId), - Variable(tabId) - ], - readsFrom: { - tab, - }).map((QueryRow row) => row.read('_c0')); + 'WITH ordered_table AS (SELECT id, order_key, LEAD(order_key)OVER (ORDER BY order_key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS) AS next_order_key FROM tab WHERE container_id IS ?1) SELECT lexo_rank_reorder_after(order_key, next_order_key) AS _c0 FROM ordered_table WHERE id = ?2', + variables: [Variable(containerId), Variable(tabId)], + readsFrom: {tab}, + ).map((QueryRow row) => row.read('_c0')); } - Selectable queryTabsBasic( - {required String beforeMatch, - required String afterMatch, - required String query}) { + Selectable queryTabsBasic({ + required String beforeMatch, + required String afterMatch, + required String query, + }) { return customSelect( - 'WITH weights AS (SELECT 10.0 AS title_weight, 5.0 AS url_weight) SELECT t.id, highlight(tab_fts, 0, ?1, ?2) AS title, highlight(tab_fts, 1, ?1, ?2) AS url, bm25(tab_fts, weights.title_weight, weights.url_weight) AS weighted_rank, t.url AS clean_url FROM tab_fts AS fts INNER JOIN tab AS t ON t."rowid" = fts."rowid" CROSS JOIN weights WHERE fts.title LIKE ?3 OR fts.url LIKE ?3 ORDER BY weighted_rank ASC, t.timestamp DESC', - variables: [ - Variable(beforeMatch), - Variable(afterMatch), - Variable(query) - ], - readsFrom: { - tab, - tabFts, - }).map((QueryRow row) => TabQueryResult( - id: row.read('id'), - title: row.readNullable('title'), - url: row.readNullable('url'), - cleanUrl: row.readNullable('clean_url'), - weightedRank: row.read('weighted_rank'), - )); + 'WITH weights AS (SELECT 10.0 AS title_weight, 5.0 AS url_weight) SELECT t.id, highlight(tab_fts, 0, ?1, ?2) AS title, highlight(tab_fts, 1, ?1, ?2) AS url, bm25(tab_fts, weights.title_weight, weights.url_weight) AS weighted_rank, t.url AS clean_url FROM tab_fts AS fts INNER JOIN tab AS t ON t."rowid" = fts."rowid" CROSS JOIN weights WHERE fts.title LIKE ?3 OR fts.url LIKE ?3 ORDER BY weighted_rank ASC, t.timestamp DESC', + variables: [ + Variable(beforeMatch), + Variable(afterMatch), + Variable(query), + ], + readsFrom: {tab, tabFts}, + ).map( + (QueryRow row) => TabQueryResult( + id: row.read('id'), + title: row.readNullable('title'), + url: row.readNullable('url'), + cleanUrl: row.readNullable('clean_url'), + weightedRank: row.read('weighted_rank'), + ), + ); } - Selectable queryTabsFullContent( - {required String beforeMatch, - required String afterMatch, - required String ellipsis, - required int snippetLength, - required String query}) { + Selectable queryTabsFullContent({ + required String beforeMatch, + required String afterMatch, + required String ellipsis, + required int snippetLength, + required String query, + }) { return customSelect( - 'WITH weights AS (SELECT 10.0 AS title_weight, 5.0 AS url_weight, 3.0 AS extracted_weight, 1.0 AS full_weight) SELECT t.id, highlight(tab_fts, 0, ?1, ?2) AS title, highlight(tab_fts, 1, ?1, ?2) AS url, snippet(tab_fts, 2, ?1, ?2, ?3, ?4) AS extracted_content, snippet(tab_fts, 3, ?1, ?2, ?3, ?4) AS full_content,(bm25(tab_fts, weights.title_weight, weights.url_weight, weights.extracted_weight, weights.full_weight))AS weighted_rank, t.url AS clean_url FROM tab_fts(?5)AS fts INNER JOIN tab AS t ON t."rowid" = fts."rowid" CROSS JOIN weights ORDER BY weighted_rank ASC, t.timestamp DESC', - variables: [ - Variable(beforeMatch), - Variable(afterMatch), - Variable(ellipsis), - Variable(snippetLength), - Variable(query) - ], - readsFrom: { - tab, - tabFts, - }).map((QueryRow row) => TabQueryResult( - id: row.read('id'), - title: row.readNullable('title'), - url: row.readNullable('url'), - cleanUrl: row.readNullable('clean_url'), - extractedContent: row.readNullable('extracted_content'), - fullContent: row.readNullable('full_content'), - weightedRank: row.read('weighted_rank'), - )); + 'WITH weights AS (SELECT 10.0 AS title_weight, 5.0 AS url_weight, 3.0 AS extracted_weight, 1.0 AS full_weight) SELECT t.id, highlight(tab_fts, 0, ?1, ?2) AS title, highlight(tab_fts, 1, ?1, ?2) AS url, snippet(tab_fts, 2, ?1, ?2, ?3, ?4) AS extracted_content, snippet(tab_fts, 3, ?1, ?2, ?3, ?4) AS full_content,(bm25(tab_fts, weights.title_weight, weights.url_weight, weights.extracted_weight, weights.full_weight))AS weighted_rank, t.url AS clean_url FROM tab_fts(?5)AS fts INNER JOIN tab AS t ON t."rowid" = fts."rowid" CROSS JOIN weights ORDER BY weighted_rank ASC, t.timestamp DESC', + variables: [ + Variable(beforeMatch), + Variable(afterMatch), + Variable(ellipsis), + Variable(snippetLength), + Variable(query), + ], + readsFrom: {tab, tabFts}, + ).map( + (QueryRow row) => TabQueryResult( + id: row.read('id'), + title: row.readNullable('title'), + url: row.readNullable('url'), + cleanUrl: row.readNullable('clean_url'), + extractedContent: row.readNullable('extracted_content'), + fullContent: row.readNullable('full_content'), + weightedRank: row.read('weighted_rank'), + ), + ); } - Selectable missingDocumentEmbeddings( - {String? mainDocumentId, String? contextId}) { + Selectable missingDocumentEmbeddings({ + String? mainDocumentId, + String? contextId, + }) { return customSelect( - 'SELECT doc.* FROM document AS doc WHERE doc.main_document_id IS COALESCE(?1, doc.main_document_id) AND doc.context_id IS COALESCE(?2, doc.context_id) AND NOT EXISTS (SELECT 1 AS _c0 FROM document_vec AS vec WHERE vec.id = doc.document_id)', - variables: [ - Variable(mainDocumentId), - Variable(contextId) - ], - readsFrom: { - document, - documentVec, - }).asyncMap(document.mapFromRow); + 'SELECT doc.* FROM document AS doc WHERE doc.main_document_id IS COALESCE(?1, doc.main_document_id) AND doc.context_id IS COALESCE(?2, doc.context_id) AND NOT EXISTS (SELECT 1 AS _c0 FROM document_vec AS vec WHERE vec.id = doc.document_id)', + variables: [ + Variable(mainDocumentId), + Variable(contextId), + ], + readsFrom: {document, documentVec}, + ).asyncMap(document.mapFromRow); } - Selectable queryVectors( - {required Uint8List searchVectors, - int? k, - String? mainDocumentId, - String? contextId}) { + Selectable queryVectors({ + required Uint8List searchVectors, + int? k, + String? mainDocumentId, + String? contextId, + }) { return customSelect( - 'SELECT vec.id, doc.main_document_id, doc.context_id, doc.content, doc.metadata, vec.distance FROM document_vec AS vec INNER JOIN document AS doc ON doc.document_id = vec.id WHERE vec.embedding MATCH ?1 AND vec.k = ?2 AND vec.main_document_id IS COALESCE(?3, vec.main_document_id) AND vec.context_id IS COALESCE(?4, vec.context_id) ORDER BY vec.distance', - variables: [ - Variable(searchVectors), - Variable(k), - Variable(mainDocumentId), - Variable(contextId) - ], - readsFrom: { - documentVec, - document, - }).map((QueryRow row) => VectorResult( - id: row.read('id'), - mainDocumentId: row.readNullable('main_document_id'), - contextId: row.readNullable('context_id'), - content: row.read('content'), - metadata: row.readNullable('metadata'), - distance: row.readNullable('distance'), - )); + 'SELECT vec.id, doc.main_document_id, doc.context_id, doc.content, doc.metadata, vec.distance FROM document_vec AS vec INNER JOIN document AS doc ON doc.document_id = vec.id WHERE vec.embedding MATCH ?1 AND vec.k = ?2 AND vec.main_document_id IS COALESCE(?3, vec.main_document_id) AND vec.context_id IS COALESCE(?4, vec.context_id) ORDER BY vec.distance', + variables: [ + Variable(searchVectors), + Variable(k), + Variable(mainDocumentId), + Variable(contextId), + ], + readsFrom: {documentVec, document}, + ).map( + (QueryRow row) => VectorResult( + id: row.read('id'), + mainDocumentId: row.readNullable('main_document_id'), + contextId: row.readNullable('context_id'), + content: row.read('content'), + metadata: row.readNullable('metadata'), + distance: row.readNullable('distance'), + ), + ); } @override @@ -1731,107 +1995,112 @@ abstract class _$TabDatabase extends GeneratedDatabase { allSchemaEntities.whereType>(); @override List get allSchemaEntities => [ - container, - tab, - document, - tabDocumentDelete, - tabFts, - tabAfterInsert, - tabAfterDelete, - tabAfterUpdate, - documentMainDocumentId, - documentContextId, - documentVec, - documentDelete, - documentUpdateDelete - ]; + container, + tab, + document, + tabDocumentDelete, + tabFts, + tabAfterInsert, + tabAfterDelete, + tabAfterUpdate, + documentMainDocumentId, + documentContextId, + documentVec, + documentDelete, + documentUpdateDelete, + ]; @override - StreamQueryUpdateRules get streamUpdateRules => const StreamQueryUpdateRules( - [ - WritePropagation( - on: TableUpdateQuery.onTableName('container', - limitUpdateKind: UpdateKind.delete), - result: [ - TableUpdate('tab', kind: UpdateKind.delete), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('tab', - limitUpdateKind: UpdateKind.delete), - result: [ - TableUpdate('document', kind: UpdateKind.delete), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('tab', - limitUpdateKind: UpdateKind.insert), - result: [ - TableUpdate('tab_fts', kind: UpdateKind.insert), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('tab', - limitUpdateKind: UpdateKind.delete), - result: [ - TableUpdate('tab_fts', kind: UpdateKind.insert), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('tab', - limitUpdateKind: UpdateKind.update), - result: [ - TableUpdate('tab_fts', kind: UpdateKind.insert), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('document', - limitUpdateKind: UpdateKind.delete), - result: [ - TableUpdate('document_vec', kind: UpdateKind.delete), - ], - ), - WritePropagation( - on: TableUpdateQuery.onTableName('document', - limitUpdateKind: UpdateKind.update), - result: [ - TableUpdate('document_vec', kind: UpdateKind.delete), - ], - ), - ], - ); + StreamQueryUpdateRules get streamUpdateRules => const StreamQueryUpdateRules([ + WritePropagation( + on: TableUpdateQuery.onTableName( + 'container', + limitUpdateKind: UpdateKind.delete, + ), + result: [TableUpdate('tab', kind: UpdateKind.delete)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'tab', + limitUpdateKind: UpdateKind.delete, + ), + result: [TableUpdate('document', kind: UpdateKind.delete)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'tab', + limitUpdateKind: UpdateKind.insert, + ), + result: [TableUpdate('tab_fts', kind: UpdateKind.insert)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'tab', + limitUpdateKind: UpdateKind.delete, + ), + result: [TableUpdate('tab_fts', kind: UpdateKind.insert)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'tab', + limitUpdateKind: UpdateKind.update, + ), + result: [TableUpdate('tab_fts', kind: UpdateKind.insert)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'document', + limitUpdateKind: UpdateKind.delete, + ), + result: [TableUpdate('document_vec', kind: UpdateKind.delete)], + ), + WritePropagation( + on: TableUpdateQuery.onTableName( + 'document', + limitUpdateKind: UpdateKind.update, + ), + result: [TableUpdate('document_vec', kind: UpdateKind.delete)], + ), + ]); } -typedef $ContainerCreateCompanionBuilder = ContainerCompanion Function({ - required String id, - Value name, - required Color color, - Value metadata, - Value rowid, -}); -typedef $ContainerUpdateCompanionBuilder = ContainerCompanion Function({ - Value id, - Value name, - Value color, - Value metadata, - Value rowid, -}); +typedef $ContainerCreateCompanionBuilder = + ContainerCompanion Function({ + required String id, + Value name, + required Color color, + Value metadata, + Value rowid, + }); +typedef $ContainerUpdateCompanionBuilder = + ContainerCompanion Function({ + Value id, + Value name, + Value color, + Value metadata, + Value rowid, + }); final class $ContainerReferences extends BaseReferences<_$TabDatabase, Container, ContainerData> { $ContainerReferences(super.$_db, super.$_table, super.$_typedResult); static MultiTypedResultKey> _tabRefsTable( - _$TabDatabase db) => - MultiTypedResultKey.fromTable(db.tab, - aliasName: $_aliasNameGenerator(db.container.id, db.tab.containerId)); + _$TabDatabase db, + ) => MultiTypedResultKey.fromTable( + db.tab, + aliasName: $_aliasNameGenerator(db.container.id, db.tab.containerId), + ); $TabProcessedTableManager get tabRefs { - final manager = $TabTableManager($_db, $_db.tab) - .filter((f) => f.containerId.id.sqlEquals($_itemColumn('id')!)); + final manager = $TabTableManager( + $_db, + $_db.tab, + ).filter((f) => f.containerId.id.sqlEquals($_itemColumn('id')!)); final cache = $_typedResult.readTableOrNull(_tabRefsTable($_db)); return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: cache)); + manager.$state.copyWith(prefetchedData: cache), + ); } } @@ -1844,38 +2113,47 @@ class $ContainerFilterComposer extends Composer<_$TabDatabase, Container> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get id => $composableBuilder( - column: $table.id, builder: (column) => ColumnFilters(column)); + column: $table.id, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get name => $composableBuilder( - column: $table.name, builder: (column) => ColumnFilters(column)); + column: $table.name, + builder: (column) => ColumnFilters(column), + ); ColumnWithTypeConverterFilters get color => $composableBuilder( - column: $table.color, - builder: (column) => ColumnWithTypeConverterFilters(column)); + column: $table.color, + builder: (column) => ColumnWithTypeConverterFilters(column), + ); ColumnWithTypeConverterFilters - get metadata => $composableBuilder( - column: $table.metadata, - builder: (column) => ColumnWithTypeConverterFilters(column)); + get metadata => $composableBuilder( + column: $table.metadata, + builder: (column) => ColumnWithTypeConverterFilters(column), + ); Expression tabRefs(Expression Function($TabFilterComposer f) f) { final $TabFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.id, - referencedTable: $db.tab, - getReferencedColumn: (t) => t.containerId, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $TabFilterComposer( - $db: $db, - $table: $db.tab, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.id, + referencedTable: $db.tab, + getReferencedColumn: (t) => t.containerId, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $TabFilterComposer( + $db: $db, + $table: $db.tab, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return f(composer); } } @@ -1889,16 +2167,24 @@ class $ContainerOrderingComposer extends Composer<_$TabDatabase, Container> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get id => $composableBuilder( - column: $table.id, builder: (column) => ColumnOrderings(column)); + column: $table.id, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get name => $composableBuilder( - column: $table.name, builder: (column) => ColumnOrderings(column)); + column: $table.name, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get color => $composableBuilder( - column: $table.color, builder: (column) => ColumnOrderings(column)); + column: $table.color, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get metadata => $composableBuilder( - column: $table.metadata, builder: (column) => ColumnOrderings(column)); + column: $table.metadata, + builder: (column) => ColumnOrderings(column), + ); } class $ContainerAnnotationComposer extends Composer<_$TabDatabase, Container> { @@ -1922,81 +2208,95 @@ class $ContainerAnnotationComposer extends Composer<_$TabDatabase, Container> { $composableBuilder(column: $table.metadata, builder: (column) => column); Expression tabRefs( - Expression Function($TabAnnotationComposer a) f) { + Expression Function($TabAnnotationComposer a) f, + ) { final $TabAnnotationComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.id, - referencedTable: $db.tab, - getReferencedColumn: (t) => t.containerId, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $TabAnnotationComposer( - $db: $db, - $table: $db.tab, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.id, + referencedTable: $db.tab, + getReferencedColumn: (t) => t.containerId, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $TabAnnotationComposer( + $db: $db, + $table: $db.tab, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return f(composer); } } -class $ContainerTableManager extends RootTableManager< - _$TabDatabase, - Container, - ContainerData, - $ContainerFilterComposer, - $ContainerOrderingComposer, - $ContainerAnnotationComposer, - $ContainerCreateCompanionBuilder, - $ContainerUpdateCompanionBuilder, - (ContainerData, $ContainerReferences), - ContainerData, - PrefetchHooks Function({bool tabRefs})> { +class $ContainerTableManager + extends + RootTableManager< + _$TabDatabase, + Container, + ContainerData, + $ContainerFilterComposer, + $ContainerOrderingComposer, + $ContainerAnnotationComposer, + $ContainerCreateCompanionBuilder, + $ContainerUpdateCompanionBuilder, + (ContainerData, $ContainerReferences), + ContainerData, + PrefetchHooks Function({bool tabRefs}) + > { $ContainerTableManager(_$TabDatabase db, Container table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $ContainerFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $ContainerOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $ContainerAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value id = const Value.absent(), - Value name = const Value.absent(), - Value color = const Value.absent(), - Value metadata = const Value.absent(), - Value rowid = const Value.absent(), - }) => - ContainerCompanion( - id: id, - name: name, - color: color, - metadata: metadata, - rowid: rowid, - ), - createCompanionCallback: ({ - required String id, - Value name = const Value.absent(), - required Color color, - Value metadata = const Value.absent(), - Value rowid = const Value.absent(), - }) => - ContainerCompanion.insert( - id: id, - name: name, - color: color, - metadata: metadata, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => - (e.readTable(table), $ContainerReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $ContainerFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $ContainerOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $ContainerAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value id = const Value.absent(), + Value name = const Value.absent(), + Value color = const Value.absent(), + Value metadata = const Value.absent(), + Value rowid = const Value.absent(), + }) => ContainerCompanion( + id: id, + name: name, + color: color, + metadata: metadata, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String id, + Value name = const Value.absent(), + required Color color, + Value metadata = const Value.absent(), + Value rowid = const Value.absent(), + }) => ContainerCompanion.insert( + id: id, + name: name, + color: color, + metadata: metadata, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + $ContainerReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: ({tabRefs = false}) { return PrefetchHooks( db: db, @@ -2005,63 +2305,73 @@ class $ContainerTableManager extends RootTableManager< getPrefetchedDataCallback: (items) async { return [ if (tabRefs) - await $_getPrefetchedData( - currentTable: table, - referencedTable: $ContainerReferences._tabRefsTable(db), - managerFromTypedResult: (p0) => - $ContainerReferences(db, table, p0).tabRefs, - referencedItemsForCurrentItem: - (item, referencedItems) => referencedItems - .where((e) => e.containerId == item.id), - typedResults: items) + await $_getPrefetchedData< + ContainerData, + Container, + TabData + >( + currentTable: table, + referencedTable: $ContainerReferences._tabRefsTable(db), + managerFromTypedResult: + (p0) => $ContainerReferences(db, table, p0).tabRefs, + referencedItemsForCurrentItem: + (item, referencedItems) => referencedItems.where( + (e) => e.containerId == item.id, + ), + typedResults: items, + ), ]; }, ); }, - )); + ), + ); } -typedef $ContainerProcessedTableManager = ProcessedTableManager< - _$TabDatabase, - Container, - ContainerData, - $ContainerFilterComposer, - $ContainerOrderingComposer, - $ContainerAnnotationComposer, - $ContainerCreateCompanionBuilder, - $ContainerUpdateCompanionBuilder, - (ContainerData, $ContainerReferences), - ContainerData, - PrefetchHooks Function({bool tabRefs})>; -typedef $TabCreateCompanionBuilder = TabCompanion Function({ - required String id, - Value containerId, - required String orderKey, - Value url, - Value title, - Value isProbablyReaderable, - Value extractedContentMarkdown, - Value extractedContentPlain, - Value fullContentMarkdown, - Value fullContentPlain, - required DateTime timestamp, - Value rowid, -}); -typedef $TabUpdateCompanionBuilder = TabCompanion Function({ - Value id, - Value containerId, - Value orderKey, - Value url, - Value title, - Value isProbablyReaderable, - Value extractedContentMarkdown, - Value extractedContentPlain, - Value fullContentMarkdown, - Value fullContentPlain, - Value timestamp, - Value rowid, -}); +typedef $ContainerProcessedTableManager = + ProcessedTableManager< + _$TabDatabase, + Container, + ContainerData, + $ContainerFilterComposer, + $ContainerOrderingComposer, + $ContainerAnnotationComposer, + $ContainerCreateCompanionBuilder, + $ContainerUpdateCompanionBuilder, + (ContainerData, $ContainerReferences), + ContainerData, + PrefetchHooks Function({bool tabRefs}) + >; +typedef $TabCreateCompanionBuilder = + TabCompanion Function({ + required String id, + Value containerId, + required String orderKey, + Value url, + Value title, + Value isProbablyReaderable, + Value extractedContentMarkdown, + Value extractedContentPlain, + Value fullContentMarkdown, + Value fullContentPlain, + required DateTime timestamp, + Value rowid, + }); +typedef $TabUpdateCompanionBuilder = + TabCompanion Function({ + Value id, + Value containerId, + Value orderKey, + Value url, + Value title, + Value isProbablyReaderable, + Value extractedContentMarkdown, + Value extractedContentPlain, + Value fullContentMarkdown, + Value fullContentPlain, + Value timestamp, + Value rowid, + }); final class $TabReferences extends BaseReferences<_$TabDatabase, Tab, TabData> { $TabReferences(super.$_db, super.$_table, super.$_typedResult); @@ -2072,12 +2382,15 @@ final class $TabReferences extends BaseReferences<_$TabDatabase, Tab, TabData> { $ContainerProcessedTableManager? get containerId { final $_column = $_itemColumn('container_id'); if ($_column == null) return null; - final manager = $ContainerTableManager($_db, $_db.container) - .filter((f) => f.id.sqlEquals($_column)); + final manager = $ContainerTableManager( + $_db, + $_db.container, + ).filter((f) => f.id.sqlEquals($_column)); final item = $_typedResult.readTableOrNull(_containerIdTable($_db)); if (item == null) return manager; return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: [item])); + manager.$state.copyWith(prefetchedData: [item]), + ); } } @@ -2090,57 +2403,75 @@ class $TabFilterComposer extends Composer<_$TabDatabase, Tab> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get id => $composableBuilder( - column: $table.id, builder: (column) => ColumnFilters(column)); + column: $table.id, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get orderKey => $composableBuilder( - column: $table.orderKey, builder: (column) => ColumnFilters(column)); + column: $table.orderKey, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get url => $composableBuilder( - column: $table.url, builder: (column) => ColumnFilters(column)); + column: $table.url, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get title => $composableBuilder( - column: $table.title, builder: (column) => ColumnFilters(column)); + column: $table.title, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get isProbablyReaderable => $composableBuilder( - column: $table.isProbablyReaderable, - builder: (column) => ColumnFilters(column)); + column: $table.isProbablyReaderable, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get extractedContentMarkdown => $composableBuilder( - column: $table.extractedContentMarkdown, - builder: (column) => ColumnFilters(column)); + column: $table.extractedContentMarkdown, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get extractedContentPlain => $composableBuilder( - column: $table.extractedContentPlain, - builder: (column) => ColumnFilters(column)); + column: $table.extractedContentPlain, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get fullContentMarkdown => $composableBuilder( - column: $table.fullContentMarkdown, - builder: (column) => ColumnFilters(column)); + column: $table.fullContentMarkdown, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get fullContentPlain => $composableBuilder( - column: $table.fullContentPlain, - builder: (column) => ColumnFilters(column)); + column: $table.fullContentPlain, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get timestamp => $composableBuilder( - column: $table.timestamp, builder: (column) => ColumnFilters(column)); + column: $table.timestamp, + builder: (column) => ColumnFilters(column), + ); $ContainerFilterComposer get containerId { final $ContainerFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.containerId, - referencedTable: $db.container, - getReferencedColumn: (t) => t.id, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $ContainerFilterComposer( - $db: $db, - $table: $db.container, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.containerId, + referencedTable: $db.container, + getReferencedColumn: (t) => t.id, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $ContainerFilterComposer( + $db: $db, + $table: $db.container, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return composer; } } @@ -2154,57 +2485,75 @@ class $TabOrderingComposer extends Composer<_$TabDatabase, Tab> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get id => $composableBuilder( - column: $table.id, builder: (column) => ColumnOrderings(column)); + column: $table.id, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get orderKey => $composableBuilder( - column: $table.orderKey, builder: (column) => ColumnOrderings(column)); + column: $table.orderKey, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get url => $composableBuilder( - column: $table.url, builder: (column) => ColumnOrderings(column)); + column: $table.url, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get title => $composableBuilder( - column: $table.title, builder: (column) => ColumnOrderings(column)); + column: $table.title, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get isProbablyReaderable => $composableBuilder( - column: $table.isProbablyReaderable, - builder: (column) => ColumnOrderings(column)); + column: $table.isProbablyReaderable, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get extractedContentMarkdown => $composableBuilder( - column: $table.extractedContentMarkdown, - builder: (column) => ColumnOrderings(column)); + column: $table.extractedContentMarkdown, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get extractedContentPlain => $composableBuilder( - column: $table.extractedContentPlain, - builder: (column) => ColumnOrderings(column)); + column: $table.extractedContentPlain, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get fullContentMarkdown => $composableBuilder( - column: $table.fullContentMarkdown, - builder: (column) => ColumnOrderings(column)); + column: $table.fullContentMarkdown, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get fullContentPlain => $composableBuilder( - column: $table.fullContentPlain, - builder: (column) => ColumnOrderings(column)); + column: $table.fullContentPlain, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get timestamp => $composableBuilder( - column: $table.timestamp, builder: (column) => ColumnOrderings(column)); + column: $table.timestamp, + builder: (column) => ColumnOrderings(column), + ); $ContainerOrderingComposer get containerId { final $ContainerOrderingComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.containerId, - referencedTable: $db.container, - getReferencedColumn: (t) => t.id, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $ContainerOrderingComposer( - $db: $db, - $table: $db.container, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.containerId, + referencedTable: $db.container, + getReferencedColumn: (t) => t.id, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $ContainerOrderingComposer( + $db: $db, + $table: $db.container, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return composer; } } @@ -2230,149 +2579,180 @@ class $TabAnnotationComposer extends Composer<_$TabDatabase, Tab> { $composableBuilder(column: $table.title, builder: (column) => column); GeneratedColumn get isProbablyReaderable => $composableBuilder( - column: $table.isProbablyReaderable, builder: (column) => column); + column: $table.isProbablyReaderable, + builder: (column) => column, + ); GeneratedColumn get extractedContentMarkdown => $composableBuilder( - column: $table.extractedContentMarkdown, builder: (column) => column); + column: $table.extractedContentMarkdown, + builder: (column) => column, + ); GeneratedColumn get extractedContentPlain => $composableBuilder( - column: $table.extractedContentPlain, builder: (column) => column); + column: $table.extractedContentPlain, + builder: (column) => column, + ); GeneratedColumn get fullContentMarkdown => $composableBuilder( - column: $table.fullContentMarkdown, builder: (column) => column); + column: $table.fullContentMarkdown, + builder: (column) => column, + ); GeneratedColumn get fullContentPlain => $composableBuilder( - column: $table.fullContentPlain, builder: (column) => column); + column: $table.fullContentPlain, + builder: (column) => column, + ); GeneratedColumn get timestamp => $composableBuilder(column: $table.timestamp, builder: (column) => column); $ContainerAnnotationComposer get containerId { final $ContainerAnnotationComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.containerId, - referencedTable: $db.container, - getReferencedColumn: (t) => t.id, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $ContainerAnnotationComposer( - $db: $db, - $table: $db.container, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); + composer: this, + getCurrentColumn: (t) => t.containerId, + referencedTable: $db.container, + getReferencedColumn: (t) => t.id, + builder: + ( + joinBuilder, { + $addJoinBuilderToRootComposer, + $removeJoinBuilderFromRootComposer, + }) => $ContainerAnnotationComposer( + $db: $db, + $table: $db.container, + $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, + joinBuilder: joinBuilder, + $removeJoinBuilderFromRootComposer: + $removeJoinBuilderFromRootComposer, + ), + ); return composer; } } -class $TabTableManager extends RootTableManager< - _$TabDatabase, - Tab, - TabData, - $TabFilterComposer, - $TabOrderingComposer, - $TabAnnotationComposer, - $TabCreateCompanionBuilder, - $TabUpdateCompanionBuilder, - (TabData, $TabReferences), - TabData, - PrefetchHooks Function({bool containerId})> { +class $TabTableManager + extends + RootTableManager< + _$TabDatabase, + Tab, + TabData, + $TabFilterComposer, + $TabOrderingComposer, + $TabAnnotationComposer, + $TabCreateCompanionBuilder, + $TabUpdateCompanionBuilder, + (TabData, $TabReferences), + TabData, + PrefetchHooks Function({bool containerId}) + > { $TabTableManager(_$TabDatabase db, Tab table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $TabFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $TabOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $TabAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value id = const Value.absent(), - Value containerId = const Value.absent(), - Value orderKey = const Value.absent(), - Value url = const Value.absent(), - Value title = const Value.absent(), - Value isProbablyReaderable = const Value.absent(), - Value extractedContentMarkdown = const Value.absent(), - Value extractedContentPlain = const Value.absent(), - Value fullContentMarkdown = const Value.absent(), - Value fullContentPlain = const Value.absent(), - Value timestamp = const Value.absent(), - Value rowid = const Value.absent(), - }) => - TabCompanion( - id: id, - containerId: containerId, - orderKey: orderKey, - url: url, - title: title, - isProbablyReaderable: isProbablyReaderable, - extractedContentMarkdown: extractedContentMarkdown, - extractedContentPlain: extractedContentPlain, - fullContentMarkdown: fullContentMarkdown, - fullContentPlain: fullContentPlain, - timestamp: timestamp, - rowid: rowid, - ), - createCompanionCallback: ({ - required String id, - Value containerId = const Value.absent(), - required String orderKey, - Value url = const Value.absent(), - Value title = const Value.absent(), - Value isProbablyReaderable = const Value.absent(), - Value extractedContentMarkdown = const Value.absent(), - Value extractedContentPlain = const Value.absent(), - Value fullContentMarkdown = const Value.absent(), - Value fullContentPlain = const Value.absent(), - required DateTime timestamp, - Value rowid = const Value.absent(), - }) => - TabCompanion.insert( - id: id, - containerId: containerId, - orderKey: orderKey, - url: url, - title: title, - isProbablyReaderable: isProbablyReaderable, - extractedContentMarkdown: extractedContentMarkdown, - extractedContentPlain: extractedContentPlain, - fullContentMarkdown: fullContentMarkdown, - fullContentPlain: fullContentPlain, - timestamp: timestamp, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), $TabReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $TabFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $TabOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $TabAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value id = const Value.absent(), + Value containerId = const Value.absent(), + Value orderKey = const Value.absent(), + Value url = const Value.absent(), + Value title = const Value.absent(), + Value isProbablyReaderable = const Value.absent(), + Value extractedContentMarkdown = const Value.absent(), + Value extractedContentPlain = const Value.absent(), + Value fullContentMarkdown = const Value.absent(), + Value fullContentPlain = const Value.absent(), + Value timestamp = const Value.absent(), + Value rowid = const Value.absent(), + }) => TabCompanion( + id: id, + containerId: containerId, + orderKey: orderKey, + url: url, + title: title, + isProbablyReaderable: isProbablyReaderable, + extractedContentMarkdown: extractedContentMarkdown, + extractedContentPlain: extractedContentPlain, + fullContentMarkdown: fullContentMarkdown, + fullContentPlain: fullContentPlain, + timestamp: timestamp, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String id, + Value containerId = const Value.absent(), + required String orderKey, + Value url = const Value.absent(), + Value title = const Value.absent(), + Value isProbablyReaderable = const Value.absent(), + Value extractedContentMarkdown = const Value.absent(), + Value extractedContentPlain = const Value.absent(), + Value fullContentMarkdown = const Value.absent(), + Value fullContentPlain = const Value.absent(), + required DateTime timestamp, + Value rowid = const Value.absent(), + }) => TabCompanion.insert( + id: id, + containerId: containerId, + orderKey: orderKey, + url: url, + title: title, + isProbablyReaderable: isProbablyReaderable, + extractedContentMarkdown: extractedContentMarkdown, + extractedContentPlain: extractedContentPlain, + fullContentMarkdown: fullContentMarkdown, + fullContentPlain: fullContentPlain, + timestamp: timestamp, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + $TabReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: ({containerId = false}) { return PrefetchHooks( db: db, explicitlyWatchedTables: [], addJoins: < - T extends TableManagerState< - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic>>(state) { + T extends TableManagerState< + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic, + dynamic + > + >(state) { if (containerId) { - state = state.withJoin( - currentTable: table, - currentColumn: table.containerId, - referencedTable: $TabReferences._containerIdTable(db), - referencedColumn: $TabReferences._containerIdTable(db).id, - ) as T; + state = + state.withJoin( + currentTable: table, + currentColumn: table.containerId, + referencedTable: $TabReferences._containerIdTable( + db, + ), + referencedColumn: + $TabReferences._containerIdTable(db).id, + ) + as T; } return state; @@ -2382,39 +2762,44 @@ class $TabTableManager extends RootTableManager< }, ); }, - )); + ), + ); } -typedef $TabProcessedTableManager = ProcessedTableManager< - _$TabDatabase, - Tab, - TabData, - $TabFilterComposer, - $TabOrderingComposer, - $TabAnnotationComposer, - $TabCreateCompanionBuilder, - $TabUpdateCompanionBuilder, - (TabData, $TabReferences), - TabData, - PrefetchHooks Function({bool containerId})>; -typedef $DocumentCreateCompanionBuilder = DocumentCompanion Function({ - required String documentId, - Value mainDocumentId, - Value contextId, - required String content, - required String contentHash, - Value metadata, - Value rowid, -}); -typedef $DocumentUpdateCompanionBuilder = DocumentCompanion Function({ - Value documentId, - Value mainDocumentId, - Value contextId, - Value content, - Value contentHash, - Value metadata, - Value rowid, -}); +typedef $TabProcessedTableManager = + ProcessedTableManager< + _$TabDatabase, + Tab, + TabData, + $TabFilterComposer, + $TabOrderingComposer, + $TabAnnotationComposer, + $TabCreateCompanionBuilder, + $TabUpdateCompanionBuilder, + (TabData, $TabReferences), + TabData, + PrefetchHooks Function({bool containerId}) + >; +typedef $DocumentCreateCompanionBuilder = + DocumentCompanion Function({ + required String documentId, + Value mainDocumentId, + Value contextId, + required String content, + required String contentHash, + Value metadata, + Value rowid, + }); +typedef $DocumentUpdateCompanionBuilder = + DocumentCompanion Function({ + Value documentId, + Value mainDocumentId, + Value contextId, + Value content, + Value contentHash, + Value metadata, + Value rowid, + }); class $DocumentFilterComposer extends Composer<_$TabDatabase, Document> { $DocumentFilterComposer({ @@ -2425,23 +2810,34 @@ class $DocumentFilterComposer extends Composer<_$TabDatabase, Document> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get documentId => $composableBuilder( - column: $table.documentId, builder: (column) => ColumnFilters(column)); + column: $table.documentId, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get mainDocumentId => $composableBuilder( - column: $table.mainDocumentId, - builder: (column) => ColumnFilters(column)); + column: $table.mainDocumentId, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get contextId => $composableBuilder( - column: $table.contextId, builder: (column) => ColumnFilters(column)); + column: $table.contextId, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get content => $composableBuilder( - column: $table.content, builder: (column) => ColumnFilters(column)); + column: $table.content, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get contentHash => $composableBuilder( - column: $table.contentHash, builder: (column) => ColumnFilters(column)); + column: $table.contentHash, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get metadata => $composableBuilder( - column: $table.metadata, builder: (column) => ColumnFilters(column)); + column: $table.metadata, + builder: (column) => ColumnFilters(column), + ); } class $DocumentOrderingComposer extends Composer<_$TabDatabase, Document> { @@ -2453,23 +2849,34 @@ class $DocumentOrderingComposer extends Composer<_$TabDatabase, Document> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get documentId => $composableBuilder( - column: $table.documentId, builder: (column) => ColumnOrderings(column)); + column: $table.documentId, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get mainDocumentId => $composableBuilder( - column: $table.mainDocumentId, - builder: (column) => ColumnOrderings(column)); + column: $table.mainDocumentId, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get contextId => $composableBuilder( - column: $table.contextId, builder: (column) => ColumnOrderings(column)); + column: $table.contextId, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get content => $composableBuilder( - column: $table.content, builder: (column) => ColumnOrderings(column)); + column: $table.content, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get contentHash => $composableBuilder( - column: $table.contentHash, builder: (column) => ColumnOrderings(column)); + column: $table.contentHash, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get metadata => $composableBuilder( - column: $table.metadata, builder: (column) => ColumnOrderings(column)); + column: $table.metadata, + builder: (column) => ColumnOrderings(column), + ); } class $DocumentAnnotationComposer extends Composer<_$TabDatabase, Document> { @@ -2481,10 +2888,14 @@ class $DocumentAnnotationComposer extends Composer<_$TabDatabase, Document> { super.$removeJoinBuilderFromRootComposer, }); GeneratedColumn get documentId => $composableBuilder( - column: $table.documentId, builder: (column) => column); + column: $table.documentId, + builder: (column) => column, + ); GeneratedColumn get mainDocumentId => $composableBuilder( - column: $table.mainDocumentId, builder: (column) => column); + column: $table.mainDocumentId, + builder: (column) => column, + ); GeneratedColumn get contextId => $composableBuilder(column: $table.contextId, builder: (column) => column); @@ -2493,103 +2904,121 @@ class $DocumentAnnotationComposer extends Composer<_$TabDatabase, Document> { $composableBuilder(column: $table.content, builder: (column) => column); GeneratedColumn get contentHash => $composableBuilder( - column: $table.contentHash, builder: (column) => column); + column: $table.contentHash, + builder: (column) => column, + ); GeneratedColumn get metadata => $composableBuilder(column: $table.metadata, builder: (column) => column); } -class $DocumentTableManager extends RootTableManager< - _$TabDatabase, - Document, - DocumentData, - $DocumentFilterComposer, - $DocumentOrderingComposer, - $DocumentAnnotationComposer, - $DocumentCreateCompanionBuilder, - $DocumentUpdateCompanionBuilder, - (DocumentData, BaseReferences<_$TabDatabase, Document, DocumentData>), - DocumentData, - PrefetchHooks Function()> { +class $DocumentTableManager + extends + RootTableManager< + _$TabDatabase, + Document, + DocumentData, + $DocumentFilterComposer, + $DocumentOrderingComposer, + $DocumentAnnotationComposer, + $DocumentCreateCompanionBuilder, + $DocumentUpdateCompanionBuilder, + (DocumentData, BaseReferences<_$TabDatabase, Document, DocumentData>), + DocumentData, + PrefetchHooks Function() + > { $DocumentTableManager(_$TabDatabase db, Document table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $DocumentFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $DocumentOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $DocumentAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value documentId = const Value.absent(), - Value mainDocumentId = const Value.absent(), - Value contextId = const Value.absent(), - Value content = const Value.absent(), - Value contentHash = const Value.absent(), - Value metadata = const Value.absent(), - Value rowid = const Value.absent(), - }) => - DocumentCompanion( - documentId: documentId, - mainDocumentId: mainDocumentId, - contextId: contextId, - content: content, - contentHash: contentHash, - metadata: metadata, - rowid: rowid, - ), - createCompanionCallback: ({ - required String documentId, - Value mainDocumentId = const Value.absent(), - Value contextId = const Value.absent(), - required String content, - required String contentHash, - Value metadata = const Value.absent(), - Value rowid = const Value.absent(), - }) => - DocumentCompanion.insert( - documentId: documentId, - mainDocumentId: mainDocumentId, - contextId: contextId, - content: content, - contentHash: contentHash, - metadata: metadata, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $DocumentFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $DocumentOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $DocumentAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value documentId = const Value.absent(), + Value mainDocumentId = const Value.absent(), + Value contextId = const Value.absent(), + Value content = const Value.absent(), + Value contentHash = const Value.absent(), + Value metadata = const Value.absent(), + Value rowid = const Value.absent(), + }) => DocumentCompanion( + documentId: documentId, + mainDocumentId: mainDocumentId, + contextId: contextId, + content: content, + contentHash: contentHash, + metadata: metadata, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String documentId, + Value mainDocumentId = const Value.absent(), + Value contextId = const Value.absent(), + required String content, + required String contentHash, + Value metadata = const Value.absent(), + Value rowid = const Value.absent(), + }) => DocumentCompanion.insert( + documentId: documentId, + mainDocumentId: mainDocumentId, + contextId: contextId, + content: content, + contentHash: contentHash, + metadata: metadata, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $DocumentProcessedTableManager = ProcessedTableManager< - _$TabDatabase, - Document, - DocumentData, - $DocumentFilterComposer, - $DocumentOrderingComposer, - $DocumentAnnotationComposer, - $DocumentCreateCompanionBuilder, - $DocumentUpdateCompanionBuilder, - (DocumentData, BaseReferences<_$TabDatabase, Document, DocumentData>), - DocumentData, - PrefetchHooks Function()>; -typedef $TabFtsCreateCompanionBuilder = TabFtsCompanion Function({ - required String title, - required String url, - required String extractedContentPlain, - required String fullContentPlain, - Value rowid, -}); -typedef $TabFtsUpdateCompanionBuilder = TabFtsCompanion Function({ - Value title, - Value url, - Value extractedContentPlain, - Value fullContentPlain, - Value rowid, -}); +typedef $DocumentProcessedTableManager = + ProcessedTableManager< + _$TabDatabase, + Document, + DocumentData, + $DocumentFilterComposer, + $DocumentOrderingComposer, + $DocumentAnnotationComposer, + $DocumentCreateCompanionBuilder, + $DocumentUpdateCompanionBuilder, + (DocumentData, BaseReferences<_$TabDatabase, Document, DocumentData>), + DocumentData, + PrefetchHooks Function() + >; +typedef $TabFtsCreateCompanionBuilder = + TabFtsCompanion Function({ + required String title, + required String url, + required String extractedContentPlain, + required String fullContentPlain, + Value rowid, + }); +typedef $TabFtsUpdateCompanionBuilder = + TabFtsCompanion Function({ + Value title, + Value url, + Value extractedContentPlain, + Value fullContentPlain, + Value rowid, + }); class $TabFtsFilterComposer extends Composer<_$TabDatabase, TabFts> { $TabFtsFilterComposer({ @@ -2600,18 +3029,24 @@ class $TabFtsFilterComposer extends Composer<_$TabDatabase, TabFts> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get title => $composableBuilder( - column: $table.title, builder: (column) => ColumnFilters(column)); + column: $table.title, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get url => $composableBuilder( - column: $table.url, builder: (column) => ColumnFilters(column)); + column: $table.url, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get extractedContentPlain => $composableBuilder( - column: $table.extractedContentPlain, - builder: (column) => ColumnFilters(column)); + column: $table.extractedContentPlain, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get fullContentPlain => $composableBuilder( - column: $table.fullContentPlain, - builder: (column) => ColumnFilters(column)); + column: $table.fullContentPlain, + builder: (column) => ColumnFilters(column), + ); } class $TabFtsOrderingComposer extends Composer<_$TabDatabase, TabFts> { @@ -2623,18 +3058,24 @@ class $TabFtsOrderingComposer extends Composer<_$TabDatabase, TabFts> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get title => $composableBuilder( - column: $table.title, builder: (column) => ColumnOrderings(column)); + column: $table.title, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get url => $composableBuilder( - column: $table.url, builder: (column) => ColumnOrderings(column)); + column: $table.url, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get extractedContentPlain => $composableBuilder( - column: $table.extractedContentPlain, - builder: (column) => ColumnOrderings(column)); + column: $table.extractedContentPlain, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get fullContentPlain => $composableBuilder( - column: $table.fullContentPlain, - builder: (column) => ColumnOrderings(column)); + column: $table.fullContentPlain, + builder: (column) => ColumnOrderings(column), + ); } class $TabFtsAnnotationComposer extends Composer<_$TabDatabase, TabFts> { @@ -2652,101 +3093,121 @@ class $TabFtsAnnotationComposer extends Composer<_$TabDatabase, TabFts> { $composableBuilder(column: $table.url, builder: (column) => column); GeneratedColumn get extractedContentPlain => $composableBuilder( - column: $table.extractedContentPlain, builder: (column) => column); + column: $table.extractedContentPlain, + builder: (column) => column, + ); GeneratedColumn get fullContentPlain => $composableBuilder( - column: $table.fullContentPlain, builder: (column) => column); + column: $table.fullContentPlain, + builder: (column) => column, + ); } -class $TabFtsTableManager extends RootTableManager< - _$TabDatabase, - TabFts, - TabFt, - $TabFtsFilterComposer, - $TabFtsOrderingComposer, - $TabFtsAnnotationComposer, - $TabFtsCreateCompanionBuilder, - $TabFtsUpdateCompanionBuilder, - (TabFt, BaseReferences<_$TabDatabase, TabFts, TabFt>), - TabFt, - PrefetchHooks Function()> { +class $TabFtsTableManager + extends + RootTableManager< + _$TabDatabase, + TabFts, + TabFt, + $TabFtsFilterComposer, + $TabFtsOrderingComposer, + $TabFtsAnnotationComposer, + $TabFtsCreateCompanionBuilder, + $TabFtsUpdateCompanionBuilder, + (TabFt, BaseReferences<_$TabDatabase, TabFts, TabFt>), + TabFt, + PrefetchHooks Function() + > { $TabFtsTableManager(_$TabDatabase db, TabFts table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $TabFtsFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $TabFtsOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $TabFtsAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value title = const Value.absent(), - Value url = const Value.absent(), - Value extractedContentPlain = const Value.absent(), - Value fullContentPlain = const Value.absent(), - Value rowid = const Value.absent(), - }) => - TabFtsCompanion( - title: title, - url: url, - extractedContentPlain: extractedContentPlain, - fullContentPlain: fullContentPlain, - rowid: rowid, - ), - createCompanionCallback: ({ - required String title, - required String url, - required String extractedContentPlain, - required String fullContentPlain, - Value rowid = const Value.absent(), - }) => - TabFtsCompanion.insert( - title: title, - url: url, - extractedContentPlain: extractedContentPlain, - fullContentPlain: fullContentPlain, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $TabFtsFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $TabFtsOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $TabFtsAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value title = const Value.absent(), + Value url = const Value.absent(), + Value extractedContentPlain = const Value.absent(), + Value fullContentPlain = const Value.absent(), + Value rowid = const Value.absent(), + }) => TabFtsCompanion( + title: title, + url: url, + extractedContentPlain: extractedContentPlain, + fullContentPlain: fullContentPlain, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String title, + required String url, + required String extractedContentPlain, + required String fullContentPlain, + Value rowid = const Value.absent(), + }) => TabFtsCompanion.insert( + title: title, + url: url, + extractedContentPlain: extractedContentPlain, + fullContentPlain: fullContentPlain, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $TabFtsProcessedTableManager = ProcessedTableManager< - _$TabDatabase, - TabFts, - TabFt, - $TabFtsFilterComposer, - $TabFtsOrderingComposer, - $TabFtsAnnotationComposer, - $TabFtsCreateCompanionBuilder, - $TabFtsUpdateCompanionBuilder, - (TabFt, BaseReferences<_$TabDatabase, TabFts, TabFt>), - TabFt, - PrefetchHooks Function()>; -typedef $DocumentVecCreateCompanionBuilder = DocumentVecCompanion Function({ - required String id, - Value mainDocumentId, - Value contextId, - required Uint8List embedding, - required String contentHash, - Value distance, - Value k, - Value rowid, -}); -typedef $DocumentVecUpdateCompanionBuilder = DocumentVecCompanion Function({ - Value id, - Value mainDocumentId, - Value contextId, - Value embedding, - Value contentHash, - Value distance, - Value k, - Value rowid, -}); +typedef $TabFtsProcessedTableManager = + ProcessedTableManager< + _$TabDatabase, + TabFts, + TabFt, + $TabFtsFilterComposer, + $TabFtsOrderingComposer, + $TabFtsAnnotationComposer, + $TabFtsCreateCompanionBuilder, + $TabFtsUpdateCompanionBuilder, + (TabFt, BaseReferences<_$TabDatabase, TabFts, TabFt>), + TabFt, + PrefetchHooks Function() + >; +typedef $DocumentVecCreateCompanionBuilder = + DocumentVecCompanion Function({ + required String id, + Value mainDocumentId, + Value contextId, + required Uint8List embedding, + required String contentHash, + Value distance, + Value k, + Value rowid, + }); +typedef $DocumentVecUpdateCompanionBuilder = + DocumentVecCompanion Function({ + Value id, + Value mainDocumentId, + Value contextId, + Value embedding, + Value contentHash, + Value distance, + Value k, + Value rowid, + }); class $DocumentVecFilterComposer extends Composer<_$TabDatabase, DocumentVec> { $DocumentVecFilterComposer({ @@ -2757,26 +3218,39 @@ class $DocumentVecFilterComposer extends Composer<_$TabDatabase, DocumentVec> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get id => $composableBuilder( - column: $table.id, builder: (column) => ColumnFilters(column)); + column: $table.id, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get mainDocumentId => $composableBuilder( - column: $table.mainDocumentId, - builder: (column) => ColumnFilters(column)); + column: $table.mainDocumentId, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get contextId => $composableBuilder( - column: $table.contextId, builder: (column) => ColumnFilters(column)); + column: $table.contextId, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get embedding => $composableBuilder( - column: $table.embedding, builder: (column) => ColumnFilters(column)); + column: $table.embedding, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get contentHash => $composableBuilder( - column: $table.contentHash, builder: (column) => ColumnFilters(column)); + column: $table.contentHash, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get distance => $composableBuilder( - column: $table.distance, builder: (column) => ColumnFilters(column)); + column: $table.distance, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get k => $composableBuilder( - column: $table.k, builder: (column) => ColumnFilters(column)); + column: $table.k, + builder: (column) => ColumnFilters(column), + ); } class $DocumentVecOrderingComposer @@ -2789,26 +3263,39 @@ class $DocumentVecOrderingComposer super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get id => $composableBuilder( - column: $table.id, builder: (column) => ColumnOrderings(column)); + column: $table.id, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get mainDocumentId => $composableBuilder( - column: $table.mainDocumentId, - builder: (column) => ColumnOrderings(column)); + column: $table.mainDocumentId, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get contextId => $composableBuilder( - column: $table.contextId, builder: (column) => ColumnOrderings(column)); + column: $table.contextId, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get embedding => $composableBuilder( - column: $table.embedding, builder: (column) => ColumnOrderings(column)); + column: $table.embedding, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get contentHash => $composableBuilder( - column: $table.contentHash, builder: (column) => ColumnOrderings(column)); + column: $table.contentHash, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get distance => $composableBuilder( - column: $table.distance, builder: (column) => ColumnOrderings(column)); + column: $table.distance, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get k => $composableBuilder( - column: $table.k, builder: (column) => ColumnOrderings(column)); + column: $table.k, + builder: (column) => ColumnOrderings(column), + ); } class $DocumentVecAnnotationComposer @@ -2824,7 +3311,9 @@ class $DocumentVecAnnotationComposer $composableBuilder(column: $table.id, builder: (column) => column); GeneratedColumn get mainDocumentId => $composableBuilder( - column: $table.mainDocumentId, builder: (column) => column); + column: $table.mainDocumentId, + builder: (column) => column, + ); GeneratedColumn get contextId => $composableBuilder(column: $table.contextId, builder: (column) => column); @@ -2833,7 +3322,9 @@ class $DocumentVecAnnotationComposer $composableBuilder(column: $table.embedding, builder: (column) => column); GeneratedColumn get contentHash => $composableBuilder( - column: $table.contentHash, builder: (column) => column); + column: $table.contentHash, + builder: (column) => column, + ); GeneratedColumn get distance => $composableBuilder(column: $table.distance, builder: (column) => column); @@ -2842,93 +3333,107 @@ class $DocumentVecAnnotationComposer $composableBuilder(column: $table.k, builder: (column) => column); } -class $DocumentVecTableManager extends RootTableManager< - _$TabDatabase, - DocumentVec, - DocumentVecData, - $DocumentVecFilterComposer, - $DocumentVecOrderingComposer, - $DocumentVecAnnotationComposer, - $DocumentVecCreateCompanionBuilder, - $DocumentVecUpdateCompanionBuilder, - ( - DocumentVecData, - BaseReferences<_$TabDatabase, DocumentVec, DocumentVecData> - ), - DocumentVecData, - PrefetchHooks Function()> { +class $DocumentVecTableManager + extends + RootTableManager< + _$TabDatabase, + DocumentVec, + DocumentVecData, + $DocumentVecFilterComposer, + $DocumentVecOrderingComposer, + $DocumentVecAnnotationComposer, + $DocumentVecCreateCompanionBuilder, + $DocumentVecUpdateCompanionBuilder, + ( + DocumentVecData, + BaseReferences<_$TabDatabase, DocumentVec, DocumentVecData>, + ), + DocumentVecData, + PrefetchHooks Function() + > { $DocumentVecTableManager(_$TabDatabase db, DocumentVec table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $DocumentVecFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $DocumentVecOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $DocumentVecAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value id = const Value.absent(), - Value mainDocumentId = const Value.absent(), - Value contextId = const Value.absent(), - Value embedding = const Value.absent(), - Value contentHash = const Value.absent(), - Value distance = const Value.absent(), - Value k = const Value.absent(), - Value rowid = const Value.absent(), - }) => - DocumentVecCompanion( - id: id, - mainDocumentId: mainDocumentId, - contextId: contextId, - embedding: embedding, - contentHash: contentHash, - distance: distance, - k: k, - rowid: rowid, - ), - createCompanionCallback: ({ - required String id, - Value mainDocumentId = const Value.absent(), - Value contextId = const Value.absent(), - required Uint8List embedding, - required String contentHash, - Value distance = const Value.absent(), - Value k = const Value.absent(), - Value rowid = const Value.absent(), - }) => - DocumentVecCompanion.insert( - id: id, - mainDocumentId: mainDocumentId, - contextId: contextId, - embedding: embedding, - contentHash: contentHash, - distance: distance, - k: k, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $DocumentVecFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $DocumentVecOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $DocumentVecAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value id = const Value.absent(), + Value mainDocumentId = const Value.absent(), + Value contextId = const Value.absent(), + Value embedding = const Value.absent(), + Value contentHash = const Value.absent(), + Value distance = const Value.absent(), + Value k = const Value.absent(), + Value rowid = const Value.absent(), + }) => DocumentVecCompanion( + id: id, + mainDocumentId: mainDocumentId, + contextId: contextId, + embedding: embedding, + contentHash: contentHash, + distance: distance, + k: k, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String id, + Value mainDocumentId = const Value.absent(), + Value contextId = const Value.absent(), + required Uint8List embedding, + required String contentHash, + Value distance = const Value.absent(), + Value k = const Value.absent(), + Value rowid = const Value.absent(), + }) => DocumentVecCompanion.insert( + id: id, + mainDocumentId: mainDocumentId, + contextId: contextId, + embedding: embedding, + contentHash: contentHash, + distance: distance, + k: k, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $DocumentVecProcessedTableManager = ProcessedTableManager< - _$TabDatabase, - DocumentVec, - DocumentVecData, - $DocumentVecFilterComposer, - $DocumentVecOrderingComposer, - $DocumentVecAnnotationComposer, - $DocumentVecCreateCompanionBuilder, - $DocumentVecUpdateCompanionBuilder, - ( +typedef $DocumentVecProcessedTableManager = + ProcessedTableManager< + _$TabDatabase, + DocumentVec, DocumentVecData, - BaseReferences<_$TabDatabase, DocumentVec, DocumentVecData> - ), - DocumentVecData, - PrefetchHooks Function()>; + $DocumentVecFilterComposer, + $DocumentVecOrderingComposer, + $DocumentVecAnnotationComposer, + $DocumentVecCreateCompanionBuilder, + $DocumentVecUpdateCompanionBuilder, + ( + DocumentVecData, + BaseReferences<_$TabDatabase, DocumentVec, DocumentVecData>, + ), + DocumentVecData, + PrefetchHooks Function() + >; class $TabDatabaseManager { final _$TabDatabase _db; diff --git a/app/lib/features/geckoview/features/tabs/data/models/container_data.dart b/app/lib/features/geckoview/features/tabs/data/models/container_data.dart index f184f489..3b7a6699 100644 --- a/app/lib/features/geckoview/features/tabs/data/models/container_data.dart +++ b/app/lib/features/geckoview/features/tabs/data/models/container_data.dart @@ -24,10 +24,10 @@ class ContainerAuthSettings with FastEquatable { bool? lockOnAppBackground, Duration? lockTimeout, }) : this( - authenticationRequired: authenticationRequired ?? false, - lockOnAppBackground: lockOnAppBackground ?? false, - lockTimeout: lockTimeout, - ); + authenticationRequired: authenticationRequired ?? false, + lockOnAppBackground: lockOnAppBackground ?? false, + lockTimeout: lockTimeout, + ); factory ContainerAuthSettings.fromJson(Map json) => _$ContainerAuthSettingsFromJson(json); @@ -36,10 +36,10 @@ class ContainerAuthSettings with FastEquatable { @override List get hashParameters => [ - authenticationRequired, - lockOnAppBackground, - lockTimeout, - ]; + authenticationRequired, + lockOnAppBackground, + lockTimeout, + ]; @override bool get cacheHash => true; @@ -69,11 +69,11 @@ class ContainerMetadata with FastEquatable { ContainerAuthSettings? authSettings, bool? useProxy, }) : this( - iconData: iconData, - contextualIdentity: contextualIdentity, - authSettings: authSettings ?? ContainerAuthSettings.withDefaults(), - useProxy: useProxy ?? false, - ); + iconData: iconData, + contextualIdentity: contextualIdentity, + authSettings: authSettings ?? ContainerAuthSettings.withDefaults(), + useProxy: useProxy ?? false, + ); factory ContainerMetadata.fromJson(Map json) => _$ContainerMetadataFromJson(json); @@ -82,11 +82,11 @@ class ContainerMetadata with FastEquatable { @override List get hashParameters => [ - iconData, - contextualIdentity, - authSettings, - useProxy, - ]; + iconData, + contextualIdentity, + authSettings, + useProxy, + ]; @override bool get cacheHash => true; @@ -110,12 +110,7 @@ class ContainerData with FastEquatable { bool get cacheHash => true; @override - List get hashParameters => [ - id, - name, - color, - metadata, - ]; + List get hashParameters => [id, name, color, metadata]; } class ContainerDataWithCount extends ContainerData { @@ -133,8 +128,5 @@ class ContainerDataWithCount extends ContainerData { bool get cacheHash => true; @override - List get hashParameters => [ - ...super.hashParameters, - tabCount, - ]; + List get hashParameters => [...super.hashParameters, tabCount]; } diff --git a/app/lib/features/geckoview/features/tabs/data/models/container_data.g.dart b/app/lib/features/geckoview/features/tabs/data/models/container_data.g.dart index 949fb21e..e26868cb 100644 --- a/app/lib/features/geckoview/features/tabs/data/models/container_data.g.dart +++ b/app/lib/features/geckoview/features/tabs/data/models/container_data.g.dart @@ -46,7 +46,6 @@ class _$ContainerAuthSettingsCWProxyImpl this(lockTimeout: lockTimeout); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerAuthSettings(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -64,14 +63,16 @@ class _$ContainerAuthSettingsCWProxyImpl ? _value.authenticationRequired // ignore: cast_nullable_to_non_nullable : authenticationRequired as bool, - lockOnAppBackground: lockOnAppBackground == const $CopyWithPlaceholder() - ? _value.lockOnAppBackground - // ignore: cast_nullable_to_non_nullable - : lockOnAppBackground as bool, - lockTimeout: lockTimeout == const $CopyWithPlaceholder() - ? _value.lockTimeout - // ignore: cast_nullable_to_non_nullable - : lockTimeout as Duration?, + lockOnAppBackground: + lockOnAppBackground == const $CopyWithPlaceholder() + ? _value.lockOnAppBackground + // ignore: cast_nullable_to_non_nullable + : lockOnAppBackground as bool, + lockTimeout: + lockTimeout == const $CopyWithPlaceholder() + ? _value.lockTimeout + // ignore: cast_nullable_to_non_nullable + : lockTimeout as Duration?, ); } } @@ -127,7 +128,6 @@ class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy { ContainerMetadata useProxy(bool useProxy) => this(useProxy: useProxy); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerMetadata(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -141,22 +141,26 @@ class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy { Object? useProxy = const $CopyWithPlaceholder(), }) { return ContainerMetadata( - iconData: iconData == const $CopyWithPlaceholder() - ? _value.iconData - // ignore: cast_nullable_to_non_nullable - : iconData as IconData?, - contextualIdentity: contextualIdentity == const $CopyWithPlaceholder() - ? _value.contextualIdentity - // ignore: cast_nullable_to_non_nullable - : contextualIdentity as String?, - authSettings: authSettings == const $CopyWithPlaceholder() - ? _value.authSettings - // ignore: cast_nullable_to_non_nullable - : authSettings as ContainerAuthSettings, - useProxy: useProxy == const $CopyWithPlaceholder() - ? _value.useProxy - // ignore: cast_nullable_to_non_nullable - : useProxy as bool, + iconData: + iconData == const $CopyWithPlaceholder() + ? _value.iconData + // ignore: cast_nullable_to_non_nullable + : iconData as IconData?, + contextualIdentity: + contextualIdentity == const $CopyWithPlaceholder() + ? _value.contextualIdentity + // ignore: cast_nullable_to_non_nullable + : contextualIdentity as String?, + authSettings: + authSettings == const $CopyWithPlaceholder() + ? _value.authSettings + // ignore: cast_nullable_to_non_nullable + : authSettings as ContainerAuthSettings, + useProxy: + useProxy == const $CopyWithPlaceholder() + ? _value.useProxy + // ignore: cast_nullable_to_non_nullable + : useProxy as bool, ); } } @@ -211,7 +215,6 @@ class _$ContainerDataCWProxyImpl implements _$ContainerDataCWProxy { this(metadata: metadata); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -225,22 +228,26 @@ class _$ContainerDataCWProxyImpl implements _$ContainerDataCWProxy { Object? metadata = const $CopyWithPlaceholder(), }) { return ContainerData( - id: id == const $CopyWithPlaceholder() - ? _value.id - // ignore: cast_nullable_to_non_nullable - : id as String, - name: name == const $CopyWithPlaceholder() - ? _value.name - // ignore: cast_nullable_to_non_nullable - : name as String?, - color: color == const $CopyWithPlaceholder() - ? _value.color - // ignore: cast_nullable_to_non_nullable - : color as Color, - metadata: metadata == const $CopyWithPlaceholder() - ? _value.metadata - // ignore: cast_nullable_to_non_nullable - : metadata as ContainerMetadata?, + id: + id == const $CopyWithPlaceholder() + ? _value.id + // ignore: cast_nullable_to_non_nullable + : id as String, + name: + name == const $CopyWithPlaceholder() + ? _value.name + // ignore: cast_nullable_to_non_nullable + : name as String?, + color: + color == const $CopyWithPlaceholder() + ? _value.color + // ignore: cast_nullable_to_non_nullable + : color as Color, + metadata: + metadata == const $CopyWithPlaceholder() + ? _value.metadata + // ignore: cast_nullable_to_non_nullable + : metadata as ContainerMetadata?, ); } } @@ -256,39 +263,46 @@ extension $ContainerDataCopyWith on ContainerData { // ************************************************************************** ContainerAuthSettings _$ContainerAuthSettingsFromJson( - Map json) => - ContainerAuthSettings( - authenticationRequired: json['authenticationRequired'] as bool, - lockOnAppBackground: json['lockOnAppBackground'] as bool, - lockTimeout: json['lockTimeout'] == null + Map json, +) => ContainerAuthSettings( + authenticationRequired: json['authenticationRequired'] as bool, + lockOnAppBackground: json['lockOnAppBackground'] as bool, + lockTimeout: + json['lockTimeout'] == null ? null : Duration(microseconds: (json['lockTimeout'] as num).toInt()), - ); +); Map _$ContainerAuthSettingsToJson( - ContainerAuthSettings instance) => - { - 'authenticationRequired': instance.authenticationRequired, - 'lockOnAppBackground': instance.lockOnAppBackground, - 'lockTimeout': instance.lockTimeout?.inMicroseconds, - }; + ContainerAuthSettings instance, +) => { + 'authenticationRequired': instance.authenticationRequired, + 'lockOnAppBackground': instance.lockOnAppBackground, + 'lockTimeout': instance.lockTimeout?.inMicroseconds, +}; ContainerMetadata _$ContainerMetadataFromJson(Map json) => ContainerMetadata.withDefaults( iconData: _$JsonConverterFromJson, IconData>( - json['iconData'], const IconDataJsonConverter().fromJson), + json['iconData'], + const IconDataJsonConverter().fromJson, + ), contextualIdentity: json['contextualIdentity'] as String?, - authSettings: json['authSettings'] == null - ? null - : ContainerAuthSettings.fromJson( - json['authSettings'] as Map), + authSettings: + json['authSettings'] == null + ? null + : ContainerAuthSettings.fromJson( + json['authSettings'] as Map, + ), useProxy: json['useProxy'] as bool? ?? false, ); Map _$ContainerMetadataToJson(ContainerMetadata instance) => { 'iconData': _$JsonConverterToJson, IconData>( - instance.iconData, const IconDataJsonConverter().toJson), + instance.iconData, + const IconDataJsonConverter().toJson, + ), 'contextualIdentity': instance.contextualIdentity, 'authSettings': instance.authSettings, 'useProxy': instance.useProxy, @@ -297,11 +311,9 @@ Map _$ContainerMetadataToJson(ContainerMetadata instance) => Value? _$JsonConverterFromJson( Object? json, Value? Function(Json json) fromJson, -) => - json == null ? null : fromJson(json as Json); +) => json == null ? null : fromJson(json as Json); Json? _$JsonConverterToJson( Value? value, Json? Function(Value value) toJson, -) => - value == null ? null : toJson(value); +) => value == null ? null : toJson(value); diff --git a/app/lib/features/geckoview/features/tabs/domain/providers.dart b/app/lib/features/geckoview/features/tabs/domain/providers.dart index 9c0f4ec7..bd4ff80e 100644 --- a/app/lib/features/geckoview/features/tabs/domain/providers.dart +++ b/app/lib/features/geckoview/features/tabs/domain/providers.dart @@ -13,9 +13,7 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'providers.g.dart'; @Riverpod() -Future unusedRandomContainerColor( - Ref ref, -) async { +Future unusedRandomContainerColor(Ref ref) async { final repository = ref.watch(containerRepositoryProvider.notifier); final allColors = colorTypes.flattened.toList(); @@ -30,9 +28,7 @@ Future unusedRandomContainerColor( } @Riverpod() -Stream> containersWithCount( - Ref ref, -) { +Stream> containersWithCount(Ref ref) { final db = ref.watch(tabDatabaseProvider); return db.containersWithCount().watch(); } @@ -49,21 +45,19 @@ AsyncValue> matchSortedContainersWithCount( } return value.whenData( - (cb) => TokenizedFilter.sort( - items: cb, - toString: (item) => item.name, - query: searchText!, - ).filtered, + (cb) => + TokenizedFilter.sort( + items: cb, + toString: (item) => item.name, + query: searchText!, + ).filtered, ); }), ); } @Riverpod() -Stream> containerTabIds( - Ref ref, - ContainerFilter containerFilter, -) { +Stream> containerTabIds(Ref ref, ContainerFilter containerFilter) { final db = ref.watch(tabDatabaseProvider); switch (containerFilter) { diff --git a/app/lib/features/geckoview/features/tabs/domain/providers.g.dart b/app/lib/features/geckoview/features/tabs/domain/providers.g.dart index faa169e9..e82073ae 100644 --- a/app/lib/features/geckoview/features/tabs/domain/providers.g.dart +++ b/app/lib/features/geckoview/features/tabs/domain/providers.g.dart @@ -13,14 +13,15 @@ String _$unusedRandomContainerColorHash() => @ProviderFor(unusedRandomContainerColor) final unusedRandomContainerColorProvider = AutoDisposeFutureProvider.internal( - unusedRandomContainerColor, - name: r'unusedRandomContainerColorProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$unusedRandomContainerColorHash, - dependencies: null, - allTransitiveDependencies: null, -); + unusedRandomContainerColor, + name: r'unusedRandomContainerColorProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$unusedRandomContainerColorHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element @@ -32,19 +33,20 @@ String _$containersWithCountHash() => @ProviderFor(containersWithCount) final containersWithCountProvider = AutoDisposeStreamProvider>.internal( - containersWithCount, - name: r'containersWithCountProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$containersWithCountHash, - dependencies: null, - allTransitiveDependencies: null, -); + containersWithCount, + name: r'containersWithCountProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$containersWithCountHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element -typedef ContainersWithCountRef - = AutoDisposeStreamProviderRef>; +typedef ContainersWithCountRef = + AutoDisposeStreamProviderRef>; String _$matchSortedContainersWithCountHash() => r'0ed555f0cb72f4990a2841114d72f57d8178d5c3'; @@ -81,21 +83,15 @@ class MatchSortedContainersWithCountFamily const MatchSortedContainersWithCountFamily(); /// See also [matchSortedContainersWithCount]. - MatchSortedContainersWithCountProvider call( - String? searchText, - ) { - return MatchSortedContainersWithCountProvider( - searchText, - ); + MatchSortedContainersWithCountProvider call(String? searchText) { + return MatchSortedContainersWithCountProvider(searchText); } @override MatchSortedContainersWithCountProvider getProviderOverride( covariant MatchSortedContainersWithCountProvider provider, ) { - return call( - provider.searchText, - ); + return call(provider.searchText); } static const Iterable? _dependencies = null; @@ -117,24 +113,23 @@ class MatchSortedContainersWithCountFamily class MatchSortedContainersWithCountProvider extends AutoDisposeProvider>> { /// See also [matchSortedContainersWithCount]. - MatchSortedContainersWithCountProvider( - String? searchText, - ) : this._internal( - (ref) => matchSortedContainersWithCount( - ref as MatchSortedContainersWithCountRef, - searchText, - ), - from: matchSortedContainersWithCountProvider, - name: r'matchSortedContainersWithCountProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$matchSortedContainersWithCountHash, - dependencies: MatchSortedContainersWithCountFamily._dependencies, - allTransitiveDependencies: - MatchSortedContainersWithCountFamily._allTransitiveDependencies, - searchText: searchText, - ); + MatchSortedContainersWithCountProvider(String? searchText) + : this._internal( + (ref) => matchSortedContainersWithCount( + ref as MatchSortedContainersWithCountRef, + searchText, + ), + from: matchSortedContainersWithCountProvider, + name: r'matchSortedContainersWithCountProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$matchSortedContainersWithCountHash, + dependencies: MatchSortedContainersWithCountFamily._dependencies, + allTransitiveDependencies: + MatchSortedContainersWithCountFamily._allTransitiveDependencies, + searchText: searchText, + ); MatchSortedContainersWithCountProvider._internal( super._createNotifier, { @@ -151,8 +146,9 @@ class MatchSortedContainersWithCountProvider @override Override overrideWith( AsyncValue> Function( - MatchSortedContainersWithCountRef provider) - create, + MatchSortedContainersWithCountRef provider, + ) + create, ) { return ProviderOverride( origin: this, @@ -170,7 +166,7 @@ class MatchSortedContainersWithCountProvider @override AutoDisposeProviderElement>> - createElement() { + createElement() { return _MatchSortedContainersWithCountProviderElement(this); } @@ -219,21 +215,15 @@ class ContainerTabIdsFamily extends Family>> { const ContainerTabIdsFamily(); /// See also [containerTabIds]. - ContainerTabIdsProvider call( - ContainerFilter containerFilter, - ) { - return ContainerTabIdsProvider( - containerFilter, - ); + ContainerTabIdsProvider call(ContainerFilter containerFilter) { + return ContainerTabIdsProvider(containerFilter); } @override ContainerTabIdsProvider getProviderOverride( covariant ContainerTabIdsProvider provider, ) { - return call( - provider.containerFilter, - ); + return call(provider.containerFilter); } static const Iterable? _dependencies = null; @@ -254,24 +244,20 @@ class ContainerTabIdsFamily extends Family>> { /// See also [containerTabIds]. class ContainerTabIdsProvider extends AutoDisposeStreamProvider> { /// See also [containerTabIds]. - ContainerTabIdsProvider( - ContainerFilter containerFilter, - ) : this._internal( - (ref) => containerTabIds( - ref as ContainerTabIdsRef, - containerFilter, - ), - from: containerTabIdsProvider, - name: r'containerTabIdsProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$containerTabIdsHash, - dependencies: ContainerTabIdsFamily._dependencies, - allTransitiveDependencies: - ContainerTabIdsFamily._allTransitiveDependencies, - containerFilter: containerFilter, - ); + ContainerTabIdsProvider(ContainerFilter containerFilter) + : this._internal( + (ref) => containerTabIds(ref as ContainerTabIdsRef, containerFilter), + from: containerTabIdsProvider, + name: r'containerTabIdsProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$containerTabIdsHash, + dependencies: ContainerTabIdsFamily._dependencies, + allTransitiveDependencies: + ContainerTabIdsFamily._allTransitiveDependencies, + containerFilter: containerFilter, + ); ContainerTabIdsProvider._internal( super._createNotifier, { @@ -339,5 +325,6 @@ class _ContainerTabIdsProviderElement ContainerFilter get containerFilter => (origin as ContainerTabIdsProvider).containerFilter; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/geckoview/features/tabs/domain/providers/selected_container.dart b/app/lib/features/geckoview/features/tabs/domain/providers/selected_container.dart index 0a571ec3..8717fda2 100644 --- a/app/lib/features/geckoview/features/tabs/domain/providers/selected_container.dart +++ b/app/lib/features/geckoview/features/tabs/domain/providers/selected_container.dart @@ -8,11 +8,7 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'selected_container.g.dart'; -enum SetContainerResult { - failed, - success, - successHasProxy, -} +enum SetContainerResult { failed, success, successHasProxy } @Riverpod(keepAlive: true) class SelectedContainer extends _$SelectedContainer { @@ -71,16 +67,13 @@ class SelectedContainer extends _$SelectedContainer { @override String? build() { - ref.listen( - containersWithCountProvider, - (previous, next) { - if (state != null && next.valueOrNull != null) { - if (!next.value!.any((container) => container.id == state)) { - clearContainer(); - } + ref.listen(containersWithCountProvider, (previous, next) { + if (state != null && next.valueOrNull != null) { + if (!next.value!.any((container) => container.id == state)) { + clearContainer(); } - }, - ); + } + }); return null; } diff --git a/app/lib/features/geckoview/features/tabs/domain/providers/selected_container.g.dart b/app/lib/features/geckoview/features/tabs/domain/providers/selected_container.g.dart index 5bb06bf4..4cf1faf3 100644 --- a/app/lib/features/geckoview/features/tabs/domain/providers/selected_container.g.dart +++ b/app/lib/features/geckoview/features/tabs/domain/providers/selected_container.g.dart @@ -13,14 +13,15 @@ String _$selectedContainerDataHash() => @ProviderFor(selectedContainerData) final selectedContainerDataProvider = AutoDisposeStreamProvider.internal( - selectedContainerData, - name: r'selectedContainerDataProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$selectedContainerDataHash, - dependencies: null, - allTransitiveDependencies: null, -); + selectedContainerData, + name: r'selectedContainerDataProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$selectedContainerDataHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element @@ -31,14 +32,15 @@ String _$selectedContainerHash() => r'f3dab491337396b8d56daed37a0d85c85aa8d64a'; @ProviderFor(SelectedContainer) final selectedContainerProvider = NotifierProvider.internal( - SelectedContainer.new, - name: r'selectedContainerProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$selectedContainerHash, - dependencies: null, - allTransitiveDependencies: null, -); + SelectedContainer.new, + name: r'selectedContainerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$selectedContainerHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$SelectedContainer = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/tabs/domain/providers/selected_topic.g.dart b/app/lib/features/geckoview/features/tabs/domain/providers/selected_topic.g.dart index 895a1f8c..b9595490 100644 --- a/app/lib/features/geckoview/features/tabs/domain/providers/selected_topic.g.dart +++ b/app/lib/features/geckoview/features/tabs/domain/providers/selected_topic.g.dart @@ -12,14 +12,15 @@ String _$selectedTopicDataHash() => r'fa450784052498014f592c356bde4ff5ec675281'; @ProviderFor(selectedTopicData) final selectedTopicDataProvider = AutoDisposeStreamProvider.internal( - selectedTopicData, - name: r'selectedTopicDataProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$selectedTopicDataHash, - dependencies: null, - allTransitiveDependencies: null, -); + selectedTopicData, + name: r'selectedTopicDataProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$selectedTopicDataHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef SelectedTopicDataRef = AutoDisposeStreamProviderRef; String _$selectedTopicHash() => r'f4e1c0620971a0b7501ee9aff0d5b41da3130ba0'; @@ -29,9 +30,10 @@ String _$selectedTopicHash() => r'f4e1c0620971a0b7501ee9aff0d5b41da3130ba0'; final selectedTopicProvider = NotifierProvider.internal( SelectedTopic.new, name: r'selectedTopicProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$selectedTopicHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$selectedTopicHash, dependencies: null, allTransitiveDependencies: null, ); diff --git a/app/lib/features/geckoview/features/tabs/domain/repositories/container.g.dart b/app/lib/features/geckoview/features/tabs/domain/repositories/container.g.dart index 54b02740..28df11f8 100644 --- a/app/lib/features/geckoview/features/tabs/domain/repositories/container.g.dart +++ b/app/lib/features/geckoview/features/tabs/domain/repositories/container.g.dart @@ -13,14 +13,15 @@ String _$containerRepositoryHash() => @ProviderFor(ContainerRepository) final containerRepositoryProvider = NotifierProvider.internal( - ContainerRepository.new, - name: r'containerRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$containerRepositoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + ContainerRepository.new, + name: r'containerRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$containerRepositoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$ContainerRepository = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/tabs/domain/repositories/tab.dart b/app/lib/features/geckoview/features/tabs/domain/repositories/tab.dart index 3865d5c0..34f3f869 100644 --- a/app/lib/features/geckoview/features/tabs/domain/repositories/tab.dart +++ b/app/lib/features/geckoview/features/tabs/domain/repositories/tab.dart @@ -10,25 +10,26 @@ class TabDataRepository extends _$TabDataRepository { void build() {} Future assignContainer(String tabId, String? containerId) { - return ref.read(tabDatabaseProvider).tabDao.assignContainer( - tabId, - containerId: containerId, - ); + return ref + .read(tabDatabaseProvider) + .tabDao + .assignContainer(tabId, containerId: containerId); } Future assignOrderKey(String tabId, String orderKey) { - return ref.read(tabDatabaseProvider).tabDao.assignOrderKey( - tabId, - orderKey: orderKey, - ); + return ref + .read(tabDatabaseProvider) + .tabDao + .assignOrderKey(tabId, orderKey: orderKey); } Future closeAllTabs(String? containerId) async { - final tabIds = await ref - .read(tabDatabaseProvider) - .tabDao - .containerTabIds(containerId) - .get(); + final tabIds = + await ref + .read(tabDatabaseProvider) + .tabDao + .containerTabIds(containerId) + .get(); if (tabIds.isNotEmpty) { await ref.read(tabRepositoryProvider.notifier).closeTabs(tabIds); diff --git a/app/lib/features/geckoview/features/tabs/domain/repositories/tab.g.dart b/app/lib/features/geckoview/features/tabs/domain/repositories/tab.g.dart index 9d0e9d59..6f83f810 100644 --- a/app/lib/features/geckoview/features/tabs/domain/repositories/tab.g.dart +++ b/app/lib/features/geckoview/features/tabs/domain/repositories/tab.g.dart @@ -12,14 +12,15 @@ String _$tabDataRepositoryHash() => r'30ae87fbcb37facd565cb28de605814cd7db4ce8'; @ProviderFor(TabDataRepository) final tabDataRepositoryProvider = NotifierProvider.internal( - TabDataRepository.new, - name: r'tabDataRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$tabDataRepositoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + TabDataRepository.new, + name: r'tabDataRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$tabDataRepositoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$TabDataRepository = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/tabs/domain/repositories/tab_search.dart b/app/lib/features/geckoview/features/tabs/domain/repositories/tab_search.dart index 55eb9882..d998e302 100644 --- a/app/lib/features/geckoview/features/tabs/domain/repositories/tab_search.dart +++ b/app/lib/features/geckoview/features/tabs/domain/repositories/tab_search.dart @@ -19,17 +19,18 @@ class TabSearchRepository extends _$TabSearchRepository { }) async { if (input.isNotEmpty) { state = await AsyncValue.guard( - () => ref - .read(tabDatabaseProvider) - .tabDao - .queryTabs( - matchPrefix: matchPrefix, - matchSuffix: matchSuffix, - ellipsis: ellipsis, - snippetLength: snippetLength, - searchString: input, - ) - .get(), + () => + ref + .read(tabDatabaseProvider) + .tabDao + .queryTabs( + matchPrefix: matchPrefix, + matchSuffix: matchSuffix, + ellipsis: ellipsis, + snippetLength: snippetLength, + searchString: input, + ) + .get(), ); } else { state = const AsyncValue.data(null); diff --git a/app/lib/features/geckoview/features/tabs/domain/repositories/tab_search.g.dart b/app/lib/features/geckoview/features/tabs/domain/repositories/tab_search.g.dart index 55c50d18..6401e2d6 100644 --- a/app/lib/features/geckoview/features/tabs/domain/repositories/tab_search.g.dart +++ b/app/lib/features/geckoview/features/tabs/domain/repositories/tab_search.g.dart @@ -34,9 +34,7 @@ abstract class _$TabSearchRepository extends BuildlessAutoDisposeAsyncNotifier?> { late final TabSearchPartition partition; - FutureOr?> build( - TabSearchPartition partition, - ); + FutureOr?> build(TabSearchPartition partition); } /// See also [TabSearchRepository]. @@ -50,21 +48,15 @@ class TabSearchRepositoryFamily const TabSearchRepositoryFamily(); /// See also [TabSearchRepository]. - TabSearchRepositoryProvider call( - TabSearchPartition partition, - ) { - return TabSearchRepositoryProvider( - partition, - ); + TabSearchRepositoryProvider call(TabSearchPartition partition) { + return TabSearchRepositoryProvider(partition); } @override TabSearchRepositoryProvider getProviderOverride( covariant TabSearchRepositoryProvider provider, ) { - return call( - provider.partition, - ); + return call(provider.partition); } static const Iterable? _dependencies = null; @@ -83,24 +75,27 @@ class TabSearchRepositoryFamily } /// See also [TabSearchRepository]. -class TabSearchRepositoryProvider extends AutoDisposeAsyncNotifierProviderImpl< - TabSearchRepository, List?> { +class TabSearchRepositoryProvider + extends + AutoDisposeAsyncNotifierProviderImpl< + TabSearchRepository, + List? + > { /// See also [TabSearchRepository]. - TabSearchRepositoryProvider( - TabSearchPartition partition, - ) : this._internal( - () => TabSearchRepository()..partition = partition, - from: tabSearchRepositoryProvider, - name: r'tabSearchRepositoryProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$tabSearchRepositoryHash, - dependencies: TabSearchRepositoryFamily._dependencies, - allTransitiveDependencies: - TabSearchRepositoryFamily._allTransitiveDependencies, - partition: partition, - ); + TabSearchRepositoryProvider(TabSearchPartition partition) + : this._internal( + () => TabSearchRepository()..partition = partition, + from: tabSearchRepositoryProvider, + name: r'tabSearchRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$tabSearchRepositoryHash, + dependencies: TabSearchRepositoryFamily._dependencies, + allTransitiveDependencies: + TabSearchRepositoryFamily._allTransitiveDependencies, + partition: partition, + ); TabSearchRepositoryProvider._internal( super._createNotifier, { @@ -118,9 +113,7 @@ class TabSearchRepositoryProvider extends AutoDisposeAsyncNotifierProviderImpl< FutureOr?> runNotifierBuild( covariant TabSearchRepository notifier, ) { - return notifier.build( - partition, - ); + return notifier.build(partition); } @override @@ -140,8 +133,11 @@ class TabSearchRepositoryProvider extends AutoDisposeAsyncNotifierProviderImpl< } @override - AutoDisposeAsyncNotifierProviderElement?> createElement() { + AutoDisposeAsyncNotifierProviderElement< + TabSearchRepository, + List? + > + createElement() { return _TabSearchRepositoryProviderElement(this); } @@ -168,13 +164,18 @@ mixin TabSearchRepositoryRef } class _TabSearchRepositoryProviderElement - extends AutoDisposeAsyncNotifierProviderElement?> with TabSearchRepositoryRef { + extends + AutoDisposeAsyncNotifierProviderElement< + TabSearchRepository, + List? + > + with TabSearchRepositoryRef { _TabSearchRepositoryProviderElement(super.provider); @override TabSearchPartition get partition => (origin as TabSearchRepositoryProvider).partition; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/geckoview/features/tabs/features/chat/domain/chat_backend.dart b/app/lib/features/geckoview/features/tabs/features/chat/domain/chat_backend.dart index bb9843a6..5755541c 100644 --- a/app/lib/features/geckoview/features/tabs/features/chat/domain/chat_backend.dart +++ b/app/lib/features/geckoview/features/tabs/features/chat/domain/chat_backend.dart @@ -25,11 +25,12 @@ class ChatBackend extends _$ChatBackend { return _embeddingsUpdate!; } - _embeddingsUpdate = - ref.read(documentRepositoryProvider.notifier).updateEmbeddings( - mainDocumentId: _metadata?.mainDocumentId, - contextId: _metadata?.contextId, - ); + _embeddingsUpdate = ref + .read(documentRepositoryProvider.notifier) + .updateEmbeddings( + mainDocumentId: _metadata?.mainDocumentId, + contextId: _metadata?.contextId, + ); _embeddingsUpdate!.whenComplete(() => _embeddingsUpdate = null); @@ -47,16 +48,10 @@ class ChatBackend extends _$ChatBackend { await prepareEmbeddings(); return humanMessageResult.flatMapAsync((humanMessage) async { - await _chatRepository.setTyping( - author: MessageAuthor.ai, - typing: true, - ); + await _chatRepository.setTyping(author: MessageAuthor.ai, typing: true); final result = await _qaMemoryChain.processQuestion(humanMessage.text); - await _chatRepository.setTyping( - author: MessageAuthor.ai, - typing: false, - ); + await _chatRepository.setTyping(author: MessageAuthor.ai, typing: false); await _chatRepository.insertTextMessage( author: MessageAuthor.ai, diff --git a/app/lib/features/geckoview/features/tabs/features/chat/domain/chat_backend.g.dart b/app/lib/features/geckoview/features/tabs/features/chat/domain/chat_backend.g.dart index e52ffd6c..6c6fbc38 100644 --- a/app/lib/features/geckoview/features/tabs/features/chat/domain/chat_backend.g.dart +++ b/app/lib/features/geckoview/features/tabs/features/chat/domain/chat_backend.g.dart @@ -32,9 +32,7 @@ class _SystemHash { abstract class _$ChatBackend extends BuildlessAutoDisposeNotifier { late final String chatId; - void build( - String chatId, - ); + void build(String chatId); } /// See also [ChatBackend]. @@ -47,21 +45,15 @@ class ChatBackendFamily extends Family { const ChatBackendFamily(); /// See also [ChatBackend]. - ChatBackendProvider call( - String chatId, - ) { - return ChatBackendProvider( - chatId, - ); + ChatBackendProvider call(String chatId) { + return ChatBackendProvider(chatId); } @override ChatBackendProvider getProviderOverride( covariant ChatBackendProvider provider, ) { - return call( - provider.chatId, - ); + return call(provider.chatId); } static const Iterable? _dependencies = null; @@ -83,21 +75,19 @@ class ChatBackendFamily extends Family { class ChatBackendProvider extends AutoDisposeNotifierProviderImpl { /// See also [ChatBackend]. - ChatBackendProvider( - String chatId, - ) : this._internal( - () => ChatBackend()..chatId = chatId, - from: chatBackendProvider, - name: r'chatBackendProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$chatBackendHash, - dependencies: ChatBackendFamily._dependencies, - allTransitiveDependencies: - ChatBackendFamily._allTransitiveDependencies, - chatId: chatId, - ); + ChatBackendProvider(String chatId) + : this._internal( + () => ChatBackend()..chatId = chatId, + from: chatBackendProvider, + name: r'chatBackendProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$chatBackendHash, + dependencies: ChatBackendFamily._dependencies, + allTransitiveDependencies: ChatBackendFamily._allTransitiveDependencies, + chatId: chatId, + ); ChatBackendProvider._internal( super._createNotifier, { @@ -112,12 +102,8 @@ class ChatBackendProvider final String chatId; @override - void runNotifierBuild( - covariant ChatBackend notifier, - ) { - return notifier.build( - chatId, - ); + void runNotifierBuild(covariant ChatBackend notifier) { + return notifier.build(chatId); } @override @@ -170,5 +156,6 @@ class _ChatBackendProviderElement @override String get chatId => (origin as ChatBackendProvider).chatId; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/chat_text_message.dart b/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/chat_text_message.dart index 83779728..bc39cfe0 100644 --- a/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/chat_text_message.dart +++ b/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/chat_text_message.dart @@ -14,40 +14,42 @@ class ChatTextMessage extends StatelessWidget { super.key, required this.message, required this.index, - this.padding = const EdgeInsets.symmetric( - horizontal: 16, - vertical: 10, - ), + this.padding = const EdgeInsets.symmetric(horizontal: 16, vertical: 10), this.borderRadius = const BorderRadius.all(Radius.circular(12)), this.onlyEmojiFontSize = 48, }); @override Widget build(BuildContext context) { - final textMessageTheme = - context.select((ChatTheme theme) => theme.textMessageTheme); + final textMessageTheme = context.select( + (ChatTheme theme) => theme.textMessageTheme, + ); final isSentByMe = context.watch() == message.authorId; - final paragraphStyle = isSentByMe - ? textMessageTheme.sentTextStyle - : textMessageTheme.receivedTextStyle; + final paragraphStyle = + isSentByMe + ? textMessageTheme.sentTextStyle + : textMessageTheme.receivedTextStyle; return Container( padding: padding, - decoration: message.isOnlyEmoji == true - ? null - : BoxDecoration( - color: isSentByMe - ? textMessageTheme.sentBackgroundColor - : textMessageTheme.receivedBackgroundColor, - borderRadius: borderRadius, - ), + decoration: + message.isOnlyEmoji == true + ? null + : BoxDecoration( + color: + isSentByMe + ? textMessageTheme.sentBackgroundColor + : textMessageTheme.receivedBackgroundColor, + borderRadius: borderRadius, + ), child: MarkdownBody( data: message.text, selectable: true, styleSheet: MarkdownStyleSheet( - p: message.isOnlyEmoji == true - ? paragraphStyle?.copyWith(fontSize: onlyEmojiFontSize) - : paragraphStyle, + p: + message.isOnlyEmoji == true + ? paragraphStyle?.copyWith(fontSize: onlyEmojiFontSize) + : paragraphStyle, ), ), ); diff --git a/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/qa_chat_input.dart b/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/qa_chat_input.dart index 22c719bf..4a9cdf76 100644 --- a/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/qa_chat_input.dart +++ b/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/qa_chat_input.dart @@ -75,9 +75,10 @@ class _QaChatInputState extends State { @override Widget build(BuildContext context) { - final bottomSafeArea = widget.handleSafeArea == true - ? MediaQuery.of(context).padding.bottom - : 0.0; + final bottomSafeArea = + widget.handleSafeArea == true + ? MediaQuery.of(context).padding.bottom + : 0.0; final inputTheme = context.select((ChatTheme theme) => theme.inputTheme); final onAttachmentTap = context.read(); @@ -100,11 +101,13 @@ class _QaChatInputState extends State { children: [ if (widget.topWidget != null) widget.topWidget!, Padding( - padding: widget.handleSafeArea == true - ? (widget.padding - ?.add(EdgeInsets.only(bottom: bottomSafeArea)) ?? - EdgeInsets.only(bottom: bottomSafeArea)) - : (widget.padding ?? EdgeInsets.zero), + padding: + widget.handleSafeArea == true + ? (widget.padding?.add( + EdgeInsets.only(bottom: bottomSafeArea), + ) ?? + EdgeInsets.only(bottom: bottomSafeArea)) + : (widget.padding ?? EdgeInsets.zero), child: Row( children: [ if (widget.attachmentIcon != null) @@ -142,8 +145,8 @@ class _QaChatInputState extends State { IconButton( icon: widget.sendIcon!, color: inputTheme.hintStyle?.color, - onPressed: () => - _handleSubmitted(_textController.text), + onPressed: + () => _handleSubmitted(_textController.text), ) else const SizedBox.shrink(), @@ -168,9 +171,9 @@ class _QaChatInputState extends State { final bottomSafeArea = MediaQuery.of(context).padding.bottom; context.read().updateHeight( - // only set real height of the input, ignoring safe area - widget.handleSafeArea == true ? height - bottomSafeArea : height, - ); + // only set real height of the input, ignoring safe area + widget.handleSafeArea == true ? height - bottomSafeArea : height, + ); } } diff --git a/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/tab_qa_chat.dart b/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/tab_qa_chat.dart index 475e5ded..36db2fa8 100644 --- a/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/tab_qa_chat.dart +++ b/app/lib/features/geckoview/features/tabs/features/chat/presentation/widgets/tab_qa_chat.dart @@ -40,22 +40,19 @@ class TabQaChat extends HookConsumerWidget { backgroundColor: Theme.of(context).colorScheme.surface, ), builders: Builders( - textMessageBuilder: (context, message, index) => - ChatTextMessage(message: message, index: index), - customMessageBuilder: (context, message, index) => Container( - padding: const EdgeInsets.symmetric( - horizontal: 16, - vertical: 10, - ), - decoration: const BoxDecoration( - color: Color(0xFFF0F0F0), - borderRadius: BorderRadius.all(Radius.circular(12)), - ), - child: const IsTypingIndicator(), - ), - inputBuilder: (context) => const QaChatInput( - attachmentIcon: null, - ), + textMessageBuilder: + (context, message, index) => + ChatTextMessage(message: message, index: index), + customMessageBuilder: + (context, message, index) => Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: const BoxDecoration( + color: Color(0xFFF0F0F0), + borderRadius: BorderRadius.all(Radius.circular(12)), + ), + child: const IsTypingIndicator(), + ), + inputBuilder: (context) => const QaChatInput(attachmentIcon: null), ), chatController: chatController, // crossCache: crossCache, @@ -64,11 +61,12 @@ class TabQaChat extends HookConsumerWidget { await chatBackend.processQAMessage(text); }, currentUserId: MessageAuthor.human.user.id, - resolveUser: (id) => Future.value( - MessageAuthor.values - .firstWhereOrNull((user) => user.user.id == id) - ?.user, - ), + resolveUser: + (id) => Future.value( + MessageAuthor.values + .firstWhereOrNull((user) => user.user.id == id) + ?.user, + ), ); } } diff --git a/app/lib/features/geckoview/features/tabs/features/chat/services/qa_memory_chain.g.dart b/app/lib/features/geckoview/features/tabs/features/chat/services/qa_memory_chain.g.dart index 69271d12..3b9f028d 100644 --- a/app/lib/features/geckoview/features/tabs/features/chat/services/qa_memory_chain.g.dart +++ b/app/lib/features/geckoview/features/tabs/features/chat/services/qa_memory_chain.g.dart @@ -98,23 +98,24 @@ class QAMemoryChainProvider String? mainDocumentId, String? contextId, }) : this._internal( - () => QAMemoryChain() - ..chatId = chatId - ..mainDocumentId = mainDocumentId - ..contextId = contextId, - from: qAMemoryChainProvider, - name: r'qAMemoryChainProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$qAMemoryChainHash, - dependencies: QAMemoryChainFamily._dependencies, - allTransitiveDependencies: - QAMemoryChainFamily._allTransitiveDependencies, - chatId: chatId, - mainDocumentId: mainDocumentId, - contextId: contextId, - ); + () => + QAMemoryChain() + ..chatId = chatId + ..mainDocumentId = mainDocumentId + ..contextId = contextId, + from: qAMemoryChainProvider, + name: r'qAMemoryChainProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$qAMemoryChainHash, + dependencies: QAMemoryChainFamily._dependencies, + allTransitiveDependencies: + QAMemoryChainFamily._allTransitiveDependencies, + chatId: chatId, + mainDocumentId: mainDocumentId, + contextId: contextId, + ); QAMemoryChainProvider._internal( super._createNotifier, { @@ -133,9 +134,7 @@ class QAMemoryChainProvider final String? contextId; @override - void runNotifierBuild( - covariant QAMemoryChain notifier, - ) { + void runNotifierBuild(covariant QAMemoryChain notifier) { return notifier.build( chatId: chatId, mainDocumentId: mainDocumentId, @@ -148,10 +147,11 @@ class QAMemoryChainProvider return ProviderOverride( origin: this, override: QAMemoryChainProvider._internal( - () => create() - ..chatId = chatId - ..mainDocumentId = mainDocumentId - ..contextId = contextId, + () => + create() + ..chatId = chatId + ..mainDocumentId = mainDocumentId + ..contextId = contextId, from: from, name: null, dependencies: null, @@ -214,5 +214,6 @@ class _QAMemoryChainProviderElement @override String? get contextId => (origin as QAMemoryChainProvider).contextId; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/geckoview/features/tabs/features/vector_store/data/database/daos/vector.dart b/app/lib/features/geckoview/features/tabs/features/vector_store/data/database/daos/vector.dart index 771f7f3c..c1116e3f 100644 --- a/app/lib/features/geckoview/features/tabs/features/vector_store/data/database/daos/vector.dart +++ b/app/lib/features/geckoview/features/tabs/features/vector_store/data/database/daos/vector.dart @@ -19,8 +19,9 @@ class VectorDao extends DatabaseAccessor with _$VectorDaoMixin { } Future deleteDocumentsByMainDocumentId(String mainDocumentId) { - return db.document - .deleteWhere((doc) => doc.mainDocumentId.equals(mainDocumentId)); + return db.document.deleteWhere( + (doc) => doc.mainDocumentId.equals(mainDocumentId), + ); } SingleOrNullSelectable getDocumentById(String documentId) { @@ -70,9 +71,10 @@ class VectorDao extends DatabaseAccessor with _$VectorDaoMixin { mainDocumentId: Value.absentIfNull(mainDocumentId), contextId: Value.absentIfNull(contextId), content: document.pageContent, - metadata: (document.metadata.isNotEmpty) - ? Value(jsonEncode(document.metadata)) - : const Value.absent(), + metadata: + (document.metadata.isNotEmpty) + ? Value(jsonEncode(document.metadata)) + : const Value.absent(), contentHash: contentHash, ); }), @@ -82,19 +84,17 @@ class VectorDao extends DatabaseAccessor with _$VectorDaoMixin { Future insertEmbeddings(List<(DocumentData, List)> documents) { return db.documentVec.insertAll( - documents.map( - (doc) { - final (document, vector) = doc; + documents.map((doc) { + final (document, vector) = doc; - return DocumentVecCompanion.insert( - id: document.documentId, - embedding: serializeVector(vector), - mainDocumentId: Value.absentIfNull(document.mainDocumentId), - contextId: Value.absentIfNull(document.contextId), - contentHash: document.contentHash, - ); - }, - ), + return DocumentVecCompanion.insert( + id: document.documentId, + embedding: serializeVector(vector), + mainDocumentId: Value.absentIfNull(document.mainDocumentId), + contextId: Value.absentIfNull(document.contextId), + contentHash: document.contentHash, + ); + }), ); } @@ -121,9 +121,10 @@ class VectorDao extends DatabaseAccessor with _$VectorDaoMixin { mainDocumentId: Value.absentIfNull(mainDocumentId), contextId: Value.absentIfNull(contextId), content: document.pageContent, - metadata: (document.metadata.isNotEmpty) - ? Value(jsonEncode(document.metadata)) - : const Value.absent(), + metadata: + (document.metadata.isNotEmpty) + ? Value(jsonEncode(document.metadata)) + : const Value.absent(), contentHash: contentHash, ), ); diff --git a/app/lib/features/geckoview/features/tabs/features/vector_store/data/models/vector_result.dart b/app/lib/features/geckoview/features/tabs/features/vector_store/data/models/vector_result.dart index 597ed2db..d079fcc6 100644 --- a/app/lib/features/geckoview/features/tabs/features/vector_store/data/models/vector_result.dart +++ b/app/lib/features/geckoview/features/tabs/features/vector_store/data/models/vector_result.dart @@ -17,16 +17,13 @@ class VectorResult { required this.content, required String? metadata, required double? distance, - }) : metadata = (metadata != null) - ? jsonDecode(metadata) as Map - : const {}, - distance = distance!; + }) : metadata = + (metadata != null) + ? jsonDecode(metadata) as Map + : const {}, + distance = distance!; Document toDocument() { - return Document( - id: id, - pageContent: content, - metadata: metadata, - ); + return Document(id: id, pageContent: content, metadata: metadata); } } diff --git a/app/lib/features/geckoview/features/tabs/features/vector_store/domain/repositories/document.dart b/app/lib/features/geckoview/features/tabs/features/vector_store/domain/repositories/document.dart index 4bba77d3..167a63de 100644 --- a/app/lib/features/geckoview/features/tabs/features/vector_store/domain/repositories/document.dart +++ b/app/lib/features/geckoview/features/tabs/features/vector_store/domain/repositories/document.dart @@ -45,16 +45,14 @@ class DocumentRepository extends _$DocumentRepository { final splittedWithSource = splitted.mapNotNull( (splitted) => ( mainDocumentId: splitted.mainDocumentId, - parts: splitted.parts - .map( - (part) => part.copyWith( - metadata: { - ...part.metadata, - 'source': part.id, - }, - ), - ) - .toList() + parts: + splitted.parts + .map( + (part) => part.copyWith( + metadata: {...part.metadata, 'source': part.id}, + ), + ) + .toList(), ), ); @@ -66,17 +64,15 @@ class DocumentRepository extends _$DocumentRepository { }); } - Future updateEmbeddings({ - String? mainDocumentId, - String? contextId, - }) { + Future updateEmbeddings({String? mainDocumentId, String? contextId}) { return Result.fromAsync(() async { - final missing = await _vectorDao - .getDocumentsWithMissingEmbeddings( - mainDocumentId: mainDocumentId, - contextId: contextId, - ) - .get(); + final missing = + await _vectorDao + .getDocumentsWithMissingEmbeddings( + mainDocumentId: mainDocumentId, + contextId: contextId, + ) + .get(); final documentEmbeddings = await _embeddings.embedDocuments( missing @@ -97,16 +93,18 @@ class DocumentRepository extends _$DocumentRepository { final tabContentService = ref.watch(tabContentServiceProvider); - final tabContentSub = - tabContentService.tabContentStream.listen((content) async { - final bestContent = content.isProbablyReaderable - ? content.extractedContentMarkdown - : content.fullContentMarkdown; + final tabContentSub = tabContentService.tabContentStream.listen(( + content, + ) async { + final bestContent = + content.isProbablyReaderable + ? content.extractedContentMarkdown + : content.fullContentMarkdown; if (bestContent != null) { - await _insertMarkdownDocumentsSplitted( - [Document(id: content.tabId, pageContent: bestContent)], - ); + await _insertMarkdownDocumentsSplitted([ + Document(id: content.tabId, pageContent: bestContent), + ]); } }); diff --git a/app/lib/features/geckoview/features/tabs/features/vector_store/domain/repositories/document.g.dart b/app/lib/features/geckoview/features/tabs/features/vector_store/domain/repositories/document.g.dart index 20fbbf34..1a081ad3 100644 --- a/app/lib/features/geckoview/features/tabs/features/vector_store/domain/repositories/document.g.dart +++ b/app/lib/features/geckoview/features/tabs/features/vector_store/domain/repositories/document.g.dart @@ -13,14 +13,15 @@ String _$documentRepositoryHash() => @ProviderFor(DocumentRepository) final documentRepositoryProvider = AutoDisposeNotifierProvider.internal( - DocumentRepository.new, - name: r'documentRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$documentRepositoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + DocumentRepository.new, + name: r'documentRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$documentRepositoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$DocumentRepository = AutoDisposeNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/geckoview/features/tabs/features/vector_store/domain/sqlite_vector_store.dart b/app/lib/features/geckoview/features/tabs/features/vector_store/domain/sqlite_vector_store.dart index c4f48ce2..67d53729 100644 --- a/app/lib/features/geckoview/features/tabs/features/vector_store/domain/sqlite_vector_store.dart +++ b/app/lib/features/geckoview/features/tabs/features/vector_store/domain/sqlite_vector_store.dart @@ -38,14 +38,15 @@ class SqliteVectorStore extends VectorStore { required List embedding, VectorStoreSimilaritySearch config = const VectorStoreSimilaritySearch(), }) async { - Iterable results = await _dao - .vectorSearch( - config: config, - searchVectors: embedding, - contextId: contextId, - mainDocumentId: mainDocumentId, - ) - .get(); + Iterable results = + await _dao + .vectorSearch( + config: config, + searchVectors: embedding, + contextId: contextId, + mainDocumentId: mainDocumentId, + ) + .get(); if (config.scoreThreshold != null) { results = results.where( diff --git a/app/lib/features/geckoview/features/tabs/features/vector_store/utils/document_uuid.dart b/app/lib/features/geckoview/features/tabs/features/vector_store/utils/document_uuid.dart index f3a6e1bf..374bb449 100644 --- a/app/lib/features/geckoview/features/tabs/features/vector_store/utils/document_uuid.dart +++ b/app/lib/features/geckoview/features/tabs/features/vector_store/utils/document_uuid.dart @@ -11,7 +11,7 @@ class DocumentUuid { final Uint8List _baseBytes; DocumentUuid([Uint8List? baseBytes]) - : _baseBytes = baseBytes ?? _rng.generate(); + : _baseBytes = baseBytes ?? _rng.generate(); factory DocumentUuid.fromUuid(String uuid) { return DocumentUuid(UuidParsing.parseAsByteList(uuid)); diff --git a/app/lib/features/geckoview/features/tabs/features/vector_store/utils/markdown_document_splitter.dart b/app/lib/features/geckoview/features/tabs/features/vector_store/utils/markdown_document_splitter.dart index df199ff4..7aa82cfb 100644 --- a/app/lib/features/geckoview/features/tabs/features/vector_store/utils/markdown_document_splitter.dart +++ b/app/lib/features/geckoview/features/tabs/features/vector_store/utils/markdown_document_splitter.dart @@ -39,7 +39,7 @@ List _headerValueList(dynamic value) { return switch (value) { String _ => [value], List _ => value, - _ => throw Exception('Unsupported type') + _ => throw Exception('Unsupported type'), }; } @@ -59,8 +59,9 @@ DocumentParts? splitMarkdownDocument( chunkOverlap: chunkOverlap, ); - final headerChunks = - markdownHeaderSplitter.splitText(originalDoc.pageContent); + final headerChunks = markdownHeaderSplitter.splitText( + originalDoc.pageContent, + ); final docChunks = markdownTextSplitter.splitDocuments(headerChunks); if (docChunks.length == 1) { @@ -85,10 +86,11 @@ DocumentParts? splitMarkdownDocument( ...a.metadata, ...b.metadata, for (final header in intersectingHeaders) - header: { - ..._headerValueList(a.metadata[header]), - ..._headerValueList(b.metadata[header]), - }.toList(), + header: + { + ..._headerValueList(a.metadata[header]), + ..._headerValueList(b.metadata[header]), + }.toList(), }, ); }, @@ -99,14 +101,15 @@ DocumentParts? splitMarkdownDocument( return ( mainDocumentId: mainDocumentId, - parts: mergedDocChunks - .mapIndexed( - (i, doc) => Document( - id: documentIdFactory.getDocumentPartUuid(i), - pageContent: doc.pageContent, - metadata: mergeMaps(originalDoc.metadata, doc.metadata), - ), - ) - .toList() + parts: + mergedDocChunks + .mapIndexed( + (i, doc) => Document( + id: documentIdFactory.getDocumentPartUuid(i), + pageContent: doc.pageContent, + metadata: mergeMaps(originalDoc.metadata, doc.metadata), + ), + ) + .toList(), ); } diff --git a/app/lib/features/geckoview/features/tabs/presentation/screens/container_edit.dart b/app/lib/features/geckoview/features/tabs/presentation/screens/container_edit.dart index 427d489a..47a92e58 100644 --- a/app/lib/features/geckoview/features/tabs/presentation/screens/container_edit.dart +++ b/app/lib/features/geckoview/features/tabs/presentation/screens/container_edit.dart @@ -13,25 +13,11 @@ import 'package:lensai/presentation/icons/tor_icons.dart'; enum _DialogMode { create, edit } const _timeoutOptions = >[ - DropdownMenuItem( - child: Text('Immediately'), - ), - DropdownMenuItem( - value: Duration(minutes: 1), - child: Text('1 minute'), - ), - DropdownMenuItem( - value: Duration(minutes: 5), - child: Text('5 minutes'), - ), - DropdownMenuItem( - value: Duration(minutes: 15), - child: Text('15 minutes'), - ), - DropdownMenuItem( - value: Duration(hours: 1), - child: Text('1 hour'), - ), + DropdownMenuItem(child: Text('Immediately')), + DropdownMenuItem(value: Duration(minutes: 1), child: Text('1 minute')), + DropdownMenuItem(value: Duration(minutes: 5), child: Text('5 minutes')), + DropdownMenuItem(value: Duration(minutes: 15), child: Text('15 minutes')), + DropdownMenuItem(value: Duration(hours: 1), child: Text('1 hour')), ]; class ContainerEditScreen extends HookConsumerWidget { @@ -63,22 +49,22 @@ class ContainerEditScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final selectedColor = useState(initialContainer.color); - final contextualIdentity = - useState(initialContainer.metadata.contextualIdentity); + final contextualIdentity = useState( + initialContainer.metadata.contextualIdentity, + ); final authSettings = useState(initialContainer.metadata.authSettings); final useProxy = useState(initialContainer.metadata.useProxy); - final textController = - useTextEditingController(text: initialContainer.name); + final textController = useTextEditingController( + text: initialContainer.name, + ); return Scaffold( appBar: AppBar( - title: Text( - switch (_mode) { - _DialogMode.create => 'New Container', - _DialogMode.edit => 'Edit Container', - }, - ), + title: Text(switch (_mode) { + _DialogMode.create => 'New Container', + _DialogMode.edit => 'Edit Container', + }), actions: [ IconButton( onPressed: () async { @@ -95,7 +81,9 @@ class ContainerEditScreen extends HookConsumerWidget { //Check for permissions, when auth is set or getting set if (initialContainer - .metadata.authSettings.authenticationRequired || + .metadata + .authSettings + .authenticationRequired || container.metadata.authSettings.authenticationRequired) { final authResult = await ref .read(localAuthenticationServiceProvider.notifier) @@ -161,8 +149,9 @@ class ContainerEditScreen extends HookConsumerWidget { onPressed: () async { final color = await showDialog( context: context, - builder: (context) => - ColorPickerDialog(selectedColor.value), + builder: + (context) => + ColorPickerDialog(selectedColor.value), ); if (color != null) { @@ -175,19 +164,22 @@ class ContainerEditScreen extends HookConsumerWidget { title: const Text('Cookie Isolation'), secondary: const Icon(MdiIcons.cookieLock), contentPadding: EdgeInsets.zero, - onChanged: (_mode == _DialogMode.create) - ? (value) { - contextualIdentity.value = value - ? initialContainer - .metadata.contextualIdentity ?? - uuid.v4() - : null; + onChanged: + (_mode == _DialogMode.create) + ? (value) { + contextualIdentity.value = + value + ? initialContainer + .metadata + .contextualIdentity ?? + uuid.v4() + : null; - if (!value && useProxy.value) { - useProxy.value = false; + if (!value && useProxy.value) { + useProxy.value = false; + } } - } - : null, + : null, ), SwitchListTile.adaptive( value: useProxy.value, @@ -196,19 +188,20 @@ class ContainerEditScreen extends HookConsumerWidget { contentPadding: EdgeInsets.zero, onChanged: switch (_mode) { _DialogMode.create => (value) { - if (value && contextualIdentity.value == null) { - contextualIdentity.value = initialContainer - .metadata.contextualIdentity ?? - uuid.v4(); - } + if (value && contextualIdentity.value == null) { + contextualIdentity.value = + initialContainer.metadata.contextualIdentity ?? + uuid.v4(); + } - useProxy.value = value; - }, - _DialogMode.edit => (contextualIdentity.value != null) - ? (value) { + useProxy.value = value; + }, + _DialogMode.edit => + (contextualIdentity.value != null) + ? (value) { useProxy.value = value; } - : null, + : null, }, ), SwitchListTile.adaptive( @@ -224,9 +217,7 @@ class ContainerEditScreen extends HookConsumerWidget { if (authSettings.value.authenticationRequired) CheckboxListTile.adaptive( value: authSettings.value.lockOnAppBackground, - title: const Text( - 'Auto-lock on background', - ), + title: const Text('Auto-lock on background'), controlAffinity: ListTileControlAffinity.leading, onChanged: (value) { authSettings.value = authSettings.value.copyWith @@ -236,23 +227,21 @@ class ContainerEditScreen extends HookConsumerWidget { if (authSettings.value.authenticationRequired) CheckboxListTile.adaptive( value: authSettings.value.lockTimeout != null, - title: const Text( - 'Timeout', - ), + title: const Text('Timeout'), controlAffinity: ListTileControlAffinity.leading, onChanged: (value) { final newValue = value! ? _timeoutOptions[1].value : null; - authSettings.value = - authSettings.value.copyWith.lockTimeout(newValue); + authSettings.value = authSettings.value.copyWith + .lockTimeout(newValue); }, secondary: DropdownButton( value: authSettings.value.lockTimeout, items: _timeoutOptions, onChanged: (value) { - authSettings.value = - authSettings.value.copyWith.lockTimeout(value); + authSettings.value = authSettings.value.copyWith + .lockTimeout(value); }, ), ), diff --git a/app/lib/features/geckoview/features/tabs/presentation/screens/container_list.dart b/app/lib/features/geckoview/features/tabs/presentation/screens/container_list.dart index 315432e6..90028017 100644 --- a/app/lib/features/geckoview/features/tabs/presentation/screens/container_list.dart +++ b/app/lib/features/geckoview/features/tabs/presentation/screens/container_list.dart @@ -19,9 +19,7 @@ class ContainerListScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return Scaffold( - appBar: AppBar( - title: const Text('Containers'), - ), + appBar: AppBar(title: const Text('Containers')), body: HookConsumer( builder: (context, ref, child) { final containersAsync = ref.watch(containersWithCountProvider); @@ -30,79 +28,90 @@ class ContainerListScreen extends HookConsumerWidget { return Skeletonizer( enabled: containersAsync.isLoading, child: containersAsync.when( - data: (containers) => FadingScroll( - fadingSize: 25, - builder: (context, controller) { - return ListView.builder( - controller: controller, - itemCount: containers.length, - itemBuilder: (context, index) { - final container = containers[index]; - return Slidable( - key: ValueKey(container.id), - endActionPane: ActionPane( - motion: const ScrollMotion(), - children: [ - SlidableAction( - onPressed: (context) async { - await ref - .read(containerRepositoryProvider.notifier) - .deleteContainer(container.id); - }, - backgroundColor: - Theme.of(context).colorScheme.errorContainer, - foregroundColor: Theme.of(context) - .colorScheme - .onErrorContainer, - icon: Icons.delete, - label: 'Delete', + data: + (containers) => FadingScroll( + fadingSize: 25, + builder: (context, controller) { + return ListView.builder( + controller: controller, + itemCount: containers.length, + itemBuilder: (context, index) { + final container = containers[index]; + return Slidable( + key: ValueKey(container.id), + endActionPane: ActionPane( + motion: const ScrollMotion(), + children: [ + SlidableAction( + onPressed: (context) async { + await ref + .read( + containerRepositoryProvider.notifier, + ) + .deleteContainer(container.id); + }, + backgroundColor: + Theme.of( + context, + ).colorScheme.errorContainer, + foregroundColor: + Theme.of( + context, + ).colorScheme.onErrorContainer, + icon: Icons.delete, + label: 'Delete', + ), + ], ), - ], - ), - child: ContainerListTile( - container, - isSelected: container.id == selectedContainer, - onTap: () async { - if (container.id == selectedContainer) { - ref - .read(selectedContainerProvider.notifier) - .clearContainer(); - } else { - final result = await ref - .read(selectedContainerProvider.notifier) - .setContainerId(container.id); + child: ContainerListTile( + container, + isSelected: container.id == selectedContainer, + onTap: () async { + if (container.id == selectedContainer) { + ref + .read(selectedContainerProvider.notifier) + .clearContainer(); + } else { + final result = await ref + .read(selectedContainerProvider.notifier) + .setContainerId(container.id); - if (context.mounted && - result == - SetContainerResult.successHasProxy) { - await ref - .read(startProxyControllerProvider.notifier) - .maybeStartProxy(context); - } - } - }, - ), + if (context.mounted && + result == + SetContainerResult.successHasProxy) { + await ref + .read( + startProxyControllerProvider.notifier, + ) + .maybeStartProxy(context); + } + } + }, + ), + ); + }, ); }, - ); - }, - ), + ), error: (error, stackTrace) => SizedBox.shrink(), - loading: () => ListView.builder( - itemCount: 3, - itemBuilder: (context, index) => ContainerListTile( - ContainerData(id: 'null', color: Colors.transparent), - isSelected: false, - ), - ), + loading: + () => ListView.builder( + itemCount: 3, + itemBuilder: + (context, index) => ContainerListTile( + ContainerData(id: 'null', color: Colors.transparent), + isSelected: false, + ), + ), ), ); }, ), floatingActionButton: FloatingActionButton( onPressed: () async { - final initialColor = - await ref.read(unusedRandomContainerColorProvider.future); + final initialColor = await ref.read( + unusedRandomContainerColorProvider.future, + ); if (context.mounted) { final result = await context.push( diff --git a/app/lib/features/geckoview/features/tabs/presentation/widgets/container_chips.dart b/app/lib/features/geckoview/features/tabs/presentation/widgets/container_chips.dart index d472e993..dff0fd96 100644 --- a/app/lib/features/geckoview/features/tabs/presentation/widgets/container_chips.dart +++ b/app/lib/features/geckoview/features/tabs/presentation/widgets/container_chips.dart @@ -40,15 +40,18 @@ class ContainerChips extends HookConsumerWidget { () => searchTextController?.text, ); - final containersAsync = - ref.watch(matchSortedContainersWithCountProvider(searchText)); + final containersAsync = ref.watch( + matchSortedContainersWithCountProvider(searchText), + ); final dragTargetTabId = useValueNotifier(null); return containersAsync.when( data: (containers) { - final availableContainers = containerFilter - .mapNotNull((filter) => containers.where(filter).toList()) ?? + final availableContainers = + containerFilter.mapNotNull( + (filter) => containers.where(filter).toList(), + ) ?? containers; if (selectedContainer == null && @@ -66,16 +69,17 @@ class ContainerChips extends HookConsumerWidget { child: SelectableChips( deleteIcon: false, itemId: (container) => container.id, - itemAvatar: (container) => Container( - width: 20.0, - height: 20.0, - decoration: BoxDecoration( - color: container.color, - shape: BoxShape.circle, - ), - ), - itemLabel: (container) => - Text(container.name ?? 'New Container'), + itemAvatar: + (container) => Container( + width: 20.0, + height: 20.0, + decoration: BoxDecoration( + color: container.color, + shape: BoxShape.circle, + ), + ), + itemLabel: + (container) => Text(container.name ?? 'New Container'), itemBadgeCount: (container) => container.tabCount, itemWrap: (child, container) { return HookBuilder( @@ -85,7 +89,9 @@ class ContainerChips extends HookConsumerWidget { return DragTarget( onMove: (details) { - ref.read(willAcceptDropProvider.notifier).setData( + ref + .read(willAcceptDropProvider.notifier) + .setData( ContainerDropData(details.data.tabId), ); @@ -103,12 +109,14 @@ class ContainerChips extends HookConsumerWidget { .read(tabDataRepositoryProvider.notifier) .containerTabId(details.data.tabId); - final containerData = - await containerId.mapNotNull( - (containerId) => ref - .read(containerRepositoryProvider.notifier) - .getContainerData(containerId), - ); + final containerData = await containerId + .mapNotNull( + (containerId) => ref + .read( + containerRepositoryProvider.notifier, + ) + .getContainerData(containerId), + ); if (container.metadata.contextualIdentity == containerData?.metadata.contextualIdentity) { @@ -139,24 +147,26 @@ class ContainerChips extends HookConsumerWidget { context.findRenderObject() as RenderBox?; final position = renderBox?.localToGlobal(Offset.zero) ?? - Offset.zero; + Offset.zero; return OverlayPortal( controller: overlayController, - overlayChildBuilder: (context) => Positioned( - top: position.dy, - left: position.dx, - child: IgnorePointer( - child: Transform.scale( - scale: 1.1, - child: child, + overlayChildBuilder: + (context) => Positioned( + top: position.dy, + left: position.dx, + child: IgnorePointer( + child: Transform.scale( + scale: 1.1, + child: child, + ), + ), ), - ), - ), child: HookBuilder( builder: (context) { - final dragTabId = - useValueListenable(dragTargetTabId); + final dragTabId = useValueListenable( + dragTargetTabId, + ); return Opacity( opacity: (dragTabId == null) ? 1.0 : 0.0, @@ -201,10 +211,7 @@ class ContainerChips extends HookConsumerWidget { ); }, error: (error, stackTrace) => const SizedBox.shrink(), - loading: () => const SizedBox( - height: 48, - width: double.infinity, - ), + loading: () => const SizedBox(height: 48, width: double.infinity), ); } } diff --git a/app/lib/features/geckoview/features/tabs/presentation/widgets/container_list_tile.dart b/app/lib/features/geckoview/features/tabs/presentation/widgets/container_list_tile.dart index 2fb93717..1aefcae3 100644 --- a/app/lib/features/geckoview/features/tabs/presentation/widgets/container_list_tile.dart +++ b/app/lib/features/geckoview/features/tabs/presentation/widgets/container_list_tile.dart @@ -28,10 +28,7 @@ class ContainerListTile extends HookWidget { title: Text(container.name ?? 'New Container'), trailing: IconButton( onPressed: () async { - await context.push( - ContainerEditRoute().location, - extra: container, - ); + await context.push(ContainerEditRoute().location, extra: container); }, icon: const Icon(Icons.chevron_right), ), diff --git a/app/lib/features/geckoview/features/tabs/presentation/widgets/material_color_picker.dart b/app/lib/features/geckoview/features/tabs/presentation/widgets/material_color_picker.dart index 3aefabc2..11a571c7 100644 --- a/app/lib/features/geckoview/features/tabs/presentation/widgets/material_color_picker.dart +++ b/app/lib/features/geckoview/features/tabs/presentation/widgets/material_color_picker.dart @@ -47,49 +47,55 @@ class _MaterialPickerState extends State { Widget build(BuildContext context) { final isPortrait = MediaQuery.of(context).orientation == Orientation.portrait || - widget.portraitOnly; + widget.portraitOnly; Widget colorList() { return Container( clipBehavior: Clip.hardEdge, decoration: const BoxDecoration(), child: Container( - margin: isPortrait - ? const EdgeInsets.only(right: 10) - : const EdgeInsets.only(bottom: 10), + margin: + isPortrait + ? const EdgeInsets.only(right: 10) + : const EdgeInsets.only(bottom: 10), width: isPortrait ? 60 : null, height: isPortrait ? null : 60, decoration: BoxDecoration( color: Theme.of(context).cardColor, boxShadow: [ BoxShadow( - color: (Theme.of(context).brightness == Brightness.light) - ? (Theme.of(context).brightness == Brightness.light) - ? Colors.grey[300]! - : Colors.black38 - : Colors.black38, + color: + (Theme.of(context).brightness == Brightness.light) + ? (Theme.of(context).brightness == Brightness.light) + ? Colors.grey[300]! + : Colors.black38 + : Colors.black38, blurRadius: 10, ), ], - border: isPortrait - ? Border( - right: BorderSide( - color: (Theme.of(context).brightness == Brightness.light) - ? Colors.grey[300]! - : Colors.black38, + border: + isPortrait + ? Border( + right: BorderSide( + color: + (Theme.of(context).brightness == Brightness.light) + ? Colors.grey[300]! + : Colors.black38, + ), + ) + : Border( + top: BorderSide( + color: + (Theme.of(context).brightness == Brightness.light) + ? Colors.grey[300]! + : Colors.black38, + ), ), - ) - : Border( - top: BorderSide( - color: (Theme.of(context).brightness == Brightness.light) - ? Colors.grey[300]! - : Colors.black38, - ), - ), ), child: ScrollConfiguration( - behavior: ScrollConfiguration.of(context) - .copyWith(dragDevices: PointerDeviceKind.values.toSet()), + behavior: ScrollConfiguration.of( + context, + ).copyWith(dragDevices: PointerDeviceKind.values.toSet()), child: FadingScroll( fadingSize: 25, builder: (context, controller) { @@ -112,9 +118,10 @@ class _MaterialPickerState extends State { }, child: Container( color: const Color(0x00000000), - padding: isPortrait - ? const EdgeInsets.fromLTRB(0, 7, 0, 7) - : const EdgeInsets.fromLTRB(7, 0, 7, 0), + padding: + isPortrait + ? const EdgeInsets.fromLTRB(0, 7, 0, 7) + : const EdgeInsets.fromLTRB(7, 0, 7, 0), child: Align( child: AnimatedContainer( duration: const Duration(milliseconds: 300), @@ -123,33 +130,38 @@ class _MaterialPickerState extends State { decoration: BoxDecoration( color: colorType, shape: BoxShape.circle, - boxShadow: _currentColorType == colors - ? [ - if (colorType == - Theme.of(context).cardColor) - BoxShadow( - color: - (Theme.of(context).brightness == - Brightness.light) - ? Colors.grey[300]! - : Colors.black38, - blurRadius: 10, - ) - else - BoxShadow( - color: colorType, - blurRadius: 10, - ), - ] - : null, - border: colorType == Theme.of(context).cardColor - ? Border.all( - color: (Theme.of(context).brightness == - Brightness.light) - ? Colors.grey[300]! - : Colors.black38, - ) - : null, + boxShadow: + _currentColorType == colors + ? [ + if (colorType == + Theme.of(context).cardColor) + BoxShadow( + color: + (Theme.of( + context, + ).brightness == + Brightness.light) + ? Colors.grey[300]! + : Colors.black38, + blurRadius: 10, + ) + else + BoxShadow( + color: colorType, + blurRadius: 10, + ), + ] + : null, + border: + colorType == Theme.of(context).cardColor + ? Border.all( + color: + (Theme.of(context).brightness == + Brightness.light) + ? Colors.grey[300]! + : Colors.black38, + ) + : null, ), ), ), @@ -171,8 +183,9 @@ class _MaterialPickerState extends State { Widget shadingList() { return ScrollConfiguration( - behavior: ScrollConfiguration.of(context) - .copyWith(dragDevices: PointerDeviceKind.values.toSet()), + behavior: ScrollConfiguration.of( + context, + ).copyWith(dragDevices: PointerDeviceKind.values.toSet()), child: FadingScroll( fadingSize: 25, builder: (context, controller) { @@ -184,8 +197,9 @@ class _MaterialPickerState extends State { const Padding(padding: EdgeInsets.only(top: 15)) else const Padding(padding: EdgeInsets.only(left: 15)), - ...shadingTypes(_currentColorType) - .map((Map colors) { + ...shadingTypes(_currentColorType).map(( + Map colors, + ) { final Color color = colors.keys.first; return GestureDetector( onTap: () { @@ -194,99 +208,111 @@ class _MaterialPickerState extends State { }, child: Container( color: const Color(0x00000000), - margin: isPortrait - ? const EdgeInsets.only(right: 10) - : const EdgeInsets.only(bottom: 10), - padding: isPortrait - ? const EdgeInsets.fromLTRB(0, 7, 0, 7) - : const EdgeInsets.fromLTRB(7, 0, 7, 0), + margin: + isPortrait + ? const EdgeInsets.only(right: 10) + : const EdgeInsets.only(bottom: 10), + padding: + isPortrait + ? const EdgeInsets.fromLTRB(0, 7, 0, 7) + : const EdgeInsets.fromLTRB(7, 0, 7, 0), child: Align( child: AnimatedContainer( curve: Curves.fastOutSlowIn, duration: const Duration(milliseconds: 500), - width: isPortrait - ? (_currentShading == color ? 250 : 230) - : (_currentShading == color ? 50 : 30), + width: + isPortrait + ? (_currentShading == color ? 250 : 230) + : (_currentShading == color ? 50 : 30), height: isPortrait ? 50 : 220, decoration: BoxDecoration( color: color, - boxShadow: _currentShading == color - ? [ - if ((color == Colors.white) || - (color == Colors.black)) - BoxShadow( - color: (Theme.of(context).brightness == - Brightness.light) - ? Colors.grey[300]! - : Colors.black38, - blurRadius: 10, - ) - else - BoxShadow( - color: color, - blurRadius: 10, - ), - ] - : null, - border: (color == Colors.white) || - (color == Colors.black) - ? Border.all( - color: (Theme.of(context).brightness == - Brightness.light) - ? Colors.grey[300]! - : Colors.black38, - ) - : null, + boxShadow: + _currentShading == color + ? [ + if ((color == Colors.white) || + (color == Colors.black)) + BoxShadow( + color: + (Theme.of(context).brightness == + Brightness.light) + ? Colors.grey[300]! + : Colors.black38, + blurRadius: 10, + ) + else + BoxShadow(color: color, blurRadius: 10), + ] + : null, + border: + (color == Colors.white) || + (color == Colors.black) + ? Border.all( + color: + (Theme.of(context).brightness == + Brightness.light) + ? Colors.grey[300]! + : Colors.black38, + ) + : null, ), - child: widget.enableLabel - ? isPortrait - ? Row( - children: [ - Text( - ' ${colors.values.first}', - style: TextStyle( - color: useWhiteForeground(color) - ? Colors.white - : Colors.black, + child: + widget.enableLabel + ? isPortrait + ? Row( + children: [ + Text( + ' ${colors.values.first}', + style: TextStyle( + color: + useWhiteForeground(color) + ? Colors.white + : Colors.black, + ), ), - ), - Expanded( - child: Align( - alignment: Alignment.centerRight, - child: Text( - '#${color.toString().replaceFirst('Color(0xff', '').replaceFirst(')', '').toUpperCase()} ', - style: TextStyle( - color: useWhiteForeground(color) - ? Colors.white - : Colors.black, - fontWeight: FontWeight.bold, + Expanded( + child: Align( + alignment: Alignment.centerRight, + child: Text( + '#${color.toString().replaceFirst('Color(0xff', '').replaceFirst(')', '').toUpperCase()} ', + style: TextStyle( + color: + useWhiteForeground(color) + ? Colors.white + : Colors.black, + fontWeight: FontWeight.bold, + ), ), ), ), + ], + ) + : AnimatedOpacity( + duration: const Duration( + milliseconds: 300, ), - ], - ) - : AnimatedOpacity( - duration: - const Duration(milliseconds: 300), - opacity: _currentShading == color ? 1 : 0, - child: Container( - padding: const EdgeInsets.only(top: 16), - alignment: Alignment.topCenter, - child: Text( - colors.values.first, - style: TextStyle( - color: useWhiteForeground(color) - ? Colors.white - : Colors.black, - fontWeight: FontWeight.bold, - fontSize: 14, + opacity: + _currentShading == color ? 1 : 0, + child: Container( + padding: const EdgeInsets.only( + top: 16, + ), + alignment: Alignment.topCenter, + child: Text( + colors.values.first, + style: TextStyle( + color: + useWhiteForeground(color) + ? Colors.white + : Colors.black, + fontWeight: FontWeight.bold, + fontSize: 14, + ), + softWrap: false, ), - softWrap: false, ), - ), - ) - : const SizedBox(), + ) + : const SizedBox(), ), ), ), diff --git a/app/lib/features/geckoview/features/tabs/utils/color_palette.dart b/app/lib/features/geckoview/features/tabs/utils/color_palette.dart index d38eca6b..f04a4ddd 100644 --- a/app/lib/features/geckoview/features/tabs/utils/color_palette.dart +++ b/app/lib/features/geckoview/features/tabs/utils/color_palette.dart @@ -17,11 +17,12 @@ bool useWhiteForeground(Color backgroundColor, {double bias = 0.0}) { // return 1.05 / (color.computeLuminance() + 0.05) > 4.5; // New: - final v = sqrt( - pow(backgroundColor.r, 2) * 0.299 + - pow(backgroundColor.g, 2) * 0.587 + - pow(backgroundColor.b, 2) * 0.114, - ).round(); + final v = + sqrt( + pow(backgroundColor.r, 2) * 0.299 + + pow(backgroundColor.g, 2) * 0.587 + + pow(backgroundColor.b, 2) * 0.114, + ).round(); return v < (130 + bias); } @@ -54,9 +55,20 @@ List> shadingTypes(List colors) { for (final Color colorType in colors) { if (colorType == Colors.grey) { result.addAll( - [50, 100, 200, 300, 350, 400, 500, 600, 700, 800, 850, 900] - .map((int shade) => {Colors.grey[shade]!: shade.toString()}) - .toList(), + [ + 50, + 100, + 200, + 300, + 350, + 400, + 500, + 600, + 700, + 800, + 850, + 900, + ].map((int shade) => {Colors.grey[shade]!: shade.toString()}).toList(), ); } else if (colorType == Colors.black || colorType == Colors.white) { result.addAll([ @@ -65,15 +77,27 @@ List> shadingTypes(List colors) { ]); } else if (colorType is MaterialAccentColor) { result.addAll( - [100, 200, 400, 700] - .map((int shade) => {colorType[shade]!: 'A$shade'}) - .toList(), + [ + 100, + 200, + 400, + 700, + ].map((int shade) => {colorType[shade]!: 'A$shade'}).toList(), ); } else if (colorType is MaterialColor) { result.addAll( - [50, 100, 200, 300, 400, 500, 600, 700, 800, 900] - .map((int shade) => {colorType[shade]!: shade.toString()}) - .toList(), + [ + 50, + 100, + 200, + 300, + 400, + 500, + 600, + 700, + 800, + 900, + ].map((int shade) => {colorType[shade]!: shade.toString()}).toList(), ); } else { result.add({const Color(0x00000000): ''}); diff --git a/app/lib/features/kagi/data/services/autosuggest.dart b/app/lib/features/kagi/data/services/autosuggest.dart index 418c2875..566532b3 100644 --- a/app/lib/features/kagi/data/services/autosuggest.dart +++ b/app/lib/features/kagi/data/services/autosuggest.dart @@ -22,20 +22,17 @@ class KagiAutosuggestService extends _$KagiAutosuggestService @override Future>> getSuggestions(String query) async { - return Result.fromAsync( - () async { - final response = await _client - .get(_baseUrl.replace(queryParameters: {'q': query})) - .timeout(const Duration(seconds: 5)); + return Result.fromAsync(() async { + final response = await _client + .get(_baseUrl.replace(queryParameters: {'q': query})) + .timeout(const Duration(seconds: 5)); - final results = jsonDecode(utf8.decode(response.bodyBytes)) as List; - return switch (results.last) { - final String result => [result], - final List resultList => resultList.cast(), - _ => [] - }; - }, - exceptionHandler: handleHttpError, - ); + final results = jsonDecode(utf8.decode(response.bodyBytes)) as List; + return switch (results.last) { + final String result => [result], + final List resultList => resultList.cast(), + _ => [], + }; + }, exceptionHandler: handleHttpError); } } diff --git a/app/lib/features/kagi/data/services/autosuggest.g.dart b/app/lib/features/kagi/data/services/autosuggest.g.dart index 09b3fc93..e07f63b3 100644 --- a/app/lib/features/kagi/data/services/autosuggest.g.dart +++ b/app/lib/features/kagi/data/services/autosuggest.g.dart @@ -13,14 +13,15 @@ String _$kagiAutosuggestServiceHash() => @ProviderFor(KagiAutosuggestService) final kagiAutosuggestServiceProvider = NotifierProvider.internal( - KagiAutosuggestService.new, - name: r'kagiAutosuggestServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$kagiAutosuggestServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + KagiAutosuggestService.new, + name: r'kagiAutosuggestServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$kagiAutosuggestServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$KagiAutosuggestService = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/kagi/data/services/chat.g.dart b/app/lib/features/kagi/data/services/chat.g.dart index 7edee631..c45e6615 100644 --- a/app/lib/features/kagi/data/services/chat.g.dart +++ b/app/lib/features/kagi/data/services/chat.g.dart @@ -12,14 +12,15 @@ String _$kagiChatServiceHash() => r'a112b70b42fe9d650c9d4dc643bf965ddce7bfa6'; @ProviderFor(KagiChatService) final kagiChatServiceProvider = NotifierProvider.internal( - KagiChatService.new, - name: r'kagiChatServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$kagiChatServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + KagiChatService.new, + name: r'kagiChatServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$kagiChatServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$KagiChatService = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/kagi/data/services/session.g.dart b/app/lib/features/kagi/data/services/session.g.dart index bcbe0833..ea985582 100644 --- a/app/lib/features/kagi/data/services/session.g.dart +++ b/app/lib/features/kagi/data/services/session.g.dart @@ -13,14 +13,15 @@ String _$kagiSessionServiceHash() => @ProviderFor(KagiSessionService) final kagiSessionServiceProvider = AutoDisposeNotifierProvider.internal( - KagiSessionService.new, - name: r'kagiSessionServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$kagiSessionServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + KagiSessionService.new, + name: r'kagiSessionServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$kagiSessionServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$KagiSessionService = AutoDisposeNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/kagi/domain/repositories/search_suggestions.dart b/app/lib/features/kagi/domain/repositories/search_suggestions.dart index c7debb87..69c92f19 100644 --- a/app/lib/features/kagi/domain/repositories/search_suggestions.dart +++ b/app/lib/features/kagi/domain/repositories/search_suggestions.dart @@ -32,29 +32,29 @@ class SearchSuggestionsRepository extends _$SearchSuggestionsRepository { return _queryStreamController.stream .sampleTime(const Duration(milliseconds: 100)) - .switchMap>( - (query) { - if (query.isEmpty) { - return Stream.value([]); - } + .switchMap>((query) { + if (query.isEmpty) { + return Stream.value([]); + } - final cached = _cache.get(query); - if (cached != null) { - return Stream.value(cached); - } + final cached = _cache.get(query); + if (cached != null) { + return Stream.value(cached); + } - return suggestionsProvider - // ignore: discarded_futures - .getSuggestions(query) - // ignore: discarded_futures - .then((result) { - result.onSuccess((result) { - _cache.set(query, result); - }); + return suggestionsProvider + // ignore: discarded_futures + .getSuggestions(query) + // ignore: discarded_futures + .then((result) { + result.onSuccess((result) { + _cache.set(query, result); + }); - return result.value; - }).asStream(); - }, - ).asBroadcastStream(); + return result.value; + }) + .asStream(); + }) + .asBroadcastStream(); } } diff --git a/app/lib/features/kagi/domain/repositories/search_suggestions.g.dart b/app/lib/features/kagi/domain/repositories/search_suggestions.g.dart index 43f6535a..67c8d9d7 100644 --- a/app/lib/features/kagi/domain/repositories/search_suggestions.g.dart +++ b/app/lib/features/kagi/domain/repositories/search_suggestions.g.dart @@ -53,18 +53,14 @@ class SearchSuggestionsRepositoryFamily SearchSuggestionsRepositoryProvider call( ISearchSuggestionProvider suggestionsProvider, ) { - return SearchSuggestionsRepositoryProvider( - suggestionsProvider, - ); + return SearchSuggestionsRepositoryProvider(suggestionsProvider); } @override SearchSuggestionsRepositoryProvider getProviderOverride( covariant SearchSuggestionsRepositoryProvider provider, ) { - return call( - provider.suggestionsProvider, - ); + return call(provider.suggestionsProvider); } static const Iterable? _dependencies = null; @@ -83,25 +79,30 @@ class SearchSuggestionsRepositoryFamily } /// See also [SearchSuggestionsRepository]. -class SearchSuggestionsRepositoryProvider extends NotifierProviderImpl< - SearchSuggestionsRepository, Raw>>> { +class SearchSuggestionsRepositoryProvider + extends + NotifierProviderImpl< + SearchSuggestionsRepository, + Raw>> + > { /// See also [SearchSuggestionsRepository]. SearchSuggestionsRepositoryProvider( ISearchSuggestionProvider suggestionsProvider, ) : this._internal( - () => SearchSuggestionsRepository() - ..suggestionsProvider = suggestionsProvider, - from: searchSuggestionsRepositoryProvider, - name: r'searchSuggestionsRepositoryProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$searchSuggestionsRepositoryHash, - dependencies: SearchSuggestionsRepositoryFamily._dependencies, - allTransitiveDependencies: - SearchSuggestionsRepositoryFamily._allTransitiveDependencies, - suggestionsProvider: suggestionsProvider, - ); + () => + SearchSuggestionsRepository() + ..suggestionsProvider = suggestionsProvider, + from: searchSuggestionsRepositoryProvider, + name: r'searchSuggestionsRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$searchSuggestionsRepositoryHash, + dependencies: SearchSuggestionsRepositoryFamily._dependencies, + allTransitiveDependencies: + SearchSuggestionsRepositoryFamily._allTransitiveDependencies, + suggestionsProvider: suggestionsProvider, + ); SearchSuggestionsRepositoryProvider._internal( super._createNotifier, { @@ -119,9 +120,7 @@ class SearchSuggestionsRepositoryProvider extends NotifierProviderImpl< Raw>> runNotifierBuild( covariant SearchSuggestionsRepository notifier, ) { - return notifier.build( - suggestionsProvider, - ); + return notifier.build(suggestionsProvider); } @override @@ -141,8 +140,11 @@ class SearchSuggestionsRepositoryProvider extends NotifierProviderImpl< } @override - NotifierProviderElement>>> createElement() { + NotifierProviderElement< + SearchSuggestionsRepository, + Raw>> + > + createElement() { return _SearchSuggestionsRepositoryProviderElement(this); } @@ -170,13 +172,18 @@ mixin SearchSuggestionsRepositoryRef } class _SearchSuggestionsRepositoryProviderElement - extends NotifierProviderElement>>> with SearchSuggestionsRepositoryRef { + extends + NotifierProviderElement< + SearchSuggestionsRepository, + Raw>> + > + with SearchSuggestionsRepositoryRef { _SearchSuggestionsRepositoryProviderElement(super.provider); @override ISearchSuggestionProvider get suggestionsProvider => (origin as SearchSuggestionsRepositoryProvider).suggestionsProvider; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/kagi/presentation/tabs/summarize_tab.dart b/app/lib/features/kagi/presentation/tabs/summarize_tab.dart index 74df7958..baff8137 100644 --- a/app/lib/features/kagi/presentation/tabs/summarize_tab.dart +++ b/app/lib/features/kagi/presentation/tabs/summarize_tab.dart @@ -60,8 +60,9 @@ class SummarizeTab extends HookConsumerWidget { final formKey = useMemoized(() => GlobalKey()); final selectedMode = useState(SummarizerMode.keyMoments); - final textController = - useTextEditingController(text: sharedContent?.toString()); + final textController = useTextEditingController( + text: sharedContent?.toString(), + ); return Form( key: formKey, @@ -86,71 +87,63 @@ class SummarizeTab extends HookConsumerWidget { selectedMode.value = value.first; }, ), - const SizedBox( - height: 12, - ), + const SizedBox(height: 12), ...switch (sharedContent) { SharedUrl() => [ - _InputField(controller: textController), - HookBuilder( - builder: (context) { - final url = - useState(uri_parser.tryParseUrl(textController.text)); - useEffect( - () { - Timer? timer; - void debounce() { - timer?.cancel(); - timer = Timer(const Duration(milliseconds: 250), () { - url.value = - uri_parser.tryParseUrl(textController.text); - }); - } + _InputField(controller: textController), + HookBuilder( + builder: (context) { + final url = useState( + uri_parser.tryParseUrl(textController.text), + ); + useEffect(() { + Timer? timer; + void debounce() { + timer?.cancel(); + timer = Timer(const Duration(milliseconds: 250), () { + url.value = uri_parser.tryParseUrl(textController.text); + }); + } - textController.addListener(debounce); - return () => textController.removeListener(debounce); - }, - [textController], - ); + textController.addListener(debounce); + return () => textController.removeListener(debounce); + }, [textController]); - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - if (url.value != null) WebsiteTitleTile(url.value!), - ], - ); - }, - ), - const SizedBox( - height: 12, - ), - ], + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + if (url.value != null) WebsiteTitleTile(url.value!), + ], + ); + }, + ), + const SizedBox(height: 12), + ], SharedText() || null => [ - SizedBox( - width: double.infinity, - child: OutlinedButton.icon( - onPressed: () async { - final pickResult = await FilePicker.platform.pickFiles( - type: FileType.custom, - allowedExtensions: ['pdf'], - ); + SizedBox( + width: double.infinity, + child: OutlinedButton.icon( + onPressed: () async { + final pickResult = await FilePicker.platform.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf'], + ); - if (pickResult?.files.first.path - case final String filePath) { - final content = await PDFDoc.fromPath(filePath) - .then((doc) => doc.text); - textController.text = content; - } - }, - icon: const Icon(MdiIcons.fileUpload), - label: const Text('Read PDF document'), - ), + if (pickResult?.files.first.path + case final String filePath) { + final content = await PDFDoc.fromPath( + filePath, + ).then((doc) => doc.text); + textController.text = content; + } + }, + icon: const Icon(MdiIcons.fileUpload), + label: const Text('Read PDF document'), ), - _InputField(controller: textController), - const SizedBox( - height: 12, - ), - ], + ), + _InputField(controller: textController), + const SizedBox(height: 12), + ], }, SizedBox( width: double.infinity, diff --git a/app/lib/features/kagi/utils/url_builder.dart b/app/lib/features/kagi/utils/url_builder.dart index 60439fed..8baa5c0f 100644 --- a/app/lib/features/kagi/utils/url_builder.dart +++ b/app/lib/features/kagi/utils/url_builder.dart @@ -8,43 +8,35 @@ Uri assistantUri({ required AssistantMode assistantMode, ResearchVariant? researchVariant, ChatModel? chatModel, -}) => - _baseUrl.replace( - pathSegments: [ - 'assistant', - ], - queryParameters: { - 'mode': assistantMode.value.toString(), - 'q': prompt, - ...switch (assistantMode) { - AssistantMode.research => { - 'sub_mode': researchVariant!.value.toString(), - }, - AssistantMode.code => {}, - AssistantMode.chat => { - 'sub_mode': chatModel!.value.toString(), - }, - AssistantMode.custom => {}, - }, - }, - ); +}) => _baseUrl.replace( + pathSegments: ['assistant'], + queryParameters: { + 'mode': assistantMode.value.toString(), + 'q': prompt, + ...switch (assistantMode) { + AssistantMode.research => {'sub_mode': researchVariant!.value.toString()}, + AssistantMode.code => {}, + AssistantMode.chat => {'sub_mode': chatModel!.value.toString()}, + AssistantMode.custom => {}, + }, + }, +); Uri summarizerUri({ required SharedContent document, required SummarizerMode mode, -}) => - _baseUrl.replace( - pathSegments: [ - 'summarizer', - //TODO: check if really necessary - 'index.html', - ], - queryParameters: { - 'summary': mode.value, - if (document case SharedUrl(url: final url)) 'url': url.toString(), - }, - fragment: switch (document) { - SharedText(text: final text) => text, - _ => null, - }, - ); +}) => _baseUrl.replace( + pathSegments: [ + 'summarizer', + //TODO: check if really necessary + 'index.html', + ], + queryParameters: { + 'summary': mode.value, + if (document case SharedUrl(url: final url)) 'url': url.toString(), + }, + fragment: switch (document) { + SharedText(text: final text) => text, + _ => null, + }, +); diff --git a/app/lib/features/search/domain/fts_tokenizer.dart b/app/lib/features/search/domain/fts_tokenizer.dart index ee5f37d9..b35fea04 100644 --- a/app/lib/features/search/domain/fts_tokenizer.dart +++ b/app/lib/features/search/domain/fts_tokenizer.dart @@ -19,8 +19,9 @@ sealed class FtsQueryBuilder { ///https://www.sqlite.org/fts5.html#fts5_strings /// ///Elsewise ths string needs to get quoted - static final _barewordPattern = - RegExp(r'^([^\x00-\x7F]|[\w]|[\d]|[_]|[\x1A])+$'); + static final _barewordPattern = RegExp( + r'^([^\x00-\x7F]|[\w]|[\d]|[_]|[\x1A])+$', + ); static bool _isReservedBareword(Bareword input) => _reservedBarewords.contains(input.word); @@ -36,27 +37,29 @@ sealed class FtsQueryBuilder { }) { final matches = _tokenizePattern.allMatches(input); - final barewords = matches - .map((match) { - if (match.group(1) != null) { - return EnclosedBareword(match.group(1)!); - } else if (_barewordPattern.hasMatch(match.group(2)!)) { - return SimpleBareword(match.group(2)!); - } else { - return EnclosedBareword(match.group(2)!); - } - }) - .where((token) => token.word.isNotEmpty) - .whereNot(_isReservedBareword) - .toList(); + final barewords = + matches + .map((match) { + if (match.group(1) != null) { + return EnclosedBareword(match.group(1)!); + } else if (_barewordPattern.hasMatch(match.group(2)!)) { + return SimpleBareword(match.group(2)!); + } else { + return EnclosedBareword(match.group(2)!); + } + }) + .where((token) => token.word.isNotEmpty) + .whereNot(_isReservedBareword) + .toList(); //Merge short tokens _mergeShortBarewords(barewords, minTokenLength); - _tokens = barewords - .where((bareword) => bareword.word.length >= minTokenLength) - .take(tokenLimit) - .toList(); + _tokens = + barewords + .where((bareword) => bareword.word.length >= minTokenLength) + .take(tokenLimit) + .toList(); } static void _mergeShortBarewords( @@ -149,8 +152,8 @@ sealed class FtsQueryBuilder { //Remove dependend phrases if (joinedPhrase.whereType().any( - (joined) => joined.dependencies.contains(bareword), - )) { + (joined) => joined.dependencies.contains(bareword), + )) { joinedPhrase.removeAt(i); i--; } @@ -164,9 +167,9 @@ sealed class FtsQueryBuilder { String Function(List phrase) barewordConcat, String phraseConcat, ) { - final phrases = _generatePhrases(tokens) - .map(_removeDependendBarewords) - .expand(_combineUnenclosed); + final phrases = _generatePhrases( + tokens, + ).map(_removeDependendBarewords).expand(_combineUnenclosed); return phrases .where((phrase) => phrase.isNotEmpty) @@ -189,17 +192,13 @@ final class PrefixQueryBuilder extends FtsQueryBuilder { @override String build() { - return _buildQuery( - _tokens, - (phrase) { - if (phrase.length == 1) { - return '${phrase.first}*'; - } + return _buildQuery(_tokens, (phrase) { + if (phrase.length == 1) { + return '${phrase.first}*'; + } - return 'NEAR(${phrase.map((bareword) => '$bareword*').join(' ')})'; - }, - ' OR ', - ); + return 'NEAR(${phrase.map((bareword) => '$bareword*').join(' ')})'; + }, ' OR '); } } @@ -212,11 +211,7 @@ final class TrigramQueryBuilder extends FtsQueryBuilder { @override String build() { - return _buildQuery( - _tokens, - (phrase) => phrase.join(' '), - ' OR ', - ); + return _buildQuery(_tokens, (phrase) => phrase.join(' '), ' OR '); } } diff --git a/app/lib/features/search/domain/unix_tokenizer.dart b/app/lib/features/search/domain/unix_tokenizer.dart index 1c5b4d30..dc290efd 100644 --- a/app/lib/features/search/domain/unix_tokenizer.dart +++ b/app/lib/features/search/domain/unix_tokenizer.dart @@ -33,16 +33,17 @@ sealed class UnixTokenizer { }) { final matches = _tokenizePattern.allMatches(input); - final barewords = matches - .map((match) { - if (match.group(1) != null) { - return EnclosedBareword(match.group(1)!); - } else { - return SimpleBareword(match.group(2)!); - } - }) - .where((token) => token.word.isNotEmpty) - .toList(); + final barewords = + matches + .map((match) { + if (match.group(1) != null) { + return EnclosedBareword(match.group(1)!); + } else { + return SimpleBareword(match.group(2)!); + } + }) + .where((token) => token.word.isNotEmpty) + .toList(); //Merge short tokens _mergeShortBarewords(barewords, minTokenLength); diff --git a/app/lib/features/search/util/tokenized_filter.dart b/app/lib/features/search/util/tokenized_filter.dart index fc81839f..063736ee 100644 --- a/app/lib/features/search/util/tokenized_filter.dart +++ b/app/lib/features/search/util/tokenized_filter.dart @@ -80,16 +80,17 @@ class TokenizedFilter { }) { final queryTokens = _tokenize(query); - final scoredItems = items.map((item) { - final itemString = toString(item); - if (itemString == null || itemString.isEmpty) { - return (item, 0.0); - } + final scoredItems = + items.map((item) { + final itemString = toString(item); + if (itemString == null || itemString.isEmpty) { + return (item, 0.0); + } - final itemTokens = _tokenize(itemString); - final score = _calculateScore(queryTokens, itemTokens); - return (item, score); - }).toList(); + final itemTokens = _tokenize(itemString); + final score = _calculateScore(queryTokens, itemTokens); + return (item, score); + }).toList(); // Sort by score in descending order scoredItems.sort((a, b) => b.$2.compareTo(a.$2)); @@ -107,15 +108,16 @@ class TokenizedFilter { }) { final queryTokens = _tokenize(query); - final filtered = items.where((item) { - final itemString = toString(item); - if (itemString == null || itemString.isEmpty) { - return false; - } + final filtered = + items.where((item) { + final itemString = toString(item); + if (itemString == null || itemString.isEmpty) { + return false; + } - final itemTokens = _tokenize(itemString); - return _matchTokens(queryTokens, itemTokens); - }).toList(); + final itemTokens = _tokenize(itemString); + return _matchTokens(queryTokens, itemTokens); + }).toList(); return TokenizedFilter._(items, filtered); } diff --git a/app/lib/features/settings/presentation/controllers/save_settings.g.dart b/app/lib/features/settings/presentation/controllers/save_settings.g.dart index 70279c4b..7f6a6236 100644 --- a/app/lib/features/settings/presentation/controllers/save_settings.g.dart +++ b/app/lib/features/settings/presentation/controllers/save_settings.g.dart @@ -13,14 +13,15 @@ String _$saveGeneralSettingsControllerHash() => @ProviderFor(SaveGeneralSettingsController) final saveGeneralSettingsControllerProvider = AsyncNotifierProvider.internal( - SaveGeneralSettingsController.new, - name: r'saveGeneralSettingsControllerProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$saveGeneralSettingsControllerHash, - dependencies: null, - allTransitiveDependencies: null, -); + SaveGeneralSettingsController.new, + name: r'saveGeneralSettingsControllerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$saveGeneralSettingsControllerHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$SaveGeneralSettingsController = AsyncNotifier; String _$saveEngineSettingsControllerHash() => @@ -30,14 +31,15 @@ String _$saveEngineSettingsControllerHash() => @ProviderFor(SaveEngineSettingsController) final saveEngineSettingsControllerProvider = AsyncNotifierProvider.internal( - SaveEngineSettingsController.new, - name: r'saveEngineSettingsControllerProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$saveEngineSettingsControllerHash, - dependencies: null, - allTransitiveDependencies: null, -); + SaveEngineSettingsController.new, + name: r'saveEngineSettingsControllerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$saveEngineSettingsControllerHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$SaveEngineSettingsController = AsyncNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/settings/presentation/screens/general_settings.dart b/app/lib/features/settings/presentation/screens/general_settings.dart index e306f382..5a25cb96 100644 --- a/app/lib/features/settings/presentation/screens/general_settings.dart +++ b/app/lib/features/settings/presentation/screens/general_settings.dart @@ -26,8 +26,10 @@ class GeneralSettingsScreen extends HookConsumerWidget { controller: controller, children: [ Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8), + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8, + ), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, diff --git a/app/lib/features/settings/presentation/screens/settings.dart b/app/lib/features/settings/presentation/screens/settings.dart index 07774289..1c5e4137 100644 --- a/app/lib/features/settings/presentation/screens/settings.dart +++ b/app/lib/features/settings/presentation/screens/settings.dart @@ -35,9 +35,7 @@ class SettingsScreen extends HookConsumerWidget { }, ), ), - const SizedBox( - height: 8, - ), + const SizedBox(height: 8), Card( color: Theme.of(context).highlightColor, clipBehavior: Clip.antiAlias, @@ -54,9 +52,7 @@ class SettingsScreen extends HookConsumerWidget { }, ), ), - const SizedBox( - height: 8, - ), + const SizedBox(height: 8), Card( color: Theme.of(context).highlightColor, clipBehavior: Clip.antiAlias, diff --git a/app/lib/features/settings/presentation/screens/web_engine_hardening.dart b/app/lib/features/settings/presentation/screens/web_engine_hardening.dart index f6f49b77..924639a1 100644 --- a/app/lib/features/settings/presentation/screens/web_engine_hardening.dart +++ b/app/lib/features/settings/presentation/screens/web_engine_hardening.dart @@ -69,48 +69,49 @@ class WebEngineHardeningScreen extends HookConsumerWidget { ), Expanded( child: ListView( - children: data.entries.map( - (group) { - return Row( - children: [ - Expanded( - child: ListTile( - title: Text(group.key), - subtitle: group.value.description.mapNotNull( - (description) => Text(description), + children: + data.entries.map((group) { + return Row( + children: [ + Expanded( + child: ListTile( + title: Text(group.key), + subtitle: group.value.description.mapNotNull( + (description) => Text(description), + ), + leading: HardeningGroupIcon( + isActive: group.value.isActive, + isPartlyActive: group.value.isPartlyActive, + ), + trailing: const Icon(Icons.chevron_right), + onTap: () async { + await context.push( + WebEngineHardeningGroupRoute( + group: group.key, + ).location, + ); + }, ), - leading: HardeningGroupIcon( - isActive: group.value.isActive, - isPartlyActive: group.value.isPartlyActive, - ), - trailing: const Icon(Icons.chevron_right), - onTap: () async { - await context.push( - WebEngineHardeningGroupRoute( - group: group.key, - ).location, - ); - }, ), - ), - ], - ); - }, - ).toList(), + ], + ); + }).toList(), ), ), ], ); }, - error: (error, stackTrace) => FailureWidget( - title: 'Could not load preference settings', - exception: error, - onRetry: () => ref.refresh( - unifiedPreferenceSettingsRepositoryProvider( - PreferencePartition.user, + error: + (error, stackTrace) => FailureWidget( + title: 'Could not load preference settings', + exception: error, + onRetry: + () => ref.refresh( + unifiedPreferenceSettingsRepositoryProvider( + PreferencePartition.user, + ), + ), ), - ), - ), loading: () => const SizedBox.shrink(), ), ); diff --git a/app/lib/features/settings/presentation/screens/web_engine_hardening_group.dart b/app/lib/features/settings/presentation/screens/web_engine_hardening_group.dart index 08276f5d..a0fb34d0 100644 --- a/app/lib/features/settings/presentation/screens/web_engine_hardening_group.dart +++ b/app/lib/features/settings/presentation/screens/web_engine_hardening_group.dart @@ -70,73 +70,84 @@ class WebEngineHardeningGroupScreen extends HookConsumerWidget { ), Expanded( child: ListView( - children: group.settings.entries.map( - (setting) { - return Row( - children: [ - if (!setting.value.shouldBeDefault || - !setting.value.isActive) - Expanded( - child: SwitchListTile( - value: setting.value.isActive, - title: Text(setting.value.title ?? setting.key), - subtitle: setting.value.description.mapNotNull( - (description) => Text(description), - ), - secondary: HardeningGroupIcon( - isActive: setting.value.isActive, - ), - onChanged: (value) async { - final notifier = ref.read( - preferenceSettingsGroupRepositoryProvider( - PreferencePartition.user, - groupName, - ).notifier, - ); + children: + group.settings.entries.map((setting) { + return Row( + children: [ + if (!setting.value.shouldBeDefault || + !setting.value.isActive) + Expanded( + child: SwitchListTile( + value: setting.value.isActive, + title: Text( + setting.value.title ?? setting.key, + ), + subtitle: setting.value.description + .mapNotNull( + (description) => Text(description), + ), + secondary: HardeningGroupIcon( + isActive: setting.value.isActive, + ), + onChanged: (value) async { + final notifier = ref.read( + preferenceSettingsGroupRepositoryProvider( + PreferencePartition.user, + groupName, + ).notifier, + ); - if (value) { - await notifier.apply(filter: [setting.key]); - } else { - await notifier.reset(filter: [setting.key]); - } - }, - ), - ) - else - Expanded( - child: ListTile( - title: Text(setting.value.title ?? setting.key), - subtitle: setting.value.description.mapNotNull( - (description) => Text(description), + if (value) { + await notifier.apply( + filter: [setting.key], + ); + } else { + await notifier.reset( + filter: [setting.key], + ); + } + }, ), - leading: HardeningGroupIcon( - isActive: setting.value.isActive, - ), - trailing: const Padding( - padding: EdgeInsets.only(right: 18.0), - child: Icon(Icons.check), + ) + else + Expanded( + child: ListTile( + title: Text( + setting.value.title ?? setting.key, + ), + subtitle: setting.value.description + .mapNotNull( + (description) => Text(description), + ), + leading: HardeningGroupIcon( + isActive: setting.value.isActive, + ), + trailing: const Padding( + padding: EdgeInsets.only(right: 18.0), + child: Icon(Icons.check), + ), ), ), - ), - ], - ); - }, - ).toList(), + ], + ); + }).toList(), ), ), ], ); }, - error: (error, stackTrace) => FailureWidget( - title: 'Could not load preference settings', - exception: error, - onRetry: () => ref.refresh( - preferenceSettingsGroupRepositoryProvider( - PreferencePartition.user, - groupName, + error: + (error, stackTrace) => FailureWidget( + title: 'Could not load preference settings', + exception: error, + onRetry: + () => ref.refresh( + preferenceSettingsGroupRepositoryProvider( + PreferencePartition.user, + groupName, + ), + ), ), - ), - ), loading: () => const SizedBox.shrink(), ), ); diff --git a/app/lib/features/settings/presentation/screens/web_engine_settings.dart b/app/lib/features/settings/presentation/screens/web_engine_settings.dart index 5505f318..ad8060d8 100644 --- a/app/lib/features/settings/presentation/screens/web_engine_settings.dart +++ b/app/lib/features/settings/presentation/screens/web_engine_settings.dart @@ -39,18 +39,21 @@ class WebEngineSettingsScreen extends HookConsumerWidget { await ref .read(saveGeneralSettingsControllerProvider.notifier) .save( - (currentSettings) => value - ? currentSettings.copyWith - .deleteBrowsingDataOnQuit({}) - : currentSettings.copyWith - .deleteBrowsingDataOnQuit(null), + (currentSettings) => + value + ? currentSettings.copyWith + .deleteBrowsingDataOnQuit({}) + : currentSettings.copyWith + .deleteBrowsingDataOnQuit(null), ); }, ), if (generalSettings.deleteBrowsingDataOnQuit != null) Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8), + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8, + ), child: Column( children: [ for (final type in DeleteBrowsingDataType.values) @@ -59,8 +62,9 @@ class WebEngineSettingsScreen extends HookConsumerWidget { .contains(type), controlAffinity: ListTileControlAffinity.leading, title: Text(type.title), - subtitle: type.description - .mapNotNull((description) => Text(description)), + subtitle: type.description.mapNotNull( + (description) => Text(description), + ), onChanged: (value) async { final notifier = ref.read( saveGeneralSettingsControllerProvider.notifier, @@ -70,19 +74,20 @@ class WebEngineSettingsScreen extends HookConsumerWidget { await notifier.save( (currentSettings) => currentSettings.copyWith .deleteBrowsingDataOnQuit({ - ...currentSettings.deleteBrowsingDataOnQuit!, - type, - }), + ...currentSettings + .deleteBrowsingDataOnQuit!, + type, + }), ); } else { await notifier.save( (currentSettings) => currentSettings.copyWith .deleteBrowsingDataOnQuit( - { - ...currentSettings - .deleteBrowsingDataOnQuit!, - }..remove(type), - ), + { + ...currentSettings + .deleteBrowsingDataOnQuit!, + }..remove(type), + ), ); } }, @@ -120,8 +125,10 @@ class WebEngineSettingsScreen extends HookConsumerWidget { }, ), Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8), + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8, + ), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, @@ -164,8 +171,10 @@ class WebEngineSettingsScreen extends HookConsumerWidget { ), ), Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8), + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8, + ), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, @@ -181,9 +190,7 @@ class WebEngineSettingsScreen extends HookConsumerWidget { groupValue: engineSettings.trackingProtectionPolicy, onChanged: (value) async { await ref - .read( - saveEngineSettingsControllerProvider.notifier, - ) + .read(saveEngineSettingsControllerProvider.notifier) .save( (currentSettings) => currentSettings.copyWith .trackingProtectionPolicy(value), @@ -199,9 +206,7 @@ class WebEngineSettingsScreen extends HookConsumerWidget { groupValue: engineSettings.trackingProtectionPolicy, onChanged: (value) async { await ref - .read( - saveEngineSettingsControllerProvider.notifier, - ) + .read(saveEngineSettingsControllerProvider.notifier) .save( (currentSettings) => currentSettings.copyWith .trackingProtectionPolicy(value), @@ -217,9 +222,7 @@ class WebEngineSettingsScreen extends HookConsumerWidget { groupValue: engineSettings.trackingProtectionPolicy, onChanged: (value) async { await ref - .read( - saveEngineSettingsControllerProvider.notifier, - ) + .read(saveEngineSettingsControllerProvider.notifier) .save( (currentSettings) => currentSettings.copyWith .trackingProtectionPolicy(value), @@ -239,8 +242,10 @@ class WebEngineSettingsScreen extends HookConsumerWidget { ), ), Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8), + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8, + ), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, @@ -251,43 +256,41 @@ class WebEngineSettingsScreen extends HookConsumerWidget { contentPadding: EdgeInsets.zero, ), CheckboxListTile.adaptive( - value: engineSettings.cookieBannerHandlingMode == + value: + engineSettings.cookieBannerHandlingMode == CookieBannerHandlingMode.rejectAll, title: const Text('In normal browsing'), controlAffinity: ListTileControlAffinity.leading, onChanged: (value) async { await ref - .read( - saveEngineSettingsControllerProvider.notifier, - ) + .read(saveEngineSettingsControllerProvider.notifier) .save( (currentSettings) => currentSettings.copyWith .cookieBannerHandlingMode( - value! - ? CookieBannerHandlingMode.rejectAll - : CookieBannerHandlingMode.disabled, - ), + value! + ? CookieBannerHandlingMode.rejectAll + : CookieBannerHandlingMode.disabled, + ), ); }, ), CheckboxListTile.adaptive( - value: engineSettings + value: + engineSettings .cookieBannerHandlingModePrivateBrowsing == CookieBannerHandlingMode.rejectAll, title: const Text('In private browsing'), controlAffinity: ListTileControlAffinity.leading, onChanged: (value) async { await ref - .read( - saveEngineSettingsControllerProvider.notifier, - ) + .read(saveEngineSettingsControllerProvider.notifier) .save( (currentSettings) => currentSettings.copyWith .cookieBannerHandlingModePrivateBrowsing( - value! - ? CookieBannerHandlingMode.rejectAll - : CookieBannerHandlingMode.disabled, - ), + value! + ? CookieBannerHandlingMode.rejectAll + : CookieBannerHandlingMode.disabled, + ), ); }, ), diff --git a/app/lib/features/settings/presentation/widgets/custom_list_tile.dart b/app/lib/features/settings/presentation/widgets/custom_list_tile.dart index 677b1051..38f46cca 100644 --- a/app/lib/features/settings/presentation/widgets/custom_list_tile.dart +++ b/app/lib/features/settings/presentation/widgets/custom_list_tile.dart @@ -23,8 +23,9 @@ class CustomListTile extends StatelessWidget { @override Widget build(BuildContext context) { final theme = Theme.of(context); - final subtitleTextTheme = theme.textTheme.bodyMedium! - .copyWith(color: theme.colorScheme.onSurfaceVariant); + final subtitleTextTheme = theme.textTheme.bodyMedium!.copyWith( + color: theme.colorScheme.onSurfaceVariant, + ); return Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8), @@ -38,17 +39,21 @@ class CustomListTile extends StatelessWidget { children: [ Text( title, - style: enabled - ? theme.textTheme.bodyLarge - : theme.textTheme.bodyLarge - ?.copyWith(color: theme.disabledColor), + style: + enabled + ? theme.textTheme.bodyLarge + : theme.textTheme.bodyLarge?.copyWith( + color: theme.disabledColor, + ), ), Text( subtitle, - style: enabled - ? subtitleTextTheme - : theme.textTheme.bodyMedium - ?.copyWith(color: theme.disabledColor), + style: + enabled + ? subtitleTextTheme + : theme.textTheme.bodyMedium?.copyWith( + color: theme.disabledColor, + ), ), if (content != null) content!, ], diff --git a/app/lib/features/settings/presentation/widgets/sync_details_table.dart b/app/lib/features/settings/presentation/widgets/sync_details_table.dart index b1ea418e..f78f9fef 100644 --- a/app/lib/features/settings/presentation/widgets/sync_details_table.dart +++ b/app/lib/features/settings/presentation/widgets/sync_details_table.dart @@ -18,17 +18,12 @@ class SyncDetailsTable extends StatelessWidget { columnWidths: const {0: FixedColumnWidth(100)}, children: [ TableRow( - children: [ - const Text('Entries'), - Text(count?.toString() ?? 'N/A'), - ], + children: [const Text('Entries'), Text(count?.toString() ?? 'N/A')], ), TableRow( children: [ const Text('Last Sync'), - Text( - (lastSync != null) ? timeago.format(lastSync!) : 'N/A', - ), + Text((lastSync != null) ? timeago.format(lastSync!) : 'N/A'), ], ), ], diff --git a/app/lib/features/share_intent/domain/services/sharing_intent.dart b/app/lib/features/share_intent/domain/services/sharing_intent.dart index 1e7fb74c..ac488b75 100644 --- a/app/lib/features/share_intent/domain/services/sharing_intent.dart +++ b/app/lib/features/share_intent/domain/services/sharing_intent.dart @@ -17,49 +17,53 @@ part 'sharing_intent.g.dart'; final _sharingIntentTransformer = StreamTransformer, ReceivedParameter>.fromHandlers( - handleData: (files, sink) async { - //For now only one file is supported to share with the app - final data = files.firstOrNull; + handleData: (files, sink) async { + //For now only one file is supported to share with the app + final data = files.firstOrNull; - if (data != null && data.value != null) { - switch (data.type) { - case SharedMediaType.TEXT: - case SharedMediaType.URL: - if (uri_to_file.isUriSupported(data.value!)) { - final file = await uri_to_file.toFile(data.value!); - final mimeType = mime.lookupMimeType(file.path); - switch (mimeType) { - case 'application/pdf': - final content = - await PDFDoc.fromFile(file).then((doc) => doc.text); - sink.add( - ReceivedParameter(content, KagiTool.summarizer.name), - ); - default: - logger.w('Unhandled mime type: $mimeType'); - } - } else { - sink.add(ReceivedParameter(data.value, null)); + if (data != null && data.value != null) { + switch (data.type) { + case SharedMediaType.TEXT: + case SharedMediaType.URL: + if (uri_to_file.isUriSupported(data.value!)) { + final file = await uri_to_file.toFile(data.value!); + final mimeType = mime.lookupMimeType(file.path); + switch (mimeType) { + case 'application/pdf': + final content = await PDFDoc.fromFile( + file, + ).then((doc) => doc.text); + sink.add( + ReceivedParameter(content, KagiTool.summarizer.name), + ); + default: + logger.w('Unhandled mime type: $mimeType'); + } + } else { + sink.add(ReceivedParameter(data.value, null)); + } + default: + logger.w('Unhandled media type: $data'); } - default: - logger.w('Unhandled media type: $data'); - } - } - }, -); + } + }, + ); @Riverpod() Raw> sharingIntentStream(Ref ref) { - final initialStream = FlutterSharingIntent.instance - // ignore: discarded_futures - .getInitialSharing() - // ignore: discarded_futures - .then((event) { - FlutterSharingIntent.instance.reset(); - return event; - }).asStream(); + final initialStream = + FlutterSharingIntent.instance + // ignore: discarded_futures + .getInitialSharing() + // ignore: discarded_futures + .then((event) { + FlutterSharingIntent.instance.reset(); + return event; + }) + .asStream(); - return ConcatStream( - [initialStream, FlutterSharingIntent.instance.getMediaStream()], - ).transform(_sharingIntentTransformer); + return ConcatStream([ + initialStream, + FlutterSharingIntent.instance.getMediaStream(), + ]).transform(_sharingIntentTransformer); } diff --git a/app/lib/features/share_intent/domain/services/sharing_intent.g.dart b/app/lib/features/share_intent/domain/services/sharing_intent.g.dart index eddee993..400b6575 100644 --- a/app/lib/features/share_intent/domain/services/sharing_intent.g.dart +++ b/app/lib/features/share_intent/domain/services/sharing_intent.g.dart @@ -13,18 +13,19 @@ String _$sharingIntentStreamHash() => @ProviderFor(sharingIntentStream) final sharingIntentStreamProvider = AutoDisposeProvider>>.internal( - sharingIntentStream, - name: r'sharingIntentStreamProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$sharingIntentStreamHash, - dependencies: null, - allTransitiveDependencies: null, -); + sharingIntentStream, + name: r'sharingIntentStreamProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$sharingIntentStreamHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element -typedef SharingIntentStreamRef - = AutoDisposeProviderRef>>; +typedef SharingIntentStreamRef = + AutoDisposeProviderRef>>; // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/features/tor/domain/services/tor_proxy.dart b/app/lib/features/tor/domain/services/tor_proxy.dart index 1a1c1b13..a4dc9aa8 100644 --- a/app/lib/features/tor/domain/services/tor_proxy.dart +++ b/app/lib/features/tor/domain/services/tor_proxy.dart @@ -24,9 +24,7 @@ class _TorService { Future initializeService() async { await service.configure( - iosConfiguration: IosConfiguration( - autoStart: false, - ), + iosConfiguration: IosConfiguration(autoStart: false), androidConfiguration: AndroidConfiguration( autoStart: false, onStart: onStart, @@ -67,11 +65,9 @@ class TorProxyService extends _$TorProxyService { @override Future build() async { - final portSub = _tor.portStream.distinct().listen( - (port) { - state = AsyncData(port); - }, - ); + final portSub = _tor.portStream.distinct().listen((port) { + state = AsyncData(port); + }); await _tor.initializeService(); diff --git a/app/lib/features/tor/domain/services/tor_proxy.g.dart b/app/lib/features/tor/domain/services/tor_proxy.g.dart index f95db821..bf2f74c8 100644 --- a/app/lib/features/tor/domain/services/tor_proxy.g.dart +++ b/app/lib/features/tor/domain/services/tor_proxy.g.dart @@ -12,14 +12,15 @@ String _$torProxyServiceHash() => r'85ed8e3b49007aa56e6b82ff802a3e0ce567a0c8'; @ProviderFor(TorProxyService) final torProxyServiceProvider = AsyncNotifierProvider.internal( - TorProxyService.new, - name: r'torProxyServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$torProxyServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + TorProxyService.new, + name: r'torProxyServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$torProxyServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$TorProxyService = AsyncNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/tor/presentation/controllers/start_tor_proxy.dart b/app/lib/features/tor/presentation/controllers/start_tor_proxy.dart index 5557c1c1..94fe2503 100644 --- a/app/lib/features/tor/presentation/controllers/start_tor_proxy.dart +++ b/app/lib/features/tor/presentation/controllers/start_tor_proxy.dart @@ -24,13 +24,9 @@ class StartProxyController extends _$StartProxyController { if (result == true) { final connection = ref.read(torProxyServiceProvider.notifier).connect(); - ref.read(overlayDialogControllerProvider.notifier).show( - Positioned( - top: 0, - left: 0, - child: TorNotification(), - ), - ); + ref + .read(overlayDialogControllerProvider.notifier) + .show(Positioned(top: 0, left: 0, child: TorNotification())); await connection; } diff --git a/app/lib/features/tor/presentation/controllers/start_tor_proxy.g.dart b/app/lib/features/tor/presentation/controllers/start_tor_proxy.g.dart index 8d7c6942..9a057df0 100644 --- a/app/lib/features/tor/presentation/controllers/start_tor_proxy.g.dart +++ b/app/lib/features/tor/presentation/controllers/start_tor_proxy.g.dart @@ -13,14 +13,15 @@ String _$startProxyControllerHash() => @ProviderFor(StartProxyController) final startProxyControllerProvider = AutoDisposeNotifierProvider.internal( - StartProxyController.new, - name: r'startProxyControllerProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$startProxyControllerHash, - dependencies: null, - allTransitiveDependencies: null, -); + StartProxyController.new, + name: r'startProxyControllerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$startProxyControllerHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$StartProxyController = AutoDisposeNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/tor/presentation/screens/tor_proxy.dart b/app/lib/features/tor/presentation/screens/tor_proxy.dart index b675731a..37abaa11 100644 --- a/app/lib/features/tor/presentation/screens/tor_proxy.dart +++ b/app/lib/features/tor/presentation/screens/tor_proxy.dart @@ -12,9 +12,7 @@ class TorProxyScreen extends HookConsumerWidget { final torProxyPort = ref.watch(torProxyServiceProvider); return Scaffold( - appBar: AppBar( - title: const Text('Tor Proxy'), - ), + appBar: AppBar(title: const Text('Tor Proxy')), body: ColoredBox( color: const Color(0xFF7D4698), child: Column( @@ -23,36 +21,34 @@ class TorProxyScreen extends HookConsumerWidget { child: Column( mainAxisAlignment: MainAxisAlignment.end, children: [ - SvgPicture.asset( - 'assets/images/tor_white.svg', - width: 200, - ), - const SizedBox( - height: 16, - ), + SvgPicture.asset('assets/images/tor_white.svg', width: 200), + const SizedBox(height: 16), ListTileTheme( iconColor: Colors.white, textColor: Colors.white, child: SwitchListTile.adaptive( inactiveThumbColor: Colors.white, activeColor: const Color(0xFF68B030), - trackColor: WidgetStateProperty.resolveWith( - (Set states) { + trackColor: WidgetStateProperty.resolveWith(( + Set states, + ) { if (states.isEmpty) { return const Color(0xFF333A41); } return null; // Use the default color. }), trackOutlineColor: - WidgetStateProperty.resolveWith( - (Set states) { - if (states.isEmpty) { - return Colors.white; - } - return null; // Use the default color. - }), - thumbIcon: WidgetStateProperty.resolveWith( - (Set states) { + WidgetStateProperty.resolveWith(( + Set states, + ) { + if (states.isEmpty) { + return Colors.white; + } + return null; // Use the default color. + }), + thumbIcon: WidgetStateProperty.resolveWith(( + Set states, + ) { if (states.contains(WidgetState.selected)) { return const Icon(MdiIcons.axisArrowLock); } @@ -61,19 +57,20 @@ class TorProxyScreen extends HookConsumerWidget { value: torProxyPort.valueOrNull != null, title: const Text('Tor Proxy'), secondary: const Icon(MdiIcons.power), - onChanged: torProxyPort.isLoading - ? null - : (value) async { - if (value) { - await ref - .read(torProxyServiceProvider.notifier) - .connect(); - } else { - await ref - .read(torProxyServiceProvider.notifier) - .disconnect(); - } - }, + onChanged: + torProxyPort.isLoading + ? null + : (value) async { + if (value) { + await ref + .read(torProxyServiceProvider.notifier) + .connect(); + } else { + await ref + .read(torProxyServiceProvider.notifier) + .disconnect(); + } + }, ), ), ], @@ -90,9 +87,7 @@ class TorProxyScreen extends HookConsumerWidget { backgroundColor: Color(0xFF333A41), color: Color(0xFF68B030), ), - SizedBox( - height: 8, - ), + SizedBox(height: 8), Text( 'Establishing connection...', style: TextStyle(color: Colors.white), @@ -113,9 +108,7 @@ class TorProxyScreen extends HookConsumerWidget { const SizedBox(width: 12), Text( 'Connected to the Tor Network', - style: Theme.of(context) - .textTheme - .titleMedium + style: Theme.of(context).textTheme.titleMedium ?.copyWith(color: const Color(0xFF68B030)), ), ], diff --git a/app/lib/features/tor/presentation/widgets/tor_dialog.dart b/app/lib/features/tor/presentation/widgets/tor_dialog.dart index 584d7f0a..0a9073c1 100644 --- a/app/lib/features/tor/presentation/widgets/tor_dialog.dart +++ b/app/lib/features/tor/presentation/widgets/tor_dialog.dart @@ -6,10 +6,7 @@ class TorDialog extends StatelessWidget { @override Widget build(BuildContext context) { return AlertDialog( - icon: const Icon( - TorIcons.onionAlt, - color: Color(0xFF7D4698), - ), + icon: const Icon(TorIcons.onionAlt, color: Color(0xFF7D4698)), title: const Text('Tor Proxy'), content: const Text( 'This container requires a Tor proxy for secure connections, which is not currently running.', diff --git a/app/lib/features/tor/presentation/widgets/tor_notification.dart b/app/lib/features/tor/presentation/widgets/tor_notification.dart index 82cda0c1..4c33e3a1 100644 --- a/app/lib/features/tor/presentation/widgets/tor_notification.dart +++ b/app/lib/features/tor/presentation/widgets/tor_notification.dart @@ -8,14 +8,11 @@ import 'package:lensai/presentation/widgets/animate_gradient_shader.dart'; class TorNotification extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - ref.listen( - torProxyServiceProvider, - (previous, next) { - if (!next.isLoading) { - ref.read(overlayDialogControllerProvider.notifier).dismiss(); - } - }, - ); + ref.listen(torProxyServiceProvider, (previous, next) { + if (!next.isLoading) { + ref.read(overlayDialogControllerProvider.notifier).dismiss(); + } + }); return SafeArea( child: ColoredBox( @@ -41,10 +38,9 @@ class TorNotification extends HookConsumerWidget { Expanded( child: Text( 'Tor Proxy is connecting...', - style: Theme.of(context) - .textTheme - .bodyMedium - ?.copyWith(color: Colors.white), + style: Theme.of( + context, + ).textTheme.bodyMedium?.copyWith(color: Colors.white), ), ), IconButton( @@ -53,10 +49,7 @@ class TorNotification extends HookConsumerWidget { .read(overlayDialogControllerProvider.notifier) .dismiss(); }, - icon: const Icon( - Icons.close, - color: Colors.white, - ), + icon: const Icon(Icons.close, color: Colors.white), ), ], ), diff --git a/app/lib/features/user/data/database/daos/cache.dart b/app/lib/features/user/data/database/daos/cache.dart index 9867bea6..e214355c 100644 --- a/app/lib/features/user/data/database/daos/cache.dart +++ b/app/lib/features/user/data/database/daos/cache.dart @@ -17,9 +17,10 @@ class CacheDao extends DatabaseAccessor with _$CacheDaoMixin { } SingleOrNullSelectable getCachedIcon(String origin) { - final query = selectOnly(db.iconCache) - ..addColumns([db.iconCache.iconData]) - ..where(db.iconCache.origin.equals(origin)); + final query = + selectOnly(db.iconCache) + ..addColumns([db.iconCache.iconData]) + ..where(db.iconCache.origin.equals(origin)); return query.map((row) => row.read(db.iconCache.iconData)); } diff --git a/app/lib/features/user/data/database/daos/setting.dart b/app/lib/features/user/data/database/daos/setting.dart index 96761076..3f5afd46 100644 --- a/app/lib/features/user/data/database/daos/setting.dart +++ b/app/lib/features/user/data/database/daos/setting.dart @@ -13,8 +13,9 @@ class SettingDao extends DatabaseAccessor with _$SettingDaoMixin { Future updateSetting(String key, String? partitionKey, Object? value) { final normalizedValue = (value is Iterable) ? jsonEncode(value) : value; - final driftvalue = normalizedValue - .mapNotNull((normalizedValue) => DriftAny(normalizedValue)); + final driftvalue = normalizedValue.mapNotNull( + (normalizedValue) => DriftAny(normalizedValue), + ); return db.setting.insertOne( SettingCompanion.insert( @@ -31,8 +32,9 @@ class SettingDao extends DatabaseAccessor with _$SettingDaoMixin { Selectable> allSettingsOfPartitionKey( String? partitionKey, ) { - final query = db.setting.select() - ..where((r) => r.partitionKey.equalsNullable(partitionKey)); + final query = + db.setting.select() + ..where((r) => r.partitionKey.equalsNullable(partitionKey)); return query.map((row) => MapEntry(row.key, row.value)); } diff --git a/app/lib/features/user/data/database/database.dart b/app/lib/features/user/data/database/database.dart index 85bc3239..5923fcb8 100644 --- a/app/lib/features/user/data/database/database.dart +++ b/app/lib/features/user/data/database/database.dart @@ -4,25 +4,17 @@ import 'package:lensai/features/user/data/database/daos/setting.dart'; part 'database.g.dart'; -@DriftDatabase( - include: { - 'database.drift', - }, - daos: [ - SettingDao, - CacheDao, - ], -) +@DriftDatabase(include: {'database.drift'}, daos: [SettingDao, CacheDao]) class UserDatabase extends _$UserDatabase { @override final int schemaVersion = 1; @override MigrationStrategy get migration => MigrationStrategy( - beforeOpen: (details) async { - await customStatement('PRAGMA foreign_keys = ON;'); - }, - ); + beforeOpen: (details) async { + await customStatement('PRAGMA foreign_keys = ON;'); + }, + ); UserDatabase(super.e); } diff --git a/app/lib/features/user/data/database/database.g.dart b/app/lib/features/user/data/database/database.g.dart index 11ea871c..5a1506d2 100644 --- a/app/lib/features/user/data/database/database.g.dart +++ b/app/lib/features/user/data/database/database.g.dart @@ -9,20 +9,29 @@ class Setting extends Table with TableInfo { final String? _alias; Setting(this.attachedDatabase, [this._alias]); late final GeneratedColumn key = GeneratedColumn( - 'key', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'PRIMARY KEY NOT NULL'); + 'key', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'PRIMARY KEY NOT NULL', + ); late final GeneratedColumn partitionKey = GeneratedColumn( - 'partition_key', aliasedName, true, - type: DriftSqlType.string, - requiredDuringInsert: false, - $customConstraints: ''); + 'partition_key', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + $customConstraints: '', + ); late final GeneratedColumn value = GeneratedColumn( - 'value', aliasedName, true, - type: DriftSqlType.any, - requiredDuringInsert: false, - $customConstraints: ''); + 'value', + aliasedName, + true, + type: DriftSqlType.any, + requiredDuringInsert: false, + $customConstraints: '', + ); @override List get $columns => [key, partitionKey, value]; @override @@ -36,12 +45,19 @@ class Setting extends Table with TableInfo { SettingData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return SettingData( - key: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}key'])!, - partitionKey: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}partition_key']), - value: attachedDatabase.typeMapping - .read(DriftSqlType.any, data['${effectivePrefix}value']), + key: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}key'], + )!, + partitionKey: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}partition_key'], + ), + value: attachedDatabase.typeMapping.read( + DriftSqlType.any, + data['${effectivePrefix}value'], + ), ); } @@ -74,8 +90,10 @@ class SettingData extends DataClass implements Insertable { return map; } - factory SettingData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory SettingData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return SettingData( key: serializer.fromJson(json['key']), @@ -93,22 +111,22 @@ class SettingData extends DataClass implements Insertable { }; } - SettingData copyWith( - {String? key, - Value partitionKey = const Value.absent(), - Value value = const Value.absent()}) => - SettingData( - key: key ?? this.key, - partitionKey: - partitionKey.present ? partitionKey.value : this.partitionKey, - value: value.present ? value.value : this.value, - ); + SettingData copyWith({ + String? key, + Value partitionKey = const Value.absent(), + Value value = const Value.absent(), + }) => SettingData( + key: key ?? this.key, + partitionKey: partitionKey.present ? partitionKey.value : this.partitionKey, + value: value.present ? value.value : this.value, + ); SettingData copyWithCompanion(SettingCompanion data) { return SettingData( key: data.key.present ? data.key.value : this.key, - partitionKey: data.partitionKey.present - ? data.partitionKey.value - : this.partitionKey, + partitionKey: + data.partitionKey.present + ? data.partitionKey.value + : this.partitionKey, value: data.value.present ? data.value.value : this.value, ); } @@ -165,11 +183,12 @@ class SettingCompanion extends UpdateCompanion { }); } - SettingCompanion copyWith( - {Value? key, - Value? partitionKey, - Value? value, - Value? rowid}) { + SettingCompanion copyWith({ + Value? key, + Value? partitionKey, + Value? value, + Value? rowid, + }) { return SettingCompanion( key: key ?? this.key, partitionKey: partitionKey ?? this.partitionKey, @@ -214,20 +233,29 @@ class IconCache extends Table with TableInfo { final String? _alias; IconCache(this.attachedDatabase, [this._alias]); late final GeneratedColumn origin = GeneratedColumn( - 'origin', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - $customConstraints: 'PRIMARY KEY NOT NULL'); + 'origin', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + $customConstraints: 'PRIMARY KEY NOT NULL', + ); late final GeneratedColumn iconData = GeneratedColumn( - 'icon_data', aliasedName, false, - type: DriftSqlType.blob, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'icon_data', + aliasedName, + false, + type: DriftSqlType.blob, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); late final GeneratedColumn fetchDate = GeneratedColumn( - 'fetch_date', aliasedName, false, - type: DriftSqlType.dateTime, - requiredDuringInsert: true, - $customConstraints: 'NOT NULL'); + 'fetch_date', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: true, + $customConstraints: 'NOT NULL', + ); @override List get $columns => [origin, iconData, fetchDate]; @override @@ -241,12 +269,21 @@ class IconCache extends Table with TableInfo { IconCacheData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return IconCacheData( - origin: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}origin'])!, - iconData: attachedDatabase.typeMapping - .read(DriftSqlType.blob, data['${effectivePrefix}icon_data'])!, - fetchDate: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}fetch_date'])!, + origin: + attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}origin'], + )!, + iconData: + attachedDatabase.typeMapping.read( + DriftSqlType.blob, + data['${effectivePrefix}icon_data'], + )!, + fetchDate: + attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}fetch_date'], + )!, ); } @@ -263,8 +300,11 @@ class IconCacheData extends DataClass implements Insertable { final String origin; final Uint8List iconData; final DateTime fetchDate; - const IconCacheData( - {required this.origin, required this.iconData, required this.fetchDate}); + const IconCacheData({ + required this.origin, + required this.iconData, + required this.fetchDate, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -274,8 +314,10 @@ class IconCacheData extends DataClass implements Insertable { return map; } - factory IconCacheData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory IconCacheData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return IconCacheData( origin: serializer.fromJson(json['origin']), @@ -293,13 +335,15 @@ class IconCacheData extends DataClass implements Insertable { }; } - IconCacheData copyWith( - {String? origin, Uint8List? iconData, DateTime? fetchDate}) => - IconCacheData( - origin: origin ?? this.origin, - iconData: iconData ?? this.iconData, - fetchDate: fetchDate ?? this.fetchDate, - ); + IconCacheData copyWith({ + String? origin, + Uint8List? iconData, + DateTime? fetchDate, + }) => IconCacheData( + origin: origin ?? this.origin, + iconData: iconData ?? this.iconData, + fetchDate: fetchDate ?? this.fetchDate, + ); IconCacheData copyWithCompanion(IconCacheCompanion data) { return IconCacheData( origin: data.origin.present ? data.origin.value : this.origin, @@ -346,9 +390,9 @@ class IconCacheCompanion extends UpdateCompanion { required Uint8List iconData, required DateTime fetchDate, this.rowid = const Value.absent(), - }) : origin = Value(origin), - iconData = Value(iconData), - fetchDate = Value(fetchDate); + }) : origin = Value(origin), + iconData = Value(iconData), + fetchDate = Value(fetchDate); static Insertable custom({ Expression? origin, Expression? iconData, @@ -363,11 +407,12 @@ class IconCacheCompanion extends UpdateCompanion { }); } - IconCacheCompanion copyWith( - {Value? origin, - Value? iconData, - Value? fetchDate, - Value? rowid}) { + IconCacheCompanion copyWith({ + Value? origin, + Value? iconData, + Value? fetchDate, + Value? rowid, + }) { return IconCacheCompanion( origin: origin ?? this.origin, iconData: iconData ?? this.iconData, @@ -429,18 +474,20 @@ abstract class _$UserDatabase extends GeneratedDatabase { List get allSchemaEntities => [setting, iconCache]; } -typedef $SettingCreateCompanionBuilder = SettingCompanion Function({ - required String key, - Value partitionKey, - Value value, - Value rowid, -}); -typedef $SettingUpdateCompanionBuilder = SettingCompanion Function({ - Value key, - Value partitionKey, - Value value, - Value rowid, -}); +typedef $SettingCreateCompanionBuilder = + SettingCompanion Function({ + required String key, + Value partitionKey, + Value value, + Value rowid, + }); +typedef $SettingUpdateCompanionBuilder = + SettingCompanion Function({ + Value key, + Value partitionKey, + Value value, + Value rowid, + }); class $SettingFilterComposer extends Composer<_$UserDatabase, Setting> { $SettingFilterComposer({ @@ -451,13 +498,19 @@ class $SettingFilterComposer extends Composer<_$UserDatabase, Setting> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get key => $composableBuilder( - column: $table.key, builder: (column) => ColumnFilters(column)); + column: $table.key, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get partitionKey => $composableBuilder( - column: $table.partitionKey, builder: (column) => ColumnFilters(column)); + column: $table.partitionKey, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get value => $composableBuilder( - column: $table.value, builder: (column) => ColumnFilters(column)); + column: $table.value, + builder: (column) => ColumnFilters(column), + ); } class $SettingOrderingComposer extends Composer<_$UserDatabase, Setting> { @@ -469,14 +522,19 @@ class $SettingOrderingComposer extends Composer<_$UserDatabase, Setting> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get key => $composableBuilder( - column: $table.key, builder: (column) => ColumnOrderings(column)); + column: $table.key, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get partitionKey => $composableBuilder( - column: $table.partitionKey, - builder: (column) => ColumnOrderings(column)); + column: $table.partitionKey, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get value => $composableBuilder( - column: $table.value, builder: (column) => ColumnOrderings(column)); + column: $table.value, + builder: (column) => ColumnOrderings(column), + ); } class $SettingAnnotationComposer extends Composer<_$UserDatabase, Setting> { @@ -491,89 +549,107 @@ class $SettingAnnotationComposer extends Composer<_$UserDatabase, Setting> { $composableBuilder(column: $table.key, builder: (column) => column); GeneratedColumn get partitionKey => $composableBuilder( - column: $table.partitionKey, builder: (column) => column); + column: $table.partitionKey, + builder: (column) => column, + ); GeneratedColumn get value => $composableBuilder(column: $table.value, builder: (column) => column); } -class $SettingTableManager extends RootTableManager< - _$UserDatabase, - Setting, - SettingData, - $SettingFilterComposer, - $SettingOrderingComposer, - $SettingAnnotationComposer, - $SettingCreateCompanionBuilder, - $SettingUpdateCompanionBuilder, - (SettingData, BaseReferences<_$UserDatabase, Setting, SettingData>), - SettingData, - PrefetchHooks Function()> { +class $SettingTableManager + extends + RootTableManager< + _$UserDatabase, + Setting, + SettingData, + $SettingFilterComposer, + $SettingOrderingComposer, + $SettingAnnotationComposer, + $SettingCreateCompanionBuilder, + $SettingUpdateCompanionBuilder, + (SettingData, BaseReferences<_$UserDatabase, Setting, SettingData>), + SettingData, + PrefetchHooks Function() + > { $SettingTableManager(_$UserDatabase db, Setting table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $SettingFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $SettingOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $SettingAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value key = const Value.absent(), - Value partitionKey = const Value.absent(), - Value value = const Value.absent(), - Value rowid = const Value.absent(), - }) => - SettingCompanion( - key: key, - partitionKey: partitionKey, - value: value, - rowid: rowid, - ), - createCompanionCallback: ({ - required String key, - Value partitionKey = const Value.absent(), - Value value = const Value.absent(), - Value rowid = const Value.absent(), - }) => - SettingCompanion.insert( - key: key, - partitionKey: partitionKey, - value: value, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $SettingFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $SettingOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $SettingAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value key = const Value.absent(), + Value partitionKey = const Value.absent(), + Value value = const Value.absent(), + Value rowid = const Value.absent(), + }) => SettingCompanion( + key: key, + partitionKey: partitionKey, + value: value, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String key, + Value partitionKey = const Value.absent(), + Value value = const Value.absent(), + Value rowid = const Value.absent(), + }) => SettingCompanion.insert( + key: key, + partitionKey: partitionKey, + value: value, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $SettingProcessedTableManager = ProcessedTableManager< - _$UserDatabase, - Setting, - SettingData, - $SettingFilterComposer, - $SettingOrderingComposer, - $SettingAnnotationComposer, - $SettingCreateCompanionBuilder, - $SettingUpdateCompanionBuilder, - (SettingData, BaseReferences<_$UserDatabase, Setting, SettingData>), - SettingData, - PrefetchHooks Function()>; -typedef $IconCacheCreateCompanionBuilder = IconCacheCompanion Function({ - required String origin, - required Uint8List iconData, - required DateTime fetchDate, - Value rowid, -}); -typedef $IconCacheUpdateCompanionBuilder = IconCacheCompanion Function({ - Value origin, - Value iconData, - Value fetchDate, - Value rowid, -}); +typedef $SettingProcessedTableManager = + ProcessedTableManager< + _$UserDatabase, + Setting, + SettingData, + $SettingFilterComposer, + $SettingOrderingComposer, + $SettingAnnotationComposer, + $SettingCreateCompanionBuilder, + $SettingUpdateCompanionBuilder, + (SettingData, BaseReferences<_$UserDatabase, Setting, SettingData>), + SettingData, + PrefetchHooks Function() + >; +typedef $IconCacheCreateCompanionBuilder = + IconCacheCompanion Function({ + required String origin, + required Uint8List iconData, + required DateTime fetchDate, + Value rowid, + }); +typedef $IconCacheUpdateCompanionBuilder = + IconCacheCompanion Function({ + Value origin, + Value iconData, + Value fetchDate, + Value rowid, + }); class $IconCacheFilterComposer extends Composer<_$UserDatabase, IconCache> { $IconCacheFilterComposer({ @@ -584,13 +660,19 @@ class $IconCacheFilterComposer extends Composer<_$UserDatabase, IconCache> { super.$removeJoinBuilderFromRootComposer, }); ColumnFilters get origin => $composableBuilder( - column: $table.origin, builder: (column) => ColumnFilters(column)); + column: $table.origin, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get iconData => $composableBuilder( - column: $table.iconData, builder: (column) => ColumnFilters(column)); + column: $table.iconData, + builder: (column) => ColumnFilters(column), + ); ColumnFilters get fetchDate => $composableBuilder( - column: $table.fetchDate, builder: (column) => ColumnFilters(column)); + column: $table.fetchDate, + builder: (column) => ColumnFilters(column), + ); } class $IconCacheOrderingComposer extends Composer<_$UserDatabase, IconCache> { @@ -602,13 +684,19 @@ class $IconCacheOrderingComposer extends Composer<_$UserDatabase, IconCache> { super.$removeJoinBuilderFromRootComposer, }); ColumnOrderings get origin => $composableBuilder( - column: $table.origin, builder: (column) => ColumnOrderings(column)); + column: $table.origin, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get iconData => $composableBuilder( - column: $table.iconData, builder: (column) => ColumnOrderings(column)); + column: $table.iconData, + builder: (column) => ColumnOrderings(column), + ); ColumnOrderings get fetchDate => $composableBuilder( - column: $table.fetchDate, builder: (column) => ColumnOrderings(column)); + column: $table.fetchDate, + builder: (column) => ColumnOrderings(column), + ); } class $IconCacheAnnotationComposer extends Composer<_$UserDatabase, IconCache> { @@ -629,71 +717,88 @@ class $IconCacheAnnotationComposer extends Composer<_$UserDatabase, IconCache> { $composableBuilder(column: $table.fetchDate, builder: (column) => column); } -class $IconCacheTableManager extends RootTableManager< - _$UserDatabase, - IconCache, - IconCacheData, - $IconCacheFilterComposer, - $IconCacheOrderingComposer, - $IconCacheAnnotationComposer, - $IconCacheCreateCompanionBuilder, - $IconCacheUpdateCompanionBuilder, - (IconCacheData, BaseReferences<_$UserDatabase, IconCache, IconCacheData>), - IconCacheData, - PrefetchHooks Function()> { +class $IconCacheTableManager + extends + RootTableManager< + _$UserDatabase, + IconCache, + IconCacheData, + $IconCacheFilterComposer, + $IconCacheOrderingComposer, + $IconCacheAnnotationComposer, + $IconCacheCreateCompanionBuilder, + $IconCacheUpdateCompanionBuilder, + ( + IconCacheData, + BaseReferences<_$UserDatabase, IconCache, IconCacheData>, + ), + IconCacheData, + PrefetchHooks Function() + > { $IconCacheTableManager(_$UserDatabase db, IconCache table) - : super(TableManagerState( + : super( + TableManagerState( db: db, table: table, - createFilteringComposer: () => - $IconCacheFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $IconCacheOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $IconCacheAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value origin = const Value.absent(), - Value iconData = const Value.absent(), - Value fetchDate = const Value.absent(), - Value rowid = const Value.absent(), - }) => - IconCacheCompanion( - origin: origin, - iconData: iconData, - fetchDate: fetchDate, - rowid: rowid, - ), - createCompanionCallback: ({ - required String origin, - required Uint8List iconData, - required DateTime fetchDate, - Value rowid = const Value.absent(), - }) => - IconCacheCompanion.insert( - origin: origin, - iconData: iconData, - fetchDate: fetchDate, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), + createFilteringComposer: + () => $IconCacheFilterComposer($db: db, $table: table), + createOrderingComposer: + () => $IconCacheOrderingComposer($db: db, $table: table), + createComputedFieldComposer: + () => $IconCacheAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value origin = const Value.absent(), + Value iconData = const Value.absent(), + Value fetchDate = const Value.absent(), + Value rowid = const Value.absent(), + }) => IconCacheCompanion( + origin: origin, + iconData: iconData, + fetchDate: fetchDate, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String origin, + required Uint8List iconData, + required DateTime fetchDate, + Value rowid = const Value.absent(), + }) => IconCacheCompanion.insert( + origin: origin, + iconData: iconData, + fetchDate: fetchDate, + rowid: rowid, + ), + withReferenceMapper: + (p0) => + p0 + .map( + (e) => ( + e.readTable(table), + BaseReferences(db, table, e), + ), + ) + .toList(), prefetchHooksCallback: null, - )); + ), + ); } -typedef $IconCacheProcessedTableManager = ProcessedTableManager< - _$UserDatabase, - IconCache, - IconCacheData, - $IconCacheFilterComposer, - $IconCacheOrderingComposer, - $IconCacheAnnotationComposer, - $IconCacheCreateCompanionBuilder, - $IconCacheUpdateCompanionBuilder, - (IconCacheData, BaseReferences<_$UserDatabase, IconCache, IconCacheData>), - IconCacheData, - PrefetchHooks Function()>; +typedef $IconCacheProcessedTableManager = + ProcessedTableManager< + _$UserDatabase, + IconCache, + IconCacheData, + $IconCacheFilterComposer, + $IconCacheOrderingComposer, + $IconCacheAnnotationComposer, + $IconCacheCreateCompanionBuilder, + $IconCacheUpdateCompanionBuilder, + (IconCacheData, BaseReferences<_$UserDatabase, IconCache, IconCacheData>), + IconCacheData, + PrefetchHooks Function() + >; class $UserDatabaseManager { final _$UserDatabase _db; diff --git a/app/lib/features/user/data/models/engine_settings.dart b/app/lib/features/user/data/models/engine_settings.dart index e3642817..0cb0733c 100644 --- a/app/lib/features/user/data/models/engine_settings.dart +++ b/app/lib/features/user/data/models/engine_settings.dart @@ -60,24 +60,25 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable { bool? cookieBannerHandlingGlobalRulesSubFrames, WebContentIsolationStrategy? webContentIsolationStrategy, }) : super( - javascriptEnabled: javascriptEnabled ?? true, - trackingProtectionPolicy: - trackingProtectionPolicy ?? TrackingProtectionPolicy.strict, - httpsOnlyMode: httpsOnlyMode ?? HttpsOnlyMode.enabled, - globalPrivacyControlEnabled: globalPrivacyControlEnabled ?? true, - preferredColorScheme: preferredColorScheme ?? ColorScheme.system, - cookieBannerHandlingMode: - cookieBannerHandlingMode ?? CookieBannerHandlingMode.rejectAll, - cookieBannerHandlingModePrivateBrowsing: - cookieBannerHandlingModePrivateBrowsing ?? - CookieBannerHandlingMode.rejectAll, - cookieBannerHandlingGlobalRules: - cookieBannerHandlingGlobalRules ?? true, - cookieBannerHandlingGlobalRulesSubFrames: - cookieBannerHandlingGlobalRulesSubFrames ?? true, - webContentIsolationStrategy: webContentIsolationStrategy ?? - WebContentIsolationStrategy.isolateHighValue, - ); + javascriptEnabled: javascriptEnabled ?? true, + trackingProtectionPolicy: + trackingProtectionPolicy ?? TrackingProtectionPolicy.strict, + httpsOnlyMode: httpsOnlyMode ?? HttpsOnlyMode.enabled, + globalPrivacyControlEnabled: globalPrivacyControlEnabled ?? true, + preferredColorScheme: preferredColorScheme ?? ColorScheme.system, + cookieBannerHandlingMode: + cookieBannerHandlingMode ?? CookieBannerHandlingMode.rejectAll, + cookieBannerHandlingModePrivateBrowsing: + cookieBannerHandlingModePrivateBrowsing ?? + CookieBannerHandlingMode.rejectAll, + cookieBannerHandlingGlobalRules: + cookieBannerHandlingGlobalRules ?? true, + cookieBannerHandlingGlobalRulesSubFrames: + cookieBannerHandlingGlobalRulesSubFrames ?? true, + webContentIsolationStrategy: + webContentIsolationStrategy ?? + WebContentIsolationStrategy.isolateHighValue, + ); factory EngineSettings.fromJson(Map json) => _$EngineSettingsFromJson(json); @@ -89,15 +90,15 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable { @override List get hashParameters => [ - super.javascriptEnabled, - super.trackingProtectionPolicy, - super.httpsOnlyMode, - super.globalPrivacyControlEnabled, - super.preferredColorScheme, - super.cookieBannerHandlingMode, - super.cookieBannerHandlingModePrivateBrowsing, - super.cookieBannerHandlingGlobalRules, - super.cookieBannerHandlingGlobalRulesSubFrames, - super.webContentIsolationStrategy, - ]; + super.javascriptEnabled, + super.trackingProtectionPolicy, + super.httpsOnlyMode, + super.globalPrivacyControlEnabled, + super.preferredColorScheme, + super.cookieBannerHandlingMode, + super.cookieBannerHandlingModePrivateBrowsing, + super.cookieBannerHandlingGlobalRules, + super.cookieBannerHandlingGlobalRulesSubFrames, + super.webContentIsolationStrategy, + ]; } diff --git a/app/lib/features/user/data/models/engine_settings.g.dart b/app/lib/features/user/data/models/engine_settings.g.dart index 8034c2c2..c83b1be0 100644 --- a/app/lib/features/user/data/models/engine_settings.g.dart +++ b/app/lib/features/user/data/models/engine_settings.g.dart @@ -10,7 +10,8 @@ abstract class _$EngineSettingsCWProxy { EngineSettings javascriptEnabled(bool? javascriptEnabled); EngineSettings trackingProtectionPolicy( - TrackingProtectionPolicy? trackingProtectionPolicy); + TrackingProtectionPolicy? trackingProtectionPolicy, + ); EngineSettings httpsOnlyMode(HttpsOnlyMode? httpsOnlyMode); @@ -19,19 +20,24 @@ abstract class _$EngineSettingsCWProxy { EngineSettings preferredColorScheme(ColorScheme? preferredColorScheme); EngineSettings cookieBannerHandlingMode( - CookieBannerHandlingMode? cookieBannerHandlingMode); + CookieBannerHandlingMode? cookieBannerHandlingMode, + ); EngineSettings cookieBannerHandlingModePrivateBrowsing( - CookieBannerHandlingMode? cookieBannerHandlingModePrivateBrowsing); + CookieBannerHandlingMode? cookieBannerHandlingModePrivateBrowsing, + ); EngineSettings cookieBannerHandlingGlobalRules( - bool? cookieBannerHandlingGlobalRules); + bool? cookieBannerHandlingGlobalRules, + ); EngineSettings cookieBannerHandlingGlobalRulesSubFrames( - bool? cookieBannerHandlingGlobalRulesSubFrames); + bool? cookieBannerHandlingGlobalRulesSubFrames, + ); EngineSettings webContentIsolationStrategy( - WebContentIsolationStrategy? webContentIsolationStrategy); + WebContentIsolationStrategy? webContentIsolationStrategy, + ); /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `EngineSettings(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// @@ -65,8 +71,8 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy { @override EngineSettings trackingProtectionPolicy( - TrackingProtectionPolicy? trackingProtectionPolicy) => - this(trackingProtectionPolicy: trackingProtectionPolicy); + TrackingProtectionPolicy? trackingProtectionPolicy, + ) => this(trackingProtectionPolicy: trackingProtectionPolicy); @override EngineSettings httpsOnlyMode(HttpsOnlyMode? httpsOnlyMode) => @@ -74,8 +80,8 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy { @override EngineSettings globalPrivacyControlEnabled( - bool? globalPrivacyControlEnabled) => - this(globalPrivacyControlEnabled: globalPrivacyControlEnabled); + bool? globalPrivacyControlEnabled, + ) => this(globalPrivacyControlEnabled: globalPrivacyControlEnabled); @override EngineSettings preferredColorScheme(ColorScheme? preferredColorScheme) => @@ -83,35 +89,36 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy { @override EngineSettings cookieBannerHandlingMode( - CookieBannerHandlingMode? cookieBannerHandlingMode) => - this(cookieBannerHandlingMode: cookieBannerHandlingMode); + CookieBannerHandlingMode? cookieBannerHandlingMode, + ) => this(cookieBannerHandlingMode: cookieBannerHandlingMode); @override EngineSettings cookieBannerHandlingModePrivateBrowsing( - CookieBannerHandlingMode? cookieBannerHandlingModePrivateBrowsing) => - this( - cookieBannerHandlingModePrivateBrowsing: - cookieBannerHandlingModePrivateBrowsing); + CookieBannerHandlingMode? cookieBannerHandlingModePrivateBrowsing, + ) => this( + cookieBannerHandlingModePrivateBrowsing: + cookieBannerHandlingModePrivateBrowsing, + ); @override EngineSettings cookieBannerHandlingGlobalRules( - bool? cookieBannerHandlingGlobalRules) => - this(cookieBannerHandlingGlobalRules: cookieBannerHandlingGlobalRules); + bool? cookieBannerHandlingGlobalRules, + ) => this(cookieBannerHandlingGlobalRules: cookieBannerHandlingGlobalRules); @override EngineSettings cookieBannerHandlingGlobalRulesSubFrames( - bool? cookieBannerHandlingGlobalRulesSubFrames) => - this( - cookieBannerHandlingGlobalRulesSubFrames: - cookieBannerHandlingGlobalRulesSubFrames); + bool? cookieBannerHandlingGlobalRulesSubFrames, + ) => this( + cookieBannerHandlingGlobalRulesSubFrames: + cookieBannerHandlingGlobalRulesSubFrames, + ); @override EngineSettings webContentIsolationStrategy( - WebContentIsolationStrategy? webContentIsolationStrategy) => - this(webContentIsolationStrategy: webContentIsolationStrategy); + WebContentIsolationStrategy? webContentIsolationStrategy, + ) => this(webContentIsolationStrategy: webContentIsolationStrategy); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `EngineSettings(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -133,28 +140,31 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy { Object? webContentIsolationStrategy = const $CopyWithPlaceholder(), }) { return EngineSettings( - javascriptEnabled: javascriptEnabled == const $CopyWithPlaceholder() - ? _value.javascriptEnabled - // ignore: cast_nullable_to_non_nullable - : javascriptEnabled as bool?, + javascriptEnabled: + javascriptEnabled == const $CopyWithPlaceholder() + ? _value.javascriptEnabled + // ignore: cast_nullable_to_non_nullable + : javascriptEnabled as bool?, trackingProtectionPolicy: trackingProtectionPolicy == const $CopyWithPlaceholder() ? _value.trackingProtectionPolicy // ignore: cast_nullable_to_non_nullable : trackingProtectionPolicy as TrackingProtectionPolicy?, - httpsOnlyMode: httpsOnlyMode == const $CopyWithPlaceholder() - ? _value.httpsOnlyMode - // ignore: cast_nullable_to_non_nullable - : httpsOnlyMode as HttpsOnlyMode?, + httpsOnlyMode: + httpsOnlyMode == const $CopyWithPlaceholder() + ? _value.httpsOnlyMode + // ignore: cast_nullable_to_non_nullable + : httpsOnlyMode as HttpsOnlyMode?, globalPrivacyControlEnabled: globalPrivacyControlEnabled == const $CopyWithPlaceholder() ? _value.globalPrivacyControlEnabled // ignore: cast_nullable_to_non_nullable : globalPrivacyControlEnabled as bool?, - preferredColorScheme: preferredColorScheme == const $CopyWithPlaceholder() - ? _value.preferredColorScheme - // ignore: cast_nullable_to_non_nullable - : preferredColorScheme as ColorScheme?, + preferredColorScheme: + preferredColorScheme == const $CopyWithPlaceholder() + ? _value.preferredColorScheme + // ignore: cast_nullable_to_non_nullable + : preferredColorScheme as ColorScheme?, cookieBannerHandlingMode: cookieBannerHandlingMode == const $CopyWithPlaceholder() ? _value.cookieBannerHandlingMode @@ -201,47 +211,57 @@ EngineSettings _$EngineSettingsFromJson(Map json) => EngineSettings.withDefaults( javascriptEnabled: json['javascriptEnabled'] as bool?, trackingProtectionPolicy: $enumDecodeNullable( - _$TrackingProtectionPolicyEnumMap, json['trackingProtectionPolicy']), - httpsOnlyMode: - $enumDecodeNullable(_$HttpsOnlyModeEnumMap, json['httpsOnlyMode']), + _$TrackingProtectionPolicyEnumMap, + json['trackingProtectionPolicy'], + ), + httpsOnlyMode: $enumDecodeNullable( + _$HttpsOnlyModeEnumMap, + json['httpsOnlyMode'], + ), globalPrivacyControlEnabled: json['globalPrivacyControlEnabled'] as bool?, preferredColorScheme: $enumDecodeNullable( - _$ColorSchemeEnumMap, json['preferredColorScheme']), + _$ColorSchemeEnumMap, + json['preferredColorScheme'], + ), cookieBannerHandlingMode: $enumDecodeNullable( - _$CookieBannerHandlingModeEnumMap, json['cookieBannerHandlingMode']), + _$CookieBannerHandlingModeEnumMap, + json['cookieBannerHandlingMode'], + ), cookieBannerHandlingModePrivateBrowsing: $enumDecodeNullable( - _$CookieBannerHandlingModeEnumMap, - json['cookieBannerHandlingModePrivateBrowsing']), + _$CookieBannerHandlingModeEnumMap, + json['cookieBannerHandlingModePrivateBrowsing'], + ), cookieBannerHandlingGlobalRules: json['cookieBannerHandlingGlobalRules'] as bool?, cookieBannerHandlingGlobalRulesSubFrames: json['cookieBannerHandlingGlobalRulesSubFrames'] as bool?, webContentIsolationStrategy: $enumDecodeNullable( - _$WebContentIsolationStrategyEnumMap, - json['webContentIsolationStrategy']), + _$WebContentIsolationStrategyEnumMap, + json['webContentIsolationStrategy'], + ), ); -Map _$EngineSettingsToJson(EngineSettings instance) => - { - 'javascriptEnabled': instance.javascriptEnabled, - 'trackingProtectionPolicy': - _$TrackingProtectionPolicyEnumMap[instance.trackingProtectionPolicy]!, - 'httpsOnlyMode': _$HttpsOnlyModeEnumMap[instance.httpsOnlyMode]!, - 'preferredColorScheme': - _$ColorSchemeEnumMap[instance.preferredColorScheme]!, - 'globalPrivacyControlEnabled': instance.globalPrivacyControlEnabled, - 'cookieBannerHandlingMode': - _$CookieBannerHandlingModeEnumMap[instance.cookieBannerHandlingMode]!, - 'cookieBannerHandlingModePrivateBrowsing': - _$CookieBannerHandlingModeEnumMap[ - instance.cookieBannerHandlingModePrivateBrowsing]!, - 'cookieBannerHandlingGlobalRules': - instance.cookieBannerHandlingGlobalRules, - 'cookieBannerHandlingGlobalRulesSubFrames': - instance.cookieBannerHandlingGlobalRulesSubFrames, - 'webContentIsolationStrategy': _$WebContentIsolationStrategyEnumMap[ - instance.webContentIsolationStrategy]!, - }; +Map _$EngineSettingsToJson( + EngineSettings instance, +) => { + 'javascriptEnabled': instance.javascriptEnabled, + 'trackingProtectionPolicy': + _$TrackingProtectionPolicyEnumMap[instance.trackingProtectionPolicy]!, + 'httpsOnlyMode': _$HttpsOnlyModeEnumMap[instance.httpsOnlyMode]!, + 'preferredColorScheme': _$ColorSchemeEnumMap[instance.preferredColorScheme]!, + 'globalPrivacyControlEnabled': instance.globalPrivacyControlEnabled, + 'cookieBannerHandlingMode': + _$CookieBannerHandlingModeEnumMap[instance.cookieBannerHandlingMode]!, + 'cookieBannerHandlingModePrivateBrowsing': + _$CookieBannerHandlingModeEnumMap[instance + .cookieBannerHandlingModePrivateBrowsing]!, + 'cookieBannerHandlingGlobalRules': instance.cookieBannerHandlingGlobalRules, + 'cookieBannerHandlingGlobalRulesSubFrames': + instance.cookieBannerHandlingGlobalRulesSubFrames, + 'webContentIsolationStrategy': + _$WebContentIsolationStrategyEnumMap[instance + .webContentIsolationStrategy]!, +}; const _$TrackingProtectionPolicyEnumMap = { TrackingProtectionPolicy.none: 'none', diff --git a/app/lib/features/user/data/models/general_settings.dart b/app/lib/features/user/data/models/general_settings.dart index 3a9367de..d02b2a5f 100644 --- a/app/lib/features/user/data/models/general_settings.dart +++ b/app/lib/features/user/data/models/general_settings.dart @@ -36,8 +36,8 @@ class GeneralSettings with FastEquatable { ThemeMode? themeMode, bool? enableReadability, this.deleteBrowsingDataOnQuit, - }) : themeMode = themeMode ?? ThemeMode.dark, - enableReadability = enableReadability ?? true; + }) : themeMode = themeMode ?? ThemeMode.dark, + enableReadability = enableReadability ?? true; factory GeneralSettings.fromJson(Map json) => _$GeneralSettingsFromJson(json); @@ -49,8 +49,8 @@ class GeneralSettings with FastEquatable { @override List get hashParameters => [ - themeMode, - enableReadability, - deleteBrowsingDataOnQuit, - ]; + themeMode, + enableReadability, + deleteBrowsingDataOnQuit, + ]; } diff --git a/app/lib/features/user/data/models/general_settings.g.dart b/app/lib/features/user/data/models/general_settings.g.dart index 50a52f29..74966fa9 100644 --- a/app/lib/features/user/data/models/general_settings.g.dart +++ b/app/lib/features/user/data/models/general_settings.g.dart @@ -12,7 +12,8 @@ abstract class _$GeneralSettingsCWProxy { GeneralSettings enableReadability(bool enableReadability); GeneralSettings deleteBrowsingDataOnQuit( - Set? deleteBrowsingDataOnQuit); + Set? deleteBrowsingDataOnQuit, + ); /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `GeneralSettings(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// @@ -42,11 +43,10 @@ class _$GeneralSettingsCWProxyImpl implements _$GeneralSettingsCWProxy { @override GeneralSettings deleteBrowsingDataOnQuit( - Set? deleteBrowsingDataOnQuit) => - this(deleteBrowsingDataOnQuit: deleteBrowsingDataOnQuit); + Set? deleteBrowsingDataOnQuit, + ) => this(deleteBrowsingDataOnQuit: deleteBrowsingDataOnQuit); @override - /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `GeneralSettings(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// /// Usage @@ -59,14 +59,16 @@ class _$GeneralSettingsCWProxyImpl implements _$GeneralSettingsCWProxy { Object? deleteBrowsingDataOnQuit = const $CopyWithPlaceholder(), }) { return GeneralSettings( - themeMode: themeMode == const $CopyWithPlaceholder() - ? _value.themeMode - // ignore: cast_nullable_to_non_nullable - : themeMode as ThemeMode, - enableReadability: enableReadability == const $CopyWithPlaceholder() - ? _value.enableReadability - // ignore: cast_nullable_to_non_nullable - : enableReadability as bool, + themeMode: + themeMode == const $CopyWithPlaceholder() + ? _value.themeMode + // ignore: cast_nullable_to_non_nullable + : themeMode as ThemeMode, + enableReadability: + enableReadability == const $CopyWithPlaceholder() + ? _value.enableReadability + // ignore: cast_nullable_to_non_nullable + : enableReadability as bool, deleteBrowsingDataOnQuit: deleteBrowsingDataOnQuit == const $CopyWithPlaceholder() ? _value.deleteBrowsingDataOnQuit @@ -100,9 +102,10 @@ Map _$GeneralSettingsToJson(GeneralSettings instance) => { 'themeMode': _$ThemeModeEnumMap[instance.themeMode]!, 'enableReadability': instance.enableReadability, - 'deleteBrowsingDataOnQuit': instance.deleteBrowsingDataOnQuit - ?.map((e) => _$DeleteBrowsingDataTypeEnumMap[e]!) - .toList(), + 'deleteBrowsingDataOnQuit': + instance.deleteBrowsingDataOnQuit + ?.map((e) => _$DeleteBrowsingDataTypeEnumMap[e]!) + .toList(), }; const _$ThemeModeEnumMap = { diff --git a/app/lib/features/user/domain/providers.dart b/app/lib/features/user/domain/providers.dart index cb3cd6a7..f7beb3dd 100644 --- a/app/lib/features/user/domain/providers.dart +++ b/app/lib/features/user/domain/providers.dart @@ -25,8 +25,9 @@ Future _storedAuthData(Ref ref) { AsyncAuthStore authStore(Ref ref) { const secureStorage = FlutterSecureStorage(); - final intial = - ref.watch(_storedAuthDataProvider.select((value) => value.valueOrNull)); + final intial = ref.watch( + _storedAuthDataProvider.select((value) => value.valueOrNull), + ); return AsyncAuthStore( initial: intial, @@ -52,7 +53,8 @@ PocketBase pocketBase(Ref ref) { @Riverpod() bool incognitoModeEnabled(Ref ref) { return ref.watch( - generalSettingsRepositoryProvider - .select((value) => value.deleteBrowsingDataOnQuit != null), + generalSettingsRepositoryProvider.select( + (value) => value.deleteBrowsingDataOnQuit != null, + ), ); } diff --git a/app/lib/features/user/domain/providers.g.dart b/app/lib/features/user/domain/providers.g.dart index 60f3514e..fd0e087b 100644 --- a/app/lib/features/user/domain/providers.g.dart +++ b/app/lib/features/user/domain/providers.g.dart @@ -13,14 +13,15 @@ String _$iconCacheSizeMegabytesHash() => @ProviderFor(iconCacheSizeMegabytes) final iconCacheSizeMegabytesProvider = AutoDisposeStreamProvider.internal( - iconCacheSizeMegabytes, - name: r'iconCacheSizeMegabytesProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$iconCacheSizeMegabytesHash, - dependencies: null, - allTransitiveDependencies: null, -); + iconCacheSizeMegabytes, + name: r'iconCacheSizeMegabytesProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$iconCacheSizeMegabytesHash, + dependencies: null, + allTransitiveDependencies: null, + ); @Deprecated('Will be removed in 3.0. Use Ref instead') // ignore: unused_element @@ -32,9 +33,10 @@ String _$storedAuthDataHash() => r'5f7e3ef6233a2036f7ce3728131901a46b1e548e'; final _storedAuthDataProvider = AutoDisposeFutureProvider.internal( _storedAuthData, name: r'_storedAuthDataProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$storedAuthDataHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$storedAuthDataHash, dependencies: null, allTransitiveDependencies: null, ); @@ -98,9 +100,10 @@ String _$incognitoModeEnabledHash() => final incognitoModeEnabledProvider = AutoDisposeProvider.internal( incognitoModeEnabled, name: r'incognitoModeEnabledProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$incognitoModeEnabledHash, + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$incognitoModeEnabledHash, dependencies: null, allTransitiveDependencies: null, ); diff --git a/app/lib/features/user/domain/repositories/auth.dart b/app/lib/features/user/domain/repositories/auth.dart index ce98210b..42420831 100644 --- a/app/lib/features/user/domain/repositories/auth.dart +++ b/app/lib/features/user/domain/repositories/auth.dart @@ -33,13 +33,15 @@ class AuthRepository extends _$AuthRepository { String password, ) async { try { - return await _pb.collection('users').create( - body: { - "email": email, - "password": password, - "passwordConfirm": password, - }, - ); + return await _pb + .collection('users') + .create( + body: { + "email": email, + "password": password, + "passwordConfirm": password, + }, + ); } on ClientException catch (e) { throw AuthException(e.errorMessage); } diff --git a/app/lib/features/user/domain/repositories/auth.g.dart b/app/lib/features/user/domain/repositories/auth.g.dart index 1bdcd08a..43ea7255 100644 --- a/app/lib/features/user/domain/repositories/auth.g.dart +++ b/app/lib/features/user/domain/repositories/auth.g.dart @@ -12,14 +12,15 @@ String _$authRepositoryHash() => r'90ea6f082ef968831763c7f7ee31863f1fe329fe'; @ProviderFor(AuthRepository) final authRepositoryProvider = AutoDisposeNotifierProvider.internal( - AuthRepository.new, - name: r'authRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$authRepositoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + AuthRepository.new, + name: r'authRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$authRepositoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$AuthRepository = AutoDisposeNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/user/domain/repositories/cache.g.dart b/app/lib/features/user/domain/repositories/cache.g.dart index ea2d3bb6..c8ea66e1 100644 --- a/app/lib/features/user/domain/repositories/cache.g.dart +++ b/app/lib/features/user/domain/repositories/cache.g.dart @@ -12,14 +12,15 @@ String _$cacheRepositoryHash() => r'548b7cba9a23c21bba39f0918d7d90acaaf8d8e9'; @ProviderFor(CacheRepository) final cacheRepositoryProvider = NotifierProvider.internal( - CacheRepository.new, - name: r'cacheRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$cacheRepositoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + CacheRepository.new, + name: r'cacheRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$cacheRepositoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$CacheRepository = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/user/domain/repositories/engine_settings.dart b/app/lib/features/user/domain/repositories/engine_settings.dart index fc586903..a4e32c74 100644 --- a/app/lib/features/user/domain/repositories/engine_settings.dart +++ b/app/lib/features/user/domain/repositories/engine_settings.dart @@ -7,9 +7,8 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'engine_settings.g.dart'; -typedef UpdateEngineSettingsFunc = EngineSettings Function( - EngineSettings currentSettings, -); +typedef UpdateEngineSettingsFunc = + EngineSettings Function(EngineSettings currentSettings); @Riverpod(keepAlive: true) class EngineSettingsRepository extends _$EngineSettingsRepository { @@ -39,34 +38,52 @@ class EngineSettingsRepository extends _$EngineSettingsRepository { .allSettingsOfPartitionKey(_partitionKey) .watch() .listen((entries) { - final settings = Map.fromEntries(entries); + final settings = Map.fromEntries(entries); - state = EngineSettings.fromJson({ - 'incognitoMode': settings['incognitoMode'] - ?.readAs(DriftSqlType.bool, db.typeMapping), - 'javascriptEnabled': settings['javascriptEnabled'] - ?.readAs(DriftSqlType.bool, db.typeMapping), - 'trackingProtectionPolicy': settings['trackingProtectionPolicy'] - ?.readAs(DriftSqlType.string, db.typeMapping), - 'httpsOnlyMode': settings['httpsOnlyMode'] - ?.readAs(DriftSqlType.string, db.typeMapping), - 'globalPrivacyControlEnabled': settings['globalPrivacyControlEnabled'] - ?.readAs(DriftSqlType.bool, db.typeMapping), - 'cookieBannerHandlingMode': settings['cookieBannerHandlingMode'] - ?.readAs(DriftSqlType.string, db.typeMapping), - 'cookieBannerHandlingModePrivateBrowsing': - settings['cookieBannerHandlingModePrivateBrowsing'] + state = EngineSettings.fromJson({ + 'incognitoMode': settings['incognitoMode']?.readAs( + DriftSqlType.bool, + db.typeMapping, + ), + 'javascriptEnabled': settings['javascriptEnabled']?.readAs( + DriftSqlType.bool, + db.typeMapping, + ), + 'trackingProtectionPolicy': settings['trackingProtectionPolicy'] ?.readAs(DriftSqlType.string, db.typeMapping), - 'cookieBannerHandlingGlobalRules': - settings['cookieBannerHandlingGlobalRules'] - ?.readAs(DriftSqlType.bool, db.typeMapping), - 'cookieBannerHandlingGlobalRulesSubFrames': - settings['cookieBannerHandlingGlobalRulesSubFrames'] - ?.readAs(DriftSqlType.bool, db.typeMapping), - 'webContentIsolationStrategy': settings['webContentIsolationStrategy'] - ?.readAs(DriftSqlType.string, db.typeMapping), - }); - }); + 'httpsOnlyMode': settings['httpsOnlyMode']?.readAs( + DriftSqlType.string, + db.typeMapping, + ), + 'globalPrivacyControlEnabled': + settings['globalPrivacyControlEnabled']?.readAs( + DriftSqlType.bool, + db.typeMapping, + ), + 'cookieBannerHandlingMode': settings['cookieBannerHandlingMode'] + ?.readAs(DriftSqlType.string, db.typeMapping), + 'cookieBannerHandlingModePrivateBrowsing': + settings['cookieBannerHandlingModePrivateBrowsing']?.readAs( + DriftSqlType.string, + db.typeMapping, + ), + 'cookieBannerHandlingGlobalRules': + settings['cookieBannerHandlingGlobalRules']?.readAs( + DriftSqlType.bool, + db.typeMapping, + ), + 'cookieBannerHandlingGlobalRulesSubFrames': + settings['cookieBannerHandlingGlobalRulesSubFrames']?.readAs( + DriftSqlType.bool, + db.typeMapping, + ), + 'webContentIsolationStrategy': + settings['webContentIsolationStrategy']?.readAs( + DriftSqlType.string, + db.typeMapping, + ), + }); + }); ref.onDispose(() { unawaited(watchSub.cancel()); diff --git a/app/lib/features/user/domain/repositories/engine_settings.g.dart b/app/lib/features/user/domain/repositories/engine_settings.g.dart index 2c1a1720..4d4ec2b2 100644 --- a/app/lib/features/user/domain/repositories/engine_settings.g.dart +++ b/app/lib/features/user/domain/repositories/engine_settings.g.dart @@ -13,14 +13,15 @@ String _$engineSettingsRepositoryHash() => @ProviderFor(EngineSettingsRepository) final engineSettingsRepositoryProvider = NotifierProvider.internal( - EngineSettingsRepository.new, - name: r'engineSettingsRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$engineSettingsRepositoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + EngineSettingsRepository.new, + name: r'engineSettingsRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$engineSettingsRepositoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$EngineSettingsRepository = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/user/domain/repositories/general_settings.dart b/app/lib/features/user/domain/repositories/general_settings.dart index 51fd377e..9c60109e 100644 --- a/app/lib/features/user/domain/repositories/general_settings.dart +++ b/app/lib/features/user/domain/repositories/general_settings.dart @@ -9,9 +9,8 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'general_settings.g.dart'; -typedef UpdateGeneralSettingsFunc = GeneralSettings Function( - GeneralSettings currentSettings, -); +typedef UpdateGeneralSettingsFunc = + GeneralSettings Function(GeneralSettings currentSettings); @Riverpod(keepAlive: true) class GeneralSettingsRepository extends _$GeneralSettingsRepository { @@ -25,10 +24,14 @@ class GeneralSettingsRepository extends _$GeneralSettingsRepository { final db = ref.read(userDatabaseProvider); return GeneralSettings.fromJson({ - 'themeMode': - settings['themeMode']?.readAs(DriftSqlType.string, db.typeMapping), - 'enableReadability': settings['enableReadability'] - ?.readAs(DriftSqlType.bool, db.typeMapping), + 'themeMode': settings['themeMode']?.readAs( + DriftSqlType.string, + db.typeMapping, + ), + 'enableReadability': settings['enableReadability']?.readAs( + DriftSqlType.bool, + db.typeMapping, + ), 'deleteBrowsingDataOnQuit': settings['deleteBrowsingDataOnQuit'] ?.readAs(DriftSqlType.string, db.typeMapping) .mapNotNull(jsonDecode), @@ -64,12 +67,12 @@ class GeneralSettingsRepository extends _$GeneralSettingsRepository { GeneralSettings build() { final db = ref.watch(userDatabaseProvider); - final watchSub = - db.settingDao.allSettingsOfPartitionKey(_partitionKey).watch().listen( - (event) { - state = _deserializeSettings(event); - }, - ); + final watchSub = db.settingDao + .allSettingsOfPartitionKey(_partitionKey) + .watch() + .listen((event) { + state = _deserializeSettings(event); + }); ref.onDispose(() { unawaited(watchSub.cancel()); diff --git a/app/lib/features/user/domain/repositories/general_settings.g.dart b/app/lib/features/user/domain/repositories/general_settings.g.dart index aa62324f..669356a8 100644 --- a/app/lib/features/user/domain/repositories/general_settings.g.dart +++ b/app/lib/features/user/domain/repositories/general_settings.g.dart @@ -13,14 +13,15 @@ String _$generalSettingsRepositoryHash() => @ProviderFor(GeneralSettingsRepository) final generalSettingsRepositoryProvider = NotifierProvider.internal( - GeneralSettingsRepository.new, - name: r'generalSettingsRepositoryProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$generalSettingsRepositoryHash, - dependencies: null, - allTransitiveDependencies: null, -); + GeneralSettingsRepository.new, + name: r'generalSettingsRepositoryProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$generalSettingsRepositoryHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$GeneralSettingsRepository = Notifier; // ignore_for_file: type=lint diff --git a/app/lib/features/user/domain/services/local_authentication.dart b/app/lib/features/user/domain/services/local_authentication.dart index 610dd4c6..801394f9 100644 --- a/app/lib/features/user/domain/services/local_authentication.dart +++ b/app/lib/features/user/domain/services/local_authentication.dart @@ -23,9 +23,7 @@ class LocalAuthenticationService extends _$LocalAuthenticationService { } void evictCacheOnBackground() { - _cache.removeWhere( - (key, value) => value.$2.lockOnAppBackground, - ); + _cache.removeWhere((key, value) => value.$2.lockOnAppBackground); } Future authenticate({ @@ -38,9 +36,7 @@ class LocalAuthenticationService extends _$LocalAuthenticationService { var result = useAuthCache && _cacheAuth(authKey); if (!result) { - result = await _auth.authenticate( - localizedReason: localizedReason, - ); + result = await _auth.authenticate(localizedReason: localizedReason); } if (result && settings != null) { diff --git a/app/lib/features/user/domain/services/local_authentication.g.dart b/app/lib/features/user/domain/services/local_authentication.g.dart index 3f3b9d3c..b8e35d1f 100644 --- a/app/lib/features/user/domain/services/local_authentication.g.dart +++ b/app/lib/features/user/domain/services/local_authentication.g.dart @@ -13,14 +13,15 @@ String _$localAuthenticationServiceHash() => @ProviderFor(LocalAuthenticationService) final localAuthenticationServiceProvider = AsyncNotifierProvider.internal( - LocalAuthenticationService.new, - name: r'localAuthenticationServiceProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$localAuthenticationServiceHash, - dependencies: null, - allTransitiveDependencies: null, -); + LocalAuthenticationService.new, + name: r'localAuthenticationServiceProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$localAuthenticationServiceHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$LocalAuthenticationService = AsyncNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/user/presentation/controllers/controllers.g.dart b/app/lib/features/user/presentation/controllers/controllers.g.dart index cfbe9514..2d0c2e1d 100644 --- a/app/lib/features/user/presentation/controllers/controllers.g.dart +++ b/app/lib/features/user/presentation/controllers/controllers.g.dart @@ -12,14 +12,15 @@ String _$authControllerHash() => r'5b56651948683d669f29946fe02bdb004f436afb'; @ProviderFor(AuthController) final authControllerProvider = AutoDisposeAsyncNotifierProvider.internal( - AuthController.new, - name: r'authControllerProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$authControllerHash, - dependencies: null, - allTransitiveDependencies: null, -); + AuthController.new, + name: r'authControllerProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$authControllerHash, + dependencies: null, + allTransitiveDependencies: null, + ); typedef _$AuthController = AutoDisposeAsyncNotifier; // ignore_for_file: type=lint diff --git a/app/lib/features/user/presentation/screens/auth.dart b/app/lib/features/user/presentation/screens/auth.dart index fc848c0a..736393e4 100644 --- a/app/lib/features/user/presentation/screens/auth.dart +++ b/app/lib/features/user/presentation/screens/auth.dart @@ -5,10 +5,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:lensai/features/user/domain/providers.dart'; import 'package:lensai/features/user/presentation/controllers/controllers.dart'; -enum _AuthType { - login, - signup, -} +enum _AuthType { login, signup } class UserAuthScreen extends HookConsumerWidget { const UserAuthScreen(); @@ -25,14 +22,14 @@ class UserAuthScreen extends HookConsumerWidget { final authState = ref.watch(authControllerProvider); - ref.listen( - authStateProvider.select((value) => value.valueOrNull), - (previous, next) { - if (next?.token.isNotEmpty ?? false) { - context.pop(true); - } - }, - ); + ref.listen(authStateProvider.select((value) => value.valueOrNull), ( + previous, + next, + ) { + if (next?.token.isNotEmpty ?? false) { + context.pop(true); + } + }); return Dialog( child: Padding( @@ -57,9 +54,7 @@ class UserAuthScreen extends HookConsumerWidget { }, keyboardType: TextInputType.emailAddress, ), - const SizedBox( - height: 8.0, - ), + const SizedBox(height: 8.0), HookBuilder( builder: (context) { final obscure = useState(true); @@ -125,9 +120,7 @@ class UserAuthScreen extends HookConsumerWidget { ); }, ), - const SizedBox( - height: 16, - ), + const SizedBox(height: 16), if (authState.hasError && !authState.isLoading) Padding( padding: const EdgeInsets.only(bottom: 16.0), @@ -141,58 +134,62 @@ class UserAuthScreen extends HookConsumerWidget { if (!authState.isLoading) switch (authType.value) { _AuthType.login => FilledButton( - onPressed: () async { - if (formKey.currentState?.validate() ?? false) { - final controller = - ref.read(authControllerProvider.notifier); + onPressed: () async { + if (formKey.currentState?.validate() ?? false) { + final controller = ref.read( + authControllerProvider.notifier, + ); - await controller.authWithPassword( - userTextController.text, - passwordTextController.text, - ); - } - }, - child: const Text('Login'), - ), + await controller.authWithPassword( + userTextController.text, + passwordTextController.text, + ); + } + }, + child: const Text('Login'), + ), _AuthType.signup => FilledButton( - onPressed: () async { - if (formKey.currentState?.validate() ?? false) { - final controller = - ref.read(authControllerProvider.notifier); + onPressed: () async { + if (formKey.currentState?.validate() ?? false) { + final controller = ref.read( + authControllerProvider.notifier, + ); - await controller.registerWithPassword( - userTextController.text, - passwordTextController.text, - ); - } - }, - child: const Text('Signup'), - ) + await controller.registerWithPassword( + userTextController.text, + passwordTextController.text, + ); + } + }, + child: const Text('Signup'), + ), } else const CircularProgressIndicator(), if (!authState.isLoading) switch (authType.value) { _AuthType.login => TextButton( - onPressed: () { - final controller = - ref.read(authControllerProvider.notifier); + onPressed: () { + final controller = ref.read( + authControllerProvider.notifier, + ); - controller.clearState(); - authType.value = _AuthType.signup; - }, - child: const Text('Signup'), - ), + controller.clearState(); + authType.value = _AuthType.signup; + }, + child: const Text('Signup'), + ), _AuthType.signup => TextButton( - onPressed: () { - final controller = - ref.read(authControllerProvider.notifier); + onPressed: () { + final controller = ref.read( + authControllerProvider.notifier, + ); - controller.clearState(); - authType.value = _AuthType.login; - }, - child: const Text('Login'), - ), + controller.clearState(); + authType.value = _AuthType.login; + }, + child: const Text('Login'), + ), }, ], ), diff --git a/app/lib/main.dart b/app/lib/main.dart index 08b158ae..ba10503c 100644 --- a/app/lib/main.dart +++ b/app/lib/main.dart @@ -28,13 +28,11 @@ void main() async { ), ); - useOnInitialization( - () async { - await ref - .read(appInitializationServiceProvider.notifier) - .initialize(); - }, - ); + useOnInitialization(() async { + await ref + .read(appInitializationServiceProvider.notifier) + .initialize(); + }); return DynamicColorBuilder( builder: (lightDynamic, darkDynamic) { diff --git a/app/lib/presentation/controllers/website_title.g.dart b/app/lib/presentation/controllers/website_title.g.dart index a322f8fa..3ef5a81c 100644 --- a/app/lib/presentation/controllers/website_title.g.dart +++ b/app/lib/presentation/controllers/website_title.g.dart @@ -39,21 +39,13 @@ class PageInfoFamily extends Family> { const PageInfoFamily(); /// See also [pageInfo]. - PageInfoProvider call( - Uri url, - ) { - return PageInfoProvider( - url, - ); + PageInfoProvider call(Uri url) { + return PageInfoProvider(url); } @override - PageInfoProvider getProviderOverride( - covariant PageInfoProvider provider, - ) { - return call( - provider.url, - ); + PageInfoProvider getProviderOverride(covariant PageInfoProvider provider) { + return call(provider.url); } static const Iterable? _dependencies = null; @@ -74,23 +66,19 @@ class PageInfoFamily extends Family> { /// See also [pageInfo]. class PageInfoProvider extends FutureProvider { /// See also [pageInfo]. - PageInfoProvider( - Uri url, - ) : this._internal( - (ref) => pageInfo( - ref as PageInfoRef, - url, - ), - from: pageInfoProvider, - name: r'pageInfoProvider', - debugGetCreateSourceHash: - const bool.fromEnvironment('dart.vm.product') - ? null - : _$pageInfoHash, - dependencies: PageInfoFamily._dependencies, - allTransitiveDependencies: PageInfoFamily._allTransitiveDependencies, - url: url, - ); + PageInfoProvider(Uri url) + : this._internal( + (ref) => pageInfo(ref as PageInfoRef, url), + from: pageInfoProvider, + name: r'pageInfoProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$pageInfoHash, + dependencies: PageInfoFamily._dependencies, + allTransitiveDependencies: PageInfoFamily._allTransitiveDependencies, + url: url, + ); PageInfoProvider._internal( super._createNotifier, { @@ -155,5 +143,6 @@ class _PageInfoProviderElement extends FutureProviderElement @override Uri get url => (origin as PageInfoProvider).url; } + // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/app/lib/presentation/hooks/cached_future.dart b/app/lib/presentation/hooks/cached_future.dart index dc272281..1f7e55f5 100644 --- a/app/lib/presentation/hooks/cached_future.dart +++ b/app/lib/presentation/hooks/cached_future.dart @@ -6,9 +6,6 @@ AsyncSnapshot useCachedFuture( List keys = const [], ]) { // ignore: discarded_futures - final cachedFuture = useMemoized( - valueBuilder, - keys, - ); + final cachedFuture = useMemoized(valueBuilder, keys); return useFuture(cachedFuture); } diff --git a/app/lib/presentation/hooks/draggable_scrollable_controller.dart b/app/lib/presentation/hooks/draggable_scrollable_controller.dart index 427adcb6..9d0c39ee 100644 --- a/app/lib/presentation/hooks/draggable_scrollable_controller.dart +++ b/app/lib/presentation/hooks/draggable_scrollable_controller.dart @@ -11,13 +11,17 @@ class _DraggableScrollableControllerHook @override HookState> - createState() { + createState() { return _DraggableScrollableControllerHookState(); } } -class _DraggableScrollableControllerHookState extends HookState< - DraggableScrollableController, _DraggableScrollableControllerHook> { +class _DraggableScrollableControllerHookState + extends + HookState< + DraggableScrollableController, + _DraggableScrollableControllerHook + > { late final _controller = DraggableScrollableController(); @override diff --git a/app/lib/presentation/hooks/listenable_callback.dart b/app/lib/presentation/hooks/listenable_callback.dart index 022d70b8..5d223489 100644 --- a/app/lib/presentation/hooks/listenable_callback.dart +++ b/app/lib/presentation/hooks/listenable_callback.dart @@ -6,11 +6,8 @@ void useListenableCallback( void Function() callback, [ List? keys, ]) { - useEffect( - () { - listenable?.addListener(callback); - return () => listenable?.removeListener(callback); - }, - keys ?? [listenable], - ); + useEffect(() { + listenable?.addListener(callback); + return () => listenable?.removeListener(callback); + }, keys ?? [listenable]); } diff --git a/app/lib/presentation/hooks/on_dispose.dart b/app/lib/presentation/hooks/on_dispose.dart index 5ec5f4ec..762ee548 100644 --- a/app/lib/presentation/hooks/on_dispose.dart +++ b/app/lib/presentation/hooks/on_dispose.dart @@ -2,10 +2,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; void useOnDispose(VoidCallback onDispose) { - useEffect( - () { - return onDispose; - }, - const [], - ); + useEffect(() { + return onDispose; + }, const []); } diff --git a/app/lib/presentation/hooks/on_initialization.dart b/app/lib/presentation/hooks/on_initialization.dart index 6f4de469..878dc8f6 100644 --- a/app/lib/presentation/hooks/on_initialization.dart +++ b/app/lib/presentation/hooks/on_initialization.dart @@ -3,11 +3,8 @@ import 'dart:async'; import 'package:flutter_hooks/flutter_hooks.dart'; void useOnInitialization(FutureOr Function() callback) { - useEffect( - () { - Future.microtask(callback); - return null; - }, - [], - ); + useEffect(() { + Future.microtask(callback); + return null; + }, []); } diff --git a/app/lib/presentation/hooks/overlay_portal_controller.dart b/app/lib/presentation/hooks/overlay_portal_controller.dart index 8bb5d6b9..ed9c432a 100644 --- a/app/lib/presentation/hooks/overlay_portal_controller.dart +++ b/app/lib/presentation/hooks/overlay_portal_controller.dart @@ -10,7 +10,7 @@ class _OverlayPortalControllerHook extends Hook { @override HookState> - createState() { + createState() { return _OverlayPortalControllerHookState(); } } diff --git a/app/lib/presentation/hooks/sync_page_tab.dart b/app/lib/presentation/hooks/sync_page_tab.dart index 4d0162d6..f7de17f3 100644 --- a/app/lib/presentation/hooks/sync_page_tab.dart +++ b/app/lib/presentation/hooks/sync_page_tab.dart @@ -6,34 +6,31 @@ void useSyncPageWithTab( PageController pageController, { void Function(int index)? onIndexChanged, }) { - useEffect( - () { - Future syncPage() async { - await pageController.animateToPage( - tabController.index, - curve: Curves.linear, - duration: const Duration(milliseconds: 300), - ); - onIndexChanged?.call(tabController.index); + useEffect(() { + Future syncPage() async { + await pageController.animateToPage( + tabController.index, + curve: Curves.linear, + duration: const Duration(milliseconds: 300), + ); + onIndexChanged?.call(tabController.index); + } + + void syncTab() { + if (!tabController.indexIsChanging) { + final index = pageController.page!.round(); + + tabController.animateTo(index); + onIndexChanged?.call(index); } + } - void syncTab() { - if (!tabController.indexIsChanging) { - final index = pageController.page!.round(); + tabController.addListener(syncPage); + pageController.addListener(syncTab); - tabController.animateTo(index); - onIndexChanged?.call(index); - } - } - - tabController.addListener(syncPage); - pageController.addListener(syncTab); - - return () { - tabController.removeListener(syncPage); - pageController.removeListener(syncTab); - }; - }, - [tabController, pageController], - ); + return () { + tabController.removeListener(syncPage); + pageController.removeListener(syncTab); + }; + }, [tabController, pageController]); } diff --git a/app/lib/presentation/widgets/animate_gradient_shader.dart b/app/lib/presentation/widgets/animate_gradient_shader.dart index 2b4b0726..3c6ed6f3 100644 --- a/app/lib/presentation/widgets/animate_gradient_shader.dart +++ b/app/lib/presentation/widgets/animate_gradient_shader.dart @@ -19,8 +19,8 @@ class AnimateGradientShader extends StatefulWidget { this.duration = const Duration(seconds: 4), this.animateAlignments = true, this.reverse = true, - }) : assert(primaryColors.length >= 2), - assert(primaryColors.length == secondaryColors.length); + }) : assert(primaryColors.length >= 2), + assert(primaryColors.length == secondaryColors.length); /// [controller]: pass this to have a fine control over the [Animation] final AnimationController? controller; @@ -131,19 +131,22 @@ class _AnimateGradientShaderState extends State animation: _animation!, builder: (BuildContext context, Widget? child) { final gradient = LinearGradient( - begin: widget.animateAlignments - ? begin.evaluate(_animation!) - : widget.primaryBegin, - end: widget.animateAlignments - ? end.evaluate(_animation!) - : widget.primaryEnd, + begin: + widget.animateAlignments + ? begin.evaluate(_animation!) + : widget.primaryBegin, + end: + widget.animateAlignments + ? end.evaluate(_animation!) + : widget.primaryEnd, colors: _evaluateColors(_animation!), ); return ShaderMask( shaderCallback: (Rect bounds) { - return gradient - .createShader(Rect.fromLTWH(0, 0, bounds.width, bounds.height)); + return gradient.createShader( + Rect.fromLTWH(0, 0, bounds.width, bounds.height), + ); }, child: widget.child, ); @@ -160,10 +163,7 @@ class _AnimateGradientShaderState extends State for (int i = 0; i < primaryColors.length; i++) { colorTweens.add( - ColorTween( - begin: primaryColors[i], - end: secondaryColors[i], - ), + ColorTween(begin: primaryColors[i], end: secondaryColors[i]), ); } @@ -204,17 +204,12 @@ class _AnimateGradientShaderState extends State void _setAnimations() { _controller?.dispose(); - _controller = (widget.controller ?? - AnimationController( - vsync: this, - duration: widget.duration, - )) - ..repeat(reverse: widget.reverse); + _controller = + (widget.controller ?? + AnimationController(vsync: this, duration: widget.duration)) + ..repeat(reverse: widget.reverse); - _animation = CurvedAnimation( - parent: _controller!, - curve: Curves.easeInOut, - ); + _animation = CurvedAnimation(parent: _controller!, curve: Curves.easeInOut); } @override diff --git a/app/lib/presentation/widgets/animated_indexed_stack.dart b/app/lib/presentation/widgets/animated_indexed_stack.dart index 920533dc..f3198565 100644 --- a/app/lib/presentation/widgets/animated_indexed_stack.dart +++ b/app/lib/presentation/widgets/animated_indexed_stack.dart @@ -77,7 +77,8 @@ class AnimatedIndexedStack extends StatefulWidget { Widget child, Animation primaryAnimation, Animation secondaryAnimation, - ) transitionBuilder; + ) + transitionBuilder; /// A function that lays out all the children in this IndexedStack. /// This defaults to [PageTransitionSwitcher.defaultLayoutBuilder]. @@ -91,10 +92,7 @@ class AnimatedIndexedStack extends StatefulWidget { /// The default layout builder for [AnimatedIndexedStack]. /// Contains all the children in a [Stack]. static Widget defaultLayoutBuilder(List entries) { - return Stack( - alignment: Alignment.center, - children: entries, - ); + return Stack(alignment: Alignment.center, children: entries); } @override @@ -173,8 +171,9 @@ class _AnimatedIndexedStackState extends State for (final child in widget.children) { // We find the previous entry by looking for an identical child widget. // If the children of this Stack share widget types, they must be given unique keys. - final int existingIndex = - _entries.indexWhere((entry) => Widget.canUpdate(entry.child, child)); + final int existingIndex = _entries.indexWhere( + (entry) => Widget.canUpdate(entry.child, child), + ); _ChildEntry? existingEntry; if (existingIndex != -1) { @@ -276,17 +275,17 @@ class _AnimatedIndexedStackState extends State } _ChildEntry _newEntry(Widget child) => _ChildEntry( - key: GlobalKey(), - child: child, - primaryController: AnimationController( - duration: widget.duration, - vsync: this, - ), - secondaryController: AnimationController( - duration: widget.duration, - vsync: this, - ), - ); + key: GlobalKey(), + child: child, + primaryController: AnimationController( + duration: widget.duration, + vsync: this, + ), + secondaryController: AnimationController( + duration: widget.duration, + vsync: this, + ), + ); @override void dispose() { @@ -297,30 +296,28 @@ class _AnimatedIndexedStackState extends State } Widget _buildChild(_ChildEntry entry) => AnimatedBuilder( - animation: Listenable.merge([ + animation: Listenable.merge([ + entry.primaryController, + entry.secondaryController, + ]), + builder: (context, child) { + final bool isVisible = + entry.primaryController.isAnimating || + entry.secondaryController.isAnimating || + entry == _currentEntry; + + return Visibility( + visible: isVisible, + maintainState: true, + child: widget.transitionBuilder( + KeyedSubtree(key: entry.key, child: child!), entry.primaryController, entry.secondaryController, - ]), - builder: (context, child) { - final bool isVisible = entry.primaryController.isAnimating || - entry.secondaryController.isAnimating || - entry == _currentEntry; - - return Visibility( - visible: isVisible, - maintainState: true, - child: widget.transitionBuilder( - KeyedSubtree( - key: entry.key, - child: child!, - ), - entry.primaryController, - entry.secondaryController, - ), - ); - }, - child: entry.child, + ), ); + }, + child: entry.child, + ); @override Widget build(BuildContext context) { diff --git a/app/lib/presentation/widgets/auto_suggest_text_field.dart b/app/lib/presentation/widgets/auto_suggest_text_field.dart index c7d746a0..213f22ec 100644 --- a/app/lib/presentation/widgets/auto_suggest_text_field.dart +++ b/app/lib/presentation/widgets/auto_suggest_text_field.dart @@ -123,14 +123,15 @@ class AutoSuggestTextField extends HookWidget { text: suggestion!.substring(text.length), style: TextStyle( height: 1.2, - color: Theme.of(context) - .colorScheme - .onSurfaceVariant, - backgroundColor: suggestionHighlightColor ?? - Theme.of(context) - .colorScheme - .primary - .withValues(alpha: 0.40), + color: + Theme.of( + context, + ).colorScheme.onSurfaceVariant, + backgroundColor: + suggestionHighlightColor ?? + Theme.of( + context, + ).colorScheme.primary.withValues(alpha: 0.40), ), ), ], @@ -147,7 +148,8 @@ class AutoSuggestTextField extends HookWidget { focusNode: focusNode, decoration: baseDecoration.copyWith( label: baseDecoration.label ?? const Text(''), - floatingLabelBehavior: baseDecoration.floatingLabelBehavior ?? + floatingLabelBehavior: + baseDecoration.floatingLabelBehavior ?? FloatingLabelBehavior.never, ), style: style, diff --git a/app/lib/presentation/widgets/autocomplete.dart b/app/lib/presentation/widgets/autocomplete.dart index 7777f658..981fb3f7 100644 --- a/app/lib/presentation/widgets/autocomplete.dart +++ b/app/lib/presentation/widgets/autocomplete.dart @@ -39,18 +39,18 @@ class ExternalResultsAutocomplete extends StatefulWidget { this.onSelected, this.textEditingController, this.initialValue, - }) : assert( - fieldViewBuilder != null || - (key != null && - focusNode != null && - textEditingController != null), - 'Pass in a fieldViewBuilder, or otherwise create a separate field and pass in the FocusNode, TextEditingController, and a key. Use the key with RawAutocomplete.onFieldSubmitted.', - ), - assert((focusNode == null) == (textEditingController == null)), - assert( - !(textEditingController != null && initialValue != null), - 'textEditingController and initialValue cannot be simultaneously defined.', - ); + }) : assert( + fieldViewBuilder != null || + (key != null && + focusNode != null && + textEditingController != null), + 'Pass in a fieldViewBuilder, or otherwise create a separate field and pass in the FocusNode, TextEditingController, and a key. Use the key with RawAutocomplete.onFieldSubmitted.', + ), + assert((focusNode == null) == (textEditingController == null)), + assert( + !(textEditingController != null && initialValue != null), + 'textEditingController and initialValue cannot be simultaneously defined.', + ); /// {@template flutter.widgets.RawAutocomplete.fieldViewBuilder} /// Builds the field whose input is used to get the options. @@ -131,7 +131,7 @@ class ExternalResultsAutocomplete extends StatefulWidget { final AutocompleteOnSelected? onSelected; final FutureOr Function(TextEditingValue textEditingValue) - onTextChanged; + onTextChanged; /// The [TextEditingController] that is used for the text field. /// @@ -194,31 +194,31 @@ class _RawAutocompleteState TextEditingController? _internalTextEditingController; TextEditingController get _textEditingController { return widget.textEditingController ?? - (_internalTextEditingController ??= TextEditingController() - ..addListener(_onChangedField)); + (_internalTextEditingController ??= + TextEditingController()..addListener(_onChangedField)); } FocusNode? _internalFocusNode; FocusNode get _focusNode { return widget.focusNode ?? - (_internalFocusNode ??= FocusNode() - ..addListener(_updateOptionsViewVisibility)); + (_internalFocusNode ??= + FocusNode()..addListener(_updateOptionsViewVisibility)); } late final Map> _actionMap = >{ - AutocompletePreviousOptionIntent: - _AutocompleteCallbackAction( - onInvoke: _highlightPreviousOption, - isEnabledCallback: () => _canShowOptionsView, - ), - AutocompleteNextOptionIntent: - _AutocompleteCallbackAction( - onInvoke: _highlightNextOption, - isEnabledCallback: () => _canShowOptionsView, - ), - DismissIntent: CallbackAction(onInvoke: _hideOptions), - }; + AutocompletePreviousOptionIntent: + _AutocompleteCallbackAction( + onInvoke: _highlightPreviousOption, + isEnabledCallback: () => _canShowOptionsView, + ), + AutocompleteNextOptionIntent: + _AutocompleteCallbackAction( + onInvoke: _highlightNextOption, + isEnabledCallback: () => _canShowOptionsView, + ), + DismissIntent: CallbackAction(onInvoke: _hideOptions), + }; late StreamSubscription> _optionsSubscription; Iterable _options = Iterable.empty(); @@ -230,11 +230,11 @@ class _RawAutocompleteState static const Map _shortcuts = { - SingleActivator(LogicalKeyboardKey.arrowUp): - AutocompletePreviousOptionIntent(), - SingleActivator(LogicalKeyboardKey.arrowDown): - AutocompleteNextOptionIntent(), - }; + SingleActivator(LogicalKeyboardKey.arrowUp): + AutocompletePreviousOptionIntent(), + SingleActivator(LogicalKeyboardKey.arrowDown): + AutocompleteNextOptionIntent(), + }; bool get _canShowOptionsView => _focusNode.hasFocus && _selection == null && _options.isNotEmpty; @@ -324,17 +324,15 @@ class _RawAutocompleteState Widget _buildOptionsView(BuildContext context) { final TextDirection textDirection = Directionality.of(context); - final Alignment followerAlignment = - switch (widget.optionsViewOpenDirection) { + final Alignment followerAlignment = switch (widget + .optionsViewOpenDirection) { OptionsViewOpenDirection.up => AlignmentDirectional.bottomStart, OptionsViewOpenDirection.down => AlignmentDirectional.topStart, - } - .resolve(textDirection); + }.resolve(textDirection); final Alignment targetAnchor = switch (widget.optionsViewOpenDirection) { OptionsViewOpenDirection.up => AlignmentDirectional.topStart, OptionsViewOpenDirection.down => AlignmentDirectional.bottomStart, - } - .resolve(textDirection); + }.resolve(textDirection); return CompositedTransformFollower( link: _optionsLayerLink, @@ -345,8 +343,9 @@ class _RawAutocompleteState child: AutocompleteHighlightedOption( highlightIndexNotifier: _highlightedOptionIndex, child: Builder( - builder: (BuildContext context) => - widget.optionsViewBuilder(context, _select, _options), + builder: + (BuildContext context) => + widget.optionsViewBuilder(context, _select, _options), ), ), ), @@ -358,8 +357,9 @@ class _RawAutocompleteState super.initState(); final TextEditingController initialController = widget.textEditingController ?? - (_internalTextEditingController = - TextEditingController.fromValue(widget.initialValue)); + (_internalTextEditingController = TextEditingController.fromValue( + widget.initialValue, + )); initialController.addListener(_onChangedField); widget.focusNode?.addListener(_updateOptionsViewVisibility); _optionsSubscription = widget.optionsStream.listen(_onUpateOptions); @@ -406,7 +406,8 @@ class _RawAutocompleteState @override Widget build(BuildContext context) { - final Widget fieldView = widget.fieldViewBuilder?.call( + final Widget fieldView = + widget.fieldViewBuilder?.call( context, _textEditingController, _focusNode, diff --git a/app/lib/presentation/widgets/bang_icon.dart b/app/lib/presentation/widgets/bang_icon.dart index 7e4f595b..9c6001d6 100644 --- a/app/lib/presentation/widgets/bang_icon.dart +++ b/app/lib/presentation/widgets/bang_icon.dart @@ -23,19 +23,17 @@ class UrlIcon extends HookConsumerWidget { enabled: !icon.hasData, child: SizedBox.square( dimension: iconSize, - child: (icon.data != null) - ? RepaintBoundary( - child: RawImage( - image: icon.data?.image.value, - height: iconSize, - width: iconSize, - fit: BoxFit.fill, - ), - ) - : Icon( - MdiIcons.web, - size: iconSize, - ), + child: + (icon.data != null) + ? RepaintBoundary( + child: RawImage( + image: icon.data?.image.value, + height: iconSize, + width: iconSize, + fit: BoxFit.fill, + ), + ) + : Icon(MdiIcons.web, size: iconSize), ), ); } diff --git a/app/lib/presentation/widgets/failure_widget.dart b/app/lib/presentation/widgets/failure_widget.dart index 26056164..5c3a72be 100644 --- a/app/lib/presentation/widgets/failure_widget.dart +++ b/app/lib/presentation/widgets/failure_widget.dart @@ -22,27 +22,31 @@ class FailureWidget extends StatelessWidget { children: [ ListTile( title: Text(title ?? 'Something went wrong'), - subtitle: exception != null - ? switch (exception) { - final String string => Text(string), - _ => Text(exception.runtimeType.toString()) - } - : null, - trailing: compact && onRetry != null - ? IconButton.outlined( - onPressed: onRetry, - style: IconButton.styleFrom( - tapTargetSize: MaterialTapTargetSize.shrinkWrap, - ), - icon: const Icon(Icons.refresh_outlined), - ) - : null, + subtitle: + exception != null + ? switch (exception) { + final String string => Text(string), + _ => Text(exception.runtimeType.toString()), + } + : null, + trailing: + compact && onRetry != null + ? IconButton.outlined( + onPressed: onRetry, + style: IconButton.styleFrom( + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + icon: const Icon(Icons.refresh_outlined), + ) + : null, textColor: Theme.of(context).colorScheme.error, ), if (!compact && onRetry != null) Padding( - padding: - const EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + padding: const EdgeInsets.symmetric( + horizontal: 12.0, + vertical: 8.0, + ), child: SizedBox( width: double.infinity, child: OutlinedButton.icon( diff --git a/app/lib/presentation/widgets/main_app.dart b/app/lib/presentation/widgets/main_app.dart index 92f57348..6c2857f0 100644 --- a/app/lib/presentation/widgets/main_app.dart +++ b/app/lib/presentation/widgets/main_app.dart @@ -62,9 +62,7 @@ class MainApp extends HookConsumerWidget { darkTheme: darkTheme, themeMode: themeMode, home: Scaffold( - appBar: AppBar( - title: const Text('Initiallization Error'), - ), + appBar: AppBar(title: const Text('Initiallization Error')), body: Center( child: FailureWidget( title: 'Could not initialize App', diff --git a/app/lib/presentation/widgets/selectable_chips.dart b/app/lib/presentation/widgets/selectable_chips.dart index 9913a67c..fbe86619 100644 --- a/app/lib/presentation/widgets/selectable_chips.dart +++ b/app/lib/presentation/widgets/selectable_chips.dart @@ -9,12 +9,7 @@ class _BadgeWrapper extends StatelessWidget { @override Widget build(BuildContext context) { - return count != null - ? Badge.count( - count: count!, - child: child, - ) - : child; + return count != null ? Badge.count(count: count!, child: child) : child; } } @@ -57,15 +52,9 @@ class SelectableChips extends StatelessWidget { (item) => itemId(item) == itemId(selectedItem), ); if (selectedIndex < 0) { - items = [ - selectedItem, - ...items, - ]; + items = [selectedItem, ...items]; } else { - items = [ - items.removeAt(selectedIndex), - ...items, - ]; + items = [items.removeAt(selectedIndex), ...items]; } } @@ -84,7 +73,8 @@ class SelectableChips extends StatelessWidget { child: _BadgeWrapper( count: itemBadgeCount?.call(item), child: FilterChip( - selected: selectedItem != null && + selected: + selectedItem != null && itemId(item) == itemId(selectedItem as S), showCheckmark: false, onSelected: (value) { @@ -94,11 +84,12 @@ class SelectableChips extends StatelessWidget { onDeleted?.call(item); } }, - onDeleted: deleteIcon - ? () { - onDeleted?.call(item); - } - : null, + onDeleted: + deleteIcon + ? () { + onDeleted?.call(item); + } + : null, label: itemLabel.call(item), avatar: itemAvatar?.call(item), ), diff --git a/app/lib/presentation/widgets/speech_to_text_button.dart b/app/lib/presentation/widgets/speech_to_text_button.dart index 7f80b491..c8a5fc33 100644 --- a/app/lib/presentation/widgets/speech_to_text_button.dart +++ b/app/lib/presentation/widgets/speech_to_text_button.dart @@ -11,18 +11,15 @@ class SpeechToTextButton extends StatelessWidget { Widget build(BuildContext context) { return IconButton( onPressed: () async { - final isServiceAvailable = - await SpeechToTextGoogleDialog.getInstance().showGoogleDialog( - onTextReceived: onTextReceived, - // locale: "en-US", - ); + final isServiceAvailable = await SpeechToTextGoogleDialog.getInstance() + .showGoogleDialog( + onTextReceived: onTextReceived, + // locale: "en-US", + ); if (!isServiceAvailable) { if (context.mounted) { - ui_helper.showErrorMessage( - context, - 'Service is not available', - ); + ui_helper.showErrorMessage(context, 'Service is not available'); } } }, diff --git a/app/lib/presentation/widgets/website_title_tile.dart b/app/lib/presentation/widgets/website_title_tile.dart index 24ba350d..ba4c5505 100644 --- a/app/lib/presentation/widgets/website_title_tile.dart +++ b/app/lib/presentation/widgets/website_title_tile.dart @@ -13,9 +13,10 @@ class WebsiteTitleTile extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final pageInfoAsync = (precachedInfo?.isPageInfoComplete ?? false) - ? AsyncValue.data(precachedInfo!) - : ref.watch(pageInfoProvider(url)); + final pageInfoAsync = + (precachedInfo?.isPageInfoComplete ?? false) + ? AsyncValue.data(precachedInfo!) + : ref.watch(pageInfoProvider(url)); return Skeletonizer( enabled: pageInfoAsync.isLoading && precachedInfo == null, @@ -38,22 +39,24 @@ class WebsiteTitleTile extends HookConsumerWidget { onRetry: () => ref.refresh(pageInfoProvider(url)), ); }, - loading: () => (precachedInfo != null) - ? ListTile( - leading: RawImage( - image: precachedInfo!.favicon?.image.value, - height: 24, - width: 24, - ), - contentPadding: EdgeInsets.zero, - title: Text(precachedInfo!.title ?? 'Unknown Title'), - subtitle: Text(url.authority), - ) - : const ListTile( - contentPadding: EdgeInsets.zero, - title: Bone.text(), - subtitle: Bone.text(), - ), + loading: + () => + (precachedInfo != null) + ? ListTile( + leading: RawImage( + image: precachedInfo!.favicon?.image.value, + height: 24, + width: 24, + ), + contentPadding: EdgeInsets.zero, + title: Text(precachedInfo!.title ?? 'Unknown Title'), + subtitle: Text(url.authority), + ) + : const ListTile( + contentPadding: EdgeInsets.zero, + title: Bone.text(), + subtitle: Bone.text(), + ), ), ); } diff --git a/app/lib/utils/langchain_utils.dart b/app/lib/utils/langchain_utils.dart index 7dcc4e9c..3562ea7e 100644 --- a/app/lib/utils/langchain_utils.dart +++ b/app/lib/utils/langchain_utils.dart @@ -2,10 +2,7 @@ import 'dart:typed_data'; import 'package:langchain/langchain.dart'; -String combineDocuments( - List documents, { - String separator = '\n\n', -}) { +String combineDocuments(List documents, {String separator = '\n\n'}) { return documents.map((d) => d.pageContent).join(separator); } diff --git a/app/lib/utils/lru_cache.dart b/app/lib/utils/lru_cache.dart index f2e7fa87..35c93f62 100644 --- a/app/lib/utils/lru_cache.dart +++ b/app/lib/utils/lru_cache.dart @@ -10,10 +10,10 @@ class LRUCache { int Function(K)? hashCode, bool Function(dynamic)? isValidKey, }) : _cache = LinkedHashMap( - equals: equals, - hashCode: hashCode, - isValidKey: isValidKey, - ); + equals: equals, + hashCode: hashCode, + isValidKey: isValidKey, + ); void resize(int capacity) { if (_capacity > capacity) { diff --git a/app/lib/utils/ui_helper.dart b/app/lib/utils/ui_helper.dart index 136970d8..ae39402b 100644 --- a/app/lib/utils/ui_helper.dart +++ b/app/lib/utils/ui_helper.dart @@ -5,9 +5,7 @@ void showErrorMessage(BuildContext context, String message) { final snackBar = SnackBar( content: Text( message, - style: TextStyle( - color: Theme.of(context).colorScheme.error, - ), + style: TextStyle(color: Theme.of(context).colorScheme.error), ), backgroundColor: Theme.of(context).colorScheme.onError, ); @@ -19,15 +17,9 @@ Future launchUrlFeedback( Uri url, { LaunchMode mode = LaunchMode.externalApplication, }) async { - if (!await launchUrl( - url, - mode: mode, - )) { + if (!await launchUrl(url, mode: mode)) { if (context.mounted) { - showErrorMessage( - context, - 'Could not launch URL ($url)', - ); + showErrorMessage(context, 'Could not launch URL ($url)'); } } } diff --git a/app/pubspec.yaml b/app/pubspec.yaml index 2c478222..ed198f23 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 0.7.0+15 environment: - sdk: '>=3.4.1 <4.0.0' + sdk: '>=3.7.0 <4.0.0' dependencies: collection: ^1.19.1 diff --git a/packages/flutter_mozilla_components/example/lib/main.dart b/packages/flutter_mozilla_components/example/lib/main.dart index 915ce4cc..192fd7f8 100644 --- a/packages/flutter_mozilla_components/example/lib/main.dart +++ b/packages/flutter_mozilla_components/example/lib/main.dart @@ -21,32 +21,31 @@ class MyAppState extends State { title: const Text('Native Fragment Example'), actions: [ MenuAnchor( - builder: (context, controller, child) => IconButton( + builder: + (context, controller, child) => IconButton( onPressed: () { controller.open(); }, - icon: const Icon(Icons.menu)), - menuChildren: [ - MenuItemButton( - onPressed: () async { - await GeckoSessionService.forActiveTab().reload(); - }, - child: const Text('Reload'), + icon: const Icon(Icons.menu), ), - MenuItemButton( - onPressed: () async { - await GeckoSessionService.forActiveTab().goBack(); - }, - child: const Text('Back'), - ) - ]) + menuChildren: [ + MenuItemButton( + onPressed: () async { + await GeckoSessionService.forActiveTab().reload(); + }, + child: const Text('Reload'), + ), + MenuItemButton( + onPressed: () async { + await GeckoSessionService.forActiveTab().goBack(); + }, + child: const Text('Back'), + ), + ], + ), ], ), - body: const SafeArea( - child: Center( - child: GeckoView(), - ), - ), + body: const SafeArea(child: Center(child: GeckoView())), ), ); } diff --git a/packages/flutter_mozilla_components/example/pubspec.yaml b/packages/flutter_mozilla_components/example/pubspec.yaml index 386cccee..ca165f18 100644 --- a/packages/flutter_mozilla_components/example/pubspec.yaml +++ b/packages/flutter_mozilla_components/example/pubspec.yaml @@ -5,81 +5,21 @@ description: "Demonstrates how to use the flutter_mozilla_components plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.6.0-198.0.dev + sdk: '>=3.7.0 <4.0.0' -# Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions -# consider running `flutter pub upgrade --major-versions`. Alternatively, -# dependencies can be manually updated by changing the version numbers below to -# the latest version available on pub.dev. To see which dependencies have newer -# versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter flutter_mozilla_components: - # When depending on this package from a real application you should use: - # flutter_mozilla_components: ^x.y.z - # See https://dart.dev/tools/pub/dependencies#version-constraints - # The example app is bundled with the plugin so we use a path dependency on - # the parent directory to use the current plugin's version. path: ../ - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.8 - dev_dependencies: integration_test: sdk: flutter flutter_test: sdk: flutter - - # The "flutter_lints" package below contains a set of recommended lints to - # encourage good coding practices. The lint set provided by the package is - # activated in the `analysis_options.yaml` file located at the root of your - # package. See that file for information about deactivating specific lint - # rules and activating additional ones. flutter_lints: ^5.0.0 -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec - -# The following section is specific to Flutter packages. flutter: - - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. uses-material-design: true - - # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/to/resolution-aware-images - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/to/asset-from-package - - # To add custom fonts to your application, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/to/font-from-package diff --git a/packages/flutter_mozilla_components/example/test/widget_test.dart b/packages/flutter_mozilla_components/example/test/widget_test.dart index 89533605..1f2b774a 100644 --- a/packages/flutter_mozilla_components/example/test/widget_test.dart +++ b/packages/flutter_mozilla_components/example/test/widget_test.dart @@ -18,8 +18,8 @@ void main() { // Verify that platform version is retrieved. expect( find.byWidgetPredicate( - (Widget widget) => widget is Text && - widget.data!.startsWith('Running on:'), + (Widget widget) => + widget is Text && widget.data!.startsWith('Running on:'), ), findsOneWidget, ); diff --git a/packages/flutter_mozilla_components/lib/src/data/models/load_url_flags.dart b/packages/flutter_mozilla_components/lib/src/data/models/load_url_flags.dart index 0ce7d89c..8c2c4fb8 100644 --- a/packages/flutter_mozilla_components/lib/src/data/models/load_url_flags.dart +++ b/packages/flutter_mozilla_components/lib/src/data/models/load_url_flags.dart @@ -18,8 +18,9 @@ class LoadUrlFlags { static const LoadUrlFlags EXTERNAL = LoadUrlFlags._(1 << 2); static const LoadUrlFlags ALLOW_POPUPS = LoadUrlFlags._(1 << 3); static const LoadUrlFlags BYPASS_CLASSIFIER = LoadUrlFlags._(1 << 4); - static const LoadUrlFlags LOAD_FLAGS_FORCE_ALLOW_DATA_URI = - LoadUrlFlags._(1 << 5); + static const LoadUrlFlags LOAD_FLAGS_FORCE_ALLOW_DATA_URI = LoadUrlFlags._( + 1 << 5, + ); static const LoadUrlFlags LOAD_FLAGS_REPLACE_HISTORY = LoadUrlFlags._(1 << 6); static const LoadUrlFlags LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE = LoadUrlFlags._(1 << 7); diff --git a/packages/flutter_mozilla_components/lib/src/data/models/source.dart b/packages/flutter_mozilla_components/lib/src/data/models/source.dart index 7c32e2f1..eb43425a 100644 --- a/packages/flutter_mozilla_components/lib/src/data/models/source.dart +++ b/packages/flutter_mozilla_components/lib/src/data/models/source.dart @@ -42,12 +42,13 @@ abstract class Source { String? packageId, int? packageCategory, ) { - final caller = packageId != null - ? ExternalPackage( - packageId: packageId, - category: PackageCategory.fromInt(packageCategory).toValue(), - ) - : null; + final caller = + packageId != null + ? ExternalPackage( + packageId: packageId, + category: PackageCategory.fromInt(packageCategory).toValue(), + ) + : null; switch (sourceId) { case 1: diff --git a/packages/flutter_mozilla_components/lib/src/domain/entities/default_selection_actions.dart b/packages/flutter_mozilla_components/lib/src/domain/entities/default_selection_actions.dart index 9387631c..002a6854 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/entities/default_selection_actions.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/entities/default_selection_actions.dart @@ -15,47 +15,47 @@ class BaseSelectionAction extends CustomSelectionAction { class CallAction extends BaseSelectionAction { CallAction(PerformAction action) - : super( - id: 'CUSTOM_CONTEXT_MENU_CALL', - title: 'Call', - pattern: SelectionPattern.phone, - performAction: action, - ); + : super( + id: 'CUSTOM_CONTEXT_MENU_CALL', + title: 'Call', + pattern: SelectionPattern.phone, + performAction: action, + ); } class EmailAction extends BaseSelectionAction { EmailAction(PerformAction action) - : super( - id: 'CUSTOM_CONTEXT_MENU_EMAIL', - title: 'Email', - pattern: SelectionPattern.email, - performAction: action, - ); + : super( + id: 'CUSTOM_CONTEXT_MENU_EMAIL', + title: 'Email', + pattern: SelectionPattern.email, + performAction: action, + ); } class SearchAction extends BaseSelectionAction { SearchAction(PerformAction action) - : super( - id: 'CUSTOM_CONTEXT_MENU_SEARCH', - title: 'Search', - performAction: action, - ); + : super( + id: 'CUSTOM_CONTEXT_MENU_SEARCH', + title: 'Search', + performAction: action, + ); } class PrivateSearchAction extends BaseSelectionAction { PrivateSearchAction(PerformAction action) - : super( - id: 'CUSTOM_CONTEXT_MENU_SEARCH_PRIVATELY', - title: 'Private Search', - performAction: action, - ); + : super( + id: 'CUSTOM_CONTEXT_MENU_SEARCH_PRIVATELY', + title: 'Private Search', + performAction: action, + ); } class ShareAction extends BaseSelectionAction { ShareAction(PerformAction action) - : super( - id: 'CUSTOM_CONTEXT_MENU_SHARE', - title: 'Share', - performAction: action, - ); + : super( + id: 'CUSTOM_CONTEXT_MENU_SHARE', + title: 'Share', + performAction: action, + ); } diff --git a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_addon.dart b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_addon.dart index 2b5a0055..dd70a489 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_addon.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_addon.dart @@ -47,17 +47,15 @@ class GeckoAddonService extends GeckoAddonEvents { ) { switch (actionType) { case WebExtensionActionType.browser: - _browserExtensionSubject.addWhenMoreRecent( - timestamp, - extensionId, - (extensionId: extensionId, data: null), - ); + _browserExtensionSubject.addWhenMoreRecent(timestamp, extensionId, ( + extensionId: extensionId, + data: null, + )); case WebExtensionActionType.page: - _pageExtensionSubject.addWhenMoreRecent( - timestamp, - extensionId, - (extensionId: extensionId, data: null), - ); + _pageExtensionSubject.addWhenMoreRecent(timestamp, extensionId, ( + extensionId: extensionId, + data: null, + )); } } @@ -70,17 +68,15 @@ class GeckoAddonService extends GeckoAddonEvents { ) { switch (actionType) { case WebExtensionActionType.browser: - _browserIconSubject.addWhenMoreRecent( - timestamp, - extensionId, - (extensionId: extensionId, bytes: icon), - ); + _browserIconSubject.addWhenMoreRecent(timestamp, extensionId, ( + extensionId: extensionId, + bytes: icon, + )); case WebExtensionActionType.page: - _pageIconSubject.addWhenMoreRecent( - timestamp, - extensionId, - (extensionId: extensionId, bytes: icon), - ); + _pageIconSubject.addWhenMoreRecent(timestamp, extensionId, ( + extensionId: extensionId, + bytes: icon, + )); } } @@ -93,17 +89,15 @@ class GeckoAddonService extends GeckoAddonEvents { ) { switch (actionType) { case WebExtensionActionType.browser: - _browserExtensionSubject.addWhenMoreRecent( - timestamp, - extensionId, - (extensionId: extensionId, data: extensionData), - ); + _browserExtensionSubject.addWhenMoreRecent(timestamp, extensionId, ( + extensionId: extensionId, + data: extensionData, + )); case WebExtensionActionType.page: - _pageExtensionSubject.addWhenMoreRecent( - timestamp, - extensionId, - (extensionId: extensionId, data: extensionData), - ); + _pageExtensionSubject.addWhenMoreRecent(timestamp, extensionId, ( + extensionId: extensionId, + data: extensionData, + )); } } diff --git a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_delete_browser_data.dart b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_delete_browser_data.dart index c37c8f25..8167a66b 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_delete_browser_data.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_delete_browser_data.dart @@ -6,7 +6,7 @@ class GeckoDeleteBrowserDataService { final GeckoDeleteBrowsingDataController _api; GeckoDeleteBrowserDataService({GeckoDeleteBrowsingDataController? api}) - : _api = api ?? _apiInstance; + : _api = api ?? _apiInstance; Future deleteTabs() { return _api.deleteTabs(); diff --git a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_engine_settings.dart b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_engine_settings.dart index 05dc4fc2..872894fa 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_engine_settings.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_engine_settings.dart @@ -6,7 +6,7 @@ class GeckoEngineSettingsService { final GeckoEngineSettingsApi _api; GeckoEngineSettingsService({GeckoEngineSettingsApi? api}) - : _api = api ?? _apiInstance; + : _api = api ?? _apiInstance; Future setDefaultSettings( GeckoEngineSettings settings, { @@ -30,8 +30,9 @@ class GeckoEngineSettingsService { } Future httpsOnlyMode(HttpsOnlyMode state) { - return _api - .updateRuntimeSettings(GeckoEngineSettings(httpsOnlyMode: state)); + return _api.updateRuntimeSettings( + GeckoEngineSettings(httpsOnlyMode: state), + ); } Future globalPrivacyControlEnabled(bool state) { diff --git a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_event.dart b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_event.dart index 0b4bc7e4..d742f04f 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_event.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_event.dart @@ -82,11 +82,10 @@ class GeckoEventService extends GeckoStateEvents { @override void onHistoryStateChange(int timestamp, String id, HistoryState state) { - _historySubject.addWhenMoreRecent( - timestamp, - id, - (tabId: id, history: state), - ); + _historySubject.addWhenMoreRecent(timestamp, id, ( + tabId: id, + history: state, + )); } @override @@ -95,11 +94,10 @@ class GeckoEventService extends GeckoStateEvents { String id, ReaderableState state, ) { - _readerableSubject.addWhenMoreRecent( - timestamp, - id, - (tabId: id, readerable: state), - ); + _readerableSubject.addWhenMoreRecent(timestamp, id, ( + tabId: id, + readerable: state, + )); } @override @@ -108,50 +106,47 @@ class GeckoEventService extends GeckoStateEvents { String id, SecurityInfoState state, ) { - _securityInfoSubject.addWhenMoreRecent( - timestamp, - id, - (tabId: id, securityInfo: state), - ); + _securityInfoSubject.addWhenMoreRecent(timestamp, id, ( + tabId: id, + securityInfo: state, + )); } @override void onIconChange(int timestamp, String id, Uint8List? bytes) { - _iconChangeSubject - .addWhenMoreRecent(timestamp, id, (tabId: id, bytes: bytes)); + _iconChangeSubject.addWhenMoreRecent(timestamp, id, ( + tabId: id, + bytes: bytes, + )); } @override void onIconUpdate(int timestamp, String url, Uint8List bytes) { - _iconUpdateSubject - .addWhenMoreRecent(timestamp, url, (url: url, bytes: bytes)); + _iconUpdateSubject.addWhenMoreRecent(timestamp, url, ( + url: url, + bytes: bytes, + )); } @override void onThumbnailChange(int timestamp, String id, Uint8List? bytes) { - _thumbnailSubject.addWhenMoreRecent( - timestamp, - id, - (tabId: id, bytes: bytes), - ); + _thumbnailSubject.addWhenMoreRecent(timestamp, id, ( + tabId: id, + bytes: bytes, + )); } @override void onFindResults(int timestamp, String id, List results) { - _findResultsSubject.addWhenMoreRecent( - timestamp, - id, - (tabId: id, results: results.nonNulls.toList()), - ); + _findResultsSubject.addWhenMoreRecent(timestamp, id, ( + tabId: id, + results: results.nonNulls.toList(), + )); } @override void onTabAdded(int timestamp, String tabId) { - _tabAddedSubject.addWhenMoreRecent( - timestamp, - null, - tabId, - ); + _tabAddedSubject.addWhenMoreRecent(timestamp, null, tabId); } GeckoEventService.setUp({ diff --git a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_find_in_page.dart b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_find_in_page.dart index 7d210a39..72ab706e 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_find_in_page.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_find_in_page.dart @@ -7,11 +7,11 @@ class GeckoFindInPageService { final String? tabId; GeckoFindInPageService({required this.tabId, GeckoFindApi? api}) - : _api = api ?? _apiInstance; + : _api = api ?? _apiInstance; GeckoFindInPageService.forActiveTab({GeckoFindApi? api}) - : _api = api ?? _apiInstance, - tabId = null; + : _api = api ?? _apiInstance, + tabId = null; Future findAll(String text) { return _api.findAll(tabId, text); diff --git a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_pref.dart b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_pref.dart index 6a6341df..ae4c6e86 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_pref.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_pref.dart @@ -12,16 +12,17 @@ class GeckoPrefService { } Future> applyPrefs(Map prefs) { - final buffer = prefs.entries.map((pref) { - final value = switch (pref.value) { - final bool x => '$x', - final int x => '$x', - final String x => '"$x"', - _ => throw Exception('Unknow pref type') - }; + final buffer = + prefs.entries.map((pref) { + final value = switch (pref.value) { + final bool x => '$x', + final int x => '$x', + final String x => '"$x"', + _ => throw Exception('Unknow pref type'), + }; - return 'user_pref("${pref.key}", $value);'; - }).join(); + return 'user_pref("${pref.key}", $value);'; + }).join(); return _apiInstance.applyPrefs(buffer); } diff --git a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_readerable.dart b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_readerable.dart index 47308e8b..254c8a63 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_readerable.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_readerable.dart @@ -29,11 +29,12 @@ class GeckoReaderableService extends ReaderViewController { ReaderViewEvents? readerEvents, BinaryMessenger? binaryMessenger, String messageChannelSuffix = '', - }) : _events = readerEvents ?? - ReaderViewEvents( - binaryMessenger: binaryMessenger, - messageChannelSuffix: messageChannelSuffix, - ) { + }) : _events = + readerEvents ?? + ReaderViewEvents( + binaryMessenger: binaryMessenger, + messageChannelSuffix: messageChannelSuffix, + ) { ReaderViewController.setUp( this, binaryMessenger: binaryMessenger, diff --git a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_selection_action.dart b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_selection_action.dart index 151a3eb1..33fb1305 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_selection_action.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_selection_action.dart @@ -22,8 +22,8 @@ class GeckoSelectionActionService extends GeckoSelectionActionEvents { BinaryMessenger? binaryMessenger, String messageChannelSuffix = '', GeckoSelectionActionController? api, - }) : _api = api ?? _apiInstance, - _actions = [] { + }) : _api = api ?? _apiInstance, + _actions = [] { GeckoSelectionActionEvents.setUp( this, binaryMessenger: binaryMessenger, diff --git a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_session.dart b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_session.dart index 8498f71b..15179aaa 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/services/gecko_session.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/services/gecko_session.dart @@ -10,11 +10,11 @@ class GeckoSessionService { final GeckoSessionApi _api; GeckoSessionService({required String this.tabId, GeckoSessionApi? api}) - : _api = api ?? _apiInstance; + : _api = api ?? _apiInstance; GeckoSessionService.forActiveTab({GeckoSessionApi? api}) - : _api = api ?? _apiInstance, - tabId = null; + : _api = api ?? _apiInstance, + tabId = null; Future loadUrl({ required Uri url, @@ -43,10 +43,7 @@ class GeckoSessionService { } Future reload({LoadUrlFlags flags = LoadUrlFlags.NONE}) { - return _api.reload( - tabId: tabId, - flags: flags.toValue(), - ); + return _api.reload(tabId: tabId, flags: flags.toValue()); } Future stopLoading() { @@ -54,31 +51,19 @@ class GeckoSessionService { } Future goBack({bool userInteraction = true}) { - return _api.goBack( - tabId: tabId, - userInteraction: userInteraction, - ); + return _api.goBack(tabId: tabId, userInteraction: userInteraction); } Future goForward({bool userInteraction = true}) { - return _api.goForward( - tabId: tabId, - userInteraction: userInteraction, - ); + return _api.goForward(tabId: tabId, userInteraction: userInteraction); } Future goToHistoryIndex({required int index}) { - return _api.goToHistoryIndex( - index: index, - tabId: tabId, - ); + return _api.goToHistoryIndex(index: index, tabId: tabId); } Future requestDesktopSite({required bool enable}) { - return _api.requestDesktopSite( - enable: enable, - tabId: tabId, - ); + return _api.requestDesktopSite(enable: enable, tabId: tabId); } Future exitFullscreen() { @@ -110,9 +95,7 @@ class GeckoSessionService { return _api.translateRestore(tabId: tabId); } - Future crashRecovery({ - List? tabIds, - }) { + Future crashRecovery({List? tabIds}) { return _api.crashRecovery(tabIds: tabIds); } diff --git a/packages/flutter_mozilla_components/lib/src/extensions/subject.dart b/packages/flutter_mozilla_components/lib/src/extensions/subject.dart index 4cbeb563..a40fdbe2 100644 --- a/packages/flutter_mozilla_components/lib/src/extensions/subject.dart +++ b/packages/flutter_mozilla_components/lib/src/extensions/subject.dart @@ -3,11 +3,7 @@ import 'package:rxdart/rxdart.dart'; final _lastEventTimes = >{}; extension SubjectAddRecent on Subject { - void addWhenMoreRecent( - int timestamp, - dynamic identifier, - T value, - ) { + void addWhenMoreRecent(int timestamp, dynamic identifier, T value) { _lastEventTimes[this] ??= {}; if ((_lastEventTimes[this]?[identifier] ?? 0) < timestamp) { diff --git a/packages/flutter_mozilla_components/lib/src/geckoview_widget.dart b/packages/flutter_mozilla_components/lib/src/geckoview_widget.dart index dd7da229..a59f21f3 100644 --- a/packages/flutter_mozilla_components/lib/src/geckoview_widget.dart +++ b/packages/flutter_mozilla_components/lib/src/geckoview_widget.dart @@ -23,8 +23,9 @@ class GeckoView extends StatefulWidget { } class _GeckoViewState extends State { - static const platform = - MethodChannel('me.movenext.flutter_mozilla_components/trim_memory'); + static const platform = MethodChannel( + 'me.movenext.flutter_mozilla_components/trim_memory', + ); final browserService = GeckoBrowserService(); @@ -46,10 +47,7 @@ class _GeckoViewState extends State { Widget build(BuildContext context) { return PlatformViewLink( viewType: 'eu.lensai/gecko', - surfaceFactory: ( - context, - controller, - ) { + surfaceFactory: (context, controller) { return AndroidViewSurface( controller: controller as AndroidViewController, gestureRecognizers: const >{}, @@ -58,12 +56,12 @@ class _GeckoViewState extends State { }, onCreatePlatformView: (PlatformViewCreationParams params) { return PlatformViewsService.initExpensiveAndroidView( - id: params.id, - viewType: 'eu.lensai/gecko', - layoutDirection: TextDirection.ltr, - creationParams: {}, - creationParamsCodec: const StandardMessageCodec(), - ) + id: params.id, + viewType: 'eu.lensai/gecko', + layoutDirection: TextDirection.ltr, + creationParams: {}, + creationParamsCodec: const StandardMessageCodec(), + ) ..addOnPlatformViewCreatedListener((value) async { params.onPlatformViewCreated(value); diff --git a/packages/flutter_mozilla_components/lib/src/pigeons/gecko.g.dart b/packages/flutter_mozilla_components/lib/src/pigeons/gecko.g.dart index 2ca80668..a30d4d96 100644 --- a/packages/flutter_mozilla_components/lib/src/pigeons/gecko.g.dart +++ b/packages/flutter_mozilla_components/lib/src/pigeons/gecko.g.dart @@ -15,7 +15,11 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse({ + Object? result, + PlatformException? error, + bool empty = false, +}) { if (empty) { return []; } @@ -29,8 +33,10 @@ List wrapResponse({Object? result, PlatformException? error, bool empty enum RestoreLocation { /// Restore tabs at the beginning of the tab list beginning, + /// Restore tabs at the end of the tab list end, + /// Restore tabs at a specific index in the tab list atIndex, } @@ -51,73 +57,41 @@ enum IconType { /// Supported sizes. /// /// We are trying to limit the supported sizes in order to optimize our caching strategy. -enum IconSize { - defaultSize, - launcher, - launcherAdaptive, -} +enum IconSize { defaultSize, launcher, launcherAdaptive } /// The source of an [Icon]. enum IconSource { /// This icon was generated. generator, + /// This icon was downloaded. download, + /// This icon was inlined in the document. inline, + /// This icon was loaded from an in-memory cache. memory, + /// This icon was loaded from a disk cache. disk, } -enum CookieSameSiteStatus { - noRestriction, - lax, - strict, - unspecified, -} +enum CookieSameSiteStatus { noRestriction, lax, strict, unspecified } -enum SelectionPattern { - phone, - email, -} +enum SelectionPattern { phone, email } -enum WebExtensionActionType { - browser, - page, -} +enum WebExtensionActionType { browser, page } -enum GeckoSuggestionType { - session, - clipboard, - history, -} +enum GeckoSuggestionType { session, clipboard, history } -enum TrackingProtectionPolicy { - none, - recommended, - strict, - custom, -} +enum TrackingProtectionPolicy { none, recommended, strict, custom } -enum HttpsOnlyMode { - disabled, - privateOnly, - enabled, -} +enum HttpsOnlyMode { disabled, privateOnly, enabled } -enum ColorScheme { - system, - light, - dark, -} +enum ColorScheme { system, light, dark } -enum CookieBannerHandlingMode { - disabled, - rejectAll, - rejectOrAcceptAll, -} +enum CookieBannerHandlingMode { disabled, rejectAll, rejectOrAcceptAll } enum WebContentIsolationStrategy { isolateNothing, @@ -130,23 +104,17 @@ enum WebContentIsolationStrategy { /// @property downloadModel If the necessary models should be downloaded on request. If false, then /// the translation will not complete and throw an exception if the models are not already available. class TranslationOptions { - TranslationOptions({ - required this.downloadModel, - }); + TranslationOptions({required this.downloadModel}); bool downloadModel; Object encode() { - return [ - downloadModel, - ]; + return [downloadModel]; } static TranslationOptions decode(Object result) { result as List; - return TranslationOptions( - downloadModel: result[0]! as bool, - ); + return TranslationOptions(downloadModel: result[0]! as bool); } } @@ -240,11 +208,7 @@ class LastMediaAccessState { bool mediaSessionActive; Object encode() { - return [ - lastMediaUrl, - lastMediaAccess, - mediaSessionActive, - ]; + return [lastMediaUrl, lastMediaAccess, mediaSessionActive]; } static LastMediaAccessState decode(Object result) { @@ -262,11 +226,7 @@ class LastMediaAccessState { /// created, depending on the de-bouncing logic of the underlying storage i.e. recording history /// metadata observations with the exact same values may be combined into a single record. class HistoryMetadataKey { - HistoryMetadataKey({ - required this.url, - this.searchTerm, - this.referrerUrl, - }); + HistoryMetadataKey({required this.url, this.searchTerm, this.referrerUrl}); /// A url of the page. String url; @@ -281,11 +241,7 @@ class HistoryMetadataKey { String? referrerUrl; Object encode() { - return [ - url, - searchTerm, - referrerUrl, - ]; + return [url, searchTerm, referrerUrl]; } static HistoryMetadataKey decode(Object result) { @@ -299,32 +255,23 @@ class HistoryMetadataKey { } class PackageCategoryValue { - PackageCategoryValue({ - required this.value, - }); + PackageCategoryValue({required this.value}); int value; Object encode() { - return [ - value, - ]; + return [value]; } static PackageCategoryValue decode(Object result) { result as List; - return PackageCategoryValue( - value: result[0]! as int, - ); + return PackageCategoryValue(value: result[0]! as int); } } /// Describes an external package. class ExternalPackage { - ExternalPackage({ - required this.packageId, - required this.category, - }); + ExternalPackage({required this.packageId, required this.category}); /// An Android package id. String packageId; @@ -333,10 +280,7 @@ class ExternalPackage { PackageCategoryValue category; Object encode() { - return [ - packageId, - category, - ]; + return [packageId, category]; } static ExternalPackage decode(Object result) { @@ -349,41 +293,29 @@ class ExternalPackage { } class LoadUrlFlagsValue { - LoadUrlFlagsValue({ - required this.value, - }); + LoadUrlFlagsValue({required this.value}); int value; Object encode() { - return [ - value, - ]; + return [value]; } static LoadUrlFlagsValue decode(Object result) { result as List; - return LoadUrlFlagsValue( - value: result[0]! as int, - ); + return LoadUrlFlagsValue(value: result[0]! as int); } } class SourceValue { - SourceValue({ - required this.id, - this.caller, - }); + SourceValue({required this.id, this.caller}); int id; ExternalPackage? caller; Object encode() { - return [ - id, - caller, - ]; + return [id, caller]; } static SourceValue decode(Object result) { @@ -510,10 +442,7 @@ class TabState { /// A recoverable version of [TabState]. class RecoverableTab { - RecoverableTab({ - this.engineSessionStateJson, - required this.state, - }); + RecoverableTab({this.engineSessionStateJson, required this.state}); /// The [EngineSessionState] needed for restoring the previous state of this tab. String? engineSessionStateJson; @@ -522,10 +451,7 @@ class RecoverableTab { TabState state; Object encode() { - return [ - engineSessionStateJson, - state, - ]; + return [engineSessionStateJson, state]; } static RecoverableTab decode(Object result) { @@ -539,10 +465,7 @@ class RecoverableTab { /// A restored browser state, read from disk. class RecoverableBrowserState { - RecoverableBrowserState({ - required this.tabs, - this.selectedTabId, - }); + RecoverableBrowserState({required this.tabs, this.selectedTabId}); /// The list of restored tabs. List tabs; @@ -551,10 +474,7 @@ class RecoverableBrowserState { String? selectedTabId; Object encode() { - return [ - tabs, - selectedTabId, - ]; + return [tabs, selectedTabId]; } static RecoverableBrowserState decode(Object result) { @@ -590,14 +510,7 @@ class IconRequest { bool waitOnNetworkLoad; Object encode() { - return [ - url, - size, - resources, - color, - isPrivate, - waitOnNetworkLoad, - ]; + return [url, size, resources, color, isPrivate, waitOnNetworkLoad]; } static IconRequest decode(Object result) { @@ -614,28 +527,19 @@ class IconRequest { } class ResourceSize { - ResourceSize({ - required this.height, - required this.width, - }); + ResourceSize({required this.height, required this.width}); int height; int width; Object encode() { - return [ - height, - width, - ]; + return [height, width]; } static ResourceSize decode(Object result) { result as List; - return ResourceSize( - height: result[0]! as int, - width: result[1]! as int, - ); + return ResourceSize(height: result[0]! as int, width: result[1]! as int); } } @@ -660,13 +564,7 @@ class Resource { bool maskable; Object encode() { - return [ - url, - type, - sizes, - mimeType, - maskable, - ]; + return [url, type, sizes, mimeType, maskable]; } static Resource decode(Object result) { @@ -703,12 +601,7 @@ class IconResult { bool maskable; Object encode() { - return [ - image, - color, - source, - maskable, - ]; + return [image, color, source, maskable]; } static IconResult decode(Object result) { @@ -723,23 +616,17 @@ class IconResult { } class CookiePartitionKey { - CookiePartitionKey({ - required this.topLevelSite, - }); + CookiePartitionKey({required this.topLevelSite}); String topLevelSite; Object encode() { - return [ - topLevelSite, - ]; + return [topLevelSite]; } static CookiePartitionKey decode(Object result) { result as List; - return CookiePartitionKey( - topLevelSite: result[0]! as String, - ); + return CookiePartitionKey(topLevelSite: result[0]! as String); } } @@ -825,28 +712,19 @@ class Cookie { } class HistoryItem { - HistoryItem({ - required this.url, - required this.title, - }); + HistoryItem({required this.url, required this.title}); String url; String title; Object encode() { - return [ - url, - title, - ]; + return [url, title]; } static HistoryItem decode(Object result) { result as List; - return HistoryItem( - url: result[0]! as String, - title: result[1]! as String, - ); + return HistoryItem(url: result[0]! as String, title: result[1]! as String); } } @@ -867,12 +745,7 @@ class HistoryState { bool canGoForward; Object encode() { - return [ - items, - currentIndex, - canGoBack, - canGoForward, - ]; + return [items, currentIndex, canGoBack, canGoForward]; } static HistoryState decode(Object result) { @@ -887,10 +760,7 @@ class HistoryState { } class ReaderableState { - ReaderableState({ - required this.readerable, - required this.active, - }); + ReaderableState({required this.readerable, required this.active}); /// Whether or not the current page can be transformed to /// be displayed in a reader view. @@ -900,10 +770,7 @@ class ReaderableState { bool active; Object encode() { - return [ - readerable, - active, - ]; + return [readerable, active]; } static ReaderableState decode(Object result) { @@ -929,11 +796,7 @@ class SecurityInfoState { String issuer; Object encode() { - return [ - secure, - host, - issuer, - ]; + return [secure, host, issuer]; } static SecurityInfoState decode(Object result) { @@ -1016,11 +879,7 @@ class FindResultState { bool isDoneCounting; Object encode() { - return [ - activeMatchOrdinal, - numberOfMatches, - isDoneCounting, - ]; + return [activeMatchOrdinal, numberOfMatches, isDoneCounting]; } static FindResultState decode(Object result) { @@ -1034,11 +893,7 @@ class FindResultState { } class CustomSelectionAction { - CustomSelectionAction({ - required this.id, - required this.title, - this.pattern, - }); + CustomSelectionAction({required this.id, required this.title, this.pattern}); String id; @@ -1047,11 +902,7 @@ class CustomSelectionAction { SelectionPattern? pattern; Object encode() { - return [ - id, - title, - pattern, - ]; + return [id, title, pattern]; } static CustomSelectionAction decode(Object result) { @@ -1136,15 +987,7 @@ class GeckoSuggestion { Uint8List? icon; Object encode() { - return [ - id, - type, - score, - title, - description, - editSuggestion, - icon, - ]; + return [id, type, score, title, description, editSuggestion, icon]; } static GeckoSuggestion decode(Object result) { @@ -1265,7 +1108,8 @@ class GeckoEngineSettings { globalPrivacyControlEnabled: result[3] as bool?, preferredColorScheme: result[4] as ColorScheme?, cookieBannerHandlingMode: result[5] as CookieBannerHandlingMode?, - cookieBannerHandlingModePrivateBrowsing: result[6] as CookieBannerHandlingMode?, + cookieBannerHandlingModePrivateBrowsing: + result[6] as CookieBannerHandlingMode?, cookieBannerHandlingGlobalRules: result[7] as bool?, cookieBannerHandlingGlobalRulesSubFrames: result[8] as bool?, webContentIsolationStrategy: result[9] as WebContentIsolationStrategy?, @@ -1293,13 +1137,7 @@ class AutocompleteResult { int totalItems; Object encode() { - return [ - input, - text, - url, - source, - totalItems, - ]; + return [input, text, url, source, totalItems]; } static AutocompleteResult decode(Object result) { @@ -1314,7 +1152,6 @@ class AutocompleteResult { } } - class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -1322,130 +1159,130 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is RestoreLocation) { + } else if (value is RestoreLocation) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is IconType) { + } else if (value is IconType) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is IconSize) { + } else if (value is IconSize) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is IconSource) { + } else if (value is IconSource) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is CookieSameSiteStatus) { + } else if (value is CookieSameSiteStatus) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is SelectionPattern) { + } else if (value is SelectionPattern) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is WebExtensionActionType) { + } else if (value is WebExtensionActionType) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is GeckoSuggestionType) { + } else if (value is GeckoSuggestionType) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is TrackingProtectionPolicy) { + } else if (value is TrackingProtectionPolicy) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is HttpsOnlyMode) { + } else if (value is HttpsOnlyMode) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is ColorScheme) { + } else if (value is ColorScheme) { buffer.putUint8(139); writeValue(buffer, value.index); - } else if (value is CookieBannerHandlingMode) { + } else if (value is CookieBannerHandlingMode) { buffer.putUint8(140); writeValue(buffer, value.index); - } else if (value is WebContentIsolationStrategy) { + } else if (value is WebContentIsolationStrategy) { buffer.putUint8(141); writeValue(buffer, value.index); - } else if (value is TranslationOptions) { + } else if (value is TranslationOptions) { buffer.putUint8(142); writeValue(buffer, value.encode()); - } else if (value is ReaderState) { + } else if (value is ReaderState) { buffer.putUint8(143); writeValue(buffer, value.encode()); - } else if (value is LastMediaAccessState) { + } else if (value is LastMediaAccessState) { buffer.putUint8(144); writeValue(buffer, value.encode()); - } else if (value is HistoryMetadataKey) { + } else if (value is HistoryMetadataKey) { buffer.putUint8(145); writeValue(buffer, value.encode()); - } else if (value is PackageCategoryValue) { + } else if (value is PackageCategoryValue) { buffer.putUint8(146); writeValue(buffer, value.encode()); - } else if (value is ExternalPackage) { + } else if (value is ExternalPackage) { buffer.putUint8(147); writeValue(buffer, value.encode()); - } else if (value is LoadUrlFlagsValue) { + } else if (value is LoadUrlFlagsValue) { buffer.putUint8(148); writeValue(buffer, value.encode()); - } else if (value is SourceValue) { + } else if (value is SourceValue) { buffer.putUint8(149); writeValue(buffer, value.encode()); - } else if (value is TabState) { + } else if (value is TabState) { buffer.putUint8(150); writeValue(buffer, value.encode()); - } else if (value is RecoverableTab) { + } else if (value is RecoverableTab) { buffer.putUint8(151); writeValue(buffer, value.encode()); - } else if (value is RecoverableBrowserState) { + } else if (value is RecoverableBrowserState) { buffer.putUint8(152); writeValue(buffer, value.encode()); - } else if (value is IconRequest) { + } else if (value is IconRequest) { buffer.putUint8(153); writeValue(buffer, value.encode()); - } else if (value is ResourceSize) { + } else if (value is ResourceSize) { buffer.putUint8(154); writeValue(buffer, value.encode()); - } else if (value is Resource) { + } else if (value is Resource) { buffer.putUint8(155); writeValue(buffer, value.encode()); - } else if (value is IconResult) { + } else if (value is IconResult) { buffer.putUint8(156); writeValue(buffer, value.encode()); - } else if (value is CookiePartitionKey) { + } else if (value is CookiePartitionKey) { buffer.putUint8(157); writeValue(buffer, value.encode()); - } else if (value is Cookie) { + } else if (value is Cookie) { buffer.putUint8(158); writeValue(buffer, value.encode()); - } else if (value is HistoryItem) { + } else if (value is HistoryItem) { buffer.putUint8(159); writeValue(buffer, value.encode()); - } else if (value is HistoryState) { + } else if (value is HistoryState) { buffer.putUint8(160); writeValue(buffer, value.encode()); - } else if (value is ReaderableState) { + } else if (value is ReaderableState) { buffer.putUint8(161); writeValue(buffer, value.encode()); - } else if (value is SecurityInfoState) { + } else if (value is SecurityInfoState) { buffer.putUint8(162); writeValue(buffer, value.encode()); - } else if (value is TabContentState) { + } else if (value is TabContentState) { buffer.putUint8(163); writeValue(buffer, value.encode()); - } else if (value is FindResultState) { + } else if (value is FindResultState) { buffer.putUint8(164); writeValue(buffer, value.encode()); - } else if (value is CustomSelectionAction) { + } else if (value is CustomSelectionAction) { buffer.putUint8(165); writeValue(buffer, value.encode()); - } else if (value is WebExtensionData) { + } else if (value is WebExtensionData) { buffer.putUint8(166); writeValue(buffer, value.encode()); - } else if (value is GeckoSuggestion) { + } else if (value is GeckoSuggestion) { buffer.putUint8(167); writeValue(buffer, value.encode()); - } else if (value is TabContent) { + } else if (value is TabContent) { buffer.putUint8(168); writeValue(buffer, value.encode()); - } else if (value is GeckoEngineSettings) { + } else if (value is GeckoEngineSettings) { buffer.putUint8(169); writeValue(buffer, value.encode()); - } else if (value is AutocompleteResult) { + } else if (value is AutocompleteResult) { buffer.putUint8(170); writeValue(buffer, value.encode()); } else { @@ -1456,102 +1293,102 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : RestoreLocation.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : IconType.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : IconSize.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : IconSource.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : CookieSameSiteStatus.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : SelectionPattern.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : WebExtensionActionType.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : GeckoSuggestionType.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; return value == null ? null : TrackingProtectionPolicy.values[value]; - case 138: + case 138: final int? value = readValue(buffer) as int?; return value == null ? null : HttpsOnlyMode.values[value]; - case 139: + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : ColorScheme.values[value]; - case 140: + case 140: final int? value = readValue(buffer) as int?; return value == null ? null : CookieBannerHandlingMode.values[value]; - case 141: + case 141: final int? value = readValue(buffer) as int?; return value == null ? null : WebContentIsolationStrategy.values[value]; - case 142: + case 142: return TranslationOptions.decode(readValue(buffer)!); - case 143: + case 143: return ReaderState.decode(readValue(buffer)!); - case 144: + case 144: return LastMediaAccessState.decode(readValue(buffer)!); - case 145: + case 145: return HistoryMetadataKey.decode(readValue(buffer)!); - case 146: + case 146: return PackageCategoryValue.decode(readValue(buffer)!); - case 147: + case 147: return ExternalPackage.decode(readValue(buffer)!); - case 148: + case 148: return LoadUrlFlagsValue.decode(readValue(buffer)!); - case 149: + case 149: return SourceValue.decode(readValue(buffer)!); - case 150: + case 150: return TabState.decode(readValue(buffer)!); - case 151: + case 151: return RecoverableTab.decode(readValue(buffer)!); - case 152: + case 152: return RecoverableBrowserState.decode(readValue(buffer)!); - case 153: + case 153: return IconRequest.decode(readValue(buffer)!); - case 154: + case 154: return ResourceSize.decode(readValue(buffer)!); - case 155: + case 155: return Resource.decode(readValue(buffer)!); - case 156: + case 156: return IconResult.decode(readValue(buffer)!); - case 157: + case 157: return CookiePartitionKey.decode(readValue(buffer)!); - case 158: + case 158: return Cookie.decode(readValue(buffer)!); - case 159: + case 159: return HistoryItem.decode(readValue(buffer)!); - case 160: + case 160: return HistoryState.decode(readValue(buffer)!); - case 161: + case 161: return ReaderableState.decode(readValue(buffer)!); - case 162: + case 162: return SecurityInfoState.decode(readValue(buffer)!); - case 163: + case 163: return TabContentState.decode(readValue(buffer)!); - case 164: + case 164: return FindResultState.decode(readValue(buffer)!); - case 165: + case 165: return CustomSelectionAction.decode(readValue(buffer)!); - case 166: + case 166: return WebExtensionData.decode(readValue(buffer)!); - case 167: + case 167: return GeckoSuggestion.decode(readValue(buffer)!); - case 168: + case 168: return TabContent.decode(readValue(buffer)!); - case 169: + case 169: return GeckoEngineSettings.decode(readValue(buffer)!); - case 170: + case 170: return AutocompleteResult.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1563,9 +1400,12 @@ class GeckoBrowserApi { /// Constructor for [GeckoBrowserApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoBrowserApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoBrowserApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -1573,12 +1413,14 @@ class GeckoBrowserApi { final String pigeonVar_messageChannelSuffix; Future showNativeFragment() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoBrowserApi.showNativeFragment$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoBrowserApi.showNativeFragment$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -1595,12 +1437,14 @@ class GeckoBrowserApi { } Future onTrimMemory(int level) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoBrowserApi.onTrimMemory$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoBrowserApi.onTrimMemory$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([level]) as List?; if (pigeonVar_replyList == null) { @@ -1621,9 +1465,12 @@ class GeckoEngineSettingsApi { /// Constructor for [GeckoEngineSettingsApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoEngineSettingsApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoEngineSettingsApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -1631,12 +1478,14 @@ class GeckoEngineSettingsApi { final String pigeonVar_messageChannelSuffix; Future setDefaultSettings(GeckoEngineSettings settings) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoEngineSettingsApi.setDefaultSettings$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoEngineSettingsApi.setDefaultSettings$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([settings]) as List?; if (pigeonVar_replyList == null) { @@ -1653,12 +1502,14 @@ class GeckoEngineSettingsApi { } Future updateRuntimeSettings(GeckoEngineSettings settings) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoEngineSettingsApi.updateRuntimeSettings$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoEngineSettingsApi.updateRuntimeSettings$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([settings]) as List?; if (pigeonVar_replyList == null) { @@ -1679,24 +1530,40 @@ class GeckoSessionApi { /// Constructor for [GeckoSessionApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoSessionApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoSessionApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); final String pigeonVar_messageChannelSuffix; - Future loadUrl({required String? tabId, required String url, required LoadUrlFlagsValue flags, required Map? additionalHeaders, }) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.loadUrl$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future loadUrl({ + required String? tabId, + required String url, + required LoadUrlFlagsValue flags, + required Map? additionalHeaders, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.loadUrl$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabId, url, flags, additionalHeaders]) as List?; + await pigeonVar_channel.send([ + tabId, + url, + flags, + additionalHeaders, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -1710,15 +1577,23 @@ class GeckoSessionApi { } } - Future loadData({required String? tabId, required String data, required String mimeType, required String encoding, }) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.loadData$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future loadData({ + required String? tabId, + required String data, + required String mimeType, + required String encoding, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.loadData$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabId, data, mimeType, encoding]) as List?; + await pigeonVar_channel.send([tabId, data, mimeType, encoding]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -1732,13 +1607,18 @@ class GeckoSessionApi { } } - Future reload({required String? tabId, required LoadUrlFlagsValue flags}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.reload$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future reload({ + required String? tabId, + required LoadUrlFlagsValue flags, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.reload$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId, flags]) as List?; if (pigeonVar_replyList == null) { @@ -1755,12 +1635,14 @@ class GeckoSessionApi { } Future stopLoading({required String? tabId}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.stopLoading$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.stopLoading$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId]) as List?; if (pigeonVar_replyList == null) { @@ -1776,15 +1658,21 @@ class GeckoSessionApi { } } - Future goBack({required String? tabId, required bool userInteraction}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.goBack$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future goBack({ + required String? tabId, + required bool userInteraction, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.goBack$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabId, userInteraction]) as List?; + await pigeonVar_channel.send([tabId, userInteraction]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -1798,15 +1686,21 @@ class GeckoSessionApi { } } - Future goForward({required String? tabId, required bool userInteraction}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.goForward$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future goForward({ + required String? tabId, + required bool userInteraction, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.goForward$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabId, userInteraction]) as List?; + await pigeonVar_channel.send([tabId, userInteraction]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -1820,13 +1714,18 @@ class GeckoSessionApi { } } - Future goToHistoryIndex({required int index, required String? tabId}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.goToHistoryIndex$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future goToHistoryIndex({ + required int index, + required String? tabId, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.goToHistoryIndex$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([index, tabId]) as List?; if (pigeonVar_replyList == null) { @@ -1842,15 +1741,21 @@ class GeckoSessionApi { } } - Future requestDesktopSite({required String? tabId, required bool enable}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.requestDesktopSite$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future requestDesktopSite({ + required String? tabId, + required bool enable, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.requestDesktopSite$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabId, enable]) as List?; + await pigeonVar_channel.send([tabId, enable]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -1865,12 +1770,14 @@ class GeckoSessionApi { } Future exitFullscreen({required String? tabId}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.exitFullscreen$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.exitFullscreen$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId]) as List?; if (pigeonVar_replyList == null) { @@ -1887,12 +1794,14 @@ class GeckoSessionApi { } Future saveToPdf({required String? tabId}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.saveToPdf$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.saveToPdf$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId]) as List?; if (pigeonVar_replyList == null) { @@ -1909,12 +1818,14 @@ class GeckoSessionApi { } Future printContent({required String? tabId}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.printContent$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.printContent$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId]) as List?; if (pigeonVar_replyList == null) { @@ -1930,15 +1841,28 @@ class GeckoSessionApi { } } - Future translate({required String? tabId, required String fromLanguage, required String toLanguage, required TranslationOptions? options, }) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.translate$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future translate({ + required String? tabId, + required String fromLanguage, + required String toLanguage, + required TranslationOptions? options, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.translate$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabId, fromLanguage, toLanguage, options]) as List?; + await pigeonVar_channel.send([ + tabId, + fromLanguage, + toLanguage, + options, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -1953,12 +1877,14 @@ class GeckoSessionApi { } Future translateRestore({required String? tabId}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.translateRestore$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.translateRestore$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId]) as List?; if (pigeonVar_replyList == null) { @@ -1975,12 +1901,14 @@ class GeckoSessionApi { } Future crashRecovery({required List? tabIds}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.crashRecovery$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.crashRecovery$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabIds]) as List?; if (pigeonVar_replyList == null) { @@ -1997,12 +1925,14 @@ class GeckoSessionApi { } Future purgeHistory() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.purgeHistory$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.purgeHistory$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -2018,15 +1948,21 @@ class GeckoSessionApi { } } - Future updateLastAccess({required String? tabId, required int? lastAccess}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.updateLastAccess$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future updateLastAccess({ + required String? tabId, + required int? lastAccess, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.updateLastAccess$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabId, lastAccess]) as List?; + await pigeonVar_channel.send([tabId, lastAccess]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2041,12 +1977,14 @@ class GeckoSessionApi { } Future requestScreenshot(bool sendBack) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.requestScreenshot$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.requestScreenshot$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([sendBack]) as List?; if (pigeonVar_replyList == null) { @@ -2067,24 +2005,50 @@ class GeckoTabsApi { /// Constructor for [GeckoTabsApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoTabsApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoTabsApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); final String pigeonVar_messageChannelSuffix; - Future syncEvents({required bool onSelectedTabChange, required bool onTabListChange, required bool onTabContentStateChange, required bool onIconChange, required bool onSecurityInfoStateChange, required bool onReaderableStateChange, required bool onHistoryStateChange, required bool onFindResults, required bool onThumbnailChange, }) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.syncEvents$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future syncEvents({ + required bool onSelectedTabChange, + required bool onTabListChange, + required bool onTabContentStateChange, + required bool onIconChange, + required bool onSecurityInfoStateChange, + required bool onReaderableStateChange, + required bool onHistoryStateChange, + required bool onFindResults, + required bool onThumbnailChange, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.syncEvents$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([onSelectedTabChange, onTabListChange, onTabContentStateChange, onIconChange, onSecurityInfoStateChange, onReaderableStateChange, onHistoryStateChange, onFindResults, onThumbnailChange]) as List?; + await pigeonVar_channel.send([ + onSelectedTabChange, + onTabListChange, + onTabContentStateChange, + onIconChange, + onSecurityInfoStateChange, + onReaderableStateChange, + onHistoryStateChange, + onFindResults, + onThumbnailChange, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2099,12 +2063,14 @@ class GeckoTabsApi { } Future selectTab({required String tabId}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.selectTab$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.selectTab$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId]) as List?; if (pigeonVar_replyList == null) { @@ -2121,12 +2087,14 @@ class GeckoTabsApi { } Future removeTab({required String tabId}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removeTab$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removeTab$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId]) as List?; if (pigeonVar_replyList == null) { @@ -2142,15 +2110,40 @@ class GeckoTabsApi { } } - Future addTab({required String url, required bool selectTab, required bool startLoading, required String? parentId, required LoadUrlFlagsValue flags, required String? contextId, required SourceValue source, required bool private, required HistoryMetadataKey? historyMetadata, required Map? additionalHeaders, }) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.addTab$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future addTab({ + required String url, + required bool selectTab, + required bool startLoading, + required String? parentId, + required LoadUrlFlagsValue flags, + required String? contextId, + required SourceValue source, + required bool private, + required HistoryMetadataKey? historyMetadata, + required Map? additionalHeaders, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.addTab$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([url, selectTab, startLoading, parentId, flags, contextId, source, private, historyMetadata, additionalHeaders]) as List?; + await pigeonVar_channel.send([ + url, + selectTab, + startLoading, + parentId, + flags, + contextId, + source, + private, + historyMetadata, + additionalHeaders, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2170,12 +2163,14 @@ class GeckoTabsApi { } Future removeAllTabs({required bool recoverable}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removeAllTabs$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removeAllTabs$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([recoverable]) as List?; if (pigeonVar_replyList == null) { @@ -2192,12 +2187,14 @@ class GeckoTabsApi { } Future removeTabs({required List ids}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removeTabs$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removeTabs$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([ids]) as List?; if (pigeonVar_replyList == null) { @@ -2214,12 +2211,14 @@ class GeckoTabsApi { } Future removeNormalTabs() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removeNormalTabs$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removeNormalTabs$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -2236,12 +2235,14 @@ class GeckoTabsApi { } Future removePrivateTabs() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removePrivateTabs$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.removePrivateTabs$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -2258,12 +2259,14 @@ class GeckoTabsApi { } Future undo() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.undo$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.undo$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -2279,15 +2282,26 @@ class GeckoTabsApi { } } - Future restoreTabsByList({required List tabs, required String? selectTabId, required RestoreLocation restoreLocation, }) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.restoreTabsByList$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future restoreTabsByList({ + required List tabs, + required String? selectTabId, + required RestoreLocation restoreLocation, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.restoreTabsByList$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabs, selectTabId, restoreLocation]) as List?; + await pigeonVar_channel.send([ + tabs, + selectTabId, + restoreLocation, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2301,15 +2315,21 @@ class GeckoTabsApi { } } - Future restoreTabsByBrowserState({required RecoverableBrowserState state, required RestoreLocation restoreLocation}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.restoreTabsByBrowserState$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future restoreTabsByBrowserState({ + required RecoverableBrowserState state, + required RestoreLocation restoreLocation, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.restoreTabsByBrowserState$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([state, restoreLocation]) as List?; + await pigeonVar_channel.send([state, restoreLocation]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2325,15 +2345,21 @@ class GeckoTabsApi { /// Selects an already existing tab with the matching [HistoryMetadataKey] or otherwise /// creates a new tab with the given [url]. - Future selectOrAddTabByHistory({required String url, required HistoryMetadataKey historyMetadata}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.selectOrAddTabByHistory$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future selectOrAddTabByHistory({ + required String url, + required HistoryMetadataKey historyMetadata, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.selectOrAddTabByHistory$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([url, historyMetadata]) as List?; + await pigeonVar_channel.send([url, historyMetadata]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2353,15 +2379,30 @@ class GeckoTabsApi { } /// Selects an already existing tab displaying [url] or otherwise creates a new tab. - Future selectOrAddTabByUrl({required String url, required bool private, required SourceValue source, required LoadUrlFlagsValue flags, required bool ignoreFragment, }) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.selectOrAddTabByUrl$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future selectOrAddTabByUrl({ + required String url, + required bool private, + required SourceValue source, + required LoadUrlFlagsValue flags, + required bool ignoreFragment, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.selectOrAddTabByUrl$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([url, private, source, flags, ignoreFragment]) as List?; + await pigeonVar_channel.send([ + url, + private, + source, + flags, + ignoreFragment, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2380,15 +2421,26 @@ class GeckoTabsApi { } } - Future duplicateTab({required String? selectTabId, required bool selectNewTab, required String? newContextId, }) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.duplicateTab$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future duplicateTab({ + required String? selectTabId, + required bool selectNewTab, + required String? newContextId, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.duplicateTab$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([selectTabId, selectNewTab, newContextId]) as List?; + await pigeonVar_channel.send([ + selectTabId, + selectNewTab, + newContextId, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2407,15 +2459,22 @@ class GeckoTabsApi { } } - Future moveTabs({required List tabIds, required String targetTabId, required bool placeAfter, }) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.moveTabs$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future moveTabs({ + required List tabIds, + required String targetTabId, + required bool placeAfter, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.moveTabs$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabIds, targetTabId, placeAfter]) as List?; + await pigeonVar_channel.send([tabIds, targetTabId, placeAfter]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2429,15 +2488,21 @@ class GeckoTabsApi { } } - Future migratePrivateTabUseCase({required String tabId, required String? alternativeUrl}) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.migratePrivateTabUseCase$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future migratePrivateTabUseCase({ + required String tabId, + required String? alternativeUrl, + }) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.migratePrivateTabUseCase$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabId, alternativeUrl]) as List?; + await pigeonVar_channel.send([tabId, alternativeUrl]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2461,9 +2526,12 @@ class GeckoFindApi { /// Constructor for [GeckoFindApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoFindApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoFindApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -2471,12 +2539,14 @@ class GeckoFindApi { final String pigeonVar_messageChannelSuffix; Future findAll(String? tabId, String text) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoFindApi.findAll$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoFindApi.findAll$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId, text]) as List?; if (pigeonVar_replyList == null) { @@ -2493,14 +2563,17 @@ class GeckoFindApi { } Future findNext(String? tabId, bool forward) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoFindApi.findNext$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoFindApi.findNext$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([tabId, forward]) as List?; + await pigeonVar_channel.send([tabId, forward]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2515,12 +2588,14 @@ class GeckoFindApi { } Future clearMatches(String? tabId) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoFindApi.clearMatches$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoFindApi.clearMatches$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([tabId]) as List?; if (pigeonVar_replyList == null) { @@ -2541,9 +2616,12 @@ class GeckoIconsApi { /// Constructor for [GeckoIconsApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoIconsApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoIconsApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -2551,12 +2629,14 @@ class GeckoIconsApi { final String pigeonVar_messageChannelSuffix; Future loadIcon(IconRequest request) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoIconsApi.loadIcon$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoIconsApi.loadIcon$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([request]) as List?; if (pigeonVar_replyList == null) { @@ -2582,9 +2662,12 @@ class GeckoPrefApi { /// Constructor for [GeckoPrefApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoPrefApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoPrefApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -2592,14 +2675,17 @@ class GeckoPrefApi { final String pigeonVar_messageChannelSuffix; Future> getPrefs(List? preferenceFilter) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoPrefApi.getPrefs$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoPrefApi.getPrefs$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([preferenceFilter]) as List?; + await pigeonVar_channel.send([preferenceFilter]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2614,17 +2700,20 @@ class GeckoPrefApi { message: 'Host platform returned null value for non-null return value.', ); } else { - return (pigeonVar_replyList[0] as Map?)!.cast(); + return (pigeonVar_replyList[0] as Map?)! + .cast(); } } Future> applyPrefs(String prefBuffer) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoPrefApi.applyPrefs$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoPrefApi.applyPrefs$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([prefBuffer]) as List?; if (pigeonVar_replyList == null) { @@ -2641,19 +2730,23 @@ class GeckoPrefApi { message: 'Host platform returned null value for non-null return value.', ); } else { - return (pigeonVar_replyList[0] as Map?)!.cast(); + return (pigeonVar_replyList[0] as Map?)! + .cast(); } } Future resetPrefs(List? preferenceNames) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoPrefApi.resetPrefs$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoPrefApi.resetPrefs$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([preferenceNames]) as List?; + await pigeonVar_channel.send([preferenceNames]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2672,9 +2765,12 @@ class GeckoContainerProxyApi { /// Constructor for [GeckoContainerProxyApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoContainerProxyApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoContainerProxyApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -2682,12 +2778,14 @@ class GeckoContainerProxyApi { final String pigeonVar_messageChannelSuffix; Future setProxyPort(int port) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoContainerProxyApi.setProxyPort$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoContainerProxyApi.setProxyPort$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([port]) as List?; if (pigeonVar_replyList == null) { @@ -2704,12 +2802,14 @@ class GeckoContainerProxyApi { } Future addContainerProxy(String contextId) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoContainerProxyApi.addContainerProxy$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoContainerProxyApi.addContainerProxy$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([contextId]) as List?; if (pigeonVar_replyList == null) { @@ -2726,12 +2826,14 @@ class GeckoContainerProxyApi { } Future removeContainerProxy(String contextId) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoContainerProxyApi.removeContainerProxy$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoContainerProxyApi.removeContainerProxy$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([contextId]) as List?; if (pigeonVar_replyList == null) { @@ -2752,24 +2854,42 @@ class GeckoCookieApi { /// Constructor for [GeckoCookieApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoCookieApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoCookieApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); final String pigeonVar_messageChannelSuffix; - Future getCookie(String? firstPartyDomain, String name, CookiePartitionKey? partitionKey, String? storeId, String url) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoCookieApi.getCookie$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future getCookie( + String? firstPartyDomain, + String name, + CookiePartitionKey? partitionKey, + String? storeId, + String url, + ) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoCookieApi.getCookie$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([firstPartyDomain, name, partitionKey, storeId, url]) as List?; + await pigeonVar_channel.send([ + firstPartyDomain, + name, + partitionKey, + storeId, + url, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2788,15 +2908,32 @@ class GeckoCookieApi { } } - Future> getAllCookies(String? domain, String? firstPartyDomain, String? name, CookiePartitionKey? partitionKey, String? storeId, String url) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoCookieApi.getAllCookies$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future> getAllCookies( + String? domain, + String? firstPartyDomain, + String? name, + CookiePartitionKey? partitionKey, + String? storeId, + String url, + ) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoCookieApi.getAllCookies$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([domain, firstPartyDomain, name, partitionKey, storeId, url]) as List?; + await pigeonVar_channel.send([ + domain, + firstPartyDomain, + name, + partitionKey, + storeId, + url, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2815,15 +2952,44 @@ class GeckoCookieApi { } } - Future setCookie(String? domain, int? expirationDate, String? firstPartyDomain, bool? httpOnly, String? name, CookiePartitionKey? partitionKey, String? path, CookieSameSiteStatus? sameSite, bool? secure, String? storeId, String url, String? value) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoCookieApi.setCookie$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future setCookie( + String? domain, + int? expirationDate, + String? firstPartyDomain, + bool? httpOnly, + String? name, + CookiePartitionKey? partitionKey, + String? path, + CookieSameSiteStatus? sameSite, + bool? secure, + String? storeId, + String url, + String? value, + ) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoCookieApi.setCookie$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([domain, expirationDate, firstPartyDomain, httpOnly, name, partitionKey, path, sameSite, secure, storeId, url, value]) as List?; + await pigeonVar_channel.send([ + domain, + expirationDate, + firstPartyDomain, + httpOnly, + name, + partitionKey, + path, + sameSite, + secure, + storeId, + url, + value, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2837,15 +3003,30 @@ class GeckoCookieApi { } } - Future removeCookie(String? firstPartyDomain, String name, CookiePartitionKey? partitionKey, String? storeId, String url) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoCookieApi.removeCookie$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future removeCookie( + String? firstPartyDomain, + String name, + CookiePartitionKey? partitionKey, + String? storeId, + String url, + ) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoCookieApi.removeCookie$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([firstPartyDomain, name, partitionKey, storeId, url]) as List?; + await pigeonVar_channel.send([ + firstPartyDomain, + name, + partitionKey, + storeId, + url, + ]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2881,7 +3062,11 @@ abstract class GeckoStateEvents { void onReaderableStateChange(int timestamp, String id, ReaderableState state); - void onSecurityInfoStateChange(int timestamp, String id, SecurityInfoState state); + void onSecurityInfoStateChange( + int timestamp, + String id, + SecurityInfoState state, + ); void onIconChange(int timestamp, String id, Uint8List? bytes); @@ -2889,383 +3074,541 @@ abstract class GeckoStateEvents { void onFindResults(int timestamp, String id, List results); - static void setUp(GeckoStateEvents? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + static void setUp( + GeckoStateEvents? api, { + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) { + messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onViewReadyStateChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onViewReadyStateChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onViewReadyStateChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onViewReadyStateChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onViewReadyStateChange was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onViewReadyStateChange was null, expected non-null int.', + ); final bool? arg_state = (args[1] as bool?); - assert(arg_state != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onViewReadyStateChange was null, expected non-null bool.'); + assert( + arg_state != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onViewReadyStateChange was null, expected non-null bool.', + ); try { api.onViewReadyStateChange(arg_timestamp!, arg_state!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onEngineReadyStateChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onEngineReadyStateChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onEngineReadyStateChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onEngineReadyStateChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onEngineReadyStateChange was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onEngineReadyStateChange was null, expected non-null int.', + ); final bool? arg_state = (args[1] as bool?); - assert(arg_state != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onEngineReadyStateChange was null, expected non-null bool.'); + assert( + arg_state != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onEngineReadyStateChange was null, expected non-null bool.', + ); try { api.onEngineReadyStateChange(arg_timestamp!, arg_state!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate was null, expected non-null int.', + ); final String? arg_url = (args[1] as String?); - assert(arg_url != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate was null, expected non-null String.'); + assert( + arg_url != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate was null, expected non-null String.', + ); final Uint8List? arg_bytes = (args[2] as Uint8List?); - assert(arg_bytes != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate was null, expected non-null Uint8List.'); + assert( + arg_bytes != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconUpdate was null, expected non-null Uint8List.', + ); try { api.onIconUpdate(arg_timestamp!, arg_url!, arg_bytes!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabAdded$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabAdded$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabAdded was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabAdded was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabAdded was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabAdded was null, expected non-null int.', + ); final String? arg_tabId = (args[1] as String?); - assert(arg_tabId != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabAdded was null, expected non-null String.'); + assert( + arg_tabId != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabAdded was null, expected non-null String.', + ); try { api.onTabAdded(arg_timestamp!, arg_tabId!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabListChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabListChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabListChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabListChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabListChange was null, expected non-null int.'); - final List? arg_tabIds = (args[1] as List?)?.cast(); - assert(arg_tabIds != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabListChange was null, expected non-null List.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabListChange was null, expected non-null int.', + ); + final List? arg_tabIds = + (args[1] as List?)?.cast(); + assert( + arg_tabIds != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabListChange was null, expected non-null List.', + ); try { api.onTabListChange(arg_timestamp!, arg_tabIds!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSelectedTabChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSelectedTabChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSelectedTabChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSelectedTabChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSelectedTabChange was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSelectedTabChange was null, expected non-null int.', + ); final String? arg_id = (args[1] as String?); try { api.onSelectedTabChange(arg_timestamp!, arg_id); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabContentStateChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabContentStateChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabContentStateChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabContentStateChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabContentStateChange was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabContentStateChange was null, expected non-null int.', + ); final TabContentState? arg_state = (args[1] as TabContentState?); - assert(arg_state != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabContentStateChange was null, expected non-null TabContentState.'); + assert( + arg_state != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onTabContentStateChange was null, expected non-null TabContentState.', + ); try { api.onTabContentStateChange(arg_timestamp!, arg_state!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange was null, expected non-null int.', + ); final String? arg_id = (args[1] as String?); - assert(arg_id != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange was null, expected non-null String.'); + assert( + arg_id != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange was null, expected non-null String.', + ); final HistoryState? arg_state = (args[2] as HistoryState?); - assert(arg_state != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange was null, expected non-null HistoryState.'); + assert( + arg_state != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onHistoryStateChange was null, expected non-null HistoryState.', + ); try { api.onHistoryStateChange(arg_timestamp!, arg_id!, arg_state!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange was null, expected non-null int.', + ); final String? arg_id = (args[1] as String?); - assert(arg_id != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange was null, expected non-null String.'); + assert( + arg_id != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange was null, expected non-null String.', + ); final ReaderableState? arg_state = (args[2] as ReaderableState?); - assert(arg_state != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange was null, expected non-null ReaderableState.'); + assert( + arg_state != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onReaderableStateChange was null, expected non-null ReaderableState.', + ); try { api.onReaderableStateChange(arg_timestamp!, arg_id!, arg_state!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange was null, expected non-null int.', + ); final String? arg_id = (args[1] as String?); - assert(arg_id != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange was null, expected non-null String.'); + assert( + arg_id != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange was null, expected non-null String.', + ); final SecurityInfoState? arg_state = (args[2] as SecurityInfoState?); - assert(arg_state != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange was null, expected non-null SecurityInfoState.'); + assert( + arg_state != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onSecurityInfoStateChange was null, expected non-null SecurityInfoState.', + ); try { api.onSecurityInfoStateChange(arg_timestamp!, arg_id!, arg_state!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconChange was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconChange was null, expected non-null int.', + ); final String? arg_id = (args[1] as String?); - assert(arg_id != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconChange was null, expected non-null String.'); + assert( + arg_id != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onIconChange was null, expected non-null String.', + ); final Uint8List? arg_bytes = (args[2] as Uint8List?); try { api.onIconChange(arg_timestamp!, arg_id!, arg_bytes); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onThumbnailChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onThumbnailChange$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onThumbnailChange was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onThumbnailChange was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onThumbnailChange was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onThumbnailChange was null, expected non-null int.', + ); final String? arg_id = (args[1] as String?); - assert(arg_id != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onThumbnailChange was null, expected non-null String.'); + assert( + arg_id != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onThumbnailChange was null, expected non-null String.', + ); final Uint8List? arg_bytes = (args[2] as Uint8List?); try { api.onThumbnailChange(arg_timestamp!, arg_id!, arg_bytes); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults was null, expected non-null int.', + ); final String? arg_id = (args[1] as String?); - assert(arg_id != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults was null, expected non-null String.'); - final List? arg_results = (args[2] as List?)?.cast(); - assert(arg_results != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults was null, expected non-null List.'); + assert( + arg_id != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults was null, expected non-null String.', + ); + final List? arg_results = + (args[2] as List?)?.cast(); + assert( + arg_results != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onFindResults was null, expected non-null List.', + ); try { api.onFindResults(arg_timestamp!, arg_id!, arg_results!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3277,9 +3620,12 @@ class ReaderViewEvents { /// Constructor for [ReaderViewEvents]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - ReaderViewEvents({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + ReaderViewEvents({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -3287,12 +3633,14 @@ class ReaderViewEvents { final String pigeonVar_messageChannelSuffix; Future onToggleReaderView(bool enable) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.ReaderViewEvents.onToggleReaderView$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.ReaderViewEvents.onToggleReaderView$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([enable]) as List?; if (pigeonVar_replyList == null) { @@ -3309,12 +3657,14 @@ class ReaderViewEvents { } Future onAppearanceButtonTap() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.ReaderViewEvents.onAppearanceButtonTap$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.ReaderViewEvents.onAppearanceButtonTap$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -3336,32 +3686,48 @@ abstract class ReaderViewController { void appearanceButtonVisibility(int timestamp, bool visible); - static void setUp(ReaderViewController? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + static void setUp( + ReaderViewController? api, { + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) { + messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.ReaderViewController.appearanceButtonVisibility$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.ReaderViewController.appearanceButtonVisibility$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.ReaderViewController.appearanceButtonVisibility was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.ReaderViewController.appearanceButtonVisibility was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.ReaderViewController.appearanceButtonVisibility was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.ReaderViewController.appearanceButtonVisibility was null, expected non-null int.', + ); final bool? arg_visible = (args[1] as bool?); - assert(arg_visible != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.ReaderViewController.appearanceButtonVisibility was null, expected non-null bool.'); + assert( + arg_visible != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.ReaderViewController.appearanceButtonVisibility was null, expected non-null bool.', + ); try { api.appearanceButtonVisibility(arg_timestamp!, arg_visible!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3373,9 +3739,12 @@ class GeckoSelectionActionController { /// Constructor for [GeckoSelectionActionController]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoSelectionActionController({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoSelectionActionController({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -3383,12 +3752,14 @@ class GeckoSelectionActionController { final String pigeonVar_messageChannelSuffix; Future setActions(List actions) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionController.setActions$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionController.setActions$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([actions]) as List?; if (pigeonVar_replyList == null) { @@ -3410,32 +3781,48 @@ abstract class GeckoSelectionActionEvents { void performSelectionAction(String id, String selectedText); - static void setUp(GeckoSelectionActionEvents? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + static void setUp( + GeckoSelectionActionEvents? api, { + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) { + messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionEvents.performSelectionAction$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionEvents.performSelectionAction$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionEvents.performSelectionAction was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionEvents.performSelectionAction was null.', + ); final List args = (message as List?)!; final String? arg_id = (args[0] as String?); - assert(arg_id != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionEvents.performSelectionAction was null, expected non-null String.'); + assert( + arg_id != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionEvents.performSelectionAction was null, expected non-null String.', + ); final String? arg_selectedText = (args[1] as String?); - assert(arg_selectedText != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionEvents.performSelectionAction was null, expected non-null String.'); + assert( + arg_selectedText != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSelectionActionEvents.performSelectionAction was null, expected non-null String.', + ); try { api.performSelectionAction(arg_id!, arg_selectedText!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3447,9 +3834,12 @@ class GeckoAddonsApi { /// Constructor for [GeckoAddonsApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoAddonsApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoAddonsApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -3457,12 +3847,14 @@ class GeckoAddonsApi { final String pigeonVar_messageChannelSuffix; Future startAddonManagerActivity() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonsApi.startAddonManagerActivity$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonsApi.startAddonManagerActivity$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -3478,15 +3870,21 @@ class GeckoAddonsApi { } } - Future invokeAddonAction(String extensionId, WebExtensionActionType actionType) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonsApi.invokeAddonAction$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future invokeAddonAction( + String extensionId, + WebExtensionActionType actionType, + ) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonsApi.invokeAddonAction$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([extensionId, actionType]) as List?; + await pigeonVar_channel.send([extensionId, actionType]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -3504,109 +3902,189 @@ class GeckoAddonsApi { abstract class GeckoAddonEvents { static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - void onUpsertWebExtensionAction(int timestamp, String extensionId, WebExtensionActionType actionType, WebExtensionData extensionData); + void onUpsertWebExtensionAction( + int timestamp, + String extensionId, + WebExtensionActionType actionType, + WebExtensionData extensionData, + ); - void onRemoveWebExtensionAction(int timestamp, String extensionId, WebExtensionActionType actionType); + void onRemoveWebExtensionAction( + int timestamp, + String extensionId, + WebExtensionActionType actionType, + ); - void onUpdateWebExtensionIcon(int timestamp, String extensionId, WebExtensionActionType actionType, Uint8List icon); + void onUpdateWebExtensionIcon( + int timestamp, + String extensionId, + WebExtensionActionType actionType, + Uint8List icon, + ); - static void setUp(GeckoAddonEvents? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + static void setUp( + GeckoAddonEvents? api, { + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) { + messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null, expected non-null int.', + ); final String? arg_extensionId = (args[1] as String?); - assert(arg_extensionId != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null, expected non-null String.'); - final WebExtensionActionType? arg_actionType = (args[2] as WebExtensionActionType?); - assert(arg_actionType != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null, expected non-null WebExtensionActionType.'); - final WebExtensionData? arg_extensionData = (args[3] as WebExtensionData?); - assert(arg_extensionData != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null, expected non-null WebExtensionData.'); + assert( + arg_extensionId != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null, expected non-null String.', + ); + final WebExtensionActionType? arg_actionType = + (args[2] as WebExtensionActionType?); + assert( + arg_actionType != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null, expected non-null WebExtensionActionType.', + ); + final WebExtensionData? arg_extensionData = + (args[3] as WebExtensionData?); + assert( + arg_extensionData != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpsertWebExtensionAction was null, expected non-null WebExtensionData.', + ); try { - api.onUpsertWebExtensionAction(arg_timestamp!, arg_extensionId!, arg_actionType!, arg_extensionData!); + api.onUpsertWebExtensionAction( + arg_timestamp!, + arg_extensionId!, + arg_actionType!, + arg_extensionData!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction was null, expected non-null int.', + ); final String? arg_extensionId = (args[1] as String?); - assert(arg_extensionId != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction was null, expected non-null String.'); - final WebExtensionActionType? arg_actionType = (args[2] as WebExtensionActionType?); - assert(arg_actionType != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction was null, expected non-null WebExtensionActionType.'); + assert( + arg_extensionId != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction was null, expected non-null String.', + ); + final WebExtensionActionType? arg_actionType = + (args[2] as WebExtensionActionType?); + assert( + arg_actionType != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onRemoveWebExtensionAction was null, expected non-null WebExtensionActionType.', + ); try { - api.onRemoveWebExtensionAction(arg_timestamp!, arg_extensionId!, arg_actionType!); + api.onRemoveWebExtensionAction( + arg_timestamp!, + arg_extensionId!, + arg_actionType!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } } { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null, expected non-null int.', + ); final String? arg_extensionId = (args[1] as String?); - assert(arg_extensionId != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null, expected non-null String.'); - final WebExtensionActionType? arg_actionType = (args[2] as WebExtensionActionType?); - assert(arg_actionType != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null, expected non-null WebExtensionActionType.'); + assert( + arg_extensionId != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null, expected non-null String.', + ); + final WebExtensionActionType? arg_actionType = + (args[2] as WebExtensionActionType?); + assert( + arg_actionType != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null, expected non-null WebExtensionActionType.', + ); final Uint8List? arg_icon = (args[3] as Uint8List?); - assert(arg_icon != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null, expected non-null Uint8List.'); + assert( + arg_icon != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoAddonEvents.onUpdateWebExtensionIcon was null, expected non-null Uint8List.', + ); try { - api.onUpdateWebExtensionIcon(arg_timestamp!, arg_extensionId!, arg_actionType!, arg_icon!); + api.onUpdateWebExtensionIcon( + arg_timestamp!, + arg_extensionId!, + arg_actionType!, + arg_icon!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3618,9 +4096,12 @@ class GeckoSuggestionApi { /// Constructor for [GeckoSuggestionApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoSuggestionApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoSuggestionApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -3628,12 +4109,14 @@ class GeckoSuggestionApi { final String pigeonVar_messageChannelSuffix; Future getAutocompleteSuggestion(String query) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionApi.getAutocompleteSuggestion$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionApi.getAutocompleteSuggestion$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send([query]) as List?; if (pigeonVar_replyList == null) { @@ -3649,15 +4132,21 @@ class GeckoSuggestionApi { } } - Future querySuggestions(String text, List providers) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionApi.querySuggestions$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + Future querySuggestions( + String text, + List providers, + ) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionApi.querySuggestions$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = - await pigeonVar_channel.send([text, providers]) as List?; + await pigeonVar_channel.send([text, providers]) + as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -3675,37 +4164,65 @@ class GeckoSuggestionApi { abstract class GeckoSuggestionEvents { static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - void onSuggestionResult(int timestamp, GeckoSuggestionType suggestionType, List suggestions); + void onSuggestionResult( + int timestamp, + GeckoSuggestionType suggestionType, + List suggestions, + ); - static void setUp(GeckoSuggestionEvents? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + static void setUp( + GeckoSuggestionEvents? api, { + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) { + messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult was null, expected non-null int.'); - final GeckoSuggestionType? arg_suggestionType = (args[1] as GeckoSuggestionType?); - assert(arg_suggestionType != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult was null, expected non-null GeckoSuggestionType.'); - final List? arg_suggestions = (args[2] as List?)?.cast(); - assert(arg_suggestions != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult was null, expected non-null List.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult was null, expected non-null int.', + ); + final GeckoSuggestionType? arg_suggestionType = + (args[1] as GeckoSuggestionType?); + assert( + arg_suggestionType != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult was null, expected non-null GeckoSuggestionType.', + ); + final List? arg_suggestions = + (args[2] as List?)?.cast(); + assert( + arg_suggestions != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoSuggestionEvents.onSuggestionResult was null, expected non-null List.', + ); try { - api.onSuggestionResult(arg_timestamp!, arg_suggestionType!, arg_suggestions!); + api.onSuggestionResult( + arg_timestamp!, + arg_suggestionType!, + arg_suggestions!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3718,32 +4235,48 @@ abstract class GeckoTabContentEvents { void onContentUpdate(int timestamp, TabContent content); - static void setUp(GeckoTabContentEvents? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + static void setUp( + GeckoTabContentEvents? api, { + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) { + messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabContentEvents.onContentUpdate$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabContentEvents.onContentUpdate$messageChannelSuffix', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoTabContentEvents.onContentUpdate was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoTabContentEvents.onContentUpdate was null.', + ); final List args = (message as List?)!; final int? arg_timestamp = (args[0] as int?); - assert(arg_timestamp != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoTabContentEvents.onContentUpdate was null, expected non-null int.'); + assert( + arg_timestamp != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoTabContentEvents.onContentUpdate was null, expected non-null int.', + ); final TabContent? arg_content = (args[1] as TabContent?); - assert(arg_content != null, - 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoTabContentEvents.onContentUpdate was null, expected non-null TabContent.'); + assert( + arg_content != null, + 'Argument for dev.flutter.pigeon.flutter_mozilla_components.GeckoTabContentEvents.onContentUpdate was null, expected non-null TabContent.', + ); try { api.onContentUpdate(arg_timestamp!, arg_content!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3755,9 +4288,12 @@ class GeckoDeleteBrowsingDataController { /// Constructor for [GeckoDeleteBrowsingDataController]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - GeckoDeleteBrowsingDataController({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + GeckoDeleteBrowsingDataController({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -3765,12 +4301,14 @@ class GeckoDeleteBrowsingDataController { final String pigeonVar_messageChannelSuffix; Future deleteTabs() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteTabs$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteTabs$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -3787,12 +4325,14 @@ class GeckoDeleteBrowsingDataController { } Future deleteBrowsingHistory() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteBrowsingHistory$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteBrowsingHistory$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -3809,12 +4349,14 @@ class GeckoDeleteBrowsingDataController { } Future deleteCookiesAndSiteData() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteCookiesAndSiteData$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteCookiesAndSiteData$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -3831,12 +4373,14 @@ class GeckoDeleteBrowsingDataController { } Future deleteCachedFiles() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteCachedFiles$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteCachedFiles$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -3853,12 +4397,14 @@ class GeckoDeleteBrowsingDataController { } Future deleteSitePermissions() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteSitePermissions$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteSitePermissions$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { @@ -3875,12 +4421,14 @@ class GeckoDeleteBrowsingDataController { } Future deleteDownloads() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteDownloads$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + final String pigeonVar_channelName = + 'dev.flutter.pigeon.flutter_mozilla_components.GeckoDeleteBrowsingDataController.deleteDownloads$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final List? pigeonVar_replyList = await pigeonVar_channel.send(null) as List?; if (pigeonVar_replyList == null) { diff --git a/packages/flutter_mozilla_components/pigeons/gecko.dart b/packages/flutter_mozilla_components/pigeons/gecko.dart index 28fa3210..04a7199d 100644 --- a/packages/flutter_mozilla_components/pigeons/gecko.dart +++ b/packages/flutter_mozilla_components/pigeons/gecko.dart @@ -209,10 +209,7 @@ class RecoverableTab { /// A [TabState] instance containing basic tab state. final TabState state; - const RecoverableTab({ - this.engineSessionStateJson, - required this.state, - }); + const RecoverableTab({this.engineSessionStateJson, required this.state}); } /// A restored browser state, read from disk. @@ -223,10 +220,7 @@ class RecoverableBrowserState { /// The ID of the selected tab in [tabs]. Or `null` if no selection was restored. final String? selectedTabId; - const RecoverableBrowserState({ - required this.tabs, - this.selectedTabId, - }); + const RecoverableBrowserState({required this.tabs, this.selectedTabId}); } /// Indicates what location the tabs should be restored at @@ -257,11 +251,7 @@ enum IconType { /// Supported sizes. /// /// We are trying to limit the supported sizes in order to optimize our caching strategy. -enum IconSize { - defaultSize, - launcher, - launcherAdaptive, -} +enum IconSize { defaultSize, launcher, launcherAdaptive } /// A request to load an [Icon]. class IconRequest { @@ -346,12 +336,7 @@ enum IconSource { disk, } -enum CookieSameSiteStatus { - noRestriction, - lax, - strict, - unspecified; -} +enum CookieSameSiteStatus { noRestriction, lax, strict, unspecified } class CookiePartitionKey { final String topLevelSite; @@ -539,30 +524,13 @@ class TabContent { ); } -enum TrackingProtectionPolicy { - none, - recommended, - strict, - custom, -} +enum TrackingProtectionPolicy { none, recommended, strict, custom } -enum HttpsOnlyMode { - disabled, - privateOnly, - enabled, -} +enum HttpsOnlyMode { disabled, privateOnly, enabled } -enum ColorScheme { - system, - light, - dark, -} +enum ColorScheme { system, light, dark } -enum CookieBannerHandlingMode { - disabled, - rejectAll, - rejectOrAcceptAll, -} +enum CookieBannerHandlingMode { disabled, rejectAll, rejectOrAcceptAll } enum WebContentIsolationStrategy { isolateNothing, @@ -674,8 +642,9 @@ class AutocompleteResult { dartOptions: DartOptions(), kotlinOut: 'android/src/main/kotlin/eu/lensai/flutter_mozilla_components/pigeons/Gecko.g.kt', - kotlinOptions: - KotlinOptions(package: 'eu.lensai.flutter_mozilla_components.pigeons'), + kotlinOptions: KotlinOptions( + package: 'eu.lensai.flutter_mozilla_components.pigeons', + ), dartPackageName: 'flutter_mozilla_components', ), ) @@ -759,9 +728,7 @@ abstract class GeckoSessionApi { required String? tabId, //If null = current tab }); - void crashRecovery({ - required List? tabIds, - }); + void crashRecovery({required List? tabIds}); void purgeHistory(); @@ -1037,10 +1004,7 @@ abstract class GeckoSuggestionEvents { @FlutterApi() abstract class GeckoTabContentEvents { - void onContentUpdate( - int timestamp, - TabContent content, - ); + void onContentUpdate(int timestamp, TabContent content); } @HostApi() diff --git a/packages/flutter_mozilla_components/pubspec.yaml b/packages/flutter_mozilla_components/pubspec.yaml index a6dd5128..7a325347 100644 --- a/packages/flutter_mozilla_components/pubspec.yaml +++ b/packages/flutter_mozilla_components/pubspec.yaml @@ -4,7 +4,7 @@ version: 0.0.1 homepage: environment: - sdk: ^3.6.0-198.0.dev + sdk: '>=3.7.0 <4.0.0' flutter: '>=3.3.0' dependencies: diff --git a/packages/sqlite3_vec/example/lib/main.dart b/packages/sqlite3_vec/example/lib/main.dart index 0074841f..7c078ef5 100644 --- a/packages/sqlite3_vec/example/lib/main.dart +++ b/packages/sqlite3_vec/example/lib/main.dart @@ -30,19 +30,15 @@ class _MyAppState extends State { @override Widget build(BuildContext context) { - final version = widget.db // - .select('SELECT vec_version() as version;') - .first['version']; + final version = + widget + .db // + .select('SELECT vec_version() as version;') + .first['version']; return MaterialApp( home: Scaffold( - appBar: AppBar( - title: const Text('sqlite-vec'), - ), - body: Center( - child: Text( - 'version: $version', - ), - ), + appBar: AppBar(title: const Text('sqlite-vec')), + body: Center(child: Text('version: $version')), ), ); } diff --git a/packages/sqlite3_vec/example/pubspec.yaml b/packages/sqlite3_vec/example/pubspec.yaml index 84708454..af2ff8e5 100644 --- a/packages/sqlite3_vec/example/pubspec.yaml +++ b/packages/sqlite3_vec/example/pubspec.yaml @@ -1,33 +1,15 @@ name: sqlite3_vec_example description: "Demonstrates how to use the sqlite3_vec plugin." -# The following line prevents the package from being accidentally published to -# pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.6.0 + sdk: '>=3.7.0 <4.0.0' -# Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions -# consider running `flutter pub upgrade --major-versions`. Alternatively, -# dependencies can be manually updated by changing the version numbers below to -# the latest version available on pub.dev. To see which dependencies have newer -# versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter sqlite3_vec: - # When depending on this package from a real application you should use: - # sqlite3_vec: ^x.y.z - # See https://dart.dev/tools/pub/dependencies#version-constraints - # The example app is bundled with the plugin so we use a path dependency on - # the parent directory to use the current plugin's version. path: ../ - - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.8 sqlite3: ^2.7.3 sqlite3_flutter_libs: ^0.5.30 @@ -37,51 +19,7 @@ dev_dependencies: flutter_test: sdk: flutter - # The "flutter_lints" package below contains a set of recommended lints to - # encourage good coding practices. The lint set provided by the package is - # activated in the `analysis_options.yaml` file located at the root of your - # package. See that file for information about deactivating specific lint - # rules and activating additional ones. flutter_lints: ^5.0.0 -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec - -# The following section is specific to Flutter packages. flutter: - - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. - uses-material-design: true - - # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/to/resolution-aware-images - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/to/asset-from-package - - # To add custom fonts to your application, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/to/font-from-package + uses-material-design: true \ No newline at end of file diff --git a/packages/sqlite3_vec/lib/sqlite3_vec.dart b/packages/sqlite3_vec/lib/sqlite3_vec.dart index 9ca89e6c..cc1c400a 100644 --- a/packages/sqlite3_vec/lib/sqlite3_vec.dart +++ b/packages/sqlite3_vec/lib/sqlite3_vec.dart @@ -12,7 +12,8 @@ class Sqlite3Vec { //'macos' || 'ios' => DynamicLibrary.open('$_libName.framework/$_libName'), 'android' || 'linux' => DynamicLibrary.open('lib$_libName.so'), //'windows' => DynamicLibrary.open('$_libName.dll'), - _ => throw UnsupportedError( + _ => + throw UnsupportedError( 'Unsupported platform: ${Platform.operatingSystem}', ), }; diff --git a/packages/sqlite3_vec/pubspec.yaml b/packages/sqlite3_vec/pubspec.yaml index 6e19c415..6d222b9e 100644 --- a/packages/sqlite3_vec/pubspec.yaml +++ b/packages/sqlite3_vec/pubspec.yaml @@ -4,7 +4,7 @@ version: 0.0.1 homepage: environment: - sdk: ^3.6.0 + sdk: '>=3.7.0 <4.0.0' flutter: '>=3.3.0' dependencies: diff --git a/pubspec.yaml b/pubspec.yaml index 6d97ec00..c76e266c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: lensai_project environment: - sdk: '>=3.0.0 <4.0.0' + sdk: '>=3.7.0 <4.0.0' dev_dependencies: - melos: ^6.1.0 + melos: ^6.3.2