route transition duration renaming
This commit is contained in:
parent
748f8b9270
commit
cc3b4f661b
19 changed files with 26 additions and 25 deletions
|
@ -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);
|
||||||
|
|
|
@ -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!;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
@ -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();
|
||||||
});
|
});
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
});
|
});
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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!;
|
||||||
|
|
|
@ -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!;
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(() {});
|
||||||
},
|
},
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
});
|
});
|
||||||
|
|
|
@ -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}'},
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue