route transition duration renaming

This commit is contained in:
Thibault Deckers 2024-09-15 23:50:55 +02:00
parent 748f8b9270
commit cc3b4f661b
19 changed files with 26 additions and 25 deletions

View file

@ -5,10 +5,11 @@ class ADurations {
static const transitionMarginMillis = 20; static const transitionMarginMillis = 20;
// page transition duration also available via `ModalRoute.of(context)!.transitionDuration * timeDilation` // page transition duration also available via `ModalRoute.of(context)!.transitionDuration * timeDilation`
static const pageTransitionAnimation = Duration(milliseconds: 300 + transitionMarginMillis); // ref `transitionDuration` used in `MaterialRouteTransitionMixin` static const pageTransitionExact = Duration(milliseconds: 300); // ref `transitionDuration` used in `MaterialRouteTransitionMixin`
static const dialogTransitionAnimation = Duration(milliseconds: 150 + transitionMarginMillis); // ref `transitionDuration` used in `DialogRoute` static const pageTransitionLoose = Duration(milliseconds: 300 + transitionMarginMillis); // ref `transitionDuration` used in `MaterialRouteTransitionMixin`
static const drawerTransitionAnimation = Duration(milliseconds: 246 + transitionMarginMillis); // ref `_kBaseSettleDuration` used in `DrawerControllerState` static const dialogTransitionLoose = Duration(milliseconds: 150 + transitionMarginMillis); // ref `transitionDuration` used in `DialogRoute`
static const toggleableTransitionAnimation = Duration(milliseconds: 200 + transitionMarginMillis); // ref `_kToggleDuration` used in `ToggleableStateMixin` static const drawerTransitionLoose = Duration(milliseconds: 246 + transitionMarginMillis); // ref `_kBaseSettleDuration` used in `DrawerControllerState`
static const toggleableTransitionLoose = Duration(milliseconds: 200 + transitionMarginMillis); // ref `_kToggleDuration` used in `ToggleableStateMixin`
// common animations // common animations
static const sweeperOpacityAnimation = Duration(milliseconds: 150); static const sweeperOpacityAnimation = Duration(milliseconds: 150);

View file

@ -691,7 +691,7 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
routeSettings: const RouteSettings(name: TileViewDialog.routeName), routeSettings: const RouteSettings(name: TileViewDialog.routeName),
); );
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.dialogTransitionAnimation * timeDilation); await Future.delayed(ADurations.dialogTransitionLoose * timeDilation);
if (value != null && initialValue != value) { if (value != null && initialValue != value) {
settings.collectionSortFactor = value.$1!; settings.collectionSortFactor = value.$1!;
settings.collectionSectionFactor = value.$2!; settings.collectionSectionFactor = value.$2!;

View file

@ -510,7 +510,7 @@ class EntrySetActionDelegate with FeedbackMixin, PermissionAwareMixin, SizeAware
if (confirmed == null || !confirmed) return null; if (confirmed == null || !confirmed) return null;
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.dialogTransitionAnimation * timeDilation); await Future.delayed(ADurations.dialogTransitionLoose * timeDilation);
return supported; return supported;
} }

View file

@ -81,7 +81,7 @@ mixin FeedbackMixin {
final margin = (marginComputer ?? snackBarMarginDefault).call(context); final margin = (marginComputer ?? snackBarMarginDefault).call(context);
return AnimatedPadding( return AnimatedPadding(
padding: margin, padding: margin,
duration: ADurations.pageTransitionAnimation, duration: ADurations.pageTransitionLoose,
child: child, child: child,
); );
}, },

View file

@ -76,7 +76,7 @@ class _SearchPageState extends State<SearchPage> {
return; return;
} }
widget.animation.removeStatusListener(_onAnimationStatusChanged); widget.animation.removeStatusListener(_onAnimationStatusChanged);
Future.delayed(ADurations.pageTransitionAnimation * timeDilation).then((_) { Future.delayed(ADurations.pageTransitionLoose * timeDilation).then((_) {
if (!mounted) return; if (!mounted) return;
_searchFieldFocusNode.requestFocus(); _searchFieldFocusNode.requestFocus();
}); });

View file

@ -248,7 +248,7 @@ class _AlbumPickPageState extends State<_AlbumPickPage> {
if (directory == null) return; if (directory == null) return;
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.dialogTransitionAnimation * timeDilation); await Future.delayed(ADurations.dialogTransitionLoose * timeDilation);
_pickAlbum(directory); _pickAlbum(directory);
} }
@ -270,7 +270,7 @@ class _AlbumPickPageState extends State<_AlbumPickPage> {
if (details == null) return; if (details == null) return;
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.dialogTransitionAnimation * timeDilation); await Future.delayed(ADurations.dialogTransitionLoose * timeDilation);
await vaults.create(details); await vaults.create(details);
_pickAlbum(details.path); _pickAlbum(details.path);

