diff --git a/lib/widgets/collection/app_bar.dart b/lib/widgets/collection/app_bar.dart index 7aea5e78c..d531a1438 100644 --- a/lib/widgets/collection/app_bar.dart +++ b/lib/widgets/collection/app_bar.dart @@ -203,8 +203,9 @@ class _CollectionAppBarState extends State with SingleTickerPr final l10n = context.l10n; if (isSelecting) { - return Selector, int>( - selector: (context, selection) => selection.selectedItems.length, + // `Selection` may not be available during hero + return Selector?, int>( + selector: (context, selection) => selection?.selectedItems.length ?? 0, builder: (context, count, child) => Text( count == 0 ? l10n.collectionSelectPageTitle : l10n.itemCount(count), softWrap: false, @@ -322,8 +323,9 @@ class _CollectionAppBarState extends State with SingleTickerPr final onPressed = enabled ? () => _onActionSelected(action) : null; switch (action) { case EntrySetAction.toggleTitleSearch: - return Selector( - selector: (context, query) => query.enabled, + // `Query` may not be available during hero + return Selector( + selector: (context, query) => query?.enabled ?? false, builder: (context, queryEnabled, child) { return _TitleSearchToggler( queryEnabled: queryEnabled, diff --git a/lib/widgets/common/identity/aves_app_bar.dart b/lib/widgets/common/identity/aves_app_bar.dart index 205fb521c..8dcadd5f0 100644 --- a/lib/widgets/common/identity/aves_app_bar.dart +++ b/lib/widgets/common/identity/aves_app_bar.dart @@ -2,7 +2,6 @@ import 'package:aves/model/settings/settings.dart'; import 'package:aves/theme/durations.dart'; import 'package:aves/widgets/aves_app.dart'; import 'package:aves/widgets/common/fx/blurred.dart'; -import 'package:aves/widgets/common/providers/query_provider.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -101,26 +100,23 @@ class AvesAppBar extends StatelessWidget { final pushing = direction == HeroFlightDirection.push; Widget popBuilder(context, child) => Opacity(opacity: 1 - animation.value, child: child); Widget pushBuilder(context, child) => Opacity(opacity: animation.value, child: child); - return QueryProvider( - initialQuery: null, - child: Material( - type: MaterialType.transparency, - child: DefaultTextStyle( - style: DefaultTextStyle.of(toHero).style, - child: Stack( - children: [ - AnimatedBuilder( - animation: animation, - builder: pushing ? popBuilder : pushBuilder, - child: fromHero.widget, - ), - AnimatedBuilder( - animation: animation, - builder: pushing ? pushBuilder : popBuilder, - child: toHero.widget, - ), - ], - ), + return Material( + type: MaterialType.transparency, + child: DefaultTextStyle( + style: DefaultTextStyle.of(toHero).style, + child: Stack( + children: [ + AnimatedBuilder( + animation: animation, + builder: pushing ? popBuilder : pushBuilder, + child: fromHero.widget, + ), + AnimatedBuilder( + animation: animation, + builder: pushing ? pushBuilder : popBuilder, + child: toHero.widget, + ), + ], ), ), );