diff --git a/lib/config_provider.dart b/lib/config_provider.dart index 0557919a..a54a1f91 100644 --- a/lib/config_provider.dart +++ b/lib/config_provider.dart @@ -291,6 +291,7 @@ class ConfigProvider with ChangeNotifier { } bool is24HourFormat() { + if (PlatformDispatcher.instance.alwaysUse24HourFormat) return true; String formattedTime = DateFormat.jm(PlatformDispatcher.instance.locale.toString()) .format(DateTime.now()); diff --git a/lib/flashback_manager.dart b/lib/flashback_manager.dart index cfa2835e..51aed4d7 100644 --- a/lib/flashback_manager.dart +++ b/lib/flashback_manager.dart @@ -6,7 +6,6 @@ import 'package:daily_you/l10n/generated/app_localizations.dart'; import 'package:daily_you/models/entry.dart'; import 'package:daily_you/models/flashback.dart'; import 'package:daily_you/time_manager.dart'; -import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; class FlashbackManager { @@ -136,7 +135,7 @@ class FlashbackManager { entryLabels: entries.length == 1 ? [label] : entries - .map((e) => DateFormat.jm(locale).format(e.timeCreate)) + .map((e) => TimeManager.localizedTimeFormat(locale).format(e.timeCreate)) .toList(), )); }); diff --git a/lib/pages/edit_entry_page.dart b/lib/pages/edit_entry_page.dart index 534d1873..14987150 100644 --- a/lib/pages/edit_entry_page.dart +++ b/lib/pages/edit_entry_page.dart @@ -271,7 +271,7 @@ class _AddEditEntryPageState extends State VisualDensity.compact, padding: EdgeInsets.all(6)), child: Text( - DateFormat.jm(TimeManager + TimeManager.localizedTimeFormat(TimeManager .currentLocale( context)) .format(entryDate!), diff --git a/lib/pages/entry_view_page.dart b/lib/pages/entry_view_page.dart index 3d8ef654..3f3bf0e2 100644 --- a/lib/pages/entry_view_page.dart +++ b/lib/pages/entry_view_page.dart @@ -110,7 +110,7 @@ class _EntryViewPageState extends State { radius: BorderRadius.circular(4), ), Text( - DateFormat.jm( + TimeManager.localizedTimeFormat( TimeManager.currentLocale(context)) .format(entry.timeCreate), style: TextStyle( @@ -141,7 +141,7 @@ class _EntryViewPageState extends State { padding: const EdgeInsets.only( left: 8, top: 4, bottom: 18, right: 8), child: Text( - "${AppLocalizations.of(context)!.lastModified}: ${DateFormat.yMMMEd(TimeManager.currentLocale(context)).format(entry.timeModified)} ${DateFormat.jm(TimeManager.currentLocale(context)).format(entry.timeModified)}", + "${AppLocalizations.of(context)!.lastModified}: ${DateFormat.yMMMEd(TimeManager.currentLocale(context)).format(entry.timeModified)} ${TimeManager.localizedTimeFormat(TimeManager.currentLocale(context)).format(entry.timeModified)}", style: TextStyle(fontSize: 12, color: theme.disabledColor), ), ), diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 2a1898a9..d31f2a7a 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -21,7 +21,6 @@ import 'package:daily_you/pages/entries_list_page.dart'; import 'package:daily_you/pages/entry_timeline_page.dart'; import 'package:daily_you/pages/edit_entry_page.dart'; import 'package:flutter_expandable_fab/flutter_expandable_fab.dart'; -import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; class HomePage extends StatefulWidget { @@ -239,7 +238,7 @@ class _HomePageState extends State .reversed .toList(), labelBuilder: (e) => - DateFormat.jm(locale).format(e.timeCreate), + TimeManager.localizedTimeFormat(locale).format(e.timeCreate), ), )); } else { diff --git a/lib/pages/image_view_page.dart b/lib/pages/image_view_page.dart index 0164df97..9f304ced 100644 --- a/lib/pages/image_view_page.dart +++ b/lib/pages/image_view_page.dart @@ -141,7 +141,7 @@ class _ImageViewPageState extends State { const SizedBox(height: 8), _infoRow( Icons.schedule_rounded, - "${DateFormat.yMMMEd(TimeManager.currentLocale(context)).format(imageEntry.timeCreate)} ${DateFormat.jm(TimeManager.currentLocale(context)).format(imageEntry.timeCreate)}", + "${DateFormat.yMMMEd(TimeManager.currentLocale(context)).format(imageEntry.timeCreate)} ${TimeManager.localizedTimeFormat(TimeManager.currentLocale(context)).format(imageEntry.timeCreate)}", ), ], ), diff --git a/lib/template_renderer.dart b/lib/template_renderer.dart index 00264f28..870b61c0 100644 --- a/lib/template_renderer.dart +++ b/lib/template_renderer.dart @@ -1,3 +1,4 @@ +import 'package:daily_you/time_manager.dart'; import 'package:flutter/widgets.dart'; import 'package:intl/intl.dart'; import 'package:daily_you/l10n/generated/app_localizations.dart'; @@ -63,6 +64,6 @@ class TemplateRenderer { // Do nothing } - return DateFormat.jm(locale.toString()).format(dt); + return TimeManager.localizedTimeFormat(locale.toString()).format(dt); } } diff --git a/lib/time_manager.dart b/lib/time_manager.dart index 86c8d19a..e1e7c8a2 100644 --- a/lib/time_manager.dart +++ b/lib/time_manager.dart @@ -1,3 +1,5 @@ +import 'dart:ui' show PlatformDispatcher; + import 'package:daily_you/config_provider.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; @@ -75,10 +77,17 @@ class TimeManager { } static String timeOfDayString(BuildContext context, TimeOfDay timeOfDay) { - return DateFormat.jm(TimeManager.currentLocale(context)) + return localizedTimeFormat(TimeManager.currentLocale(context)) .format(addTimeOfDay(startOfDay(DateTime.now()), timeOfDay)); } + static DateFormat localizedTimeFormat(String locale) { + if (PlatformDispatcher.instance.alwaysUse24HourFormat) { + return DateFormat.Hm(locale); + } + return DateFormat.jm(locale); + } + static final Map dayOfWeekIndexMapping = { 0: 'monday', 1: 'tuesday', diff --git a/lib/widgets/entry_day_cell.dart b/lib/widgets/entry_day_cell.dart index cb4980da..87fd4a8f 100644 --- a/lib/widgets/entry_day_cell.dart +++ b/lib/widgets/entry_day_cell.dart @@ -74,7 +74,7 @@ class EntryDayCell extends StatelessWidget { .toList() .reversed .toList(), - labelBuilder: (e) => DateFormat.jm(locale).format(e.timeCreate), + labelBuilder: (e) => TimeManager.localizedTimeFormat(locale).format(e.timeCreate), ), )); } diff --git a/lib/widgets/vertical_calendar.dart b/lib/widgets/vertical_calendar.dart index 8c3a57fc..6a6fbd9d 100644 --- a/lib/widgets/vertical_calendar.dart +++ b/lib/widgets/vertical_calendar.dart @@ -494,7 +494,7 @@ class _VerticalCalendarState extends State .toList() .reversed .toList(), - labelBuilder: (e) => DateFormat.jm(locale).format(e.timeCreate), + labelBuilder: (e) => TimeManager.localizedTimeFormat(locale).format(e.timeCreate), ), )); }