From 241ff1cab63d0dfdb85852d3d1af4ced1ec627be Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 25 Jan 2022 20:15:35 +0100 Subject: [PATCH] Move service logic out of main --- lib/main.dart | 36 +++-------------------------------- lib/services/database.dart | 15 +++++++++++++++ lib/services/licenses.dart | 14 ++++++++++++++ lib/services/preferences.dart | 7 +++++++ 4 files changed, 39 insertions(+), 33 deletions(-) create mode 100644 lib/services/database.dart create mode 100644 lib/services/licenses.dart create mode 100644 lib/services/preferences.dart diff --git a/lib/main.dart b/lib/main.dart index 0ffba2b..819e432 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,43 +1,13 @@ -import 'dart:convert'; -import 'dart:io'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart' show rootBundle; -import 'package:get_it/get_it.dart'; -import 'package:path/path.dart'; -import 'package:path_provider/path_provider.dart'; -import 'package:sembast/sembast.dart'; -import 'package:sembast/sembast_io.dart'; -import 'package:shared_preferences/shared_preferences.dart'; import 'bloc/theme/theme_bloc.dart'; import 'routing/router.dart'; +import 'services/database.dart'; +import 'services/licenses.dart'; +import 'services/preferences.dart'; import 'settings.dart'; -Future setupDatabase() async { - final Directory appDocDir = await getApplicationDocumentsDirectory(); - if (!appDocDir.existsSync()) appDocDir.createSync(recursive: true); - final Database database = - await databaseFactoryIo.openDatabase(join(appDocDir.path, 'sembast.db')); - GetIt.instance.registerSingleton(database); -} - -Future setupSharedPreferences() async { - final SharedPreferences prefs = await SharedPreferences.getInstance(); - GetIt.instance.registerSingleton(prefs); -} - -void registerExtraLicenses() => LicenseRegistry.addLicense(() async* { - final jsonString = await rootBundle.loadString('assets/licenses.json'); - final Map jsonData = jsonDecode(jsonString); - for (final license in jsonData.entries) - yield LicenseEntryWithLineBreaks( - [license.key], - await rootBundle.loadString(license.value as String), - ); - }); - Future main() async { WidgetsFlutterBinding.ensureInitialized(); diff --git a/lib/services/database.dart b/lib/services/database.dart new file mode 100644 index 0000000..a1cf55c --- /dev/null +++ b/lib/services/database.dart @@ -0,0 +1,15 @@ +import 'dart:io'; + +import 'package:get_it/get_it.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:sembast/sembast.dart'; +import 'package:sembast/sembast_io.dart'; + +Future setupDatabase() async { + final Directory appDocDir = await getApplicationDocumentsDirectory(); + if (!appDocDir.existsSync()) appDocDir.createSync(recursive: true); + final Database database = + await databaseFactoryIo.openDatabase(join(appDocDir.path, 'sembast.db')); + GetIt.instance.registerSingleton(database); +} diff --git a/lib/services/licenses.dart b/lib/services/licenses.dart new file mode 100644 index 0000000..3d8092c --- /dev/null +++ b/lib/services/licenses.dart @@ -0,0 +1,14 @@ +import 'dart:convert'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart' show rootBundle; + +void registerExtraLicenses() => LicenseRegistry.addLicense(() async* { + final jsonString = await rootBundle.loadString('assets/licenses.json'); + final Map jsonData = jsonDecode(jsonString); + for (final license in jsonData.entries) + yield LicenseEntryWithLineBreaks( + [license.key], + await rootBundle.loadString(license.value as String), + ); + }); diff --git a/lib/services/preferences.dart b/lib/services/preferences.dart new file mode 100644 index 0000000..29f4b3e --- /dev/null +++ b/lib/services/preferences.dart @@ -0,0 +1,7 @@ +import 'package:get_it/get_it.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +Future setupSharedPreferences() async { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + GetIt.instance.registerSingleton(prefs); +}