This commit is contained in:
Thibault Deckers 2024-06-25 22:16:37 +02:00
parent 4a0009f4f0
commit b51769e2c6
14 changed files with 17 additions and 27 deletions

View file

@ -8,6 +8,7 @@ import 'package:aves/model/filters/favourite.dart';
import 'package:aves/model/filters/filters.dart';
import 'package:aves/model/filters/mime.dart';
import 'package:aves/model/settings/defaults.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/enums/map_style.dart';
import 'package:aves/model/settings/modules/app.dart';
import 'package:aves/model/settings/modules/collection.dart';
@ -206,6 +207,8 @@ class Settings with ChangeNotifier, SettingsAccess, AppSettings, DisplaySettings
AccessibilityAnimations get accessibilityAnimations => getEnumOrDefault(SettingKeys.accessibilityAnimationsKey, SettingsDefaults.accessibilityAnimations, AccessibilityAnimations.values);
bool get animate => accessibilityAnimations.animate;
set accessibilityAnimations(AccessibilityAnimations newValue) => set(SettingKeys.accessibilityAnimationsKey, newValue.toString());
AccessibilityTimeout get timeToTakeAction => getEnumOrDefault(SettingKeys.timeToTakeActionKey, SettingsDefaults.timeToTakeAction, AccessibilityTimeout.values);

View file

