Use time.dart

I'm sacrificing const code for readability. So maybe I'll lose a bit of
performance, but this is so much easier to read.
This commit is contained in:
Vishesh Handa
2020-11-10 19:07:09 +01:00
parent 5507953be9
commit 5571fdb65e
13 changed files with 54 additions and 41 deletions

View File

@ -179,7 +179,7 @@ class Graph extends ChangeNotifier {
});
/*
Timer(const Duration(seconds: 5), () {
Timer(5.seconds, () {
if (layoutTimer != null) {
layoutTimer.cancel();
layoutTimer = null;

View File

@ -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<ChecklistEditor>
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<ChecklistEditor>
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<ChecklistEditor>
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);

View File

@ -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,
),

View File

@ -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<MyHomePage> {
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();
}

View File

@ -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();
});
});

View File

@ -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<DebugScreen> {
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<DebugScreen> {
void _scrollToBottom() {
_controller.animateTo(
_controller.position.maxScrollExtent,
duration: const Duration(milliseconds: 10),
duration: 10.milliseconds,
curve: Curves.easeOut,
);
}

View File

@ -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<OnBoardingScreen> {
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<OnBoardingScreen> {
void _nextPage() {
pageController.nextPage(
duration: const Duration(milliseconds: 200),
duration: 200.milliseconds,
curve: Curves.easeIn,
);
}

View File

@ -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();
}

View File

@ -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) {

View File

@ -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<GitHostSetupScreen> {
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<GitHostSetupScreen> {
void _nextPage() {
pageController.nextPage(
duration: const Duration(milliseconds: 200),
duration: 200.milliseconds,
curve: Curves.easeIn,
);
}

View File

@ -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");
});

View File

@ -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<void> 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<void> 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",
);
}

View File

@ -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<void> 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));
});
}