diff --git a/lib/config/color_theme_types.dart b/lib/config/color_theme_types.dart index 2231277..f7d9396 100644 --- a/lib/config/color_theme_types.dart +++ b/lib/config/color_theme_types.dart @@ -13,7 +13,6 @@ class ColorThemeInfo { } } -// 将 materialColors 封装到 ColorThemeInfo 中 final List colorThemeList = [ ColorThemeInfo(Colors.red, '红色', 0), ColorThemeInfo(Colors.pink, '粉色', 1), diff --git a/lib/network/http/picture.dart b/lib/network/http/picture.dart index bde1d75..f093cba 100644 --- a/lib/network/http/picture.dart +++ b/lib/network/http/picture.dart @@ -29,12 +29,15 @@ Future getCachePicture({ String downloadPath = await getDownloadPath(); // 构建文件路径 - String filePath = buildFilePath( + String cacheFilePath = buildFilePath( cachePath, from, pictureType, cartoonId, chapterId, sanitizedPath); + String downloadFilePath = buildFilePath( + downloadPath, from, pictureType, cartoonId, chapterId, sanitizedPath); + // 检查文件是否存在 String existingFilePath = - await checkFileExists(cachePath, downloadPath, filePath); + await checkFileExists(cacheFilePath, downloadFilePath); if (existingFilePath.isNotEmpty) { return existingFilePath; } @@ -47,9 +50,9 @@ Future getCachePicture({ Uint8List imageData = await downloadImageWithRetry(finalUrl); // 保存图片 - await saveImage(imageData, filePath); + await saveImage(imageData, cacheFilePath); - return filePath; + return cacheFilePath; } Future downloadPicture({ @@ -71,21 +74,19 @@ Future downloadPicture({ String downloadPath = await getDownloadPath(); String cachePath = await getCachePath(); - // 构建文件路径 - String filePath = buildFilePath( + String cacheFilePath = buildFilePath( + cachePath, from, pictureType, cartoonId, chapterId, sanitizedPath); + + String downloadFilePath = buildFilePath( downloadPath, from, pictureType, cartoonId, chapterId, sanitizedPath); // 检查文件是否存在 - if (await fileExists(filePath)) { - return filePath; - } + String existingFilePath = + await checkFileExists(cacheFilePath, downloadFilePath); - // 检查缓存目录是否存在文件 - String cacheFilePath = buildFilePath( - cachePath, from, pictureType, cartoonId, chapterId, sanitizedPath); - if (await fileExists(cacheFilePath)) { - await copyFile(cacheFilePath, filePath); - return filePath; + if (existingFilePath.isNotEmpty && existingFilePath != downloadFilePath) { + await copyFile(cacheFilePath, downloadFilePath); + return downloadFilePath; } // 处理 URL @@ -96,9 +97,9 @@ Future downloadPicture({ Uint8List imageData = await downloadImageWithRetry(finalUrl); // 保存图片 - await saveImage(imageData, filePath); + await saveImage(imageData, downloadFilePath); - return filePath; + return downloadFilePath; } String sanitizePath(String path) { @@ -127,16 +128,13 @@ String buildFilePath( Future checkFileExists( String cachePath, String downloadPath, - String filePath, ) async { - if (await fileExists(filePath)) { - return filePath; + if (await fileExists(cachePath)) { + return cachePath; } - String downloadFilePath = file_path.join( - downloadPath, file_path.relative(filePath, from: cachePath)); - if (await fileExists(downloadFilePath)) { - return downloadFilePath; + if (await fileExists(downloadPath)) { + return downloadPath; } return ''; diff --git a/lib/page/setting/view/global_setting.dart b/lib/page/setting/view/global_setting.dart index d807f6d..5579801 100644 --- a/lib/page/setting/view/global_setting.dart +++ b/lib/page/setting/view/global_setting.dart @@ -35,6 +35,11 @@ class _GlobalSettingPageState extends State { children: [ _systemTheme(), _dynamicColor(), + if (!globalSetting.dynamicColor) ...[ + SizedBox(height: 11), + changeThemeColor(context), + SizedBox(height: 11), + ], _isAMOLED(), if (kDebugMode) ...[ ElevatedButton( @@ -142,6 +147,30 @@ class _GlobalSettingPageState extends State { globalSetting.setDynamicColor(_dynamicColorValue); } + Widget changeThemeColor(BuildContext context) { + final router = AutoRouter.of(context); + return GestureDetector( + onTap: () async { + router.push(ThemeColorRoute()); + }, + behavior: HitTestBehavior.opaque, // 使得所有透明区域也可以响应点击 + child: Row( + children: [ + SizedBox(width: 10), + Text( + "主题颜色", + style: TextStyle( + fontSize: 18, + ), + ), + Expanded(child: Container()), + Icon(Icons.chevron_right), + SizedBox(width: 10), + ], + ), + ); + } + Widget _isAMOLED() { return Row( children: [ diff --git a/lib/page/theme_color/theme_color.dart b/lib/page/theme_color/theme_color.dart new file mode 100644 index 0000000..172a92d --- /dev/null +++ b/lib/page/theme_color/theme_color.dart @@ -0,0 +1,2 @@ +export './view/view.dart'; +export './widgets/widgets.dart'; \ No newline at end of file diff --git a/lib/page/theme_color/view/theme_color_page.dart b/lib/page/theme_color/view/theme_color_page.dart new file mode 100644 index 0000000..786738f --- /dev/null +++ b/lib/page/theme_color/view/theme_color_page.dart @@ -0,0 +1,66 @@ +import 'package:auto_route/annotations.dart'; +import 'package:flutter/material.dart'; +import 'package:zephyr/config/color_theme_types.dart'; +import 'package:zephyr/main.dart'; +import 'package:zephyr/page/theme_color/theme_color.dart'; + +@RoutePage() +class ThemeColorPage extends StatefulWidget { + const ThemeColorPage({super.key}); + + @override + State createState() => _ThemeColorPageState(); +} + +class _ThemeColorPageState extends State { + Color _currentColor = globalSetting.seedColor; // 当前选择的颜色 + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('主题颜色'), + ), + body: SingleChildScrollView( + child: Column( + children: [ + // 颜色选择器 + ColorPickerPage( + currentColor: _currentColor, + onColorChanged: (color) { + setState(() { + _currentColor = color; // 更新颜色状态 + }); + _setThemeColor(color); // 更新全局主题颜色 + }, + ), + // 颜色块网格 + Padding( + padding: const EdgeInsets.all(16.0), + child: Wrap( + spacing: 16.0, // 水平间距 + runSpacing: 16.0, // 垂直间距 + children: colorThemeList.map((colorInfo) { + return ColorThemeItem( + colorInfo: colorInfo, + currentColor: _currentColor, + onColorSelected: (color) { + setState(() { + _currentColor = color; // 更新颜色状态 + }); + _setThemeColor(color); // 更新全局主题颜色 + }, + ); + }).toList(), + ), + ), + ], + ), + ), + ); + } + + void _setThemeColor(Color color) { + globalSetting.setSeedColor(color); + } +} \ No newline at end of file diff --git a/lib/page/theme_color/view/view.dart b/lib/page/theme_color/view/view.dart new file mode 100644 index 0000000..4cfadd2 --- /dev/null +++ b/lib/page/theme_color/view/view.dart @@ -0,0 +1 @@ +export './theme_color_page.dart'; \ No newline at end of file diff --git a/lib/page/theme_color/widgets/color_box.dart b/lib/page/theme_color/widgets/color_box.dart new file mode 100644 index 0000000..c780d79 --- /dev/null +++ b/lib/page/theme_color/widgets/color_box.dart @@ -0,0 +1,54 @@ +import 'package:flutter/material.dart'; +import 'package:zephyr/config/global.dart'; + +import '../../../config/color_theme_types.dart'; + +class ColorThemeItem extends StatelessWidget { + final ColorThemeInfo colorInfo; + final Color currentColor; + final Function(Color) onColorSelected; + + const ColorThemeItem({ + super.key, + required this.colorInfo, + required this.currentColor, + required this.onColorSelected, + }); + + @override + Widget build(BuildContext context) { + return SizedBox( + width: screenWidth / 4 - 30, // 每个颜色块的宽度 + child: Material( + color: Colors.transparent, + child: InkWell( + onTap: () { + onColorSelected(colorInfo.color); // 点击颜色块后回调 + }, + borderRadius: BorderRadius.circular(8), + child: Column( + children: [ + Container( + width: 60, + height: 60, + decoration: BoxDecoration( + color: colorInfo.color, + borderRadius: BorderRadius.circular(8), // 圆角 + border: currentColor == colorInfo.color + ? Border.all(color: Colors.black, width: 2) // 选中状态 + : null, + ), + ), + SizedBox(height: 8), // 颜色块和文字的间距 + Text( + colorInfo.label, + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/page/theme_color/widgets/color_grid.dart b/lib/page/theme_color/widgets/color_grid.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/page/theme_color/widgets/ring_color_pick.dart b/lib/page/theme_color/widgets/ring_color_pick.dart new file mode 100644 index 0000000..ae655cb --- /dev/null +++ b/lib/page/theme_color/widgets/ring_color_pick.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_colorpicker/flutter_colorpicker.dart'; + +class ColorPickerPage extends StatelessWidget { + final Color currentColor; + final Function(Color) onColorChanged; + + const ColorPickerPage({ + super.key, + required this.currentColor, + required this.onColorChanged, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + // 颜色选择器 + HueRingPicker( + pickerColor: currentColor, + onColorChanged: onColorChanged, // 颜色变化时回调 + displayThumbColor: true, // 是否显示拇指颜色 + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/page/theme_color/widgets/widgets.dart b/lib/page/theme_color/widgets/widgets.dart new file mode 100644 index 0000000..92c1c40 --- /dev/null +++ b/lib/page/theme_color/widgets/widgets.dart @@ -0,0 +1,3 @@ +export './color_box.dart'; +export './color_grid.dart'; +export './ring_color_pick.dart'; diff --git a/lib/util/router/router.dart b/lib/util/router/router.dart index bc3ae39..dc28ccc 100644 --- a/lib/util/router/router.dart +++ b/lib/util/router/router.dart @@ -28,6 +28,7 @@ class AppRouter extends RootStackRouter { AutoRoute(page: UserCommentsRoute.page), AutoRoute(page: BikaSettingRoute.page), AutoRoute(page: GlobalSettingRoute.page), + AutoRoute(page: ThemeColorRoute.page), AutoRoute(page: ShowColorRoute.page), ]; diff --git a/lib/util/router/router.gr.dart b/lib/util/router/router.gr.dart index df606be..c5f36dc 100644 --- a/lib/util/router/router.gr.dart +++ b/lib/util/router/router.gr.dart @@ -8,15 +8,15 @@ // coverage:ignore-file // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:auto_route/auto_route.dart' as _i22; -import 'package:flutter/material.dart' as _i23; +import 'package:auto_route/auto_route.dart' as _i23; +import 'package:flutter/material.dart' as _i24; import 'package:zephyr/debug/show_color.dart' as _i16; -import 'package:zephyr/page/comic_info/json/comic_info/comic_info.dart' as _i25; -import 'package:zephyr/page/comic_info/json/eps/eps.dart' as _i26; +import 'package:zephyr/page/comic_info/json/comic_info/comic_info.dart' as _i26; +import 'package:zephyr/page/comic_info/json/eps/eps.dart' as _i27; import 'package:zephyr/page/comic_info/view/comic_info.dart' as _i2; import 'package:zephyr/page/comic_read/view/comic_read.dart' as _i3; import 'package:zephyr/page/comments/json/comments_json/comments_json.dart' - as _i27; + as _i28; import 'package:zephyr/page/comments/view/comments.dart' as _i5; import 'package:zephyr/page/comments_children/view/comments_children_page.dart' as _i4; @@ -27,25 +27,26 @@ import 'package:zephyr/page/main.dart' as _i10; import 'package:zephyr/page/ranking_list/view/ranking_list_page.dart' as _i11; import 'package:zephyr/page/register_page.dart' as _i12; import 'package:zephyr/page/search/view/search.dart' as _i13; -import 'package:zephyr/page/search_result/search_result.dart' as _i28; +import 'package:zephyr/page/search_result/search_result.dart' as _i29; import 'package:zephyr/page/search_result/view/search_result_page.dart' as _i14; import 'package:zephyr/page/setting/view/bika_setting.dart' as _i1; import 'package:zephyr/page/setting/view/global_setting.dart' as _i7; import 'package:zephyr/page/setting/view/setting.dart' as _i15; -import 'package:zephyr/page/user_comments/view/user_comments_page.dart' as _i17; -import 'package:zephyr/page/user_download/user_download.dart' as _i29; -import 'package:zephyr/page/user_download/view/user_download_page.dart' as _i18; +import 'package:zephyr/page/theme_color/view/theme_color_page.dart' as _i17; +import 'package:zephyr/page/user_comments/view/user_comments_page.dart' as _i18; +import 'package:zephyr/page/user_download/user_download.dart' as _i30; +import 'package:zephyr/page/user_download/view/user_download_page.dart' as _i19; import 'package:zephyr/page/user_favourite/view/user_favourite_page.dart' - as _i19; -import 'package:zephyr/page/user_history/user_history.dart' as _i30; -import 'package:zephyr/page/user_history/view/user_history_page.dart' as _i20; -import 'package:zephyr/page/webview_page.dart' as _i21; -import 'package:zephyr/widgets/comic_entry/comic_entry.dart' as _i24; + as _i20; +import 'package:zephyr/page/user_history/user_history.dart' as _i31; +import 'package:zephyr/page/user_history/view/user_history_page.dart' as _i21; +import 'package:zephyr/page/webview_page.dart' as _i22; +import 'package:zephyr/widgets/comic_entry/comic_entry.dart' as _i25; /// generated route for /// [_i1.BikaSettingPage] -class BikaSettingRoute extends _i22.PageRouteInfo { - const BikaSettingRoute({List<_i22.PageRouteInfo>? children}) +class BikaSettingRoute extends _i23.PageRouteInfo { + const BikaSettingRoute({List<_i23.PageRouteInfo>? children}) : super( BikaSettingRoute.name, initialChildren: children, @@ -53,7 +54,7 @@ class BikaSettingRoute extends _i22.PageRouteInfo { static const String name = 'BikaSettingRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i1.BikaSettingPage(); @@ -63,12 +64,12 @@ class BikaSettingRoute extends _i22.PageRouteInfo { /// generated route for /// [_i2.ComicInfoPage] -class ComicInfoRoute extends _i22.PageRouteInfo { +class ComicInfoRoute extends _i23.PageRouteInfo { ComicInfoRoute({ - _i23.Key? key, + _i24.Key? key, required String comicId, - _i24.ComicEntryType? type, - List<_i22.PageRouteInfo>? children, + _i25.ComicEntryType? type, + List<_i23.PageRouteInfo>? children, }) : super( ComicInfoRoute.name, args: ComicInfoRouteArgs( @@ -81,7 +82,7 @@ class ComicInfoRoute extends _i22.PageRouteInfo { static const String name = 'ComicInfoRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { final args = data.argsAs(); @@ -101,11 +102,11 @@ class ComicInfoRouteArgs { this.type, }); - final _i23.Key? key; + final _i24.Key? key; final String comicId; - final _i24.ComicEntryType? type; + final _i25.ComicEntryType? type; @override String toString() { @@ -115,15 +116,15 @@ class ComicInfoRouteArgs { /// generated route for /// [_i3.ComicReadPage] -class ComicReadRoute extends _i22.PageRouteInfo { +class ComicReadRoute extends _i23.PageRouteInfo { ComicReadRoute({ - _i23.Key? key, - required _i25.Comic comicInfo, - required List<_i26.Doc> epsInfo, - required _i26.Doc doc, + _i24.Key? key, + required _i26.Comic comicInfo, + required List<_i27.Doc> epsInfo, + required _i27.Doc doc, required String comicId, - _i24.ComicEntryType? type, - List<_i22.PageRouteInfo>? children, + _i25.ComicEntryType? type, + List<_i23.PageRouteInfo>? children, }) : super( ComicReadRoute.name, args: ComicReadRouteArgs( @@ -139,7 +140,7 @@ class ComicReadRoute extends _i22.PageRouteInfo { static const String name = 'ComicReadRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { final args = data.argsAs(); @@ -165,17 +166,17 @@ class ComicReadRouteArgs { this.type, }); - final _i23.Key? key; + final _i24.Key? key; - final _i25.Comic comicInfo; + final _i26.Comic comicInfo; - final List<_i26.Doc> epsInfo; + final List<_i27.Doc> epsInfo; - final _i26.Doc doc; + final _i27.Doc doc; final String comicId; - final _i24.ComicEntryType? type; + final _i25.ComicEntryType? type; @override String toString() { @@ -186,11 +187,11 @@ class ComicReadRouteArgs { /// generated route for /// [_i4.CommentsChildrenPage] class CommentsChildrenRoute - extends _i22.PageRouteInfo { + extends _i23.PageRouteInfo { CommentsChildrenRoute({ - _i23.Key? key, - required _i27.Doc fatherDoc, - List<_i22.PageRouteInfo>? children, + _i24.Key? key, + required _i28.Doc fatherDoc, + List<_i23.PageRouteInfo>? children, }) : super( CommentsChildrenRoute.name, args: CommentsChildrenRouteArgs( @@ -202,7 +203,7 @@ class CommentsChildrenRoute static const String name = 'CommentsChildrenRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { final args = data.argsAs(); @@ -220,9 +221,9 @@ class CommentsChildrenRouteArgs { required this.fatherDoc, }); - final _i23.Key? key; + final _i24.Key? key; - final _i27.Doc fatherDoc; + final _i28.Doc fatherDoc; @override String toString() { @@ -232,12 +233,12 @@ class CommentsChildrenRouteArgs { /// generated route for /// [_i5.CommentsPage] -class CommentsRoute extends _i22.PageRouteInfo { +class CommentsRoute extends _i23.PageRouteInfo { CommentsRoute({ - _i23.Key? key, + _i24.Key? key, required String comicId, required String comicTitle, - List<_i22.PageRouteInfo>? children, + List<_i23.PageRouteInfo>? children, }) : super( CommentsRoute.name, args: CommentsRouteArgs( @@ -250,7 +251,7 @@ class CommentsRoute extends _i22.PageRouteInfo { static const String name = 'CommentsRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { final args = data.argsAs(); @@ -270,7 +271,7 @@ class CommentsRouteArgs { required this.comicTitle, }); - final _i23.Key? key; + final _i24.Key? key; final String comicId; @@ -284,12 +285,12 @@ class CommentsRouteArgs { /// generated route for /// [_i6.DownloadPage] -class DownloadRoute extends _i22.PageRouteInfo { +class DownloadRoute extends _i23.PageRouteInfo { DownloadRoute({ - _i23.Key? key, - required _i25.Comic comicInfo, - required List<_i26.Doc> epsInfo, - List<_i22.PageRouteInfo>? children, + _i24.Key? key, + required _i26.Comic comicInfo, + required List<_i27.Doc> epsInfo, + List<_i23.PageRouteInfo>? children, }) : super( DownloadRoute.name, args: DownloadRouteArgs( @@ -302,7 +303,7 @@ class DownloadRoute extends _i22.PageRouteInfo { static const String name = 'DownloadRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { final args = data.argsAs(); @@ -322,11 +323,11 @@ class DownloadRouteArgs { required this.epsInfo, }); - final _i23.Key? key; + final _i24.Key? key; - final _i25.Comic comicInfo; + final _i26.Comic comicInfo; - final List<_i26.Doc> epsInfo; + final List<_i27.Doc> epsInfo; @override String toString() { @@ -336,8 +337,8 @@ class DownloadRouteArgs { /// generated route for /// [_i7.GlobalSettingPage] -class GlobalSettingRoute extends _i22.PageRouteInfo { - const GlobalSettingRoute({List<_i22.PageRouteInfo>? children}) +class GlobalSettingRoute extends _i23.PageRouteInfo { + const GlobalSettingRoute({List<_i23.PageRouteInfo>? children}) : super( GlobalSettingRoute.name, initialChildren: children, @@ -345,7 +346,7 @@ class GlobalSettingRoute extends _i22.PageRouteInfo { static const String name = 'GlobalSettingRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i7.GlobalSettingPage(); @@ -355,8 +356,8 @@ class GlobalSettingRoute extends _i22.PageRouteInfo { /// generated route for /// [_i8.HomePage] -class HomeRoute extends _i22.PageRouteInfo { - const HomeRoute({List<_i22.PageRouteInfo>? children}) +class HomeRoute extends _i23.PageRouteInfo { + const HomeRoute({List<_i23.PageRouteInfo>? children}) : super( HomeRoute.name, initialChildren: children, @@ -364,7 +365,7 @@ class HomeRoute extends _i22.PageRouteInfo { static const String name = 'HomeRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i8.HomePage(); @@ -374,8 +375,8 @@ class HomeRoute extends _i22.PageRouteInfo { /// generated route for /// [_i9.LoginPage] -class LoginRoute extends _i22.PageRouteInfo { - const LoginRoute({List<_i22.PageRouteInfo>? children}) +class LoginRoute extends _i23.PageRouteInfo { + const LoginRoute({List<_i23.PageRouteInfo>? children}) : super( LoginRoute.name, initialChildren: children, @@ -383,7 +384,7 @@ class LoginRoute extends _i22.PageRouteInfo { static const String name = 'LoginRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i9.LoginPage(); @@ -393,8 +394,8 @@ class LoginRoute extends _i22.PageRouteInfo { /// generated route for /// [_i10.MainPage] -class MainRoute extends _i22.PageRouteInfo { - const MainRoute({List<_i22.PageRouteInfo>? children}) +class MainRoute extends _i23.PageRouteInfo { + const MainRoute({List<_i23.PageRouteInfo>? children}) : super( MainRoute.name, initialChildren: children, @@ -402,7 +403,7 @@ class MainRoute extends _i22.PageRouteInfo { static const String name = 'MainRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i10.MainPage(); @@ -412,8 +413,8 @@ class MainRoute extends _i22.PageRouteInfo { /// generated route for /// [_i11.RankingListPage] -class RankingListRoute extends _i22.PageRouteInfo { - const RankingListRoute({List<_i22.PageRouteInfo>? children}) +class RankingListRoute extends _i23.PageRouteInfo { + const RankingListRoute({List<_i23.PageRouteInfo>? children}) : super( RankingListRoute.name, initialChildren: children, @@ -421,7 +422,7 @@ class RankingListRoute extends _i22.PageRouteInfo { static const String name = 'RankingListRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i11.RankingListPage(); @@ -431,8 +432,8 @@ class RankingListRoute extends _i22.PageRouteInfo { /// generated route for /// [_i12.RegisterPage] -class RegisterRoute extends _i22.PageRouteInfo { - const RegisterRoute({List<_i22.PageRouteInfo>? children}) +class RegisterRoute extends _i23.PageRouteInfo { + const RegisterRoute({List<_i23.PageRouteInfo>? children}) : super( RegisterRoute.name, initialChildren: children, @@ -440,7 +441,7 @@ class RegisterRoute extends _i22.PageRouteInfo { static const String name = 'RegisterRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i12.RegisterPage(); @@ -450,8 +451,8 @@ class RegisterRoute extends _i22.PageRouteInfo { /// generated route for /// [_i13.SearchPage] -class SearchRoute extends _i22.PageRouteInfo { - const SearchRoute({List<_i22.PageRouteInfo>? children}) +class SearchRoute extends _i23.PageRouteInfo { + const SearchRoute({List<_i23.PageRouteInfo>? children}) : super( SearchRoute.name, initialChildren: children, @@ -459,7 +460,7 @@ class SearchRoute extends _i22.PageRouteInfo { static const String name = 'SearchRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i13.SearchPage(); @@ -469,11 +470,11 @@ class SearchRoute extends _i22.PageRouteInfo { /// generated route for /// [_i14.SearchResultPage] -class SearchResultRoute extends _i22.PageRouteInfo { +class SearchResultRoute extends _i23.PageRouteInfo { SearchResultRoute({ - _i23.Key? key, - required _i28.SearchEnterConst searchEnterConst, - List<_i22.PageRouteInfo>? children, + _i24.Key? key, + required _i29.SearchEnterConst searchEnterConst, + List<_i23.PageRouteInfo>? children, }) : super( SearchResultRoute.name, args: SearchResultRouteArgs( @@ -485,7 +486,7 @@ class SearchResultRoute extends _i22.PageRouteInfo { static const String name = 'SearchResultRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { final args = data.argsAs(); @@ -503,9 +504,9 @@ class SearchResultRouteArgs { required this.searchEnterConst, }); - final _i23.Key? key; + final _i24.Key? key; - final _i28.SearchEnterConst searchEnterConst; + final _i29.SearchEnterConst searchEnterConst; @override String toString() { @@ -515,8 +516,8 @@ class SearchResultRouteArgs { /// generated route for /// [_i15.SettingsPage] -class SettingsRoute extends _i22.PageRouteInfo { - const SettingsRoute({List<_i22.PageRouteInfo>? children}) +class SettingsRoute extends _i23.PageRouteInfo { + const SettingsRoute({List<_i23.PageRouteInfo>? children}) : super( SettingsRoute.name, initialChildren: children, @@ -524,7 +525,7 @@ class SettingsRoute extends _i22.PageRouteInfo { static const String name = 'SettingsRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i15.SettingsPage(); @@ -534,8 +535,8 @@ class SettingsRoute extends _i22.PageRouteInfo { /// generated route for /// [_i16.ShowColorPage] -class ShowColorRoute extends _i22.PageRouteInfo { - const ShowColorRoute({List<_i22.PageRouteInfo>? children}) +class ShowColorRoute extends _i23.PageRouteInfo { + const ShowColorRoute({List<_i23.PageRouteInfo>? children}) : super( ShowColorRoute.name, initialChildren: children, @@ -543,7 +544,7 @@ class ShowColorRoute extends _i22.PageRouteInfo { static const String name = 'ShowColorRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { return const _i16.ShowColorPage(); @@ -552,9 +553,28 @@ class ShowColorRoute extends _i22.PageRouteInfo { } /// generated route for -/// [_i17.UserCommentsPage] -class UserCommentsRoute extends _i22.PageRouteInfo { - const UserCommentsRoute({List<_i22.PageRouteInfo>? children}) +/// [_i17.ThemeColorPage] +class ThemeColorRoute extends _i23.PageRouteInfo { + const ThemeColorRoute({List<_i23.PageRouteInfo>? children}) + : super( + ThemeColorRoute.name, + initialChildren: children, + ); + + static const String name = 'ThemeColorRoute'; + + static _i23.PageInfo page = _i23.PageInfo( + name, + builder: (data) { + return const _i17.ThemeColorPage(); + }, + ); +} + +/// generated route for +/// [_i18.UserCommentsPage] +class UserCommentsRoute extends _i23.PageRouteInfo { + const UserCommentsRoute({List<_i23.PageRouteInfo>? children}) : super( UserCommentsRoute.name, initialChildren: children, @@ -562,21 +582,21 @@ class UserCommentsRoute extends _i22.PageRouteInfo { static const String name = 'UserCommentsRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { - return const _i17.UserCommentsPage(); + return const _i18.UserCommentsPage(); }, ); } /// generated route for -/// [_i18.UserDownloadPage] -class UserDownloadRoute extends _i22.PageRouteInfo { +/// [_i19.UserDownloadPage] +class UserDownloadRoute extends _i23.PageRouteInfo { UserDownloadRoute({ - _i23.Key? key, - required _i29.SearchEnterConst searchEnterConst, - List<_i22.PageRouteInfo>? children, + _i24.Key? key, + required _i30.SearchEnterConst searchEnterConst, + List<_i23.PageRouteInfo>? children, }) : super( UserDownloadRoute.name, args: UserDownloadRouteArgs( @@ -588,11 +608,11 @@ class UserDownloadRoute extends _i22.PageRouteInfo { static const String name = 'UserDownloadRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { final args = data.argsAs(); - return _i18.UserDownloadPage( + return _i19.UserDownloadPage( key: args.key, searchEnterConst: args.searchEnterConst, ); @@ -606,9 +626,9 @@ class UserDownloadRouteArgs { required this.searchEnterConst, }); - final _i23.Key? key; + final _i24.Key? key; - final _i29.SearchEnterConst searchEnterConst; + final _i30.SearchEnterConst searchEnterConst; @override String toString() { @@ -617,9 +637,9 @@ class UserDownloadRouteArgs { } /// generated route for -/// [_i19.UserFavoritePage] -class UserFavoriteRoute extends _i22.PageRouteInfo { - const UserFavoriteRoute({List<_i22.PageRouteInfo>? children}) +/// [_i20.UserFavoritePage] +class UserFavoriteRoute extends _i23.PageRouteInfo { + const UserFavoriteRoute({List<_i23.PageRouteInfo>? children}) : super( UserFavoriteRoute.name, initialChildren: children, @@ -627,21 +647,21 @@ class UserFavoriteRoute extends _i22.PageRouteInfo { static const String name = 'UserFavoriteRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { - return const _i19.UserFavoritePage(); + return const _i20.UserFavoritePage(); }, ); } /// generated route for -/// [_i20.UserHistoryPage] -class UserHistoryRoute extends _i22.PageRouteInfo { +/// [_i21.UserHistoryPage] +class UserHistoryRoute extends _i23.PageRouteInfo { UserHistoryRoute({ - _i23.Key? key, - required _i30.SearchEnterConst searchEnterConst, - List<_i22.PageRouteInfo>? children, + _i24.Key? key, + required _i31.SearchEnterConst searchEnterConst, + List<_i23.PageRouteInfo>? children, }) : super( UserHistoryRoute.name, args: UserHistoryRouteArgs( @@ -653,11 +673,11 @@ class UserHistoryRoute extends _i22.PageRouteInfo { static const String name = 'UserHistoryRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { final args = data.argsAs(); - return _i20.UserHistoryPage( + return _i21.UserHistoryPage( key: args.key, searchEnterConst: args.searchEnterConst, ); @@ -671,9 +691,9 @@ class UserHistoryRouteArgs { required this.searchEnterConst, }); - final _i23.Key? key; + final _i24.Key? key; - final _i30.SearchEnterConst searchEnterConst; + final _i31.SearchEnterConst searchEnterConst; @override String toString() { @@ -682,12 +702,12 @@ class UserHistoryRouteArgs { } /// generated route for -/// [_i21.WebViewPage] -class WebViewRoute extends _i22.PageRouteInfo { +/// [_i22.WebViewPage] +class WebViewRoute extends _i23.PageRouteInfo { WebViewRoute({ - _i23.Key? key, + _i24.Key? key, required List info, - List<_i22.PageRouteInfo>? children, + List<_i23.PageRouteInfo>? children, }) : super( WebViewRoute.name, args: WebViewRouteArgs( @@ -699,11 +719,11 @@ class WebViewRoute extends _i22.PageRouteInfo { static const String name = 'WebViewRoute'; - static _i22.PageInfo page = _i22.PageInfo( + static _i23.PageInfo page = _i23.PageInfo( name, builder: (data) { final args = data.argsAs(); - return _i21.WebViewPage( + return _i22.WebViewPage( key: args.key, info: args.info, ); @@ -717,7 +737,7 @@ class WebViewRouteArgs { required this.info, }); - final _i23.Key? key; + final _i24.Key? key; final List info; diff --git a/pubspec.lock b/pubspec.lock index eb1424b..a2b371e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -379,6 +379,14 @@ packages: url: "https://pub.dev" source: hosted version: "9.0.0" + flutter_colorpicker: + dependency: "direct main" + description: + name: flutter_colorpicker + sha256: "969de5f6f9e2a570ac660fb7b501551451ea2a1ab9e2097e89475f60e07816ea" + url: "https://pub.dev" + source: hosted + version: "1.1.0" flutter_easyloading: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 3b55199..7a977c4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: zephyr description: "使用Flutter开发的三方哔咔应用。" -version: 1.21.1+63 +version: 1.22.0+64 environment: sdk: ">=3.0.0" @@ -68,6 +68,7 @@ dependencies: collection: ^1.18.0 # 集合操作工具 equatable: ^2.0.3 # 简化对象比较 stream_transform: ^2.1.1 # 流数据处理工具 + flutter_colorpicker: ^1.1.0 # 颜色选择器 dev_dependencies: flutter_test: