changed default snack bar timeout to 3s

This commit is contained in:
Thibault Deckers 2022-08-24 12:41:36 +02:00
parent 3c804818ab
commit 202dbe1b48
7 changed files with 20 additions and 25 deletions

View file

@ -18,6 +18,7 @@ All notable changes to this project will be documented in this file.
### Changed ### Changed
- status and navigation bar transparency - status and navigation bar transparency
- default snack bar timeout to 3s
- upgraded Flutter to beta v3.3.0-0.4.pre - upgraded Flutter to beta v3.3.0-0.4.pre
### Fixed ### Fixed

View file

@ -124,7 +124,7 @@ class SettingsDefaults {
// accessibility // accessibility
static const accessibilityAnimations = AccessibilityAnimations.system; static const accessibilityAnimations = AccessibilityAnimations.system;
static const timeToTakeAction = AccessibilityTimeout.appDefault; // `timeToTakeAction` has a contextual default value static const timeToTakeAction = AccessibilityTimeout.s3;
// file picker // file picker
static const filePickerShowHiddenFiles = false; static const filePickerShowHiddenFiles = false;

View file

@ -8,18 +8,16 @@ extension ExtraAccessibilityTimeout on AccessibilityTimeout {
switch (this) { switch (this) {
case AccessibilityTimeout.system: case AccessibilityTimeout.system:
return context.l10n.settingsSystemDefault; return context.l10n.settingsSystemDefault;
case AccessibilityTimeout.appDefault: case AccessibilityTimeout.s1:
return context.l10n.settingsDefault; return context.l10n.timeSeconds(1);
case AccessibilityTimeout.s3: case AccessibilityTimeout.s3:
return context.l10n.timeSeconds(3); return context.l10n.timeSeconds(3);
case AccessibilityTimeout.s5:
return context.l10n.timeSeconds(5);
case AccessibilityTimeout.s10: case AccessibilityTimeout.s10:
return context.l10n.timeSeconds(10); return context.l10n.timeSeconds(10);
case AccessibilityTimeout.s30: case AccessibilityTimeout.s30:
return context.l10n.timeSeconds(30); return context.l10n.timeSeconds(30);
case AccessibilityTimeout.s60:
return context.l10n.timeMinutes(1);
case AccessibilityTimeout.s120:
return context.l10n.timeMinutes(2);
} }
} }
} }

View file

@ -1,6 +1,6 @@
enum AccessibilityAnimations { system, disabled, enabled } enum AccessibilityAnimations { system, disabled, enabled }
enum AccessibilityTimeout { system, appDefault, s3, s10, s30, s60, s120 } enum AccessibilityTimeout { system, s1, s3, s5, s10, s30 }
enum AvesThemeBrightness { system, light, dark, black } enum AvesThemeBrightness { system, light, dark, black }

View file

@ -9,7 +9,6 @@ import 'package:aves/model/settings/defaults.dart';
import 'package:aves/model/settings/enums/enums.dart'; import 'package:aves/model/settings/enums/enums.dart';
import 'package:aves/model/settings/enums/map_style.dart'; import 'package:aves/model/settings/enums/map_style.dart';
import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/enums.dart';
import 'package:aves/services/accessibility_service.dart';
import 'package:aves/services/common/optional_event_channel.dart'; import 'package:aves/services/common/optional_event_channel.dart';
import 'package:aves/services/common/services.dart'; import 'package:aves/services/common/services.dart';
import 'package:aves_map/aves_map.dart'; import 'package:aves_map/aves_map.dart';
@ -203,10 +202,6 @@ class Settings extends ChangeNotifier {
final styles = EntryMapStyle.values.whereNot((v) => v.needMobileService).toList(); final styles = EntryMapStyle.values.whereNot((v) => v.needMobileService).toList();
infoMapStyle = styles[Random().nextInt(styles.length)]; infoMapStyle = styles[Random().nextInt(styles.length)];
} }
// accessibility
final hasRecommendedTimeouts = await AccessibilityService.hasRecommendedTimeouts();
timeToTakeAction = hasRecommendedTimeouts ? AccessibilityTimeout.system : AccessibilityTimeout.appDefault;
} }
// app // app

View file

@ -24,7 +24,8 @@ class AccessibilityService {
return false; return false;
} }
static Future<int> getRecommendedTimeToRead(int originalTimeoutMillis) async { static Future<int> getRecommendedTimeToRead(Duration originalTimeoutDuration) async {
final originalTimeoutMillis = originalTimeoutDuration.inMilliseconds;
try { try {
final result = await _platform.invokeMethod('getRecommendedTimeoutMillis', <String, dynamic>{ final result = await _platform.invokeMethod('getRecommendedTimeoutMillis', <String, dynamic>{
'originalTimeoutMillis': originalTimeoutMillis, 'originalTimeoutMillis': originalTimeoutMillis,
@ -37,7 +38,8 @@ class AccessibilityService {
return originalTimeoutMillis; return originalTimeoutMillis;
} }
static Future<int> getRecommendedTimeToTakeAction(int originalTimeoutMillis) async { static Future<int> getRecommendedTimeToTakeAction(Duration originalTimeoutDuration) async {
final originalTimeoutMillis = originalTimeoutDuration.inMilliseconds;
try { try {
final result = await _platform.invokeMethod('getRecommendedTimeoutMillis', <String, dynamic>{ final result = await _platform.invokeMethod('getRecommendedTimeoutMillis', <String, dynamic>{
'originalTimeoutMillis': originalTimeoutMillis, 'originalTimeoutMillis': originalTimeoutMillis,

View file

@ -106,24 +106,23 @@ mixin FeedbackMixin {
} }
Future<Duration> _getSnackBarDuration(bool hasAction) async { Future<Duration> _getSnackBarDuration(bool hasAction) async {
final appDefaultDuration = hasAction ? Durations.opToastActionDisplay : Durations.opToastTextDisplay;
switch (settings.timeToTakeAction) { switch (settings.timeToTakeAction) {
case AccessibilityTimeout.system: case AccessibilityTimeout.system:
final original = appDefaultDuration.inMilliseconds; if (hasAction) {
final millis = await (hasAction ? AccessibilityService.getRecommendedTimeToTakeAction(original) : AccessibilityService.getRecommendedTimeToRead(original)); return Duration(milliseconds: await (AccessibilityService.getRecommendedTimeToTakeAction(Durations.opToastActionDisplay)));
return Duration(milliseconds: millis); } else {
case AccessibilityTimeout.appDefault: return Duration(milliseconds: await (AccessibilityService.getRecommendedTimeToRead(Durations.opToastTextDisplay)));
return appDefaultDuration; }
case AccessibilityTimeout.s1:
return const Duration(seconds: 1);
case AccessibilityTimeout.s3: case AccessibilityTimeout.s3:
return const Duration(seconds: 3); return const Duration(seconds: 3);
case AccessibilityTimeout.s5:
return const Duration(seconds: 5);
case AccessibilityTimeout.s10: case AccessibilityTimeout.s10:
return const Duration(seconds: 10); return const Duration(seconds: 10);
case AccessibilityTimeout.s30: case AccessibilityTimeout.s30:
return const Duration(seconds: 30); return const Duration(seconds: 30);
case AccessibilityTimeout.s60:
return const Duration(minutes: 1);
case AccessibilityTimeout.s120:
return const Duration(minutes: 2);
} }
} }