From 5be5377110f94407e949fee770d927747df2e117 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 10 Mar 2024 21:15:24 +0100 Subject: [PATCH] Removed splitview package --- lib/screens/clients/added_list.dart | 4 +- lib/screens/clients/clients.dart | 37 +++++++--------- lib/screens/clients/clients_lists.dart | 18 ++++++-- lib/screens/settings/dhcp/dhcp.dart | 14 +++--- lib/screens/settings/dns/dns.dart | 4 +- .../general_settings/general_settings.dart | 6 ++- lib/screens/settings/settings.dart | 44 ++++++++++--------- pubspec.lock | 9 ---- pubspec.yaml | 4 -- 9 files changed, 71 insertions(+), 69 deletions(-) diff --git a/lib/screens/clients/added_list.dart b/lib/screens/clients/added_list.dart index aa86785..0bb668b 100644 --- a/lib/screens/clients/added_list.dart +++ b/lib/screens/clients/added_list.dart @@ -3,10 +3,10 @@ import 'package:flutter/material.dart'; import 'package:animations/animations.dart'; import 'package:flutter/rendering.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/clients/clients.dart'; import 'package:adguard_home_manager/screens/clients/client/client_screen_functions.dart'; import 'package:adguard_home_manager/screens/clients/client/added_client_tile.dart'; import 'package:adguard_home_manager/screens/clients/client/remove_client_modal.dart'; @@ -107,7 +107,7 @@ class _AddedListState extends State { if (result == true) { if (widget.splitView == true) { - SplitView.of(context).popUntil(0); + Navigator.of(clientsNavigatorKey.currentContext!).popUntil((route) => false); } showSnacbkar( appConfigProvider: appConfigProvider, diff --git a/lib/screens/clients/clients.dart b/lib/screens/clients/clients.dart index 1549bb6..2ca57f1 100644 --- a/lib/screens/clients/clients.dart +++ b/lib/screens/clients/clients.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/clients/clients_lists.dart'; import 'package:adguard_home_manager/models/clients.dart'; +final clientsNavigatorKey = GlobalKey(); + class Clients extends StatefulWidget { const Clients({super.key}); @@ -24,26 +24,23 @@ class _ClientsState extends State with TickerProviderStateMixin { body: LayoutBuilder( builder: (context, constraints) { if (constraints.maxWidth > 900) { - return SplitView.material( - hideDivider: true, - flexWidth: const FlexWidth(mainViewFlexWidth: 1, secondaryViewFlexWidth: 2), - placeholder: Center( - child: Padding( - padding: const EdgeInsets.all(24), - child: Text( - AppLocalizations.of(context)!.selectClientLeftColumn, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), - ), + return Row( + children: [ + const Expanded( + flex: 1, + child: ClientsLists( + splitView: true, + ) ), - child: const ClientsLists( - splitView: true, + Expanded( + flex: 2, + child: Navigator( + key: clientsNavigatorKey, + onGenerateRoute: (settings) => MaterialPageRoute(builder: (ctx) => const SizedBox()), + ), ) - ); + ], + ); } else { return const ClientsLists( diff --git a/lib/screens/clients/clients_lists.dart b/lib/screens/clients/clients_lists.dart index bdc56b8..a2cfa19 100644 --- a/lib/screens/clients/clients_lists.dart +++ b/lib/screens/clients/clients_lists.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/clients/clients.dart'; import 'package:adguard_home_manager/screens/clients/added_list.dart'; import 'package:adguard_home_manager/screens/clients/client/logs_list_client.dart'; import 'package:adguard_home_manager/screens/clients/clients_list.dart'; @@ -68,7 +68,13 @@ class _ClientsListsState extends State with TickerProviderStateMix splitView: widget.splitView, ); if (widget.splitView) { - SplitView.of(context).push(w); + Navigator.of(clientsNavigatorKey.currentContext!).pushReplacement( + PageRouteBuilder( + pageBuilder: (context, animation1, animation2) => w, + transitionDuration: Duration.zero, + reverseTransitionDuration: Duration.zero, + ) + ); } else { Navigator.of(context).push( @@ -88,7 +94,13 @@ class _ClientsListsState extends State with TickerProviderStateMix splitView: widget.splitView, ); if (widget.splitView) { - SplitView.of(context).push(w); + Navigator.of(clientsNavigatorKey.currentContext!).pushReplacement( + PageRouteBuilder( + pageBuilder: (context, animation1, animation2) => w, + transitionDuration: Duration.zero, + reverseTransitionDuration: Duration.zero, + ) + ); } else { Navigator.of(context).push( diff --git a/lib/screens/settings/dhcp/dhcp.dart b/lib/screens/settings/dhcp/dhcp.dart index a17d620..f7facd6 100644 --- a/lib/screens/settings/dhcp/dhcp.dart +++ b/lib/screens/settings/dhcp/dhcp.dart @@ -3,10 +3,10 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/settings.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_not_available.dart'; import 'package:adguard_home_manager/widgets/confirm_action_modal.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_main_button.dart'; @@ -610,11 +610,11 @@ class _DhcpScreenState extends State { ElevatedButton( onPressed: () { if (!(Platform.isAndroid || Platform.isIOS)) { - SplitView.of(context).push( - DhcpLeases( + Navigator.of(settingsNavigatorKey.currentContext!).push( + MaterialPageRoute(builder: (ctx) => DhcpLeases( items: dhcpProvider.dhcp!.dhcpStatus!.leases, staticLeases: false, - ) + )) ); } else { @@ -639,11 +639,11 @@ class _DhcpScreenState extends State { ElevatedButton( onPressed: () { if (!(Platform.isAndroid || Platform.isIOS)) { - SplitView.of(context).push( - DhcpLeases( + Navigator.of(settingsNavigatorKey.currentContext!).push( + MaterialPageRoute(builder: (ctx) => DhcpLeases( items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, staticLeases: true, - ) + )) ); } else { diff --git a/lib/screens/settings/dns/dns.dart b/lib/screens/settings/dns/dns.dart index 4a7c78a..baba9fa 100644 --- a/lib/screens/settings/dns/dns.dart +++ b/lib/screens/settings/dns/dns.dart @@ -1,10 +1,10 @@ // ignore_for_file: use_build_context_synchronously import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/settings.dart'; import 'package:adguard_home_manager/screens/settings/dns/fallback_dns.dart'; import 'package:adguard_home_manager/screens/settings/dns/test_upstream_dns_modal.dart'; import 'package:adguard_home_manager/screens/settings/dns/clear_dns_cache_dialog.dart'; @@ -52,7 +52,7 @@ class _DnsSettingsState extends State { void navigate(Widget w) { if (widget.splitView) { - SplitView.of(context).push(w); + Navigator.of(settingsNavigatorKey.currentContext!).push(MaterialPageRoute(builder: (ctx) => w)); } else { Navigator.of(context).push( diff --git a/lib/screens/settings/general_settings/general_settings.dart b/lib/screens/settings/general_settings/general_settings.dart index 7439353..7c396da 100644 --- a/lib/screens/settings/general_settings/general_settings.dart +++ b/lib/screens/settings/general_settings/general_settings.dart @@ -3,11 +3,11 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:store_checker/store_checker.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/settings.dart'; import 'package:adguard_home_manager/screens/settings/general_settings/top_items_list/top_items_list_settings.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; @@ -199,7 +199,9 @@ class _GeneralSettingsState extends State { title: AppLocalizations.of(context)!.topItemsOrder, subtitle: AppLocalizations.of(context)!.topItemsOrderDescription, onTap: () => widget.splitView == true - ? SplitView.of(context).push(const TopItemsListSettings()) + ? Navigator.of(settingsNavigatorKey.currentContext!).push( + MaterialPageRoute(builder: (ctx) => const TopItemsListSettings()) + ) : Navigator.of(context).push( MaterialPageRoute( builder: (context) => const TopItemsListSettings() diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index bce5e11..0f55b89 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -3,7 +3,6 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/settings/server_info/server_info.dart'; @@ -33,6 +32,8 @@ import 'package:adguard_home_manager/providers/status_provider.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; +final settingsNavigatorKey = GlobalKey(); + class Settings extends StatelessWidget { const Settings({super.key}); @@ -41,25 +42,22 @@ class Settings extends StatelessWidget { return LayoutBuilder( builder: (context, constraints) { if (constraints.maxWidth > 900) { - return SplitView.material( - hideDivider: true, - flexWidth: const FlexWidth(mainViewFlexWidth: 1, secondaryViewFlexWidth: 2), - placeholder: Center( - child: Padding( - padding: const EdgeInsets.all(24), - child: Text( - AppLocalizations.of(context)!.selectOptionLeftColumn, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), + return Row( + children: [ + const Expanded( + flex: 1, + child: _SettingsWidget( + twoColumns: true, + ) ), - ), - child: const _SettingsWidget( - twoColumns: true, - ), + Expanded( + flex: 2, + child: Navigator( + key: settingsNavigatorKey, + onGenerateRoute: (settings) => MaterialPageRoute(builder: (ctx) => const SizedBox()), + ), + ) + ], ); } else { @@ -351,7 +349,13 @@ class _SettingsTile extends StatelessWidget { selectedItem: appConfigProvider.selectedSettingsScreen, onTap: () { appConfigProvider.setSelectedSettingsScreen(screen: thisItem, notify: true); - SplitView.of(context).setSecondary(screenToNavigate); + Navigator.of(settingsNavigatorKey.currentContext!).pushReplacement( + PageRouteBuilder( + pageBuilder: (context, animation1, animation2) => screenToNavigate, + transitionDuration: Duration.zero, + reverseTransitionDuration: Duration.zero, + ), + ); }, ); } diff --git a/pubspec.lock b/pubspec.lock index f59e518..a1ae53b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -331,15 +331,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" - flutter_split_view: - dependency: "direct main" - description: - path: "." - ref: master-alt - resolved-ref: a6aa2419243cc0abccf9474ce340790d6c0ded6f - url: "https://github.com/JGeek00/flutter_split_view" - source: git - version: "0.1.2" flutter_svg: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 232e855..8aa5909 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -62,10 +62,6 @@ dependencies: git: url: https://github.com/google/flutter-desktop-embedding path: plugins/window_size - flutter_split_view: - git: - url: https://github.com/JGeek00/flutter_split_view - ref: master-alt contextmenu: ^3.0.0 async: ^2.11.0 sentry_flutter: ^7.13.2