From 4afeea0dba56e532f3ca0f54b0a7805bd3142715 Mon Sep 17 00:00:00 2001 From: Jagandeep Brar Date: Thu, 17 Mar 2022 17:39:55 -0400 Subject: [PATCH] chore(dashboard): refactor module and remove canonical export files --- .vscode/cspell.json | 2 + lib/core.dart | 21 +--------- lib/core/go_router/page_router.dart | 8 ++++ lib/core/models/types/browser.dart | 2 - lib/core/modules.dart | 9 ++-- lib/core/router/module_router.dart | 3 +- lib/core/router/router.dart | 5 ++- lib/core/state/state.dart | 26 ++++++------ lib/core/system/flavor.dart | 1 - lib/main.dart | 5 ++- lib/modules/dashboard.dart | 2 - lib/modules/dashboard/core.dart | 6 --- lib/modules/dashboard/core/adapters.dart | 3 -- .../core/adapters/calendar_starting_day.dart | 3 +- .../core/adapters/calendar_starting_size.dart | 3 +- .../core/adapters/calendar_starting_type.dart | 2 +- lib/modules/dashboard/core/api.dart | 2 - lib/modules/dashboard/core/api/api.dart | 20 +++++---- lib/modules/dashboard/core/api/data.dart | 4 -- .../dashboard/core/api/data/lidarr.dart | 8 +++- .../dashboard/core/api/data/radarr.dart | 11 ++++- .../dashboard/core/api/data/sonarr.dart | 12 +++++- lib/modules/dashboard/core/database.dart | 9 +++- lib/modules/dashboard/core/dialogs.dart | 7 +++- lib/modules/dashboard/core/router.dart | 41 +++++++++++++++++-- lib/modules/dashboard/core/state.dart | 19 +++++---- lib/modules/dashboard/routes.dart | 3 -- lib/modules/dashboard/routes/calendar.dart | 2 - .../dashboard/routes/calendar/route.dart | 16 +++++--- .../dashboard/routes/calendar/widgets.dart | 1 - .../routes/calendar/widgets/calendar.dart | 29 +++++++++---- lib/modules/dashboard/routes/dashboard.dart | 2 - .../dashboard/routes/dashboard/route.dart | 22 ++++++---- .../dashboard/routes/dashboard/widgets.dart | 2 - .../widgets/appbar_switch_view_action.dart | 14 ++++--- lib/modules/dashboard/routes/modules.dart | 1 - .../dashboard/routes/modules/route.dart | 9 +++- lib/modules/external_modules/core/router.dart | 5 +++ lib/modules/lidarr/core/api/api.dart | 1 - .../lidarr/widgets/search_result_tile.dart | 5 ++- lib/modules/nzbget/core/api/api.dart | 2 - lib/modules/nzbget/core/api/data/history.dart | 2 +- lib/modules/nzbget/widgets/queue_tile.dart | 1 - lib/modules/overseerr/core/router.dart | 5 +++ lib/modules/radarr/core/router.dart | 5 +++ .../radarr/routes/catalogue/route.dart | 1 - lib/modules/sabnzbd/core/api/api.dart | 1 - lib/modules/sabnzbd/widgets/queue_tile.dart | 1 - lib/modules/search/core/api.dart | 2 - lib/modules/search/core/router.dart | 5 +++ lib/modules/settings/core/dialogs.dart | 14 +++++-- lib/modules/settings/core/router.dart | 5 +++ .../pages/calendar_settings.dart | 16 ++++++-- .../pages/default_pages.dart | 5 ++- lib/modules/sonarr/core/router.dart | 5 +++ .../sonarr/routes/catalogue/route.dart | 2 - .../core/extensions/tautulli_session.dart | 1 - lib/modules/tautulli/core/graphs/graph.dart | 1 - lib/modules/tautulli/core/router.dart | 5 +++ .../widgets/tautulli_tile.dart | 1 - lib/vendor.dart | 26 ++++++++++++ 61 files changed, 296 insertions(+), 156 deletions(-) create mode 100644 lib/core/go_router/page_router.dart delete mode 100644 lib/modules/dashboard.dart delete mode 100644 lib/modules/dashboard/core.dart delete mode 100644 lib/modules/dashboard/core/adapters.dart delete mode 100644 lib/modules/dashboard/core/api.dart delete mode 100644 lib/modules/dashboard/core/api/data.dart delete mode 100644 lib/modules/dashboard/routes.dart delete mode 100644 lib/modules/dashboard/routes/calendar.dart delete mode 100644 lib/modules/dashboard/routes/calendar/widgets.dart delete mode 100644 lib/modules/dashboard/routes/dashboard.dart delete mode 100644 lib/modules/dashboard/routes/dashboard/widgets.dart delete mode 100644 lib/modules/dashboard/routes/modules.dart create mode 100644 lib/vendor.dart diff --git a/.vscode/cspell.json b/.vscode/cspell.json index 881ebd53..d8e9deeb 100644 --- a/.vscode/cspell.json +++ b/.vscode/cspell.json @@ -27,6 +27,7 @@ "emdash", "fanart", "fastlane", + "Fluro", "hardlink", "keychain", "leechers", @@ -39,6 +40,7 @@ "podfile", "Radarr", "SABnzbd", + "scrollview", "sksl", "Sonarr", "stickied", diff --git a/lib/core.dart b/lib/core.dart index 646cfb46..1d3450d5 100644 --- a/lib/core.dart +++ b/lib/core.dart @@ -1,23 +1,4 @@ -// Packages -export 'package:cached_network_image/cached_network_image.dart'; -export 'package:expandable/expandable.dart'; -export 'package:fading_edge_scrollview/fading_edge_scrollview.dart'; -export 'package:flash/flash.dart'; -export 'package:fluro/fluro.dart'; -export 'package:hive/hive.dart'; -export 'package:hive_flutter/hive_flutter.dart'; -export 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart'; -export 'package:json_annotation/json_annotation.dart'; -export 'package:layout/layout.dart'; -export 'package:provider/provider.dart'; -export 'package:stash/stash_api.dart'; -export 'package:stash_memory/stash_memory.dart'; -export 'package:supercharged/supercharged.dart'; -export 'package:transparent_image/transparent_image.dart'; -export 'package:tuple/tuple.dart'; -// Dart -export 'dart:convert'; -// Local +export 'vendor.dart'; export 'core/assets.dart'; export 'core/cache.dart'; export 'core/database.dart'; diff --git a/lib/core/go_router/page_router.dart b/lib/core/go_router/page_router.dart new file mode 100644 index 00000000..205b227a --- /dev/null +++ b/lib/core/go_router/page_router.dart @@ -0,0 +1,8 @@ +import 'package:flutter/material.dart'; + +import '../../vendor.dart'; + +abstract class LunaPageGoRouter { + GoRoute get route; + Future go(BuildContext context); +} diff --git a/lib/core/models/types/browser.dart b/lib/core/models/types/browser.dart index fcf65dbf..1a4ec031 100644 --- a/lib/core/models/types/browser.dart +++ b/lib/core/models/types/browser.dart @@ -1,5 +1,3 @@ -import 'dart:math'; - import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; diff --git a/lib/core/modules.dart b/lib/core/modules.dart index b32805ac..907b6740 100644 --- a/lib/core/modules.dart +++ b/lib/core/modules.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:quick_actions/quick_actions.dart'; import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; import 'package:lunasea/modules/external_modules.dart'; import 'package:lunasea/modules/search.dart'; import 'package:lunasea/modules/settings.dart'; @@ -15,6 +14,10 @@ import 'package:lunasea/modules/sabnzbd.dart'; import 'package:lunasea/modules/nzbget.dart'; import 'package:lunasea/modules/tautulli.dart'; +import '../modules/dashboard/core/database.dart'; +import '../modules/dashboard/core/state.dart' as dashboard_state; +import '../modules/dashboard/routes/dashboard/route.dart' as dashboard_home; + part 'modules.g.dart'; const _DASHBOARD_KEY = 'dashboard'; @@ -267,7 +270,7 @@ extension LunaModuleExtension on LunaModule { String? get route { switch (this) { case LunaModule.DASHBOARD: - return DashboardHomeRouter().route(); + return dashboard_home.HomeRouter().route(); case LunaModule.LIDARR: return Lidarr.ROUTE_NAME; case LunaModule.NZBGET: @@ -359,7 +362,7 @@ extension LunaModuleExtension on LunaModule { case LunaModule.WAKE_ON_LAN: return null; case LunaModule.DASHBOARD: - return context.read(); + return context.read(); case LunaModule.SETTINGS: return context.read(); case LunaModule.SEARCH: diff --git a/lib/core/router/module_router.dart b/lib/core/router/module_router.dart index c354a996..77f60a1b 100644 --- a/lib/core/router/module_router.dart +++ b/lib/core/router/module_router.dart @@ -1,6 +1,7 @@ -import 'package:fluro/fluro.dart'; +import '../../vendor.dart'; abstract class LunaModuleRouter { /// Given the [FluroRouter], define all routes and handlers required for the module. void defineAllRoutes(FluroRouter router); + GoRoute getRoutes(); } diff --git a/lib/core/router/router.dart b/lib/core/router/router.dart index 21d3a8a1..d0a6ed0d 100644 --- a/lib/core/router/router.dart +++ b/lib/core/router/router.dart @@ -3,7 +3,6 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/main.dart'; -import 'package:lunasea/modules/dashboard.dart'; import 'package:lunasea/modules/external_modules.dart'; import 'package:lunasea/modules/search.dart'; import 'package:lunasea/modules/settings.dart'; @@ -16,6 +15,8 @@ import 'package:lunasea/modules/sabnzbd.dart'; import 'package:lunasea/modules/nzbget.dart'; import 'package:lunasea/modules/tautulli.dart'; +import '../../modules/dashboard/core/router.dart' as dashboard; + class LunaRouter { static FluroRouter router = FluroRouter(); static TransitionType get transitionType { @@ -35,7 +36,7 @@ class LunaRouter { transitionType: transitionType, ); // Module routers - DashboardRouter().defineAllRoutes(router); + dashboard.Router().defineAllRoutes(router); ExternalModulesRouter().defineAllRoutes(router); OverseerrRouter().defineAllRoutes(router); RadarrRouter().defineAllRoutes(router); diff --git a/lib/core/state/state.dart b/lib/core/state/state.dart index 8df075c9..6d9b62e7 100644 --- a/lib/core/state/state.dart +++ b/lib/core/state/state.dart @@ -1,17 +1,17 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; +import 'package:provider/provider.dart'; -import 'package:lunasea/modules/dashboard.dart'; -import 'package:lunasea/modules/search.dart'; -import 'package:lunasea/modules/settings.dart'; - -import 'package:lunasea/modules/lidarr.dart'; -import 'package:lunasea/modules/radarr.dart'; -import 'package:lunasea/modules/sonarr.dart'; -import 'package:lunasea/modules/overseerr.dart'; -import 'package:lunasea/modules/sabnzbd.dart'; -import 'package:lunasea/modules/nzbget.dart'; -import 'package:lunasea/modules/tautulli.dart'; +import '../../modules/dashboard/core/state.dart' as dashboard; +import '../../modules/lidarr/core/state.dart'; +import '../../modules/radarr/core/state.dart'; +import '../../modules/search/core/state.dart'; +import '../../modules/settings/core/state.dart'; +import '../../modules/sonarr/core/state.dart'; +import '../../modules/overseerr/core/state.dart'; +import '../../modules/sabnzbd/core/state.dart'; +import '../../modules/nzbget/core/state.dart'; +import '../../modules/tautulli/core/state.dart'; +import '../modules.dart'; class LunaState { LunaState._(); @@ -30,7 +30,7 @@ class LunaState { /// The [MultiProvider] has a [ChangeNotifierProvider] provider added for each module global state object. static MultiProvider providers({required Widget child}) => MultiProvider( providers: [ - ChangeNotifierProvider(create: (_) => DashboardState()), + ChangeNotifierProvider(create: (_) => dashboard.ModuleState()), ChangeNotifierProvider(create: (_) => SettingsState()), ChangeNotifierProvider(create: (_) => SearchState()), ChangeNotifierProvider(create: (_) => LidarrState()), diff --git a/lib/core/system/flavor.dart b/lib/core/system/flavor.dart index 6baf46b8..4cda2911 100644 --- a/lib/core/system/flavor.dart +++ b/lib/core/system/flavor.dart @@ -1,4 +1,3 @@ -import 'dart:math'; import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; import 'package:envify/envify.dart'; diff --git a/lib/main.dart b/lib/main.dart index 045eadf8..669d85d6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,7 +5,8 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; + +import 'modules/dashboard/routes/dashboard/route.dart' show HomeRouter; /// LunaSea Entry Point: Initialize & Run Application /// @@ -124,5 +125,5 @@ class _State extends State { } @override - Widget build(BuildContext context) => DashboardHomeRouter().widget(); + Widget build(BuildContext context) => HomeRouter().widget(); } diff --git a/lib/modules/dashboard.dart b/lib/modules/dashboard.dart deleted file mode 100644 index 183ccb7e..00000000 --- a/lib/modules/dashboard.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'dashboard/core.dart'; -export 'dashboard/routes.dart'; diff --git a/lib/modules/dashboard/core.dart b/lib/modules/dashboard/core.dart deleted file mode 100644 index f60f4b54..00000000 --- a/lib/modules/dashboard/core.dart +++ /dev/null @@ -1,6 +0,0 @@ -export 'core/adapters.dart'; -export 'core/api.dart'; -export 'core/database.dart'; -export 'core/dialogs.dart'; -export 'core/router.dart'; -export 'core/state.dart'; diff --git a/lib/modules/dashboard/core/adapters.dart b/lib/modules/dashboard/core/adapters.dart deleted file mode 100644 index 37803858..00000000 --- a/lib/modules/dashboard/core/adapters.dart +++ /dev/null @@ -1,3 +0,0 @@ -export 'adapters/calendar_starting_day.dart'; -export 'adapters/calendar_starting_size.dart'; -export 'adapters/calendar_starting_type.dart'; diff --git a/lib/modules/dashboard/core/adapters/calendar_starting_day.dart b/lib/modules/dashboard/core/adapters/calendar_starting_day.dart index a6a98fee..e919a22f 100644 --- a/lib/modules/dashboard/core/adapters/calendar_starting_day.dart +++ b/lib/modules/dashboard/core/adapters/calendar_starting_day.dart @@ -1,5 +1,4 @@ -import 'package:lunasea/core.dart'; -import 'package:table_calendar/table_calendar.dart'; +import '../../../../vendor.dart'; part 'calendar_starting_day.g.dart'; diff --git a/lib/modules/dashboard/core/adapters/calendar_starting_size.dart b/lib/modules/dashboard/core/adapters/calendar_starting_size.dart index af6e6553..7032d319 100644 --- a/lib/modules/dashboard/core/adapters/calendar_starting_size.dart +++ b/lib/modules/dashboard/core/adapters/calendar_starting_size.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:table_calendar/table_calendar.dart'; +import '../../../../vendor.dart'; part 'calendar_starting_size.g.dart'; diff --git a/lib/modules/dashboard/core/adapters/calendar_starting_type.dart b/lib/modules/dashboard/core/adapters/calendar_starting_type.dart index 30541e69..967249d2 100644 --- a/lib/modules/dashboard/core/adapters/calendar_starting_type.dart +++ b/lib/modules/dashboard/core/adapters/calendar_starting_type.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; +import '../../../../vendor.dart'; part 'calendar_starting_type.g.dart'; diff --git a/lib/modules/dashboard/core/api.dart b/lib/modules/dashboard/core/api.dart deleted file mode 100644 index 1d50e48f..00000000 --- a/lib/modules/dashboard/core/api.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'api/api.dart'; -export 'api/data.dart'; diff --git a/lib/modules/dashboard/core/api/api.dart b/lib/modules/dashboard/core/api/api.dart index c7dd8070..1766de72 100644 --- a/lib/modules/dashboard/core/api/api.dart +++ b/lib/modules/dashboard/core/api/api.dart @@ -1,20 +1,26 @@ -import 'package:dio/dio.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; +import '../../../../core/models/configuration/profile.dart'; +import '../../../../core/extensions.dart'; +import '../../../../core/ui.dart'; +import '../../../../vendor.dart'; +import '../database.dart'; +import 'data/abstract.dart'; +import 'data/lidarr.dart'; +import 'data/radarr.dart'; +import 'data/sonarr.dart'; -class CalendarAPI { +class API { final Map? lidarr; final Map? radarr; final Map? sonarr; - CalendarAPI._internal({ + API._internal({ required this.lidarr, required this.radarr, required this.sonarr, }); - factory CalendarAPI.from(ProfileHiveObject? profile) { - return CalendarAPI._internal( + factory API.from(ProfileHiveObject? profile) { + return API._internal( lidarr: profile?.getLidarr(), radarr: profile?.getRadarr(), sonarr: profile?.getSonarr(), diff --git a/lib/modules/dashboard/core/api/data.dart b/lib/modules/dashboard/core/api/data.dart deleted file mode 100644 index f55708d2..00000000 --- a/lib/modules/dashboard/core/api/data.dart +++ /dev/null @@ -1,4 +0,0 @@ -export 'data/abstract.dart'; -export 'data/lidarr.dart'; -export 'data/radarr.dart'; -export 'data/sonarr.dart'; diff --git a/lib/modules/dashboard/core/api/data/lidarr.dart b/lib/modules/dashboard/core/api/data/lidarr.dart index 4aecfa86..3bb83826 100644 --- a/lib/modules/dashboard/core/api/data/lidarr.dart +++ b/lib/modules/dashboard/core/api/data/lidarr.dart @@ -1,6 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/lidarr.dart'; + +import '../../../../../core/system/profile.dart'; +import '../../../../../core/ui.dart'; +import '../../../../lidarr/core/api/api.dart'; +import '../../../../lidarr/routes/details_artist.dart'; +import '../../../../lidarr/routes/search_results.dart'; import './abstract.dart'; class CalendarLidarrData extends CalendarData { diff --git a/lib/modules/dashboard/core/api/data/radarr.dart b/lib/modules/dashboard/core/api/data/radarr.dart index 4be76690..c715de1b 100644 --- a/lib/modules/dashboard/core/api/data/radarr.dart +++ b/lib/modules/dashboard/core/api/data/radarr.dart @@ -1,6 +1,13 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/radarr.dart'; + +import '../../../../../core/system/profile.dart'; +import '../../../../../core/extensions.dart'; +import '../../../../../core/ui.dart'; +import '../../../../../vendor.dart'; +import '../../../../radarr/core/api_helper.dart'; +import '../../../../radarr/core/state.dart'; +import '../../../../radarr/routes/movie_details/route.dart'; +import '../../../../radarr/routes/releases/route.dart'; import './abstract.dart'; class CalendarRadarrData extends CalendarData { diff --git a/lib/modules/dashboard/core/api/data/sonarr.dart b/lib/modules/dashboard/core/api/data/sonarr.dart index fe089edd..a3de45d1 100644 --- a/lib/modules/dashboard/core/api/data/sonarr.dart +++ b/lib/modules/dashboard/core/api/data/sonarr.dart @@ -1,6 +1,14 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/sonarr.dart'; + +import '../../../../../core/database/luna_database.dart'; +import '../../../../../core/system/profile.dart'; +import '../../../../../core/extensions.dart'; +import '../../../../../core/ui.dart'; +import '../../../../../core/utilities/logger.dart'; +import '../../../../../vendor.dart'; +import '../../../../sonarr/core/state.dart'; +import '../../../../sonarr/routes/releases/route.dart'; +import '../../../../sonarr/routes/series_details/route.dart'; import './abstract.dart'; class CalendarSonarrData extends CalendarData { diff --git a/lib/modules/dashboard/core/database.dart b/lib/modules/dashboard/core/database.dart index 912d63af..9624849c 100644 --- a/lib/modules/dashboard/core/database.dart +++ b/lib/modules/dashboard/core/database.dart @@ -1,6 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; + +import '../../../core/database/database.dart'; +import '../../../core/database/module_database.dart'; +import '../../../core/utilities/logger.dart'; +import 'adapters/calendar_starting_day.dart'; +import 'adapters/calendar_starting_size.dart'; +import 'adapters/calendar_starting_type.dart'; enum DashboardDatabaseValue { NAVIGATION_INDEX, diff --git a/lib/modules/dashboard/core/dialogs.dart b/lib/modules/dashboard/core/dialogs.dart index bf03a23e..4bc14890 100644 --- a/lib/modules/dashboard/core/dialogs.dart +++ b/lib/modules/dashboard/core/dialogs.dart @@ -1,6 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; + +import '../../../core/ui.dart'; +import '../../../vendor.dart'; +import '../routes/dashboard/widgets/navigation_bar.dart'; +import 'database.dart'; class DashboardDialogs { Future> defaultPage(BuildContext context) async { diff --git a/lib/modules/dashboard/core/router.dart b/lib/modules/dashboard/core/router.dart index 11cc7f90..8a7e1681 100644 --- a/lib/modules/dashboard/core/router.dart +++ b/lib/modules/dashboard/core/router.dart @@ -1,11 +1,44 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; -class DashboardRouter extends LunaModuleRouter { +import '../../../core/router/module_router.dart'; +import '../../../core/router/page_router.dart'; +import '../../../core/router/router.dart'; +import '../../../vendor.dart'; +import '../routes/dashboard/route.dart'; + +enum Routes { + HOME, +} + +extension RoutesExtension on Routes { + String get path { + switch (this) { + case Routes.HOME: + return '/dashboard'; + } + } + + DashboardPageRouter get router { + switch (this) { + case Routes.HOME: + return HomeRouter(); + } + } +} + +class Router extends LunaModuleRouter { @override void defineAllRoutes(FluroRouter router) { - DashboardHomeRouter().defineRoute(router); + Routes.values.forEach((r) => r.router.defineRoute(router)); + } + + @override + GoRoute getRoutes() { + return GoRoute( + path: Routes.HOME.path, + name: Routes.HOME.name, + builder: (context, state) => const Home(), + ); } } diff --git a/lib/modules/dashboard/core/state.dart b/lib/modules/dashboard/core/state.dart index 3a1c5882..a36b93ab 100644 --- a/lib/modules/dashboard/core/state.dart +++ b/lib/modules/dashboard/core/state.dart @@ -1,8 +1,13 @@ -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; +import '../../../core/models/configuration/profile.dart'; +import '../../../core/state/module_state.dart'; +import '../../../core/system/profile.dart'; +import 'adapters/calendar_starting_type.dart'; +import 'api/api.dart'; +import 'api/data/abstract.dart'; +import 'database.dart'; -class DashboardState extends LunaModuleState { - DashboardState() { +class ModuleState extends LunaModuleState { + ModuleState() { reset(); } @@ -21,11 +26,11 @@ class DashboardState extends LunaModuleState { notifyListeners(); } - CalendarAPI? _api; - CalendarAPI? get api => _api; + API? _api; + API? get api => _api; void resetAPI() { ProfileHiveObject? _profile = LunaProfile.current; - _api = CalendarAPI.from(_profile); + _api = API.from(_profile); notifyListeners(); } diff --git a/lib/modules/dashboard/routes.dart b/lib/modules/dashboard/routes.dart deleted file mode 100644 index 4a6191c3..00000000 --- a/lib/modules/dashboard/routes.dart +++ /dev/null @@ -1,3 +0,0 @@ -export 'routes/calendar.dart'; -export 'routes/dashboard.dart'; -export 'routes/modules.dart'; diff --git a/lib/modules/dashboard/routes/calendar.dart b/lib/modules/dashboard/routes/calendar.dart deleted file mode 100644 index 749f4c19..00000000 --- a/lib/modules/dashboard/routes/calendar.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'calendar/route.dart'; -export 'calendar/widgets.dart'; diff --git a/lib/modules/dashboard/routes/calendar/route.dart b/lib/modules/dashboard/routes/calendar/route.dart index 79f8de5f..2451fcf2 100644 --- a/lib/modules/dashboard/routes/calendar/route.dart +++ b/lib/modules/dashboard/routes/calendar/route.dart @@ -1,6 +1,12 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; + +import '../../../../core/mixins/load_callback.dart'; +import '../../../../core/ui.dart'; +import '../../../../core/utilities/logger.dart'; +import '../../../../vendor.dart'; +import '../../core/api/data/abstract.dart'; +import '../../core/state.dart'; +import 'widgets/calendar.dart'; class DashboardCalendarRoute extends StatefulWidget { const DashboardCalendarRoute({ @@ -21,8 +27,8 @@ class _State extends State @override Future loadCallback() async { - context.read().resetToday(); - context.read().resetUpcoming(); + context.read().resetToday(); + context.read().resetUpcoming(); } @override @@ -33,7 +39,7 @@ class _State extends State key: _refreshKey, onRefresh: loadCallback, child: FutureBuilder( - future: context.watch().upcoming, + future: context.watch().upcoming, builder: (context, snapshot) { if (snapshot.hasError) { if (snapshot.connectionState != ConnectionState.waiting) { diff --git a/lib/modules/dashboard/routes/calendar/widgets.dart b/lib/modules/dashboard/routes/calendar/widgets.dart deleted file mode 100644 index 5693ae1a..00000000 --- a/lib/modules/dashboard/routes/calendar/widgets.dart +++ /dev/null @@ -1 +0,0 @@ -export 'widgets/calendar.dart'; diff --git a/lib/modules/dashboard/routes/calendar/widgets/calendar.dart b/lib/modules/dashboard/routes/calendar/widgets/calendar.dart index 95b01c00..503390e2 100644 --- a/lib/modules/dashboard/routes/calendar/widgets/calendar.dart +++ b/lib/modules/dashboard/routes/calendar/widgets/calendar.dart @@ -1,9 +1,22 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; -import 'package:simple_gesture_detector/simple_gesture_detector.dart'; -import 'package:table_calendar/table_calendar.dart'; + +import '../../../../../core/database/database.dart'; +import '../../../../../core/modules.dart'; +import '../../../../../core/system/profile.dart'; +import '../../../../../core/extensions.dart'; +import '../../../../../core/ui.dart'; +import '../../../../../vendor.dart'; +import '../../../core/adapters/calendar_starting_day.dart'; +import '../../../core/adapters/calendar_starting_size.dart'; +import '../../../core/adapters/calendar_starting_type.dart'; +import '../../../core/api/data/abstract.dart'; +import '../../../core/api/data/lidarr.dart'; +import '../../../core/api/data/radarr.dart'; +import '../../../core/api/data/sonarr.dart'; +import '../../../core/database.dart'; +import '../../../core/state.dart'; +import '../../dashboard/widgets/navigation_bar.dart'; class DashboardCalendarWidget extends StatefulWidget { final Map>? events; @@ -50,7 +63,7 @@ class _State extends State { @override void initState() { super.initState(); - DateTime _floored = context.read().today!.lunaFloor; + DateTime _floored = context.read().today!.lunaFloor; _selected = _floored; _today = _floored; _selectedEvents = widget.events![_floored] ?? []; @@ -74,7 +87,7 @@ class _State extends State { scaffoldKey: _scaffoldKey, module: LunaModule.DASHBOARD, hideDrawer: true, - body: Selector( + body: Selector( selector: (_, state) => state.calendarStartingType, builder: (context, startingType, _) { if (startingType == CalendarStartingType.CALENDAR) { @@ -142,10 +155,10 @@ class _State extends State { DashboardDatabaseValue.CALENDAR_STARTING_SIZE.key, ]), builder: (context, dynamic box, _) { - DateTime firstDay = context.watch().today!.subtract( + DateTime firstDay = context.watch().today!.subtract( Duration(days: DashboardDatabaseValue.CALENDAR_DAYS_PAST.data), ); - DateTime lastDay = context.watch().today!.add( + DateTime lastDay = context.watch().today!.add( Duration(days: DashboardDatabaseValue.CALENDAR_DAYS_FUTURE.data), ); return SafeArea( diff --git a/lib/modules/dashboard/routes/dashboard.dart b/lib/modules/dashboard/routes/dashboard.dart deleted file mode 100644 index 72ec03c1..00000000 --- a/lib/modules/dashboard/routes/dashboard.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'dashboard/route.dart'; -export 'dashboard/widgets.dart'; diff --git a/lib/modules/dashboard/routes/dashboard/route.dart b/lib/modules/dashboard/routes/dashboard/route.dart index cdfc35e9..74b0a1a8 100644 --- a/lib/modules/dashboard/routes/dashboard/route.dart +++ b/lib/modules/dashboard/routes/dashboard/route.dart @@ -1,24 +1,32 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; -class DashboardHomeRouter extends DashboardPageRouter { - DashboardHomeRouter() : super('/dashboard'); +import '../../core/database.dart'; +import '../../core/router.dart'; +import '../calendar/route.dart'; +import '../modules/route.dart'; +import 'widgets/appbar_switch_view_action.dart'; +import 'widgets/navigation_bar.dart'; + +class HomeRouter extends DashboardPageRouter { + HomeRouter() : super('/dashboard'); @override - _DashboardHomeRoute widget() => _DashboardHomeRoute(); + Home widget() => const Home(); @override void defineRoute(FluroRouter router) => super.noParameterRouteDefinition(router); } -class _DashboardHomeRoute extends StatefulWidget { +class Home extends StatefulWidget { + const Home({Key? key}) : super(key: key); + @override - State<_DashboardHomeRoute> createState() => _State(); + State createState() => _State(); } -class _State extends State<_DashboardHomeRoute> { +class _State extends State { final _scaffoldKey = GlobalKey(); LunaPageController? _pageController; diff --git a/lib/modules/dashboard/routes/dashboard/widgets.dart b/lib/modules/dashboard/routes/dashboard/widgets.dart deleted file mode 100644 index 56f751d0..00000000 --- a/lib/modules/dashboard/routes/dashboard/widgets.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'widgets/appbar_switch_view_action.dart'; -export 'widgets/navigation_bar.dart'; diff --git a/lib/modules/dashboard/routes/dashboard/widgets/appbar_switch_view_action.dart b/lib/modules/dashboard/routes/dashboard/widgets/appbar_switch_view_action.dart index c1828673..f46dda01 100644 --- a/lib/modules/dashboard/routes/dashboard/widgets/appbar_switch_view_action.dart +++ b/lib/modules/dashboard/routes/dashboard/widgets/appbar_switch_view_action.dart @@ -1,6 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; +import 'package:provider/provider.dart'; + +import '../../../../../core/mixins/load_callback.dart'; +import '../../../../../core/ui.dart'; +import '../../../core/adapters/calendar_starting_type.dart'; +import '../../../core/state.dart'; class DashboardAppBarSwitchViewAction extends StatefulWidget { final PageController? pageController; @@ -44,7 +48,7 @@ class _State extends State @override Widget build(BuildContext context) { - return Selector( + return Selector( selector: (_, state) => state.calendarStartingType, builder: (context, view, _) { if (_showButton) { @@ -52,10 +56,10 @@ class _State extends State icon: view.icon, onPressed: () { if (view == CalendarStartingType.CALENDAR) { - context.read().calendarStartingType = + context.read().calendarStartingType = CalendarStartingType.SCHEDULE; } else { - context.read().calendarStartingType = + context.read().calendarStartingType = CalendarStartingType.CALENDAR; } }, diff --git a/lib/modules/dashboard/routes/modules.dart b/lib/modules/dashboard/routes/modules.dart deleted file mode 100644 index ed78b6ad..00000000 --- a/lib/modules/dashboard/routes/modules.dart +++ /dev/null @@ -1 +0,0 @@ -export 'modules/route.dart'; diff --git a/lib/modules/dashboard/routes/modules/route.dart b/lib/modules/dashboard/routes/modules/route.dart index fadfebcc..3cd56673 100644 --- a/lib/modules/dashboard/routes/modules/route.dart +++ b/lib/modules/dashboard/routes/modules/route.dart @@ -1,8 +1,13 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; import 'package:lunasea/modules/wake_on_lan.dart'; +import '../../../../core/database/luna_database.dart'; +import '../../../../core/modules.dart'; +import '../../../../core/system/profile.dart'; +import '../../../../core/ui.dart'; +import '../../../../core/utilities/logger.dart'; +import '../dashboard/widgets/navigation_bar.dart'; + class DashboardModulesRoute extends StatefulWidget { const DashboardModulesRoute({ Key? key, diff --git a/lib/modules/external_modules/core/router.dart b/lib/modules/external_modules/core/router.dart index 2fe3f3ae..f8a368b2 100644 --- a/lib/modules/external_modules/core/router.dart +++ b/lib/modules/external_modules/core/router.dart @@ -7,6 +7,11 @@ class ExternalModulesRouter extends LunaModuleRouter { void defineAllRoutes(FluroRouter router) { ExternalModulesHomeRouter().defineRoute(router); } + + @override + GoRoute getRoutes() { + return GoRoute(path: '/external_modules'); + } } abstract class ExternalModulesPageRouter extends LunaPageRouter { diff --git a/lib/modules/lidarr/core/api/api.dart b/lib/modules/lidarr/core/api/api.dart index 1cb5b5ee..08d7db4f 100644 --- a/lib/modules/lidarr/core/api/api.dart +++ b/lib/modules/lidarr/core/api/api.dart @@ -1,4 +1,3 @@ -import 'package:dio/dio.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/modules/lidarr.dart'; diff --git a/lib/modules/lidarr/widgets/search_result_tile.dart b/lib/modules/lidarr/widgets/search_result_tile.dart index 48428656..5c30b3d0 100644 --- a/lib/modules/lidarr/widgets/search_result_tile.dart +++ b/lib/modules/lidarr/widgets/search_result_tile.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; import 'package:lunasea/modules/lidarr.dart'; +import '../../dashboard/routes/dashboard/route.dart' as dashboard_home; + class LidarrReleasesTile extends StatefulWidget { final LidarrReleaseData release; @@ -150,7 +151,7 @@ class _State extends State { return !route.willHandlePopInternally && route is ModalRoute && (route.settings.name == Lidarr.ROUTE_NAME || - route.settings.name == DashboardHomeRouter().fullRoute); + route.settings.name == dashboard_home.HomeRouter().fullRoute); }), ); }).catchError((error, stack) { diff --git a/lib/modules/nzbget/core/api/api.dart b/lib/modules/nzbget/core/api/api.dart index 03fffb25..01b5a818 100644 --- a/lib/modules/nzbget/core/api/api.dart +++ b/lib/modules/nzbget/core/api/api.dart @@ -1,5 +1,3 @@ -import 'dart:math'; -import 'package:dio/dio.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/modules/nzbget.dart'; diff --git a/lib/modules/nzbget/core/api/data/history.dart b/lib/modules/nzbget/core/api/data/history.dart index 476a9c77..4107839f 100644 --- a/lib/modules/nzbget/core/api/data/history.dart +++ b/lib/modules/nzbget/core/api/data/history.dart @@ -1,4 +1,4 @@ -import 'dart:math'; + import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; diff --git a/lib/modules/nzbget/widgets/queue_tile.dart b/lib/modules/nzbget/widgets/queue_tile.dart index 80bd0452..2e137ca5 100644 --- a/lib/modules/nzbget/widgets/queue_tile.dart +++ b/lib/modules/nzbget/widgets/queue_tile.dart @@ -1,4 +1,3 @@ -import 'dart:math'; import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/modules/nzbget.dart'; diff --git a/lib/modules/overseerr/core/router.dart b/lib/modules/overseerr/core/router.dart index 48fc300e..22cfeba6 100644 --- a/lib/modules/overseerr/core/router.dart +++ b/lib/modules/overseerr/core/router.dart @@ -7,6 +7,11 @@ class OverseerrRouter extends LunaModuleRouter { void defineAllRoutes(FluroRouter router) { OverseerrHomeRouter().defineRoute(router); } + + @override + GoRoute getRoutes() { + return GoRoute(path: '/overseerr'); + } } abstract class OverseerrPageRouter extends LunaPageRouter { diff --git a/lib/modules/radarr/core/router.dart b/lib/modules/radarr/core/router.dart index 241e27d3..edd7c36e 100644 --- a/lib/modules/radarr/core/router.dart +++ b/lib/modules/radarr/core/router.dart @@ -18,6 +18,11 @@ class RadarrRouter extends LunaModuleRouter { RadarrSystemStatusRouter().defineRoute(router); RadarrTagsRouter().defineRoute(router); } + + @override + GoRoute getRoutes() { + return GoRoute(path: '/radarr'); + } } abstract class RadarrPageRouter extends LunaPageRouter { diff --git a/lib/modules/radarr/routes/catalogue/route.dart b/lib/modules/radarr/routes/catalogue/route.dart index e7630daa..ac819d52 100644 --- a/lib/modules/radarr/routes/catalogue/route.dart +++ b/lib/modules/radarr/routes/catalogue/route.dart @@ -1,4 +1,3 @@ -import 'dart:math'; import 'package:collection/collection.dart' show IterableExtension; import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; diff --git a/lib/modules/sabnzbd/core/api/api.dart b/lib/modules/sabnzbd/core/api/api.dart index ea3a707d..a817a9aa 100644 --- a/lib/modules/sabnzbd/core/api/api.dart +++ b/lib/modules/sabnzbd/core/api/api.dart @@ -1,4 +1,3 @@ -import 'package:dio/dio.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/modules/sabnzbd.dart'; diff --git a/lib/modules/sabnzbd/widgets/queue_tile.dart b/lib/modules/sabnzbd/widgets/queue_tile.dart index 0bf75ed5..c4211fcc 100644 --- a/lib/modules/sabnzbd/widgets/queue_tile.dart +++ b/lib/modules/sabnzbd/widgets/queue_tile.dart @@ -1,4 +1,3 @@ -import 'dart:math'; import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/modules/sabnzbd.dart'; diff --git a/lib/modules/search/core/api.dart b/lib/modules/search/core/api.dart index 58dde139..6e214a42 100644 --- a/lib/modules/search/core/api.dart +++ b/lib/modules/search/core/api.dart @@ -1,7 +1,5 @@ -import 'package:dio/dio.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/modules/search.dart'; -import 'package:xml/xml.dart'; class NewznabAPI { static const _USER_AGENT = diff --git a/lib/modules/search/core/router.dart b/lib/modules/search/core/router.dart index f66a8464..8c75bc73 100644 --- a/lib/modules/search/core/router.dart +++ b/lib/modules/search/core/router.dart @@ -11,6 +11,11 @@ class SearchRouter extends LunaModuleRouter { SearchResultsRouter().defineRoute(router); SearchSearchRouter().defineRoute(router); } + + @override + GoRoute getRoutes() { + return GoRoute(path: '/search'); + } } abstract class SearchPageRouter extends LunaPageRouter { diff --git a/lib/modules/settings/core/dialogs.dart b/lib/modules/settings/core/dialogs.dart index 340153e9..e7404e23 100644 --- a/lib/modules/settings/core/dialogs.dart +++ b/lib/modules/settings/core/dialogs.dart @@ -1,9 +1,17 @@ import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; -import 'package:lunasea/modules/settings.dart'; +import 'package:lunasea/modules/settings/core/types/header.dart'; +import 'package:tuple/tuple.dart'; import 'package:wake_on_lan/wake_on_lan.dart'; +import '../../../core/database/luna_database.dart'; +import '../../../core/firebase/types/backup_document.dart'; +import '../../../core/models/types/browser.dart'; +import '../../../core/system/localization.dart'; +import '../../../core/ui.dart'; +import '../../dashboard/core/adapters/calendar_starting_day.dart'; +import '../../dashboard/core/adapters/calendar_starting_size.dart'; +import '../../dashboard/core/adapters/calendar_starting_type.dart'; + class SettingsDialogs { Future> setDefaultOption( BuildContext context, { diff --git a/lib/modules/settings/core/router.dart b/lib/modules/settings/core/router.dart index d96ca0ea..cde16a05 100644 --- a/lib/modules/settings/core/router.dart +++ b/lib/modules/settings/core/router.dart @@ -82,6 +82,11 @@ class SettingsRouter extends LunaModuleRouter { SettingsSystemLogsRouter().defineRoute(router); SettingsSystemLogsDetailsRouter().defineRoute(router); } + + @override + GoRoute getRoutes() { + return GoRoute(path: '/settings'); + } } abstract class SettingsPageRouter extends LunaPageRouter { diff --git a/lib/modules/settings/routes/configuration_dashboard/pages/calendar_settings.dart b/lib/modules/settings/routes/configuration_dashboard/pages/calendar_settings.dart index df328f91..876e7623 100644 --- a/lib/modules/settings/routes/configuration_dashboard/pages/calendar_settings.dart +++ b/lib/modules/settings/routes/configuration_dashboard/pages/calendar_settings.dart @@ -1,7 +1,17 @@ +import 'package:fluro/fluro.dart'; import 'package:flutter/material.dart'; -import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; -import 'package:lunasea/modules/settings.dart'; +import 'package:tuple/tuple.dart'; + +import '../../../../../core/mixins/scroll_controller.dart'; +import '../../../../../core/modules.dart'; +import '../../../../../core/ui.dart'; +import '../../../../dashboard/core/adapters/calendar_starting_day.dart'; +import '../../../../dashboard/core/adapters/calendar_starting_size.dart'; +import '../../../../dashboard/core/adapters/calendar_starting_type.dart'; +import '../../../../dashboard/core/database.dart'; +import '../../../../dashboard/core/dialogs.dart'; +import '../../../core/dialogs.dart'; +import '../../../core/router.dart'; class SettingsConfigurationDashboardCalendarSettingsRouter extends SettingsPageRouter { diff --git a/lib/modules/settings/routes/configuration_dashboard/pages/default_pages.dart b/lib/modules/settings/routes/configuration_dashboard/pages/default_pages.dart index babf1656..f7ed9448 100644 --- a/lib/modules/settings/routes/configuration_dashboard/pages/default_pages.dart +++ b/lib/modules/settings/routes/configuration_dashboard/pages/default_pages.dart @@ -1,8 +1,11 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; -import 'package:lunasea/modules/dashboard.dart'; import 'package:lunasea/modules/settings.dart'; +import '../../../../dashboard/core/database.dart'; +import '../../../../dashboard/core/dialogs.dart'; +import '../../../../dashboard/routes/dashboard/widgets/navigation_bar.dart'; + class SettingsConfigurationDashboardDefaultPagesRouter extends SettingsPageRouter { SettingsConfigurationDashboardDefaultPagesRouter() diff --git a/lib/modules/sonarr/core/router.dart b/lib/modules/sonarr/core/router.dart index 088ab036..0fa185c9 100644 --- a/lib/modules/sonarr/core/router.dart +++ b/lib/modules/sonarr/core/router.dart @@ -18,6 +18,11 @@ class SonarrRouter extends LunaModuleRouter { SonarrReleasesRouter().defineRoute(router); SonarrTagsRouter().defineRoute(router); } + + @override + GoRoute getRoutes() { + return GoRoute(path: '/sonarr'); + } } abstract class SonarrPageRouter extends LunaPageRouter { diff --git a/lib/modules/sonarr/routes/catalogue/route.dart b/lib/modules/sonarr/routes/catalogue/route.dart index 74a3a310..56b72abd 100644 --- a/lib/modules/sonarr/routes/catalogue/route.dart +++ b/lib/modules/sonarr/routes/catalogue/route.dart @@ -1,5 +1,3 @@ -import 'dart:math'; - import 'package:collection/collection.dart' show IterableExtension; import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; diff --git a/lib/modules/tautulli/core/extensions/tautulli_session.dart b/lib/modules/tautulli/core/extensions/tautulli_session.dart index ac09cc42..4e402f29 100644 --- a/lib/modules/tautulli/core/extensions/tautulli_session.dart +++ b/lib/modules/tautulli/core/extensions/tautulli_session.dart @@ -1,4 +1,3 @@ -import 'dart:math'; import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/modules/tautulli.dart'; diff --git a/lib/modules/tautulli/core/graphs/graph.dart b/lib/modules/tautulli/core/graphs/graph.dart index a6cf07c4..817d0151 100644 --- a/lib/modules/tautulli/core/graphs/graph.dart +++ b/lib/modules/tautulli/core/graphs/graph.dart @@ -1,4 +1,3 @@ -import 'dart:math'; import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; diff --git a/lib/modules/tautulli/core/router.dart b/lib/modules/tautulli/core/router.dart index abd1f4ac..d82c16de 100644 --- a/lib/modules/tautulli/core/router.dart +++ b/lib/modules/tautulli/core/router.dart @@ -30,6 +30,11 @@ class TautulliRouter extends LunaModuleRouter { TautulliLogsPlexMediaServerRouter().defineRoute(router); TautulliLogsTautulliRouter().defineRoute(router); } + + @override + GoRoute getRoutes() { + return GoRoute(path: '/tautulli'); + } } abstract class TautulliPageRouter extends LunaPageRouter { diff --git a/lib/modules/tautulli/routes/check_for_updates/widgets/tautulli_tile.dart b/lib/modules/tautulli/routes/check_for_updates/widgets/tautulli_tile.dart index 980f6b1f..c82fde22 100644 --- a/lib/modules/tautulli/routes/check_for_updates/widgets/tautulli_tile.dart +++ b/lib/modules/tautulli/routes/check_for_updates/widgets/tautulli_tile.dart @@ -1,4 +1,3 @@ -import 'dart:math'; import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/modules/tautulli.dart'; diff --git a/lib/vendor.dart b/lib/vendor.dart new file mode 100644 index 00000000..61f2c835 --- /dev/null +++ b/lib/vendor.dart @@ -0,0 +1,26 @@ +// Dart +export 'dart:convert'; +export 'dart:math'; +// Packages +export 'package:cached_network_image/cached_network_image.dart'; +export 'package:dio/dio.dart'; +export 'package:easy_localization/easy_localization.dart'; +export 'package:expandable/expandable.dart'; +export 'package:fading_edge_scrollview/fading_edge_scrollview.dart'; +export 'package:flash/flash.dart'; +export 'package:fluro/fluro.dart'; +export 'package:go_router/go_router.dart'; +export 'package:hive/hive.dart'; +export 'package:hive_flutter/hive_flutter.dart'; +export 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart'; +export 'package:json_annotation/json_annotation.dart'; +export 'package:layout/layout.dart'; +export 'package:provider/provider.dart'; +export 'package:simple_gesture_detector/simple_gesture_detector.dart'; +export 'package:stash/stash_api.dart'; +export 'package:stash_memory/stash_memory.dart'; +export 'package:supercharged/supercharged.dart'; +export 'package:table_calendar/table_calendar.dart'; +export 'package:transparent_image/transparent_image.dart'; +export 'package:tuple/tuple.dart'; +export 'package:xml/xml.dart';