diff --git a/lib/core/graph.dart b/lib/core/graph.dart index 8cf40dec..94d880ce 100644 --- a/lib/core/graph.dart +++ b/lib/core/graph.dart @@ -179,7 +179,7 @@ class Graph extends ChangeNotifier { }); /* - Timer(const Duration(seconds: 5), () { + Timer(5.seconds, () { if (layoutTimer != null) { layoutTimer.cancel(); layoutTimer = null; diff --git a/lib/editors/checklist_editor.dart b/lib/editors/checklist_editor.dart index fd10fc31..0a24d08a 100644 --- a/lib/editors/checklist_editor.dart +++ b/lib/editors/checklist_editor.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:easy_localization/easy_localization.dart'; +import 'package:time/time.dart'; import 'package:gitjournal/core/checklist.dart'; import 'package:gitjournal/core/note.dart'; @@ -141,7 +142,7 @@ class ChecklistEditorState extends State checklist.addItem(item); // FIXME: Make this happen on the next build - Timer(const Duration(milliseconds: 50), () { + Timer(50.milliseconds, () { FocusScope.of(context).requestFocus(); FocusScope.of(context).requestFocus(fn); }); @@ -251,7 +252,7 @@ class ChecklistEditorState extends State checklist.removeItem(item); // FIXME: Make this happen on the next build - Timer(const Duration(milliseconds: 200), () { + Timer(200.milliseconds, () { if (fn != null) { FocusScope.of(context).requestFocus(); FocusScope.of(context).requestFocus(fn); @@ -267,7 +268,7 @@ class ChecklistEditorState extends State checklist.insertItem(index + 1, item); // FIXME: Make this happen on the next build - Timer(const Duration(milliseconds: 50), () { + Timer(50.milliseconds, () { print("Asking focus to ${index + 1}"); FocusScope.of(context).requestFocus(); FocusScope.of(context).requestFocus(fn); diff --git a/lib/editors/scaffold.dart b/lib/editors/scaffold.dart index add1cc10..56234a58 100644 --- a/lib/editors/scaffold.dart +++ b/lib/editors/scaffold.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:provider/provider.dart'; +import 'package:time/time.dart'; import 'package:gitjournal/core/note.dart'; import 'package:gitjournal/core/notes_folder_fs.dart'; @@ -180,7 +181,7 @@ class _AnimatedOpacityIgnorePointer extends StatelessWidget { return IgnorePointer( ignoring: !visible, child: AnimatedOpacity( - duration: const Duration(milliseconds: 500), + duration: 500.milliseconds, opacity: opacity, child: child, ), diff --git a/lib/main_autocomplete.dart b/lib/main_autocomplete.dart index 0185514b..bf760a13 100644 --- a/lib/main_autocomplete.dart +++ b/lib/main_autocomplete.dart @@ -2,6 +2,8 @@ import 'dart:ui'; import 'package:flutter/material.dart'; +import 'package:time/time.dart'; + void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @@ -92,7 +94,7 @@ class _MyHomePageState extends State { overlayState.insert(suggestionTagoverlayEntry); // Removes the over lay entry from the Overly after 500 milliseconds - await Future.delayed(const Duration(milliseconds: 5000)); + await Future.delayed(5000.milliseconds); suggestionTagoverlayEntry.remove(); } diff --git a/lib/repository.dart b/lib/repository.dart index 2bc8c261..666faa84 100644 --- a/lib/repository.dart +++ b/lib/repository.dart @@ -10,6 +10,7 @@ import 'package:git_bindings/git_bindings.dart'; import 'package:path/path.dart' as p; import 'package:shared_preferences/shared_preferences.dart'; import 'package:synchronized/synchronized.dart'; +import 'package:time/time.dart'; import 'package:gitjournal/analytics.dart'; import 'package:gitjournal/core/git_repo.dart'; @@ -365,7 +366,7 @@ class Repository with ChangeNotifier { // The '4 seconds' is taken from snack_bar.dart -> _kSnackBarDisplayDuration // We wait an aritfical amount of time, so that the user has a change to undo // their delete operation, and that commit is not synced with the server, till then. - await Future.delayed(const Duration(seconds: 4)); + await Future.delayed(4.seconds); _syncNotes(); }); }); diff --git a/lib/screens/debug_screen.dart b/lib/screens/debug_screen.dart index 3553f79c..ddeadf8a 100644 --- a/lib/screens/debug_screen.dart +++ b/lib/screens/debug_screen.dart @@ -5,6 +5,7 @@ import 'package:flutter/services.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:provider/provider.dart'; +import 'package:time/time.dart'; import 'package:gitjournal/app_settings.dart'; import 'package:gitjournal/utils/logger.dart'; @@ -30,7 +31,7 @@ class _DebugScreenState extends State { void _scrollToTop() { _controller.animateTo( _controller.position.minScrollExtent, - duration: const Duration(milliseconds: 10), + duration: 10.milliseconds, curve: Curves.easeOut, ); } @@ -38,7 +39,7 @@ class _DebugScreenState extends State { void _scrollToBottom() { _controller.animateTo( _controller.position.maxScrollExtent, - duration: const Duration(milliseconds: 10), + duration: 10.milliseconds, curve: Curves.easeOut, ); } diff --git a/lib/screens/onboarding_screens.dart b/lib/screens/onboarding_screens.dart index 34604b64..e16ce603 100644 --- a/lib/screens/onboarding_screens.dart +++ b/lib/screens/onboarding_screens.dart @@ -6,6 +6,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:function_types/function_types.dart'; import 'package:package_info/package_info.dart'; import 'package:provider/provider.dart'; +import 'package:time/time.dart'; import 'package:gitjournal/analytics.dart'; import 'package:gitjournal/app_settings.dart'; @@ -122,7 +123,7 @@ class OnBoardingScreenState extends State { padding: const EdgeInsets.all(16.0), ), bottomNavigationBar: AnimatedSwitcher( - duration: const Duration(milliseconds: 300), + duration: 300.milliseconds, child: bottomBar, ), ); @@ -139,7 +140,7 @@ class OnBoardingScreenState extends State { void _nextPage() { pageController.nextPage( - duration: const Duration(milliseconds: 200), + duration: 200.milliseconds, curve: Curves.easeIn, ); } diff --git a/lib/screens/settings_note_metadata.dart b/lib/screens/settings_note_metadata.dart index 1e7ad617..71599215 100644 --- a/lib/screens/settings_note_metadata.dart +++ b/lib/screens/settings_note_metadata.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:function_types/function_types.dart'; import 'package:provider/provider.dart'; +import 'package:time/time.dart'; import 'package:gitjournal/core/md_yaml_doc.dart'; import 'package:gitjournal/core/md_yaml_doc_codec.dart'; @@ -32,7 +33,7 @@ class _NoteMetadataSettingsScreenState void initState() { super.initState(); - created = DateTime.now().add(const Duration(days: -1)); + created = DateTime.now().subtract(1.days); modified = DateTime.now(); } diff --git a/lib/setup/repo_selector.dart b/lib/setup/repo_selector.dart index a04fa347..833c21c9 100644 --- a/lib/setup/repo_selector.dart +++ b/lib/setup/repo_selector.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:function_types/function_types.dart'; import 'package:intl/intl.dart'; +import 'package:time/time.dart'; import 'package:timeago/timeago.dart' as timeago; import 'package:gitjournal/analytics.dart'; @@ -323,8 +324,7 @@ class _SmartDateTime extends StatelessWidget { static final _dateFormat = DateFormat('d MMM yyyy'); static final _dateFormatWithoutYear = DateFormat('d MMM'); - static final thirtyDaysAgo = - DateTime.now().subtract(const Duration(days: 30)); + static final thirtyDaysAgo = DateTime.now().subtract(30.days); @override Widget build(BuildContext context) { diff --git a/lib/setup/screens.dart b/lib/setup/screens.dart index a5e40328..db157027 100644 --- a/lib/setup/screens.dart +++ b/lib/setup/screens.dart @@ -10,6 +10,7 @@ import 'package:function_types/function_types.dart'; import 'package:git_bindings/git_bindings.dart' as git_bindings; import 'package:path/path.dart' as p; import 'package:provider/provider.dart'; +import 'package:time/time.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:gitjournal/analytics.dart'; @@ -388,7 +389,7 @@ class GitHostSetupScreenState extends State { onWillPop: () async { if (_currentPageIndex != 0) { pageController.previousPage( - duration: const Duration(milliseconds: 200), + duration: 200.milliseconds, curve: Curves.easeIn, ); return false; @@ -402,7 +403,7 @@ class GitHostSetupScreenState extends State { void _nextPage() { pageController.nextPage( - duration: const Duration(milliseconds: 200), + duration: 200.milliseconds, curve: Curves.easeIn, ); } diff --git a/test/datetime_utils_test.dart b/test/datetime_utils_test.dart index 2d5c01e0..6a017d65 100644 --- a/test/datetime_utils_test.dart +++ b/test/datetime_utils_test.dart @@ -1,4 +1,5 @@ import 'package:test/test.dart'; +import 'package:time/time.dart'; import 'package:gitjournal/utils/datetime.dart'; @@ -20,29 +21,28 @@ void main() { test('Test with positive offset', () { var dateTime = DateTime.utc(2011, 6, 6, 5, 5, 3); - var str = toIso8601WithTimezone(dateTime, const Duration(hours: 2)); + var str = toIso8601WithTimezone(dateTime, 2.hours); expect(str, "2011-06-06T05:05:03+02:00"); }); test('Test with positive offset and minutes', () { var dateTime = DateTime.utc(2011, 6, 6, 5, 5, 3); - var str = toIso8601WithTimezone(dateTime, const Duration(hours: 10)); + var str = toIso8601WithTimezone(dateTime, 10.hours); expect(str, "2011-06-06T05:05:03+10:00"); }); test('Test with negative offset', () { var dateTime = DateTime.utc(2011, 6, 6, 5, 5, 3); - var str = toIso8601WithTimezone(dateTime, const Duration(hours: -5)); + var str = toIso8601WithTimezone(dateTime, -5.hours); expect(str, "2011-06-06T05:05:03-05:00"); }); test('Test with negative offset and minutes', () { var dateTime = DateTime.utc(2011, 6, 6, 5, 5, 3); - var str = toIso8601WithTimezone( - dateTime, const Duration(hours: -11, minutes: -30)); + var str = toIso8601WithTimezone(dateTime, -11.hours - 30.minutes); expect(str, "2011-06-06T05:05:03-11:30"); }); diff --git a/test_driver/main.dart b/test_driver/main.dart index c4aff3ef..29dc5547 100644 --- a/test_driver/main.dart +++ b/test_driver/main.dart @@ -6,6 +6,7 @@ import 'package:meta/meta.dart'; import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:time/time.dart'; import 'package:gitjournal/app.dart'; import 'package:gitjournal/app_settings.dart'; @@ -61,7 +62,7 @@ Future populateWithData(SharedPreferences pref) async { createNote( p.join(repoPath, "note-taking-apps.md"), - now.add(const Duration(days: -2)), + now.add(-2.days), body: """There seems to be an explosion of Note Taking apps. Here are some of the Open Sources ones that I have found - @@ -77,27 +78,27 @@ Future populateWithData(SharedPreferences pref) async { createNote( p.join(repoPath, "note3.md"), - now.add(const Duration(hours: -2)), + now.add(-2.hours), body: "What are the different models for building sustainable Open Source Software?", ); createNote( p.join(repoPath, "git-analogy.md"), - now.add(const Duration(hours: -5)), + now.add(-5.hours), body: "Perhaps Git could be explained as a virtual usb-drive", title: "Git Analogy", ); createNote( p.join(repoPath, "open-source-analytics.md"), - now.add(const Duration(hours: -5)), + now.add(-5.hours), body: "Research what Open Source Alternative Exist for App Analytics", ); createNote( p.join(repoPath, "lighting.md"), - now.add(const Duration(hours: -5)), + now.add(-5.hours), body: "But some lamps to make the office more cozy at night", ); } diff --git a/test_driver/main_test.dart b/test_driver/main_test.dart index c429510a..56916933 100644 --- a/test_driver/main_test.dart +++ b/test_driver/main_test.dart @@ -1,6 +1,7 @@ import 'package:flutter_driver/flutter_driver.dart'; import 'package:screenshots/screenshots.dart'; import 'package:test/test.dart'; +import 'package:time/time.dart'; import 'isolates_workaround.dart'; @@ -18,7 +19,7 @@ void main() { workaround = IsolatesWorkaround(driver); await workaround.resumeIsolates(); - await Future.delayed(const Duration(seconds: 15)); + await Future.delayed(15.seconds); }); // Close the connection to the driver after the tests have completed @@ -36,7 +37,7 @@ void main() { Future waitFor(SerializableFinder finder) async { try { - await driver.waitFor(finder, timeout: const Duration(seconds: 15)); + await driver.waitFor(finder, timeout: 15.seconds); } catch (e, st) { print(e); print(st); @@ -48,6 +49,8 @@ void main() { // FIXME: make waiting for common and comptuer a screenshot on exception test('Normal Flow', () async { + var delay = 100.milliseconds; + // OnBoarding var nextButton = find.text("Next"); await waitFor(nextButton); @@ -81,14 +84,14 @@ void main() { // Editor Selector var editorSelector = find.byValueKey("EditorSelector"); await driver.tap(editorSelector); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Raw Edtitor var rawEditor = find.text("Raw Editor"); await waitFor(rawEditor); await driver.tap(rawEditor); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Journal Editor @@ -96,7 +99,7 @@ void main() { var journalEditor = find.text("Journal Editor"); await waitFor(journalEditor); await driver.tap(journalEditor); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Go Back to home screen @@ -112,7 +115,7 @@ void main() { await _takeScreenshot(); await driver.tap(find.byValueKey("NewEntry")); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Create yet another note @@ -124,7 +127,7 @@ void main() { await _takeScreenshot(); await driver.tap(find.byValueKey("NewEntry")); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Capture Standard View's Sorting Options @@ -176,14 +179,14 @@ void main() { await _takeScreenshot(); await driver.tap(folderViewSelector); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Select Card View var cardView = find.text("Card View"); await waitFor(cardView); await driver.tap(cardView); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Select Journal View @@ -191,7 +194,7 @@ void main() { var journalView = find.text("Journal View"); await waitFor(journalView); await driver.tap(journalView); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Select Grid View @@ -199,21 +202,21 @@ void main() { var gridView = find.text("Grid View"); await waitFor(gridView); await driver.tap(gridView); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Select the Checklist var checklist = find.text("Shopping List"); await waitFor(checklist); await driver.tap(checklist); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); await driver.tap(find.byValueKey("NewEntry")); // Open the Drawer final drawerButtonFinder = find.byValueKey("DrawerButton"); await driver.tap(drawerButtonFinder); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // Folders View @@ -227,7 +230,7 @@ void main() { // Open the Drawer await driver.tap(drawerButtonFinder); - await Future.delayed(const Duration(milliseconds: 100)); + await Future.delayed(delay); await _takeScreenshot(); // The Git Host setup screen @@ -240,6 +243,6 @@ void main() { // Close the drawer // var app = find.byValueKey("App"); // await driver.scroll(app, -300.0, 0.0, const Duration(milliseconds: 300)); - }, timeout: const Timeout(Duration(minutes: 20))); + }, timeout: Timeout(20.minutes)); }); }