#960 option to force using western arabic numerals for dates
This commit is contained in:
parent
569aef5f9f
commit
94eccbd2f1
8 changed files with 118 additions and 38 deletions
|
@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
|
|||
### Added
|
||||
|
||||
- Cataloguing: identify Apple variant of HDR images
|
||||
- option to force using western arabic numerals for dates
|
||||
|
||||
### Changed
|
||||
|
||||
|
|
|
@ -933,6 +933,7 @@
|
|||
"settingsCoordinateFormatDialogTitle": "Coordinate Format",
|
||||
"settingsUnitSystemTile": "Units",
|
||||
"settingsUnitSystemDialogTitle": "Units",
|
||||
"settingsForceWesternArabicNumeralsTile": "Force Arabic numerals",
|
||||
|
||||
"settingsScreenSaverPageTitle": "Screen Saver",
|
||||
|
||||
|
|
|
@ -79,6 +79,10 @@ mixin AppSettings on SettingsAccess {
|
|||
return _appliedLocale!;
|
||||
}
|
||||
|
||||
bool get forceWesternArabicNumerals => getBool(SettingKeys.forceWesternArabicNumeralsKey) ?? false;
|
||||
|
||||
set forceWesternArabicNumerals(bool newValue) => set(SettingKeys.forceWesternArabicNumeralsKey, newValue);
|
||||
|
||||
int get catalogTimeZoneRawOffsetMillis => getInt(SettingKeys.catalogTimeZoneRawOffsetMillisKey) ?? 0;
|
||||
|
||||
set catalogTimeZoneRawOffsetMillis(int newValue) => set(SettingKeys.catalogTimeZoneRawOffsetMillisKey, newValue);
|
||||
|
|
|
@ -375,6 +375,7 @@ class Settings with ChangeNotifier, SettingsAccess, AppSettings, DisplaySettings
|
|||
}
|
||||
case SettingKeys.isInstalledAppAccessAllowedKey:
|
||||
case SettingKeys.isErrorReportingAllowedKey:
|
||||
case SettingKeys.forceWesternArabicNumeralsKey:
|
||||
case SettingKeys.enableDynamicColorKey:
|
||||
case SettingKeys.enableBlurEffectKey:
|
||||
case SettingKeys.enableBottomNavigationBarKey:
|
||||
|
|
|
@ -161,7 +161,6 @@ class _AvesAppState extends State<AvesApp> with WidgetsBindingObserver {
|
|||
final ValueNotifier<PageTransitionsBuilder> _pageTransitionsBuilderNotifier = ValueNotifier(defaultPageTransitionsBuilder);
|
||||
final ValueNotifier<TvMediaQueryModifier?> _tvMediaQueryModifierNotifier = ValueNotifier(null);
|
||||
final ValueNotifier<AppMode> _appModeNotifier = ValueNotifier(AppMode.main);
|
||||
final ValueNotifier<LocaleOverrides> _localeOverridesNotifier = ValueNotifier(LocaleOverrides.none);
|
||||
|
||||
// observers are not registered when using the same list object with different items
|
||||
// the list itself needs to be reassigned
|
||||
|
@ -221,7 +220,6 @@ class _AvesAppState extends State<AvesApp> with WidgetsBindingObserver {
|
|||
Provider<TvRailController>.value(value: _tvRailController),
|
||||
DurationsProvider(),
|
||||
HighlightInfoProvider(),
|
||||
ListenableProvider<ValueNotifier<LocaleOverrides>>.value(value: _localeOverridesNotifier),
|
||||
],
|
||||
child: OverlaySupport(
|
||||
child: FutureBuilder<void>(
|
||||
|
@ -429,15 +427,10 @@ class _AvesAppState extends State<AvesApp> with WidgetsBindingObserver {
|
|||
countrifiedLocale = WidgetsBinding.instance.platformDispatcher.locales.firstWhereOrNull((v) => v.languageCode == languageCode);
|
||||
}
|
||||
|
||||
if (appliedLocale.languageCode == 'ar') {
|
||||
final useNativeDigits = shouldUseNativeDigits(countrifiedLocale);
|
||||
final useNativeDigits = !settings.forceWesternArabicNumerals && shouldUseNativeDigits(countrifiedLocale);
|
||||
DateFormat.useNativeDigitsByDefaultFor(appliedLocale.toString(), useNativeDigits);
|
||||
DateFormat.useNativeDigitsByDefaultFor(countrifiedLocale.toString(), useNativeDigits);
|
||||
}
|
||||
_localeOverridesNotifier.value = LocaleOverrides(
|
||||
countrifiedLocale: countrifiedLocale,
|
||||
);
|
||||
}
|
||||
|
||||
Widget _getFirstPage({Map? intentData}) => settings.hasAcceptedTerms ? HomePage(intentData: intentData) : const WelcomePage();
|
||||
|
||||
|
@ -574,7 +567,7 @@ class _AvesAppState extends State<AvesApp> with WidgetsBindingObserver {
|
|||
final settingStream = settings.updateStream;
|
||||
// app
|
||||
settingStream.where((event) => event.key == SettingKeys.isInstalledAppAccessAllowedKey).listen((_) => _applyIsInstalledAppAccessAllowed());
|
||||
settingStream.where((event) => event.key == SettingKeys.localeKey).listen((_) => _applyLocale());
|
||||
settingStream.where((event) => event.key == SettingKeys.localeKey || event.key == SettingKeys.forceWesternArabicNumeralsKey).listen((_) => _applyLocale());
|
||||
// display
|
||||
settingStream.where((event) => event.key == SettingKeys.displayRefreshRateModeKey).listen((_) => _applyDisplayRefreshRateMode());
|
||||
settingStream.where((event) => event.key == SettingKeys.maxBrightnessKey).listen((_) => _applyMaxBrightness());
|
||||
|
@ -654,18 +647,3 @@ class AvesScrollBehavior extends MaterialScrollBehavior {
|
|||
}
|
||||
|
||||
typedef TvMediaQueryModifier = MediaQueryData Function(MediaQueryData);
|
||||
|
||||
class LocaleOverrides extends Equatable {
|
||||
final Locale? countrifiedLocale;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [countrifiedLocale];
|
||||
|
||||
const LocaleOverrides({
|
||||
required this.countrifiedLocale,
|
||||
});
|
||||
|
||||
static const LocaleOverrides none = LocaleOverrides(
|
||||
countrifiedLocale: null,
|
||||
);
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ class LanguageSection extends SettingsSection {
|
|||
SettingsTileLanguageLocale(),
|
||||
SettingsTileLanguageCoordinateFormat(),
|
||||
SettingsTileLanguageUnitSystem(),
|
||||
SettingsTileLanguageNumerals(),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -74,3 +75,15 @@ class SettingsTileLanguageUnitSystem extends SettingsTile {
|
|||
dialogTitle: context.l10n.settingsUnitSystemDialogTitle,
|
||||
);
|
||||
}
|
||||
|
||||
class SettingsTileLanguageNumerals extends SettingsTile {
|
||||
@override
|
||||
String title(BuildContext context) => context.l10n.settingsForceWesternArabicNumeralsTile;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => SettingsSwitchListTile(
|
||||
selector: (context, s) => s.forceWesternArabicNumerals,
|
||||
onChanged: (v) => settings.forceWesternArabicNumerals = v,
|
||||
title: title(context),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ class SettingKeys {
|
|||
static const isInstalledAppAccessAllowedKey = 'is_installed_app_access_allowed';
|
||||
static const isErrorReportingAllowedKey = 'is_crashlytics_enabled';
|
||||
static const localeKey = 'locale';
|
||||
static const forceWesternArabicNumeralsKey = 'force_western_arabic_numerals';
|
||||
static const catalogTimeZoneRawOffsetMillisKey = 'catalog_time_zone_raw_offset_millis';
|
||||
static const tileExtentPrefixKey = 'tile_extent_';
|
||||
static const tileLayoutPrefixKey = 'tile_layout_';
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
{
|
||||
"ar": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"be": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"bn": [
|
||||
"itemCount",
|
||||
"columnCount",
|
||||
|
@ -593,6 +601,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -667,7 +676,8 @@
|
|||
"stopTooltip",
|
||||
"videoActionABRepeat",
|
||||
"videoRepeatActionSetStart",
|
||||
"videoRepeatActionSetEnd"
|
||||
"videoRepeatActionSetEnd",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"ckb": [
|
||||
|
@ -1143,6 +1153,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -1220,7 +1231,8 @@
|
|||
"videoRepeatActionSetEnd",
|
||||
"collectionActionSetHome",
|
||||
"setHomeCustomCollection",
|
||||
"settingsThumbnailShowHdrIcon"
|
||||
"settingsThumbnailShowHdrIcon",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"da": [
|
||||
|
@ -1842,6 +1854,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -1916,7 +1929,8 @@
|
|||
"stopTooltip",
|
||||
"videoActionABRepeat",
|
||||
"videoRepeatActionSetStart",
|
||||
"videoRepeatActionSetEnd"
|
||||
"videoRepeatActionSetEnd",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"el": [
|
||||
|
@ -1937,14 +1951,20 @@
|
|||
"collectionActionSetHome",
|
||||
"setHomeCustomCollection",
|
||||
"settingsThumbnailShowHdrIcon",
|
||||
"settingsViewerShowHistogram"
|
||||
"settingsViewerShowHistogram",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"es": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"eu": [
|
||||
"stopTooltip",
|
||||
"videoActionABRepeat",
|
||||
"videoRepeatActionSetStart",
|
||||
"videoRepeatActionSetEnd"
|
||||
"videoRepeatActionSetEnd",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"fa": [
|
||||
|
@ -2320,6 +2340,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -2866,6 +2887,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -2936,6 +2958,10 @@
|
|||
"filePickerUseThisFolder"
|
||||
],
|
||||
|
||||
"fr": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"gl": [
|
||||
"columnCount",
|
||||
"saveCopyButtonLabel",
|
||||
|
@ -3423,6 +3449,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -4108,6 +4135,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -4759,6 +4787,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -4829,11 +4858,20 @@
|
|||
"filePickerUseThisFolder"
|
||||
],
|
||||
|
||||
"hu": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"id": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"is": [
|
||||
"stopTooltip",
|
||||
"videoActionABRepeat",
|
||||
"videoRepeatActionSetStart",
|
||||
"videoRepeatActionSetEnd"
|
||||
"videoRepeatActionSetEnd",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"it": [
|
||||
|
@ -4843,7 +4881,8 @@
|
|||
"videoRepeatActionSetEnd",
|
||||
"collectionActionSetHome",
|
||||
"setHomeCustomCollection",
|
||||
"settingsThumbnailShowHdrIcon"
|
||||
"settingsThumbnailShowHdrIcon",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"ja": [
|
||||
|
@ -4899,6 +4938,7 @@
|
|||
"settingsDisablingBinWarningDialogMessage",
|
||||
"settingsAccessibilityShowPinchGestureAlternatives",
|
||||
"settingsDisplayUseTvInterface",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsWidgetDisplayedItem",
|
||||
"statsTopStatesSectionTitle",
|
||||
"tagEditorDiscardDialogMessage"
|
||||
|
@ -5492,6 +5532,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -5562,6 +5603,10 @@
|
|||
"filePickerUseThisFolder"
|
||||
],
|
||||
|
||||
"ko": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"lt": [
|
||||
"columnCount",
|
||||
"saveCopyButtonLabel",
|
||||
|
@ -5654,6 +5699,7 @@
|
|||
"settingsDisablingBinWarningDialogMessage",
|
||||
"settingsAccessibilityShowPinchGestureAlternatives",
|
||||
"settingsDisplayUseTvInterface",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"statsTopStatesSectionTitle",
|
||||
"tagEditorDiscardDialogMessage",
|
||||
"tagPlaceholderState"
|
||||
|
@ -6278,6 +6324,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -6397,6 +6444,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -6494,6 +6542,7 @@
|
|||
"settingsCollectionBurstPatternsTile",
|
||||
"settingsCollectionBurstPatternsNone",
|
||||
"settingsViewerShowHistogram",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"statsTopStatesSectionTitle"
|
||||
],
|
||||
|
||||
|
@ -6585,6 +6634,7 @@
|
|||
"settingsDisablingBinWarningDialogMessage",
|
||||
"settingsAccessibilityShowPinchGestureAlternatives",
|
||||
"settingsDisplayUseTvInterface",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsWidgetDisplayedItem",
|
||||
"statsTopStatesSectionTitle",
|
||||
"tagEditorDiscardDialogMessage"
|
||||
|
@ -6632,6 +6682,7 @@
|
|||
"settingsHiddenFiltersEmpty",
|
||||
"settingsRemoveAnimationsTile",
|
||||
"settingsRemoveAnimationsDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsWidgetOpenPage",
|
||||
"viewerInfoSearchSuggestionDimensions",
|
||||
"wallpaperUseScrollEffect"
|
||||
|
@ -7183,6 +7234,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -7253,11 +7305,24 @@
|
|||
"filePickerUseThisFolder"
|
||||
],
|
||||
|
||||
"pl": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"pt": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"ro": [
|
||||
"stopTooltip",
|
||||
"videoActionABRepeat",
|
||||
"videoRepeatActionSetStart",
|
||||
"videoRepeatActionSetEnd"
|
||||
"videoRepeatActionSetEnd",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"ru": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"sat": [
|
||||
|
@ -7877,6 +7942,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -7951,7 +8017,8 @@
|
|||
"stopTooltip",
|
||||
"videoActionABRepeat",
|
||||
"videoRepeatActionSetStart",
|
||||
"videoRepeatActionSetEnd"
|
||||
"videoRepeatActionSetEnd",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"sl": [
|
||||
|
@ -8569,6 +8636,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -8881,6 +8949,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -9289,6 +9358,7 @@
|
|||
"settingsCoordinateFormatDialogTitle",
|
||||
"settingsUnitSystemTile",
|
||||
"settingsUnitSystemDialogTitle",
|
||||
"settingsForceWesternArabicNumeralsTile",
|
||||
"settingsScreenSaverPageTitle",
|
||||
"settingsWidgetPageTitle",
|
||||
"settingsWidgetShowOutline",
|
||||
|
@ -9359,24 +9429,35 @@
|
|||
"filePickerUseThisFolder"
|
||||
],
|
||||
|
||||
"tr": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"uk": [
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"vi": [
|
||||
"stopTooltip",
|
||||
"videoActionABRepeat",
|
||||
"videoRepeatActionSetStart",
|
||||
"videoRepeatActionSetEnd"
|
||||
"videoRepeatActionSetEnd",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"zh": [
|
||||
"stopTooltip",
|
||||
"videoActionABRepeat",
|
||||
"videoRepeatActionSetStart",
|
||||
"videoRepeatActionSetEnd"
|
||||
"videoRepeatActionSetEnd",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
],
|
||||
|
||||
"zh_Hant": [
|
||||
"stopTooltip",
|
||||
"videoActionABRepeat",
|
||||
"videoRepeatActionSetStart",
|
||||
"videoRepeatActionSetEnd"
|
||||
"videoRepeatActionSetEnd",
|
||||
"settingsForceWesternArabicNumeralsTile"
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue