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
- status and navigation bar transparency
- default snack bar timeout to 3s
- upgraded Flutter to beta v3.3.0-0.4.pre
### Fixed

View file

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

View file

@ -8,18 +8,16 @@ extension ExtraAccessibilityTimeout on AccessibilityTimeout {
switch (this) {
case AccessibilityTimeout.system:
return context.l10n.settingsSystemDefault;
case AccessibilityTimeout.appDefault:
return context.l10n.settingsDefault;
case AccessibilityTimeout.s1:
return context.l10n.timeSeconds(1);
case AccessibilityTimeout.s3:
return context.l10n.timeSeconds(3);
case AccessibilityTimeout.s5:
return context.l10n.timeSeconds(5);
case AccessibilityTimeout.s10:
return context.l10n.timeSeconds(10);
case AccessibilityTimeout.s30:
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 AccessibilityTimeout { system, appDefault, s3, s10, s30, s60, s120 }
enum AccessibilityTimeout { system, s1, s3, s5, s10, s30 }
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/map_style.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/services.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();
infoMapStyle = styles[Random().nextInt(styles.length)];
}
// accessibility
final hasRecommendedTimeouts = await AccessibilityService.hasRecommendedTimeouts();
timeToTakeAction = hasRecommendedTimeouts ? AccessibilityTimeout.system : AccessibilityTimeout.appDefault;
}
// app

View file

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

View file

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