Commit fc334f8

derdilla <derdilla06@gmail.com>
2023-05-24 17:31:15
remove unnecessary external link
1 parent 05348ed
Changed files (2)
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