Reboot v3

This commit is contained in:
Alessandro Autiero
2023-06-03 18:30:50 +02:00
parent 5eafcae616
commit 30f1b0f162
44 changed files with 1041 additions and 613 deletions

View File

@@ -14,50 +14,60 @@ import 'package:reboot_launcher/src/ui/controller/hosting_controller.dart';
import 'package:reboot_launcher/src/ui/controller/server_controller.dart';
import 'package:reboot_launcher/src/ui/controller/settings_controller.dart';
import 'package:reboot_launcher/src/ui/page/home_page.dart';
import 'package:reboot_launcher/supabase.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
import 'package:system_theme/system_theme.dart';
const double kDefaultWindowWidth = 885;
const double kDefaultWindowHeight = 885;
const double kDefaultWindowWidth = 1024;
const double kDefaultWindowHeight = 1024;
final GlobalKey appKey = GlobalKey();
void main() async {
await installationDirectory.create(recursive: true);
WidgetsFlutterBinding.ensureInitialized();
await SystemTheme.accentColor.load();
await GetStorage.init("reboot_game");
await GetStorage.init("reboot_server");
await GetStorage.init("reboot_update");
await GetStorage.init("reboot_settings");
await GetStorage.init("reboot_hosting");
Get.put(GameController());
Get.put(ServerController());
Get.put(BuildController());
Get.put(SettingsController());
Get.put(HostingController());
doWhenWindowReady(() {
appWindow.minSize = const Size(kDefaultWindowWidth, kDefaultWindowHeight);
var controller = Get.find<SettingsController>();
var size = Size(controller.width, controller.height);
var window = appWindow as WinDesktopWindow;
window.setWindowCutOnMaximize(appBarSize * 2);
appWindow.size = size;
if(controller.offsetX != null && controller.offsetY != null){
appWindow.position = Offset(controller.offsetX!, controller.offsetY!);
}else {
appWindow.alignment = Alignment.center;
}
runZonedGuarded(() async {
await installationDirectory.create(recursive: true);
await Supabase.initialize(
url: supabaseUrl,
anonKey: supabaseAnonKey
);
WidgetsFlutterBinding.ensureInitialized();
await SystemTheme.accentColor.load();
await GetStorage.init("reboot_game");
await GetStorage.init("reboot_server");
await GetStorage.init("reboot_update");
await GetStorage.init("reboot_settings");
await GetStorage.init("reboot_hosting");
var gameController = GameController();
Get.put(gameController);
Get.put(ServerController());
Get.put(BuildController());
Get.put(SettingsController());
Get.put(HostingController());
doWhenWindowReady(() {
appWindow.minSize = const Size(kDefaultWindowWidth, kDefaultWindowHeight);
var controller = Get.find<SettingsController>();
var size = Size(controller.width, controller.height);
var window = appWindow as WinDesktopWindow;
window.setWindowCutOnMaximize(appBarSize * 2);
appWindow.size = size;
if(controller.offsetX != null && controller.offsetY != null){
appWindow.position = Offset(controller.offsetX!, controller.offsetY!);
}else {
appWindow.alignment = Alignment.center;
}
appWindow.title = "Reboot Launcher";
appWindow.show();
});
runZonedGuarded(
() async => runApp(const RebootApplication()),
(error, stack) => onError(error, stack, false),
zoneSpecification: ZoneSpecification(
handleUncaughtError: (self, parent, zone, error, stacktrace) => onError(error, stacktrace, false)
)
);
appWindow.title = "Reboot Launcher";
appWindow.show();
});
var supabase = Supabase.instance.client;
await supabase.from('hosts')
.delete()
.match({'id': gameController.uuid});
runApp(const RebootApplication());
},
(error, stack) => onError(error, stack, false),
zoneSpecification: ZoneSpecification(
handleUncaughtError: (self, parent, zone, error, stacktrace) => onError(error, stacktrace, false)
));
}
class RebootApplication extends StatefulWidget {
@@ -70,21 +80,18 @@ class RebootApplication extends StatefulWidget {
class _RebootApplicationState extends State<RebootApplication> {
@override
Widget build(BuildContext context) => FluentApp(
title: "Reboot Launcher",
themeMode: ThemeMode.system,
debugShowCheckedModeBanner: false,
color: SystemTheme.accentColor.accent.toAccentColor(),
darkTheme: _createTheme(Brightness.dark),
theme: _createTheme(Brightness.light),
home: HomePage(key: appKey),
title: "Reboot Launcher",
themeMode: ThemeMode.system,
debugShowCheckedModeBanner: false,
color: SystemTheme.accentColor.accent.toAccentColor(),
darkTheme: _createTheme(Brightness.dark),
theme: _createTheme(Brightness.light),
home: const HomePage()
);
FluentThemeData _createTheme(Brightness brightness) => FluentThemeData(
brightness: brightness,
accentColor: SystemTheme.accentColor.accent.toAccentColor(),
visualDensity: VisualDensity.standard,
focusTheme: FocusThemeData(
glowFactor: is10footScreen() ? 2.0 : 0.0,
),
brightness: brightness,
accentColor: SystemTheme.accentColor.accent.toAccentColor(),
visualDensity: VisualDensity.standard
);
}