@ -8,7 +8,6 @@ import 'package:aves/model/apps.dart';
import 'package:aves/model/device.dart';
import 'package:aves/model/filters/recent.dart';
import 'package:aves/model/settings/defaults.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/enums/display_refresh_rate_mode.dart';
import 'package:aves/model/settings/enums/screen_on.dart';
import 'package:aves/model/settings/enums/theme_brightness.dart';
@ -325,7 +324,7 @@ class _AvesAppState extends State<AvesApp> with WidgetsBindingObserver {
WidgetsBinding.instance.addPostFrameCallback((_) => AvesApp.setSystemUIStyle(Theme.of(context)));
}
return Selector<Settings, bool>(
selector: (context, s) => s.initialized ? s.accessibilityAnimations.animate : true,
selector: (context, s) => s.initialized ? s.animate : true,
builder: (context, areAnimationsEnabled, child) {
return FutureBuilder<bool>(
future: _shouldUseBoldFontLoader,
@ -668,7 +667,7 @@ class _AvesAppState extends State<AvesApp> with WidgetsBindingObserver {
class AvesScrollBehavior extends MaterialScrollBehavior {
@override
Widget buildOverscrollIndicator(BuildContext context, Widget child, ScrollableDetails details) {
final animate = context.select<Settings, bool>((v) => v.accessibilityAnimations.animate);
final animate = context.select<Settings, bool>((v) => v.animate);
return animate
? StretchingOverscrollIndicator(
axisDirection: details.direction,

View file

@ -7,7 +7,6 @@ import 'package:aves/model/filters/query.dart';
import 'package:aves/model/filters/trash.dart';
import 'package:aves/model/highlight.dart';
import 'package:aves/model/selection.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/collection_lens.dart';
import 'package:aves/model/source/collection_source.dart';
@ -217,7 +216,7 @@ class _CollectionPageState extends State<CollectionPage> {
await Future.delayed(delayDuration + ADurations.highlightScrollInitDelay);
if (!mounted) return;
final animate = context.read<Settings>().accessibilityAnimations.animate;
final animate = context.read<Settings>().animate;
context.read<HighlightInfo>().trackItem(item, animate: animate, highlightItem: item);
}
}

View file

@ -1,7 +1,6 @@
import 'dart:async';
import 'dart:math';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/enums/accessibility_timeout.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/theme/colors.dart';
@ -224,7 +223,7 @@ class _ReportOverlayState<T> extends State<ReportOverlay<T>> with SingleTickerPr
final theme = Theme.of(context);
final colorScheme = theme.colorScheme;
final progressColor = colorScheme.primary;
final animate = context.select<Settings, bool>((v) => v.accessibilityAnimations.animate);
final animate = context.select<Settings, bool>((v) => v.animate);
return PopScope(
canPop: false,
child: StreamBuilder<T>(

View file

@ -1,6 +1,5 @@
import 'dart:math';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/theme/colors.dart';
import 'package:aves/theme/icons.dart';
@ -107,7 +106,7 @@ class _AvesDonutState extends State<AvesDonut> with AutomaticKeepAliveClientMixi
),
charts.PieChart(
series,
animate: context.select<Settings, bool>((v) => v.accessibilityAnimations.animate),
animate: context.select<Settings, bool>((v) => v.animate),
animationDuration: widget.animationDuration,
defaultRenderer: charts.ArcRendererConfig<String>(
arcWidth: 16,

View file

@ -418,7 +418,7 @@ class _AvesFilterChipState extends State<AvesFilterChip> {
),
);
final animate = context.select<Settings, bool>((v) => v.accessibilityAnimations.animate);
final animate = context.select<Settings, bool>((v) => v.animate);
if (animate && (widget.heroType == HeroType.always || widget.heroType == HeroType.onTap && _tapped)) {
chip = Hero(
tag: filter,

View file

@ -1,4 +1,3 @@
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/theme/durations.dart';
import 'package:provider/provider.dart';
@ -9,8 +8,7 @@ class DurationsProvider extends ProxyProvider<Settings, DurationsData> {
super.child,
}) : super(
update: (context, settings, __) {
final enabled = settings.accessibilityAnimations.animate;
return enabled ? DurationsData() : DurationsData.noAnimation();
return settings.animate ? DurationsData() : DurationsData.noAnimation();
},
);
}

View file

@ -4,7 +4,6 @@ import 'package:aves/image_providers/thumbnail_provider.dart';
import 'package:aves/model/entry/entry.dart';
import 'package:aves/model/entry/extensions/images.dart';
import 'package:aves/model/entry/extensions/props.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/enums/entry_background.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/services/common/services.dart';
@ -190,7 +189,7 @@ class _ThumbnailImageState extends State<ThumbnailImage> {
@override
Widget build(BuildContext context) {
final animate = context.select<Settings, bool>((v) => v.accessibilityAnimations.animate);
final animate = context.select<Settings, bool>((v) => v.animate);
if (!entry.canDecode || _lastException != null) {
return _buildError(context, animate);
}

View file

@ -5,7 +5,6 @@ import 'package:aves/model/filters/filters.dart';
import 'package:aves/model/highlight.dart';
import 'package:aves/model/query.dart';
import 'package:aves/model/selection.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/collection_source.dart';
import 'package:aves/model/vaults/vaults.dart';
@ -544,7 +543,7 @@ class _FilterSectionedContentState<T extends CollectionFilter> extends State<_Fi
await Future.delayed(ADurations.highlightScrollInitDelay);
final animate = context.read<Settings>().accessibilityAnimations.animate;
final animate = context.read<Settings>().animate;
highlightInfo.trackItem(item, animate: animate, highlightItem: filter);
}
}

View file

@ -1,5 +1,4 @@
import 'package:aves/model/filters/filters.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/theme/themes.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
@ -36,7 +35,7 @@ class FilterTable<T extends Comparable> extends StatelessWidget {
@override
Widget build(BuildContext context) {
final countFormatter = NumberFormat.decimalPattern(context.locale);
final animate = context.select<Settings, bool>((v) => v.accessibilityAnimations.animate);
final animate = context.select<Settings, bool>((v) => v.animate);
final sortedEntries = entryCountMap.entries.toList();
if (sortByCount) {

View file

@ -6,7 +6,6 @@ import 'package:aves/model/filters/filters.dart';
import 'package:aves/model/filters/location.dart';
import 'package:aves/model/filters/rating.dart';
import 'package:aves/model/filters/tag.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/collection_lens.dart';
import 'package:aves/model/source/collection_source.dart';
@ -439,7 +438,7 @@ class _LocationIndicator extends StatelessWidget {
lineHeight: lineHeight,
backgroundColor: Themes.secondLayerColor(context),
progressColor: theme.colorScheme.primary,
animation: context.select<Settings, bool>((v) => v.accessibilityAnimations.animate),
animation: context.select<Settings, bool>((v) => v.animate),
isRTL: context.isRtl,
barRadius: barRadius,
padding: EdgeInsets.symmetric(horizontal: lineHeight),

View file

@ -1,7 +1,6 @@
import 'package:aves/model/entry/entry.dart';
import 'package:aves/model/entry/extensions/multipage.dart';
import 'package:aves/model/entry/extensions/props.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/enums/viewer_transition.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/collection_lens.dart';
@ -71,7 +70,7 @@ class _MultiEntryScrollerState extends State<MultiEntryScroller> with AutomaticK
: _buildViewer(mainEntry);
return Selector<Settings, bool>(
selector: (context, s) => s.accessibilityAnimations.animate,
selector: (context, s) => s.animate,
builder: (context, animate, child) {
if (!animate) return child!;
return AnimatedBuilder(

View file

@ -9,7 +9,6 @@ import 'package:aves/model/entry/extensions/props.dart';
import 'package:aves/model/filters/filters.dart';
import 'package:aves/model/filters/trash.dart';
import 'package:aves/model/highlight.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/enums/accessibility_timeout.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/collection_lens.dart';
@ -702,7 +701,7 @@ class _EntryViewerStackState extends State<EntryViewerStack> with EntryViewContr
}
Future<void> _goToVerticalPage(int page) async {
if (settings.accessibilityAnimations.animate) {
if (settings.animate) {
final start = _verticalPager.offset;
final end = _verticalPager.position.viewportDimension * page;
final simulation = ScrollSpringSimulation(ViewerVerticalPageView.spring, start, end, 0);

View file

@ -3,7 +3,6 @@ import 'dart:async';
import 'package:aves/app_mode.dart';
import 'package:aves/model/entry/entry.dart';
import 'package:aves/model/entry/extensions/props.dart';
import 'package:aves/model/settings/enums/accessibility_animations.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/view_state.dart';
import 'package:aves/services/common/services.dart';
@ -149,7 +148,7 @@ class _EntryPageViewState extends State<EntryPageView> with TickerProviderStateM
);
}
final animate = context.select<Settings, bool>((v) => v.accessibilityAnimations.animate);
final animate = context.select<Settings, bool>((v) => v.animate);
if (animate) {
child = Consumer<HeroInfo?>(
builder: (context, info, child) => Hero(