diff --git a/lib/src/controller/server_controller.dart b/lib/src/controller/server_controller.dart index f7a6f0b..323a220 100644 --- a/lib/src/controller/server_controller.dart +++ b/lib/src/controller/server_controller.dart @@ -25,8 +25,8 @@ class ServerController extends GetxController { embedded = RxBool(storage.read("embedded") ?? true); embedded.listen((value) => storage.write("embedded", value)); - warning = RxBool(storage.read("warning") ?? true); - warning.listen((value) => storage.write("warning", value)); + warning = RxBool(storage.read("lawin_value") ?? true); + warning.listen((value) => storage.write("lawin_value", value)); started = RxBool(false); isLawinPortFree() diff --git a/lib/src/page/home_page.dart b/lib/src/page/home_page.dart index 969f1ec..3f75784 100644 --- a/lib/src/page/home_page.dart +++ b/lib/src/page/home_page.dart @@ -8,8 +8,8 @@ import 'package:reboot_launcher/src/widget/window_buttons.dart'; import 'package:reboot_launcher/src/widget/window_border.dart'; import 'package:window_manager/window_manager.dart'; -import '../util/os.dart'; -import '../util/reboot.dart'; +import 'package:reboot_launcher/src/util/os.dart'; +import 'package:reboot_launcher/src/util/reboot.dart'; class HomePage extends StatefulWidget { const HomePage({Key? key}) : super(key: key); @@ -90,7 +90,7 @@ class _HomePageState extends State with WindowListener { List _createPages(bool data) { return [ data ? const LauncherPage() : _createDownloadWarning(), - const ServerPage(), + ServerPage(), const InfoPage() ]; } diff --git a/lib/src/page/info_page.dart b/lib/src/page/info_page.dart index 385bfb5..6b5fdfc 100644 --- a/lib/src/page/info_page.dart +++ b/lib/src/page/info_page.dart @@ -31,7 +31,7 @@ class InfoPage extends StatelessWidget { ), const Expanded( child: Align( - alignment: Alignment.bottomLeft, child: Text("Version 3.4${kDebugMode ? '-DEBUG' : ''}"))) + alignment: Alignment.bottomLeft, child: Text("Version 3.5${kDebugMode ? '-DEBUG' : ''}"))) ], ); } diff --git a/lib/src/page/launcher_page.dart b/lib/src/page/launcher_page.dart index 33e8328..07f1457 100644 --- a/lib/src/page/launcher_page.dart +++ b/lib/src/page/launcher_page.dart @@ -16,7 +16,7 @@ class LauncherPage extends StatelessWidget { children: [ UsernameBox(), VersionSelector(), - DeploymentSelector(enabled: false), + DeploymentSelector(enabled: true), const LaunchButton() ], ); diff --git a/lib/src/page/server_page.dart b/lib/src/page/server_page.dart index cd9d3e2..c57713a 100644 --- a/lib/src/page/server_page.dart +++ b/lib/src/page/server_page.dart @@ -1,68 +1,33 @@ import 'package:fluent_ui/fluent_ui.dart'; import 'package:get/get.dart'; -import 'package:get_storage/get_storage.dart'; +import 'package:reboot_launcher/src/controller/server_controller.dart'; +import 'package:reboot_launcher/src/widget/lawin_warning.dart'; import 'package:reboot_launcher/src/widget/local_server_switch.dart'; import 'package:reboot_launcher/src/widget/port_input.dart'; import 'package:reboot_launcher/src/widget/host_input.dart'; import 'package:reboot_launcher/src/widget/server_button.dart'; -import '../controller/server_controller.dart'; - -class ServerPage extends StatefulWidget { - const ServerPage({Key? key}) : super(key: key); - - @override - State createState() => _ServerPageState(); -} - -class _ServerPageState extends State { +class ServerPage extends StatelessWidget { final ServerController _serverController = Get.find(); - @override - void initState() { - if (_serverController.warning.value) { - WidgetsBinding.instance.addPostFrameCallback((_) async { - await _showAdvancedUserWarning(); - _serverController.warning.value = false; - }); - } - - super.initState(); - } - - Future _showAdvancedUserWarning() async { - await showDialog( - context: context, - builder: (context) => ContentDialog( - content: const SizedBox( - width: double.infinity, - child: Text("This section is reserved for advanced users", - textAlign: TextAlign.center), - ), - actions: [ - SizedBox( - width: double.infinity, - child: FilledButton( - onPressed: () => Navigator.of(context).pop(), - child: const Text('I understand'), - ), - ) - ], - ) - ); - } - + ServerPage({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - return Column( + return Obx(() => Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ + if(_serverController.warning.value) + LawinWarning( + onPressed: () => _serverController.warning.value = false + ), HostInput(), PortInput(), LocalServerSwitch(), ServerButton() - ]); + ] + )); } } diff --git a/lib/src/widget/add_server_version.dart b/lib/src/widget/add_server_version.dart index 312b96e..07062b8 100644 --- a/lib/src/widget/add_server_version.dart +++ b/lib/src/widget/add_server_version.dart @@ -13,7 +13,7 @@ import 'package:reboot_launcher/src/widget/select_file.dart'; import 'package:reboot_launcher/src/widget/version_name_input.dart'; import 'package:reboot_launcher/src/model/fortnite_version.dart'; -import '../model/fortnite_build.dart'; +import 'package:reboot_launcher/src/model/fortnite_build.dart'; import 'build_selector.dart'; class AddServerVersion extends StatefulWidget { diff --git a/lib/src/widget/lawin_warning.dart b/lib/src/widget/lawin_warning.dart new file mode 100644 index 0000000..7886053 --- /dev/null +++ b/lib/src/widget/lawin_warning.dart @@ -0,0 +1,19 @@ +import 'package:fluent_ui/fluent_ui.dart'; + +class LawinWarning extends StatelessWidget { + final VoidCallback onPressed; + + const LawinWarning({Key? key, required this.onPressed}) : super(key: key); + + @override + Widget build(BuildContext context) { + return InfoBar( + title: const Text( + "The lawin server handles authentication and parties, not game hosting"), + action: IconButton( + icon: const Icon(FluentIcons.accept), + onPressed: onPressed + ) + ); + } +} diff --git a/lib/src/widget/window_border.dart b/lib/src/widget/window_border.dart index 83019c4..a0c6e7e 100644 --- a/lib/src/widget/window_border.dart +++ b/lib/src/widget/window_border.dart @@ -2,7 +2,7 @@ import 'package:bitsdojo_window/bitsdojo_window.dart'; import 'package:flutter/material.dart'; import 'package:system_theme/system_theme.dart'; -import '../util/os.dart'; +import 'package:reboot_launcher/src/util/os.dart'; class WindowBorder extends StatelessWidget { const WindowBorder({Key? key}) : super(key: key); diff --git a/pubspec.yaml b/pubspec.yaml index 7f2fc55..e0ebe21 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: reboot_launcher description: Launcher for project reboot -version: "3.4.0" +version: "3.5.0" publish_to: 'none' @@ -48,7 +48,7 @@ msix_config: display_name: Reboot Launcher publisher_display_name: Auties00 identity_name: 31868Auties00.RebootLauncher - msix_version: 3.4.0.0 + msix_version: 3.5.0.0 publisher: CN=E6CD08C6-DECF-4034-A3EB-2D5FA2CA8029 logo_path: ./assets/icons/reboot.ico architecture: x64 diff --git a/release/release.bat b/release/release.bat new file mode 100644 index 0000000..abed91f --- /dev/null +++ b/release/release.bat @@ -0,0 +1,2 @@ +flutter_distributor package --platform windows --targets exe +flutter pub run msix:create