minor fixes
This commit is contained in:
parent
8d2ab89cb4
commit
b6050edfb8
10 changed files with 35 additions and 45 deletions
|
@ -1,4 +1,6 @@
|
|||
# cf guide: http://flutter.dev/go/i18n-user-guide
|
||||
# cf guides:
|
||||
# http://flutter.dev/go/i18n-user-guide
|
||||
# https://docs.flutter.dev/development/accessibility-and-localization/internationalization
|
||||
|
||||
# use defaults to:
|
||||
# - parse ARB files from `lib/l10n`
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:aves/model/settings/enums/coordinate_format.dart';
|
|||
import 'package:aves/model/settings/enums/enums.dart';
|
||||
import 'package:aves/model/settings/settings.dart';
|
||||
import 'package:aves/theme/icons.dart';
|
||||
import 'package:aves/widgets/aves_app.dart';
|
||||
import 'package:aves/widgets/common/extensions/build_context.dart';
|
||||
import 'package:aves_map/aves_map.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -59,7 +60,7 @@ class CoordinateFilter extends CollectionFilter {
|
|||
bool get exclusiveProp => false;
|
||||
|
||||
@override
|
||||
String get universalLabel => _formatBounds(lookupAppLocalizations(AppLocalizations.supportedLocales.first), CoordinateFormat.decimal);
|
||||
String get universalLabel => _formatBounds(lookupAppLocalizations(AvesApp.supportedLocales.first), CoordinateFormat.decimal);
|
||||
|
||||
@override
|
||||
String getLabel(BuildContext context) => _formatBounds(context.l10n, context.read<Settings>().coordinateFormat);
|
||||
|
|
|
@ -2,7 +2,6 @@ import 'dart:async';
|
|||
import 'dart:convert';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:aves/l10n/l10n.dart';
|
||||
import 'package:aves/model/actions/entry_actions.dart';
|
||||
import 'package:aves/model/actions/entry_set_actions.dart';
|
||||
import 'package:aves/model/filters/filters.dart';
|
||||
|
@ -12,6 +11,7 @@ import 'package:aves/model/settings/enums/map_style.dart';
|
|||
import 'package:aves/model/source/enums/enums.dart';
|
||||
import 'package:aves/services/common/optional_event_channel.dart';
|
||||
import 'package:aves/services/common/services.dart';
|
||||
import 'package:aves/widgets/aves_app.dart';
|
||||
import 'package:aves_map/aves_map.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -283,7 +283,7 @@ class Settings extends ChangeNotifier {
|
|||
preferredLocales.addAll(_systemLocalesFallback);
|
||||
}
|
||||
}
|
||||
_appliedLocale = basicLocaleListResolution(preferredLocales, AppLocalizations.supportedLocales);
|
||||
_appliedLocale = basicLocaleListResolution(preferredLocales, AvesApp.supportedLocales);
|
||||
}
|
||||
return _appliedLocale!;
|
||||
}
|
||||
|
|
|
@ -48,6 +48,9 @@ import 'package:tuple/tuple.dart';
|
|||
class AvesApp extends StatefulWidget {
|
||||
final AppFlavor flavor;
|
||||
|
||||
// temporary exclude locales not ready yet for prime time
|
||||
static final _unsupportedLocales = {'fa', 'gl', 'nb', 'pl'}.map(Locale.new).toSet();
|
||||
static final List<Locale> supportedLocales = AppLocalizations.supportedLocales.where((v) => !_unsupportedLocales.contains(v)).toList();
|
||||
static final GlobalKey<NavigatorState> navigatorKey = GlobalKey(debugLabel: 'app-navigator');
|
||||
|
||||
// do not monitor all `ModalRoute`s, which would include popup menus,
|
||||
|
@ -225,7 +228,7 @@ class _AvesAppState extends State<AvesApp> with WidgetsBindingObserver {
|
|||
themeMode: themeBrightness.appThemeMode,
|
||||
locale: settingsLocale,
|
||||
localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||||
supportedLocales: AppLocalizations.supportedLocales,
|
||||
supportedLocales: AvesApp.supportedLocales,
|
||||
// TODO TLAD remove custom scroll behavior when this is fixed: https://github.com/flutter/flutter/issues/82906
|
||||
scrollBehavior: StretchMaterialScrollBehavior(),
|
||||
);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import 'dart:collection';
|
||||
|
||||
import 'package:aves/l10n/l10n.dart';
|
||||
import 'package:aves/model/settings/settings.dart';
|
||||
import 'package:aves/theme/durations.dart';
|
||||
import 'package:aves/widgets/aves_app.dart';
|
||||
import 'package:aves/widgets/common/basic/query_bar.dart';
|
||||
import 'package:aves/widgets/common/basic/reselectable_radio_list_tile.dart';
|
||||
import 'package:aves/widgets/common/extensions/build_context.dart';
|
||||
|
@ -123,7 +123,7 @@ class _LocaleSelectionPageState extends State<LocaleSelectionPage> {
|
|||
}
|
||||
|
||||
LinkedHashMap<Locale, String> _getLocaleOptions(BuildContext context) {
|
||||
final displayLocales = AppLocalizations.supportedLocales.map((locale) => MapEntry(locale, LocaleTile.getLocaleName(locale))).toList()..sort((a, b) => compareAsciiUpperCase(a.value, b.value));
|
||||
final displayLocales = AvesApp.supportedLocales.map((locale) => MapEntry(locale, LocaleTile.getLocaleName(locale))).toList()..sort((a, b) => compareAsciiUpperCase(a.value, b.value));
|
||||
|
||||
return LinkedHashMap.of({
|
||||
LocaleTile.systemLocaleOption: context.l10n.settingsSystemDefault,
|
||||
|
|
|
@ -3,9 +3,13 @@ import 'package:test/test.dart';
|
|||
|
||||
void main() {
|
||||
test('Video date parsing', () {
|
||||
final localOffset = DateTime.now().timeZoneOffset;
|
||||
DateTime shiftTimeZoneOffset(DateTime date) {
|
||||
// local time zone offset may not be the same across time (because of DST),
|
||||
// so we cannot reliably use `DateTime.now().timeZoneOffset`
|
||||
return date.add(date.timeZoneOffset);
|
||||
}
|
||||
|
||||
expect(VideoMetadataFormatter.parseVideoDate('2011-05-08T03:46+09:00'), DateTime(2011, 5, 7, 18, 46).add(localOffset).millisecondsSinceEpoch);
|
||||
expect(VideoMetadataFormatter.parseVideoDate('2011-05-08T03:46+09:00'), shiftTimeZoneOffset(DateTime(2011, 5, 7, 18, 46)).millisecondsSinceEpoch);
|
||||
expect(VideoMetadataFormatter.parseVideoDate('UTC 2021-05-30 19:14:21'), DateTime(2021, 5, 30, 19, 14, 21).millisecondsSinceEpoch);
|
||||
expect(VideoMetadataFormatter.parseVideoDate('2021/10/31 21:23:17'), DateTime(2021, 10, 31, 21, 23, 17).millisecondsSinceEpoch);
|
||||
expect(VideoMetadataFormatter.parseVideoDate('2021-09-10T7:14:49 pmZ'), DateTime(2021, 9, 10, 19, 14, 49).millisecondsSinceEpoch);
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
import 'package:aves/l10n/l10n.dart';
|
||||
import 'package:aves/utils/file_utils.dart';
|
||||
import 'package:aves/widgets/aves_app.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
test('format file size', () {
|
||||
final l10n = lookupAppLocalizations(AppLocalizations.supportedLocales.first);
|
||||
final l10n = lookupAppLocalizations(AvesApp.supportedLocales.first);
|
||||
final locale = l10n.localeName;
|
||||
expect(formatFileSize(locale, 1024), '1.00 KB');
|
||||
expect(formatFileSize(locale, 1536), '1.50 KB');
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
import 'package:aves/l10n/l10n.dart';
|
||||
import 'package:aves/model/settings/enums/coordinate_format.dart';
|
||||
import 'package:aves/widgets/aves_app.dart';
|
||||
import 'package:aves_map/aves_map.dart';
|
||||
import 'package:latlong2/latlong.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
test('Decimal degrees to DMS (sexagesimal)', () {
|
||||
final l10n = lookupAppLocalizations(AppLocalizations.supportedLocales.first);
|
||||
final l10n = lookupAppLocalizations(AvesApp.supportedLocales.first);
|
||||
expect(ExtraCoordinateFormat.toDMS(l10n, LatLng(37.496667, 127.0275)), ['37° 29′ 48.00″ N', '127° 1′ 39.00″ E']); // Gangnam
|
||||
expect(ExtraCoordinateFormat.toDMS(l10n, LatLng(78.9243503, 11.9230465)), ['78° 55′ 27.66″ N', '11° 55′ 22.97″ E']); // Ny-Ålesund
|
||||
expect(ExtraCoordinateFormat.toDMS(l10n, LatLng(-38.6965891, 175.9830047)), ['38° 41′ 47.72″ S', '175° 58′ 58.82″ E']); // Taupo
|
||||
|
|
|
@ -17,13 +17,17 @@ void main() {
|
|||
});
|
||||
|
||||
test('Parse dates', () {
|
||||
final localOffset = DateTime.now().timeZoneOffset;
|
||||
DateTime shiftTimeZoneOffset(DateTime date) {
|
||||
// local time zone offset may not be the same across time (because of DST),
|
||||
// so we cannot reliably use `DateTime.now().timeZoneOffset`
|
||||
return date.add(date.timeZoneOffset);
|
||||
}
|
||||
|
||||
expect(parseUnknownDateFormat('1600995564713'), DateTime(2020, 9, 25, 0, 59, 24, 713).add(localOffset));
|
||||
expect(parseUnknownDateFormat('pre1600995564713suf'), DateTime(2020, 9, 25, 0, 59, 24, 713).add(localOffset));
|
||||
expect(parseUnknownDateFormat('1600995564713'), shiftTimeZoneOffset(DateTime(2020, 9, 25, 0, 59, 24, 713)));
|
||||
expect(parseUnknownDateFormat('pre1600995564713suf'), shiftTimeZoneOffset(DateTime(2020, 9, 25, 0, 59, 24, 713)));
|
||||
|
||||
expect(parseUnknownDateFormat('1600995564'), DateTime(2020, 9, 25, 0, 59, 24, 0).add(localOffset));
|
||||
expect(parseUnknownDateFormat('pre1600995564suf'), DateTime(2020, 9, 25, 0, 59, 24, 0).add(localOffset));
|
||||
expect(parseUnknownDateFormat('1600995564'), shiftTimeZoneOffset(DateTime(2020, 9, 25, 0, 59, 24, 0)));
|
||||
expect(parseUnknownDateFormat('pre1600995564suf'), shiftTimeZoneOffset(DateTime(2020, 9, 25, 0, 59, 24, 0)));
|
||||
|
||||
expect(parseUnknownDateFormat('IMG_20210901_142523_783'), DateTime(2021, 9, 1, 14, 25, 23, 783));
|
||||
expect(parseUnknownDateFormat('Screenshot_20211028-115056_Aves'), DateTime(2021, 10, 28, 11, 50, 56, 0));
|
||||
|
|
|
@ -16,14 +16,7 @@
|
|||
],
|
||||
|
||||
"es": [
|
||||
"widgetOpenPageHome",
|
||||
"widgetOpenPageCollection",
|
||||
"widgetOpenPageViewer",
|
||||
"editEntryLocationDialogSetCustom",
|
||||
"settingsAllowMediaManagement",
|
||||
"tagEditorSectionPlaceholders",
|
||||
"tagPlaceholderCountry",
|
||||
"tagPlaceholderPlace"
|
||||
"settingsAllowMediaManagement"
|
||||
],
|
||||
|
||||
"fa": [
|
||||
|
@ -608,14 +601,6 @@
|
|||
"filePickerUseThisFolder"
|
||||
],
|
||||
|
||||
"fr": [
|
||||
"editEntryLocationDialogSetCustom",
|
||||
"settingsAllowMediaManagement",
|
||||
"tagEditorSectionPlaceholders",
|
||||
"tagPlaceholderCountry",
|
||||
"tagPlaceholderPlace"
|
||||
],
|
||||
|
||||
"gl": [
|
||||
"accessibilityAnimationsRemove",
|
||||
"accessibilityAnimationsKeep",
|
||||
|
@ -1089,6 +1074,7 @@
|
|||
],
|
||||
|
||||
"it": [
|
||||
"widgetOpenPageCollection",
|
||||
"editEntryLocationDialogSetCustom",
|
||||
"settingsAllowMediaManagement",
|
||||
"tagEditorSectionPlaceholders",
|
||||
|
@ -1136,14 +1122,6 @@
|
|||
"tagPlaceholderPlace"
|
||||
],
|
||||
|
||||
"ko": [
|
||||
"editEntryLocationDialogSetCustom",
|
||||
"settingsAllowMediaManagement",
|
||||
"tagEditorSectionPlaceholders",
|
||||
"tagPlaceholderCountry",
|
||||
"tagPlaceholderPlace"
|
||||
],
|
||||
|
||||
"nb": [
|
||||
"videoActionCaptureFrame",
|
||||
"videoActionSelectStreams",
|
||||
|
@ -1768,11 +1746,7 @@
|
|||
],
|
||||
|
||||
"ru": [
|
||||
"editEntryLocationDialogSetCustom",
|
||||
"settingsAllowMediaManagement",
|
||||
"tagEditorSectionPlaceholders",
|
||||
"tagPlaceholderCountry",
|
||||
"tagPlaceholderPlace"
|
||||
"settingsAllowMediaManagement"
|
||||
],
|
||||
|
||||
"tr": [
|
||||
|
|
Loading…
Reference in a new issue