diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d289ce48..cdddc9861 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/lib/model/settings/defaults.dart b/lib/model/settings/defaults.dart index 0248fd48c..9a0c27f6e 100644 --- a/lib/model/settings/defaults.dart +++ b/lib/model/settings/defaults.dart @@ -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; diff --git a/lib/model/settings/enums/accessibility_timeout.dart b/lib/model/settings/enums/accessibility_timeout.dart index d9b9f1ebd..5c7529f77 100644 --- a/lib/model/settings/enums/accessibility_timeout.dart +++ b/lib/model/settings/enums/accessibility_timeout.dart @@ -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); } } } diff --git a/lib/model/settings/enums/enums.dart b/lib/model/settings/enums/enums.dart index 4b129de39..05f34a63e 100644 --- a/lib/model/settings/enums/enums.dart +++ b/lib/model/settings/enums/enums.dart @@ -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 } diff --git a/lib/model/settings/settings.dart b/lib/model/settings/settings.dart index 44f44c1ab..fdc95a463 100644 --- a/lib/model/settings/settings.dart +++ b/lib/model/settings/settings.dart @@ -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 diff --git a/lib/services/accessibility_service.dart b/lib/services/accessibility_service.dart index 843e72053..eb442ee7d 100644 --- a/lib/services/accessibility_service.dart +++ b/lib/services/accessibility_service.dart @@ -24,7 +24,8 @@ class AccessibilityService { return false; } - static Future getRecommendedTimeToRead(int originalTimeoutMillis) async { + static Future getRecommendedTimeToRead(Duration originalTimeoutDuration) async { + final originalTimeoutMillis = originalTimeoutDuration.inMilliseconds; try { final result = await _platform.invokeMethod('getRecommendedTimeoutMillis', { 'originalTimeoutMillis': originalTimeoutMillis, @@ -37,7 +38,8 @@ class AccessibilityService { return originalTimeoutMillis; } - static Future getRecommendedTimeToTakeAction(int originalTimeoutMillis) async { + static Future getRecommendedTimeToTakeAction(Duration originalTimeoutDuration) async { + final originalTimeoutMillis = originalTimeoutDuration.inMilliseconds; try { final result = await _platform.invokeMethod('getRecommendedTimeoutMillis', { 'originalTimeoutMillis': originalTimeoutMillis, diff --git a/lib/widgets/common/action_mixins/feedback.dart b/lib/widgets/common/action_mixins/feedback.dart index 75618a363..0d5dbbfcb 100644 --- a/lib/widgets/common/action_mixins/feedback.dart +++ b/lib/widgets/common/action_mixins/feedback.dart @@ -106,24 +106,23 @@ mixin FeedbackMixin { } Future _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); } }