Commit fc334f8
Changed files (2)
lib
screens
lib/screens/subsettings/enter_timeformat.dart
@@ -1,8 +1,7 @@
import 'package:blood_pressure_app/model/settings_store.dart';
-import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
-import 'package:url_launcher/url_launcher.dart' show LaunchMode, canLaunchUrl, launchUrl;
+import 'package:blood_pressure_app/screens/subsettings/time_formats_explainer.dart';
class EnterTimeFormatScreen extends StatefulWidget {
@@ -33,12 +32,10 @@ class _EnterTimeFormatScreenState extends State<EnterTimeFormatScreen> {
const Text('A formatter String consists of a mixture of predefined ICU/Skeleton Strings and any other text you want to include.'),
InkWell(
onTap: () async {
- final url = Uri.parse('https://pub.dev/documentation/intl/latest/intl/DateFormat-class.html');
- if (await canLaunchUrl(url)) {
- await launchUrl(url, mode: LaunchMode.externalApplication);
- } else {
- ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Can\'t open URL:\nhttps://pub.dev/documentation/intl/latest/intl/DateFormat-class.html')));
- }
+ Navigator.push(
+ context,
+ MaterialPageRoute(builder: (context) => const TimeFormattingHelp())
+ );
},
child: const SizedBox(
height: 48,
lib/screens/subsettings/time_formats_explainer.dart
@@ -0,0 +1,82 @@
+import 'package:flutter/material.dart';
+
+class TimeFormattingHelp extends StatelessWidget {
+ const TimeFormattingHelp({super.key});
+ // https://pub.dev/documentation/intl/latest/intl/DateFormat-class.html
+ static const _formats = '''DAY d
+ ABBR_WEEKDAY E
+ WEEKDAY EEEE
+ ABBR_STANDALONE_MONTH LLL
+ STANDALONE_MONTH LLLL
+ NUM_MONTH M
+ NUM_MONTH_DAY Md
+ NUM_MONTH_WEEKDAY_DAY MEd
+ ABBR_MONTH MMM
+ ABBR_MONTH_DAY MMMd
+ ABBR_MONTH_WEEKDAY_DAY MMMEd
+ MONTH MMMM
+ MONTH_DAY MMMMd
+ MONTH_WEEKDAY_DAY MMMMEEEEd
+ ABBR_QUARTER QQQ
+ QUARTER QQQQ
+ YEAR y
+ YEAR_NUM_MONTH yM
+ YEAR_NUM_MONTH_DAY yMd
+ YEAR_NUM_MONTH_WEEKDAY_DAY yMEd
+ YEAR_ABBR_MONTH yMMM
+ YEAR_ABBR_MONTH_DAY yMMMd
+ YEAR_ABBR_MONTH_WEEKDAY_DAY yMMMEd
+ YEAR_MONTH yMMMM
+ YEAR_MONTH_DAY yMMMMd
+ YEAR_MONTH_WEEKDAY_DAY yMMMMEEEEd
+ YEAR_ABBR_QUARTER yQQQ
+ YEAR_QUARTER yQQQQ
+ HOUR24 H
+ HOUR24_MINUTE Hm
+ HOUR24_MINUTE_SECOND Hms
+ HOUR j
+ HOUR_MINUTE jm
+ HOUR_MINUTE_SECOND jms
+ MINUTE m
+ MINUTE_SECOND ms
+ SECOND s''';
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ appBar: AppBar(
+ title: const Text('Date formatting'),
+ backgroundColor: Theme.of(context).primaryColor,
+ ),
+ body: Container(
+ padding: const EdgeInsets.all(20),
+ child: SingleChildScrollView(
+ child: Table(
+ columnWidths: const {
+ 0: FlexColumnWidth(0.71),
+ 1: FlexColumnWidth(0.29)
+ },
+ children: getRows(),
+ ),
+ ),
+ )
+ );
+ }
+
+ List<TableRow> getRows() {
+ List<TableRow> rowsOut = [];
+ var lines = _formats.trim().split('\n');
+ for (int i = 1; i < lines.length; i++) {
+ List<String> values = lines[i].trim().split(RegExp(r'\s{2,}'));
+
+ rowsOut.add(TableRow(
+ children: [
+ Text(values[0]),
+ Text(values[1])
+ ]
+ ));
+ }
+ return rowsOut;
+ }
+
+}
\ No newline at end of file