feat: add accessibility setting and conditionally disable animations

This commit is contained in:
Anton Stubenbord
2023-11-16 23:44:02 +01:00
parent a17f658df5
commit 12be81d93b
21 changed files with 304 additions and 77 deletions

View File

@@ -7,6 +7,7 @@ import 'package:paperless_mobile/features/settings/view/widgets/clear_storage_se
import 'package:paperless_mobile/features/settings/view/widgets/color_scheme_option_setting.dart';
import 'package:paperless_mobile/features/settings/view/widgets/default_download_file_type_setting.dart';
import 'package:paperless_mobile/features/settings/view/widgets/default_share_file_type_setting.dart';
import 'package:paperless_mobile/features/settings/view/widgets/disable_animations_setting.dart';
import 'package:paperless_mobile/features/settings/view/widgets/enforce_pdf_upload_setting.dart';
import 'package:paperless_mobile/features/settings/view/widgets/language_selection_setting.dart';
import 'package:paperless_mobile/features/settings/view/widgets/skip_document_prepraration_on_share_setting.dart';
@@ -39,6 +40,8 @@ class SettingsPage extends StatelessWidget {
const SkipDocumentPreprationOnShareSetting(),
_buildSectionHeader(context, S.of(context)!.storage),
const ClearCacheSetting(),
_buildSectionHeader(context, 'Accessibility'),
const DisableAnimationsSetting(),
_buildSectionHeader(context, S.of(context)!.misc),
const AppLogsTile(),
const ChangelogsTile(),

View File

@@ -0,0 +1,23 @@
import 'package:flutter/material.dart';
import 'package:paperless_mobile/features/settings/view/widgets/global_settings_builder.dart';
import 'package:paperless_mobile/generated/l10n/app_localizations.dart';
class DisableAnimationsSetting extends StatelessWidget {
const DisableAnimationsSetting({super.key});
@override
Widget build(BuildContext context) {
return GlobalSettingsBuilder(builder: (context, settings) {
return SwitchListTile(
value: settings.disableAnimations,
title: Text('Disable animations'),
subtitle: Text('Disables page transitions and most animations.'
' Temporary workaround until system accessibility settings can be used.'),
onChanged: (val) async {
settings.disableAnimations = val;
settings.save();
},
);
});
}
}