diff --git a/ui/flutter/lib/app/modules/app/views/app_view.dart b/ui/flutter/lib/app/modules/app/views/app_view.dart index 5642f2f7..1f55ad5b 100644 --- a/ui/flutter/lib/app/modules/app/views/app_view.dart +++ b/ui/flutter/lib/app/modules/app/views/app_view.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:get/get.dart'; @@ -14,22 +15,24 @@ class AppView extends GetView { @override Widget build(BuildContext context) { final config = controller.downloaderConfig.value; - return GetMaterialApp.router( - useInheritedMediaQuery: true, - debugShowCheckedModeBanner: false, - theme: GopeedTheme.light, - darkTheme: GopeedTheme.dark, - themeMode: ThemeMode.values.byName(config.extra.themeMode), - translations: messages, - locale: toLocale(config.extra.locale), - fallbackLocale: fallbackLocale, - localizationsDelegates: const [ - GlobalMaterialLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - ], - supportedLocales: messages.keys.keys.map((e) => toLocale(e)).toList(), - getPages: AppPages.routes, + return WithForegroundTask( + child: GetMaterialApp.router( + useInheritedMediaQuery: true, + debugShowCheckedModeBanner: false, + theme: GopeedTheme.light, + darkTheme: GopeedTheme.dark, + themeMode: ThemeMode.values.byName(config.extra.themeMode), + translations: messages, + locale: toLocale(config.extra.locale), + fallbackLocale: fallbackLocale, + localizationsDelegates: const [ + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: messages.keys.keys.map((e) => toLocale(e)).toList(), + getPages: AppPages.routes, + ), ); } } diff --git a/ui/flutter/lib/app/modules/home/views/home_view.dart b/ui/flutter/lib/app/modules/home/views/home_view.dart index 1f98f7fd..94eed7ae 100644 --- a/ui/flutter/lib/app/modules/home/views/home_view.dart +++ b/ui/flutter/lib/app/modules/home/views/home_view.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:get/get.dart'; import '../../../routes/app_pages.dart'; @@ -12,7 +11,7 @@ class HomeView extends GetView { @override Widget build(BuildContext context) { return GetRouterOutlet.builder(builder: (context, delegate, currentRoute) { - switch (currentRoute?.location) { + switch (currentRoute?.uri.path) { case Routes.EXTENSION: controller.currentIndex.value = 1; break; @@ -24,141 +23,139 @@ class HomeView extends GetView { break; } - return WithForegroundTask( - child: Scaffold( - // extendBody: true, - body: Row( - // crossAxisAlignment: CrossAxisAlignment.start, - children: [ - !ResponsiveBuilder.isNarrow(context) - ? NavigationRail( - extended: true, - labelType: NavigationRailLabelType.none, - minExtendedWidth: 170, - groupAlignment: 0, - // useIndicator: false, - onDestinationSelected: (int index) { - controller.currentIndex.value = index; - switch (index) { - case 0: - delegate.offAndToNamed(Routes.TASK); - break; - case 1: - delegate.offAndToNamed(Routes.EXTENSION); - break; - case 2: - delegate.offAndToNamed(Routes.SETTING); - break; - } - }, - destinations: [ - NavigationRailDestination( - icon: const Icon(Icons.task), - selectedIcon: const Icon(Icons.task), - label: Text('task'.tr), - ), - NavigationRailDestination( - icon: const Icon(Icons.extension), - selectedIcon: const Icon(Icons.extension), - label: Text('extensions'.tr), - ), - NavigationRailDestination( - icon: const Icon(Icons.settings), - selectedIcon: const Icon(Icons.settings), - label: Text('setting'.tr), - ), - ], - selectedIndex: controller.currentIndex.value, - leading: const Icon(Icons.menu), - // trailing: const Icon(Icons.info_outline), - ) - : const SizedBox.shrink(), - Expanded( - child: GetRouterOutlet( - initialRoute: Routes.TASK, - // anchorRoute: '/', - // filterPages: (afterAnchor) { - // logger.w(afterAnchor); - // logger.w(afterAnchor.take(1)); - // return afterAnchor.take(1); - // }, - )) - ]), - bottomNavigationBar: ResponsiveBuilder.isNarrow(context) - ? BottomNavigationBar( - items: [ - BottomNavigationBarItem( - icon: const Icon(Icons.task), - label: 'task'.tr, - ), - BottomNavigationBarItem( - icon: const Icon(Icons.extension), - label: 'extensions'.tr, - ), - BottomNavigationBarItem( - icon: const Icon(Icons.settings), - label: 'setting'.tr, - ), - ], - currentIndex: controller.currentIndex.value, - // selectedItemColor: Get.theme.highlightColor, - onTap: (index) { - controller.currentIndex.value = index; - switch (index) { - case 0: - delegate.offAndToNamed(Routes.TASK); - break; - case 1: - delegate.offAndToNamed(Routes.EXTENSION); - break; - case 2: - delegate.offAndToNamed(Routes.SETTING); - break; - } - }, - ) - // StylishBottomBar( - // option: AnimatedBarOptions( - // iconSize: 32, - // barAnimation: BarAnimation.blink, - // iconStyle: IconStyle.Default, - // opacity: 0.3, - // ), - // items: [ - // BottomBarItem( - // icon: const Icon(Icons.file_download), - // selectedColor: Get.theme.primaryColor, - // title: Text('downloading'.tr)), - // BottomBarItem( - // icon: const Icon(Icons.done), - // selectedColor: Get.theme.primaryColor, - // title: Text('downloaded'.tr)), - // BottomBarItem( - // icon: const Icon(Icons.settings), - // selectedColor: Get.theme.primaryColor, - // title: Text('setting'.tr)), - // ], - // // hasNotch: true, - // currentIndex: controller.currentIndex.value, - // onTap: (index) { - // switch (index) { - // case 0: - // delegate.toNamed(Routes.DOWNLOADING); - // controller.currentIndex.value = 0; - // break; - // case 1: - // delegate.toNamed(Routes.DOWNLOADED); - // controller.currentIndex.value = 1; - // break; - // case 2: - // delegate.toNamed(Routes.SETTING); - // controller.currentIndex.value = 2; - // break; - // } - // }, - // ) - : const SizedBox.shrink(), - ), + return Scaffold( + // extendBody: true, + body: Row( + // crossAxisAlignment: CrossAxisAlignment.start, + children: [ + !ResponsiveBuilder.isNarrow(context) + ? NavigationRail( + extended: true, + labelType: NavigationRailLabelType.none, + minExtendedWidth: 170, + groupAlignment: 0, + // useIndicator: false, + onDestinationSelected: (int index) { + controller.currentIndex.value = index; + switch (index) { + case 0: + delegate.offAndToNamed(Routes.TASK); + break; + case 1: + delegate.offAndToNamed(Routes.EXTENSION); + break; + case 2: + delegate.offAndToNamed(Routes.SETTING); + break; + } + }, + destinations: [ + NavigationRailDestination( + icon: const Icon(Icons.task), + selectedIcon: const Icon(Icons.task), + label: Text('task'.tr), + ), + NavigationRailDestination( + icon: const Icon(Icons.extension), + selectedIcon: const Icon(Icons.extension), + label: Text('extensions'.tr), + ), + NavigationRailDestination( + icon: const Icon(Icons.settings), + selectedIcon: const Icon(Icons.settings), + label: Text('setting'.tr), + ), + ], + selectedIndex: controller.currentIndex.value, + leading: const Icon(Icons.menu), + // trailing: const Icon(Icons.info_outline), + ) + : const SizedBox.shrink(), + Expanded( + child: GetRouterOutlet( + initialRoute: Routes.TASK, + // anchorRoute: '/', + // filterPages: (afterAnchor) { + // logger.w(afterAnchor); + // logger.w(afterAnchor.take(1)); + // return afterAnchor.take(1); + // }, + )) + ]), + bottomNavigationBar: ResponsiveBuilder.isNarrow(context) + ? BottomNavigationBar( + items: [ + BottomNavigationBarItem( + icon: const Icon(Icons.task), + label: 'task'.tr, + ), + BottomNavigationBarItem( + icon: const Icon(Icons.extension), + label: 'extensions'.tr, + ), + BottomNavigationBarItem( + icon: const Icon(Icons.settings), + label: 'setting'.tr, + ), + ], + currentIndex: controller.currentIndex.value, + // selectedItemColor: Get.theme.highlightColor, + onTap: (index) { + controller.currentIndex.value = index; + switch (index) { + case 0: + delegate.offAndToNamed(Routes.TASK); + break; + case 1: + delegate.offAndToNamed(Routes.EXTENSION); + break; + case 2: + delegate.offAndToNamed(Routes.SETTING); + break; + } + }, + ) + // StylishBottomBar( + // option: AnimatedBarOptions( + // iconSize: 32, + // barAnimation: BarAnimation.blink, + // iconStyle: IconStyle.Default, + // opacity: 0.3, + // ), + // items: [ + // BottomBarItem( + // icon: const Icon(Icons.file_download), + // selectedColor: Get.theme.primaryColor, + // title: Text('downloading'.tr)), + // BottomBarItem( + // icon: const Icon(Icons.done), + // selectedColor: Get.theme.primaryColor, + // title: Text('downloaded'.tr)), + // BottomBarItem( + // icon: const Icon(Icons.settings), + // selectedColor: Get.theme.primaryColor, + // title: Text('setting'.tr)), + // ], + // // hasNotch: true, + // currentIndex: controller.currentIndex.value, + // onTap: (index) { + // switch (index) { + // case 0: + // delegate.toNamed(Routes.DOWNLOADING); + // controller.currentIndex.value = 0; + // break; + // case 1: + // delegate.toNamed(Routes.DOWNLOADED); + // controller.currentIndex.value = 1; + // break; + // case 2: + // delegate.toNamed(Routes.SETTING); + // controller.currentIndex.value = 2; + // break; + // } + // }, + // ) + : const SizedBox.shrink(), ); }); }