Skip to content

Commit

Permalink
fix(database): correctly store manually ordered module list
Browse files Browse the repository at this point in the history
  • Loading branch information
JagandeepBrar committed Jun 1, 2022
1 parent a0eaca0 commit 8fe81d1
Show file tree
Hide file tree
Showing 42 changed files with 177 additions and 268 deletions.
2 changes: 1 addition & 1 deletion lib/core/models/configuration/profile.dart
Expand Up @@ -414,7 +414,7 @@ class ProfileHiveObject extends HiveObject {
};

bool get anythingEnabled {
for (LunaModule module in LunaModule.DASHBOARD.allModules()) {
for (final module in LunaModule.active) {
if (module.isEnabled) return true;
}
return false;
Expand Down
28 changes: 12 additions & 16 deletions lib/core/modules.dart
Expand Up @@ -61,7 +61,18 @@ enum LunaModule {
@HiveField(9)
TAUTULLI,
@HiveField(10)
WAKE_ON_LAN,
WAKE_ON_LAN;

/// Returns a list of all system-enabled modules.
///
/// Internal modules (dashboard, settings, etc.) are removed by default.
static List<LunaModule> get active {
return LunaModule.values.filter((m) {
if (m == LunaModule.DASHBOARD) return false;
if (m == LunaModule.SETTINGS) return false;
return m.featureFlag;
}).toList();
}
}

extension LunaModuleExtension on LunaModule {
Expand Down Expand Up @@ -95,21 +106,6 @@ extension LunaModuleExtension on LunaModule {
}
}

/// Returns a list of all system-enabled modules.
///
/// Internal modules (dashboard, settings, etc.) are removed by default.
List<LunaModule> allModules({
bool removeInternalModules = true,
}) {
List<LunaModule> _modules =
LunaModule.values.filter((module) => module.featureFlag).toList();
if (removeInternalModules) {
_modules.remove(LunaModule.DASHBOARD);
_modules.remove(LunaModule.SETTINGS);
}
return _modules;
}

/// Used to convert a string key back to a [LunaModule] value.
///
/// If the key is not found, returns null.
Expand Down
1 change: 1 addition & 0 deletions lib/database/database.dart
Expand Up @@ -20,6 +20,7 @@ class LunaDatabase {
for (final table in LunaTable.values) table.items[0].registerAdapters();
for (final box in LunaBox.values) await box.open();
if (LunaBox.profiles.box.isEmpty) await bootstrap();
// await bootstrap();
}

Future<void> bootstrap() async {
Expand Down
13 changes: 7 additions & 6 deletions lib/database/tables/lunasea.dart
Expand Up @@ -13,7 +13,7 @@ import 'package:lunasea/widgets/ui.dart';

enum LunaSeaDatabase<T> with LunaTableMixin<T> {
DRAWER_AUTOMATIC_MANAGE<bool>(true),
DRAWER_MANUAL_ORDER<List<LunaModule>?>(null),
DRAWER_MANUAL_ORDER<List>([]),
ENABLED_PROFILE<String>('default'),
NETWORKING_TLS_VALIDATION<bool>(false),
THEME_AMOLED<bool>(false),
Expand Down Expand Up @@ -76,11 +76,12 @@ enum LunaSeaDatabase<T> with LunaTableMixin<T> {
return;
}
if (this == LunaSeaDatabase.DRAWER_MANUAL_ORDER) {
final item = (value as List)
.map((module) => LunaModule.DASHBOARD.fromKey(module))
.toList();
item.removeWhere((i) => i == null);
update(item.cast<LunaModule>() as T);
List<LunaModule> item = [];
(value as List).cast<String>().forEach((val) {
LunaModule? module = LunaModule.DASHBOARD.fromKey(val);
if (module != null) item.add(module);
});
update(item as T);
return;
}
return super.import(value);
Expand Down
2 changes: 1 addition & 1 deletion lib/database/tables/sonarr.dart
Expand Up @@ -21,7 +21,7 @@ enum SonarrDatabase<T> with LunaTableMixin<T> {
ADD_SERIES_DEFAULT_LANGUAGE_PROFILE<int?>(null),
ADD_SERIES_DEFAULT_QUALITY_PROFILE<int?>(null),
ADD_SERIES_DEFAULT_ROOT_FOLDER<int?>(null),
ADD_SERIES_DEFAULT_TAGS<List?>(null),
ADD_SERIES_DEFAULT_TAGS<List>([]),
DEFAULT_VIEW_SERIES<LunaListViewOption>(LunaListViewOption.BLOCK_VIEW),
DEFAULT_FILTERING_SERIES<SonarrSeriesFilter>(SonarrSeriesFilter.ALL),
DEFAULT_FILTERING_RELEASES<SonarrReleasesFilter>(SonarrReleasesFilter.ALL),
Expand Down
28 changes: 13 additions & 15 deletions lib/main.dart
Expand Up @@ -68,21 +68,19 @@ class LunaBIOS extends StatelessWidget {
LunaSeaDatabase.THEME_AMOLED_BORDER.key,
]),
builder: (context, dynamic box, _) {
return Layout(
child: MaterialApp(
localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales,
locale: context.locale,
builder: DevicePreview.appBuilder,
routes: router.routes,
useInheritedMediaQuery: true,
onGenerateRoute: LunaRouter.router.generator,
navigatorKey: LunaState.navigatorKey,
darkTheme: theme.activeTheme(),
theme: theme.activeTheme(),
scrollBehavior: LunaScrollBehavior(),
title: 'LunaSea',
),
return MaterialApp(
localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales,
locale: context.locale,
builder: DevicePreview.appBuilder,
routes: router.routes,
useInheritedMediaQuery: true,
onGenerateRoute: LunaRouter.router.generator,
navigatorKey: LunaState.navigatorKey,
darkTheme: theme.activeTheme(),
theme: theme.activeTheme(),
scrollBehavior: LunaScrollBehavior(),
title: 'LunaSea',
);
},
),
Expand Down
2 changes: 1 addition & 1 deletion lib/modules/dashboard/routes/dashboard/pages/modules.dart
Expand Up @@ -46,7 +46,7 @@ class _State extends State<ModulesPage> with AutomaticKeepAliveClientMixin {
List<Widget> _buildAlphabeticalList() {
List<Widget> modules = [];
int index = 0;
LunaModule.DASHBOARD.allModules()
LunaModule.active
..sort((a, b) => a.name.toLowerCase().compareTo(
b.name.toLowerCase(),
))
Expand Down
1 change: 0 additions & 1 deletion lib/modules/overseerr/routes/issues/route.dart
Expand Up @@ -24,7 +24,6 @@ class _State extends State<OverseerrIssuesRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.OVERSEERR,
hideDrawer: true,
body: const OverseerrIssuesListView(),
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/overseerr/routes/requests/route.dart
Expand Up @@ -24,7 +24,6 @@ class _State extends State<OverseerrRequestsRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.OVERSEERR,
hideDrawer: true,
body: const OverseerrRequestsListView(),
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/overseerr/routes/users/route.dart
Expand Up @@ -24,7 +24,6 @@ class _State extends State<OverseerrUserRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.OVERSEERR,
hideDrawer: true,
body: const OverseerrUserListView(),
);
}
Expand Down
5 changes: 2 additions & 3 deletions lib/modules/radarr/routes/catalogue/route.dart
Expand Up @@ -39,12 +39,11 @@ class _State extends State<RadarrCatalogueRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
body: _body(),
appBar: _appBar() as PreferredSizeWidget?,
hideDrawer: true,
appBar: _appBar(),
);
}

Widget _appBar() {
PreferredSizeWidget _appBar() {
return LunaAppBar.empty(
child: RadarrCatalogueSearchBar(
scrollController: RadarrNavigationBar.scrollControllers[0],
Expand Down
1 change: 0 additions & 1 deletion lib/modules/radarr/routes/missing/route.dart
Expand Up @@ -27,7 +27,6 @@ class _State extends State<RadarrMissingRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
body: _body,
hideDrawer: true,
);
}

Expand Down
1 change: 0 additions & 1 deletion lib/modules/radarr/routes/more/route.dart
Expand Up @@ -22,7 +22,6 @@ class _State extends State<RadarrMoreRoute> with AutomaticKeepAliveClientMixin {
super.build(context);
return LunaScaffold(
scaffoldKey: _scaffoldKey,
hideDrawer: true,
body: _body(),
);
}
Expand Down
Expand Up @@ -28,7 +28,6 @@ class _State extends State<RadarrMovieDetailsCastCrewPage>
super.build(context);
return LunaScaffold(
module: LunaModule.RADARR,
hideDrawer: true,
scaffoldKey: _scaffoldKey,
body: _body(),
);
Expand Down
Expand Up @@ -25,7 +25,6 @@ class _State extends State<RadarrMovieDetailsFilesPage>
super.build(context);
return LunaScaffold(
module: LunaModule.RADARR,
hideDrawer: true,
scaffoldKey: _scaffoldKey,
body: _body(),
);
Expand Down
Expand Up @@ -28,7 +28,6 @@ class _State extends State<RadarrMovieDetailsHistoryPage>
super.build(context);
return LunaScaffold(
module: LunaModule.RADARR,
hideDrawer: true,
scaffoldKey: _scaffoldKey,
body: _body(),
);
Expand Down
Expand Up @@ -30,7 +30,6 @@ class _State extends State<RadarrMovieDetailsOverviewPage>
super.build(context);
return LunaScaffold(
module: LunaModule.RADARR,
hideDrawer: true,
scaffoldKey: _scaffoldKey,
body: Selector<RadarrState, Future<List<RadarrMovie>>?>(
selector: (_, state) => state.movies,
Expand Down
1 change: 0 additions & 1 deletion lib/modules/radarr/routes/upcoming/route.dart
Expand Up @@ -27,7 +27,6 @@ class _State extends State<RadarrUpcomingRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
body: _body,
hideDrawer: true,
);
}

Expand Down
2 changes: 1 addition & 1 deletion lib/modules/settings/routes/configuration/route.dart
Expand Up @@ -103,7 +103,7 @@ class _State extends State<_Widget> with LunaScrollControllerMixin {
}

List<Widget> _moduleList() {
return ([LunaModule.DASHBOARD, ...LunaModule.DASHBOARD.allModules()])
return ([LunaModule.DASHBOARD, ...LunaModule.active])
.map(_tileFromModuleMap)
.toList();
}
Expand Down
Expand Up @@ -75,7 +75,7 @@ class _State extends State<_Widget> with LunaScrollControllerMixin {
LunaModule module = _modules![oIndex];
_modules!.remove(module);
_modules!.insert(nIndex, module);
LunaSeaDatabase.DRAWER_MANUAL_ORDER.update(_modules);
LunaSeaDatabase.DRAWER_MANUAL_ORDER.update(_modules!);
},
),
),
Expand Down
4 changes: 2 additions & 2 deletions lib/modules/sonarr/routes/add_series_details/state.dart
Expand Up @@ -128,8 +128,8 @@ class SonarrSeriesAddDetailsState extends ChangeNotifier {

void initializeTags(List<SonarrTag> tags) {
_tags = tags
.where((tag) => (SonarrDatabase.ADD_SERIES_DEFAULT_TAGS.read() ?? [])
.contains(tag.id))
.where((tag) =>
(SonarrDatabase.ADD_SERIES_DEFAULT_TAGS.read()).contains(tag.id))
.toList();
}

Expand Down
5 changes: 2 additions & 3 deletions lib/modules/sonarr/routes/catalogue/route.dart
Expand Up @@ -42,13 +42,12 @@ class _State extends State<SonarrCatalogueRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.SONARR,
hideDrawer: true,
body: _body(),
appBar: _appBar() as PreferredSizeWidget?,
appBar: _appBar(),
);
}

Widget _appBar() {
PreferredSizeWidget _appBar() {
return LunaAppBar.empty(
child: SonarrSeriesSearchBar(
scrollController: SonarrNavigationBar.scrollControllers[0],
Expand Down
1 change: 0 additions & 1 deletion lib/modules/sonarr/routes/missing/route.dart
Expand Up @@ -33,7 +33,6 @@ class _State extends State<SonarrMissingRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.SONARR,
hideDrawer: true,
body: _body(),
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/sonarr/routes/more/route.dart
Expand Up @@ -23,7 +23,6 @@ class _State extends State<SonarrMoreRoute> with AutomaticKeepAliveClientMixin {
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.SONARR,
hideDrawer: true,
body: _body(),
);
}
Expand Down
Expand Up @@ -26,7 +26,6 @@ class _State extends State<SonarrSeriesDetailsHistoryPage>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.SONARR,
hideDrawer: true,
body: _body(),
);
}
Expand Down
Expand Up @@ -33,7 +33,6 @@ class _State extends State<SonarrSeriesDetailsOverviewPage>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.SONARR,
hideDrawer: true,
body: Selector<SonarrState, Future<Map<int?, SonarrSeries>>?>(
selector: (_, state) => state.series,
builder: (context, movies, _) => LunaListView(
Expand Down
Expand Up @@ -23,7 +23,6 @@ class _State extends State<SonarrSeriesDetailsSeasonsPage> {
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.SONARR,
hideDrawer: true,
body: _body(),
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/sonarr/routes/upcoming/route.dart
Expand Up @@ -32,7 +32,6 @@ class _State extends State<SonarrUpcomingRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.SONARR,
hideDrawer: true,
body: _body(),
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/tautulli/routes/activity/route.dart
Expand Up @@ -32,7 +32,6 @@ class _State extends State<TautulliActivityRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.TAUTULLI,
hideDrawer: true,
body: _body(),
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/tautulli/routes/history/route.dart
Expand Up @@ -32,7 +32,6 @@ class _State extends State<TautulliHistoryRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.TAUTULLI,
hideDrawer: true,
body: _body(),
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/tautulli/routes/more/route.dart
Expand Up @@ -24,7 +24,6 @@ class _State extends State<TautulliMoreRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.TAUTULLI,
hideDrawer: true,
body: _body,
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/tautulli/routes/users/route.dart
Expand Up @@ -32,7 +32,6 @@ class _State extends State<TautulliUsersRoute>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.TAUTULLI,
hideDrawer: true,
body: _body(),
);
}
Expand Down
Expand Up @@ -41,7 +41,6 @@ class _State extends State<TautulliUserDetailsHistory>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.TAUTULLI,
hideDrawer: true,
body: _body(),
);
}
Expand Down
Expand Up @@ -42,7 +42,6 @@ class _State extends State<TautulliUserDetailsIPAddresses>
super.build(context);
return LunaScaffold(
module: LunaModule.TAUTULLI,
hideDrawer: true,
scaffoldKey: _scaffoldKey,
body: _body(),
);
Expand Down
Expand Up @@ -67,7 +67,6 @@ class _State extends State<TautulliUserDetailsProfile>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.TAUTULLI,
hideDrawer: true,
body: _initialLoad ? _body() : const LunaLoader(),
);
}
Expand Down
Expand Up @@ -42,7 +42,6 @@ class _State extends State<TautulliUserDetailsSyncedItems>
return LunaScaffold(
scaffoldKey: _scaffoldKey,
module: LunaModule.TAUTULLI,
hideDrawer: true,
body: _body(),
);
}
Expand Down
1 change: 0 additions & 1 deletion lib/vendor.dart
Expand Up @@ -16,7 +16,6 @@ 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:package_info_plus/package_info_plus.dart';
export 'package:stash/stash_api.dart';
export 'package:stash_memory/stash_memory.dart';
Expand Down

0 comments on commit 8fe81d1

Please sign in to comment.