View file

@ -77,7 +77,7 @@ class _ContentState extends State<_Content> with SingleTickerProviderStateMixin
if (ExtraEntryMapStyle.isHeavy(settings.mapStyle)) { if (ExtraEntryMapStyle.isHeavy(settings.mapStyle)) {
_isPageAnimatingNotifier = ValueNotifier(true); _isPageAnimatingNotifier = ValueNotifier(true);
Future.delayed(ADurations.pageTransitionAnimation * timeDilation).then((_) { Future.delayed(ADurations.pageTransitionLoose * timeDilation).then((_) {
if (!mounted) return; if (!mounted) return;
_isPageAnimatingNotifier.value = false; _isPageAnimatingNotifier.value = false;
}); });

View file

@ -14,7 +14,7 @@ Future<void> showSelectionDialog<T>({
routeSettings: const RouteSettings(name: AvesSingleSelectionDialog.routeName), routeSettings: const RouteSettings(name: AvesSingleSelectionDialog.routeName),
); );
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.dialogTransitionAnimation * timeDilation); await Future.delayed(ADurations.dialogTransitionLoose * timeDilation);
if (value != null) { if (value != null) {
onSelection(value); onSelection(value);
} }

View file

@ -187,7 +187,7 @@ class AlbumChipSetActionDelegate extends ChipSetActionDelegate<AlbumFilter> with
routeSettings: const RouteSettings(name: TileViewDialog.routeName), routeSettings: const RouteSettings(name: TileViewDialog.routeName),
); );
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.dialogTransitionAnimation * timeDilation); await Future.delayed(ADurations.dialogTransitionLoose * timeDilation);
if (value != null && initialValue != value) { if (value != null && initialValue != value) {
sortFactor = value.$1!; sortFactor = value.$1!;
settings.albumGroupFactor = value.$2!; settings.albumGroupFactor = value.$2!;

View file

@ -250,7 +250,7 @@ abstract class ChipSetActionDelegate<T extends CollectionFilter> with FeedbackMi
routeSettings: const RouteSettings(name: TileViewDialog.routeName), routeSettings: const RouteSettings(name: TileViewDialog.routeName),
); );
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.dialogTransitionAnimation * timeDilation); await Future.delayed(ADurations.dialogTransitionLoose * timeDilation);
if (value != null && initialValue != value) { if (value != null && initialValue != value) {
sortFactor = value.$1!; sortFactor = value.$1!;
tileLayout = value.$3!; tileLayout = value.$3!;

View file

@ -118,7 +118,7 @@ class _ContentState extends State<_Content> with SingleTickerProviderStateMixin
if (ExtraEntryMapStyle.isHeavy(settings.mapStyle)) { if (ExtraEntryMapStyle.isHeavy(settings.mapStyle)) {
_isPageAnimatingNotifier.value = true; _isPageAnimatingNotifier.value = true;
Future.delayed(ADurations.pageTransitionAnimation * timeDilation).then((_) { Future.delayed(ADurations.pageTransitionLoose * timeDilation).then((_) {
if (!mounted) return; if (!mounted) return;
_isPageAnimatingNotifier.value = false; _isPageAnimatingNotifier.value = false;
}); });
@ -142,7 +142,7 @@ class _ContentState extends State<_Content> with SingleTickerProviderStateMixin
_subscriptions.add(openingCollection.source.eventBus.on<CatalogMetadataChangedEvent>().listen((e) => _updateRegionCollection())); _subscriptions.add(openingCollection.source.eventBus.on<CatalogMetadataChangedEvent>().listen((e) => _updateRegionCollection()));
_selectedIndexNotifier.addListener(_onThumbnailIndexChanged); _selectedIndexNotifier.addListener(_onThumbnailIndexChanged);
Future.delayed(ADurations.pageTransitionAnimation * timeDilation + const Duration(seconds: 1), () { Future.delayed(ADurations.pageTransitionLoose * timeDilation + const Duration(seconds: 1), () {
final regionEntries = regionCollection?.sortedEntries ?? []; final regionEntries = regionCollection?.sortedEntries ?? [];
final initialEntry = widget.initialEntry ?? regionEntries.firstOrNull; final initialEntry = widget.initialEntry ?? regionEntries.firstOrNull;
if (initialEntry != null) { if (initialEntry != null) {

View file

@ -115,7 +115,7 @@ class _AppDrawerState extends State<AppDrawer> {
Future<void> goTo(String routeName, WidgetBuilder pageBuilder) async { Future<void> goTo(String routeName, WidgetBuilder pageBuilder) async {
Navigator.maybeOf(context)?.pop(); Navigator.maybeOf(context)?.pop();
await Future.delayed(ADurations.drawerTransitionAnimation); await Future.delayed(ADurations.drawerTransitionLoose);
await Navigator.maybeOf(context)?.push(MaterialPageRoute( await Navigator.maybeOf(context)?.push(MaterialPageRoute(
settings: RouteSettings(name: routeName), settings: RouteSettings(name: routeName),
builder: pageBuilder, builder: pageBuilder,

View file

@ -68,7 +68,7 @@ class SettingsSwitchListTile extends StatelessWidget {
Expanded(child: titleWidget), Expanded(child: titleWidget),
AnimatedOpacity( AnimatedOpacity(
opacity: current ? 1 : disabledOpacity, opacity: current ? 1 : disabledOpacity,
duration: ADurations.toggleableTransitionAnimation, duration: ADurations.toggleableTransitionLoose,
child: trailing, child: trailing,
), ),
], ],

View file

@ -32,7 +32,7 @@ class LocaleTile extends StatelessWidget {
), ),
); );
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.pageTransitionAnimation * timeDilation); await Future.delayed(ADurations.pageTransitionLoose * timeDilation);
if (value != null) { if (value != null) {
settings.locale = value == systemLocaleOption ? null : value; settings.locale = value == systemLocaleOption ? null : value;
} }

View file

@ -182,7 +182,7 @@ class _FilePickerPageState extends State<FilePickerPage> {
title: Text(v.getDescription(context)), title: Text(v.getDescription(context)),
onTap: () async { onTap: () async {
Navigator.maybeOf(context)?.pop(); Navigator.maybeOf(context)?.pop();
await Future.delayed(ADurations.drawerTransitionAnimation); await Future.delayed(ADurations.drawerTransitionLoose);
_goTo(v.path); _goTo(v.path);
setState(() {}); setState(() {});
}, },

View file

@ -185,7 +185,7 @@ class _HiddenPaths extends StatelessWidget {
), ),
); );
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.pageTransitionAnimation * timeDilation); await Future.delayed(ADurations.pageTransitionLoose * timeDilation);
if (path != null && path.isNotEmpty) { if (path != null && path.isNotEmpty) {
settings.changeFilterVisibility({PathFilter(path)}, false); settings.changeFilterVisibility({PathFilter(path)}, false);
} }

View file

@ -68,7 +68,7 @@ class _StatsPageState extends State<StatsPage> with FeedbackMixin, VaultAwareMix
super.initState(); super.initState();
_isPageAnimatingNotifier = ValueNotifier(true); _isPageAnimatingNotifier = ValueNotifier(true);
Future.delayed(ADurations.pageTransitionAnimation * timeDilation).then((_) { Future.delayed(ADurations.pageTransitionLoose * timeDilation).then((_) {
if (!mounted) return; if (!mounted) return;
_isPageAnimatingNotifier.value = false; _isPageAnimatingNotifier.value = false;
}); });

View file

@ -475,7 +475,7 @@ class EntryActionDelegate with FeedbackMixin, PermissionAwareMixin, SizeAwareMix
if (newName == null || newName.isEmpty || newName == targetEntry.filenameWithoutExtension) return; if (newName == null || newName.isEmpty || newName == targetEntry.filenameWithoutExtension) return;
// wait for the dialog to hide as applying the change may block the UI // wait for the dialog to hide as applying the change may block the UI
await Future.delayed(ADurations.dialogTransitionAnimation * timeDilation); await Future.delayed(ADurations.dialogTransitionLoose * timeDilation);
await rename( await rename(
context, context,
entriesToNewName: {targetEntry: '$newName${targetEntry.extension}'}, entriesToNewName: {targetEntry: '$newName${targetEntry.extension}'},

View file

@ -123,7 +123,7 @@ class _InfoPageState extends State<InfoPage> {
ShowImageNotification().dispatch(context); ShowImageNotification().dispatch(context);
_scrollController.animateTo( _scrollController.animateTo(
0, 0,
duration: ADurations.pageTransitionAnimation, duration: ADurations.pageTransitionLoose,
curve: Curves.easeInOut, curve: Curves.easeInOut,
); );
} }
@ -276,7 +276,7 @@ class _InfoPageContentState extends State<_InfoPageContent> {
} }
void _onActionDelegateEvent(ActionEvent<EntryAction> event) { void _onActionDelegateEvent(ActionEvent<EntryAction> event) {
Future.delayed(ADurations.dialogTransitionAnimation).then((_) { Future.delayed(ADurations.dialogTransitionLoose).then((_) {
if (event is ActionStartedEvent) { if (event is ActionStartedEvent) {
_isEditingMetadataNotifier.value = event.action; _isEditingMetadataNotifier.value = event.action;
} else if (event is ActionEndedEvent) { } else if (event is ActionEndedEvent) {