Skip to content
This repository was archived by the owner on Apr 3, 2025. It is now read-only.

Commit ac838f9

Browse files
committed
refactor(settings): consolidate appearance, network, and localization pages
1 parent c9bd02b commit ac838f9

File tree

11 files changed

+258
-269
lines changed

11 files changed

+258
-269
lines changed

assets/localization/en.json

+3
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,7 @@
371371
"settings.BasicAuthenticationHint1": "The username must not contain a colon",
372372
"settings.BasicAuthenticationHint2": "The password can contain a colon",
373373
"settings.BasicAuthenticationHint3": "The username and password are automatically converted to base64 encoding",
374+
"settings.BootModule": "Boot Module",
374375
"settings.BroadcastAddress": "Broadcast Address",
375376
"settings.BroadcastAddressHint1": "This is the broadcast address of your local network",
376377
"settings.BroadcastAddressHint2": "Typically this is the IP address of your machine with the last octet set to 255",
@@ -468,6 +469,8 @@
468469
"settings.FilterCategory": "Filter Category",
469470
"settings.ForgotYourPassword": "Forgot Your Password?",
470471
"settings.FutureDays": "Future Days",
472+
"settings.General": "General",
473+
"settings.GeneralDescription": "Customize LunaSea",
471474
"settings.GitHubDescription": "View the Source Code",
472475
"settings.HeaderAdded": "Header Added",
473476
"settings.HeaderDeleted": "Header Deleted",

lib/database/tables/bios.dart

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import 'package:lunasea/database/table.dart';
2+
import 'package:lunasea/modules.dart';
23

34
enum BIOSDatabase<T> with LunaTableMixin<T> {
5+
BOOT_MODULE<LunaModule>(LunaModule.DASHBOARD),
46
SENTRY_LOGGING<bool>(true),
57
FIRST_BOOT<bool>(true);
68

lib/modules/settings/core/dialogs.dart

+37
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import 'package:email_validator/email_validator.dart';
22
import 'package:flutter/material.dart';
33
import 'package:lunasea/database/tables/lunasea.dart';
44
import 'package:lunasea/firebase/types.dart';
5+
import 'package:lunasea/modules.dart';
56
import 'package:lunasea/modules/settings/core/types/header.dart';
7+
import 'package:lunasea/state/state.dart';
68
import 'package:lunasea/system/localization.dart';
79
import 'package:lunasea/vendor.dart';
810
import 'package:lunasea/widgets/ui.dart';
@@ -1353,4 +1355,39 @@ class SettingsDialogs {
13531355
contentPadding: LunaDialog.textDialogContentPadding(),
13541356
);
13551357
}
1358+
1359+
Future<Tuple2<bool, LunaModule?>> selectBootModule() async {
1360+
final context = LunaState.context;
1361+
bool _flag = false;
1362+
LunaModule? _module;
1363+
1364+
void _setValues(LunaModule module) {
1365+
_flag = true;
1366+
_module = module;
1367+
Navigator.of(context).pop();
1368+
}
1369+
1370+
final modules = LunaModule.values.filter((m) {
1371+
if (m.homeRoute == null) return false;
1372+
if (!m.isEnabled) return false;
1373+
return true;
1374+
}).toList();
1375+
1376+
await LunaDialog.dialog(
1377+
context: context,
1378+
title: 'settings.BootModule'.tr(),
1379+
content: List.generate(
1380+
modules.length,
1381+
(index) => LunaDialog.tile(
1382+
text: modules[index].title,
1383+
icon: modules[index].icon,
1384+
iconColor: modules[index].color,
1385+
onTap: () => _setValues(modules[index]),
1386+
),
1387+
),
1388+
contentPadding: LunaDialog.listDialogContentPadding(),
1389+
);
1390+
1391+
return Tuple2(_flag, _module);
1392+
}
13561393
}

lib/modules/settings/routes/configuration/route.dart

+3-17
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
22
import 'package:lunasea/core.dart';
33
import 'package:lunasea/modules/settings.dart';
44
import 'package:lunasea/router/routes/settings.dart';
5-
import 'package:lunasea/system/network/network.dart';
65
import 'package:lunasea/system/quick_actions/quick_actions.dart';
76
import 'package:lunasea/utils/profile_tools.dart';
87

@@ -73,30 +72,17 @@ class _State extends State<ConfigurationRoute> with LunaScrollControllerMixin {
7372
controller: scrollController,
7473
children: [
7574
LunaBlock(
76-
title: 'settings.Appearance'.tr(),
77-
body: [TextSpan(text: 'settings.AppearanceDescription'.tr())],
75+
title: 'settings.General'.tr(),
76+
body: [TextSpan(text: 'settings.GeneralDescription'.tr())],
7877
trailing: const LunaIconButton(icon: Icons.brush_rounded),
79-
onTap: SettingsRoutes.CONFIGURATION_APPEARANCE.go,
78+
onTap: SettingsRoutes.CONFIGURATION_GENERAL.go,
8079
),
8180
LunaBlock(
8281
title: 'settings.Drawer'.tr(),
8382
body: [TextSpan(text: 'settings.DrawerDescription'.tr())],
8483
trailing: const LunaIconButton(icon: Icons.menu_rounded),
8584
onTap: SettingsRoutes.CONFIGURATION_DRAWER.go,
8685
),
87-
LunaBlock(
88-
title: 'settings.Localization'.tr(),
89-
body: [TextSpan(text: 'settings.LocalizationDescription'.tr())],
90-
trailing: const LunaIconButton(icon: Icons.translate_rounded),
91-
onTap: SettingsRoutes.CONFIGURATION_LOCALIZATION.go,
92-
),
93-
if (LunaNetwork.isSupported)
94-
LunaBlock(
95-
title: 'settings.Network'.tr(),
96-
body: [TextSpan(text: 'settings.NetworkDescription'.tr())],
97-
trailing: const LunaIconButton(icon: Icons.network_check_rounded),
98-
onTap: SettingsRoutes.CONFIGURATION_NETWORK.go,
99-
),
10086
if (LunaQuickActions.isSupported)
10187
LunaBlock(
10288
title: 'settings.QuickActions'.tr(),

lib/modules/settings/routes/configuration_appearance/route.dart

-104
This file was deleted.

0 commit comments

Comments
 (0)