diff --git a/analysis_options.yaml b/analysis_options.yaml deleted file mode 100644 index 61b6c4d..0000000 --- a/analysis_options.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options diff --git a/android/app/src/main/res/drawable-night-v21/background.png b/android/app/src/main/res/drawable-night-v21/background.png new file mode 100644 index 0000000..71e9c81 Binary files /dev/null and b/android/app/src/main/res/drawable-night-v21/background.png differ diff --git a/android/app/src/main/res/drawable-night-v21/launch_background.xml b/android/app/src/main/res/drawable-night-v21/launch_background.xml new file mode 100644 index 0000000..f88598c --- /dev/null +++ b/android/app/src/main/res/drawable-night-v21/launch_background.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/android/app/src/main/res/drawable-night/background.png b/android/app/src/main/res/drawable-night/background.png new file mode 100644 index 0000000..71e9c81 Binary files /dev/null and b/android/app/src/main/res/drawable-night/background.png differ diff --git a/android/app/src/main/res/drawable-night/launch_background.xml b/android/app/src/main/res/drawable-night/launch_background.xml new file mode 100644 index 0000000..f88598c --- /dev/null +++ b/android/app/src/main/res/drawable-night/launch_background.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/android/app/src/main/res/drawable-v21/background.png b/android/app/src/main/res/drawable-v21/background.png new file mode 100644 index 0000000..3107d37 Binary files /dev/null and b/android/app/src/main/res/drawable-v21/background.png differ diff --git a/android/app/src/main/res/drawable/background.png b/android/app/src/main/res/drawable/background.png new file mode 100644 index 0000000..3107d37 Binary files /dev/null and b/android/app/src/main/res/drawable/background.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index db77bb4..c983146 100644 Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png new file mode 100644 index 0000000..c983146 Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b7..49ad40c 100644 Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/launcher_icon.png b/android/app/src/main/res/mipmap-mdpi/launcher_icon.png new file mode 100644 index 0000000..49ad40c Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/launcher_icon.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 09d4391..7a1033b 100644 Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png new file mode 100644 index 0000000..7a1033b Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d..8341b9b 100644 Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png new file mode 100644 index 0000000..8341b9b Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372e..6d77e87 100644 Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png new file mode 100644 index 0000000..6d77e87 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png differ diff --git a/android/app/src/main/res/values-night-v31/styles.xml b/android/app/src/main/res/values-night-v31/styles.xml new file mode 100644 index 0000000..366f7e9 --- /dev/null +++ b/android/app/src/main/res/values-night-v31/styles.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/assets/head/mi.jpg b/assets/head/mi.jpg new file mode 100644 index 0000000..89a4e46 Binary files /dev/null and b/assets/head/mi.jpg differ diff --git a/assets/head/mo.jpg b/assets/head/mo.jpg new file mode 100644 index 0000000..6edebf9 Binary files /dev/null and b/assets/head/mo.jpg differ diff --git a/assets/head/un.jpg b/assets/head/un.jpg new file mode 100644 index 0000000..527daa3 Binary files /dev/null and b/assets/head/un.jpg differ diff --git a/assets/head/wan.jpg b/assets/head/wan.jpg new file mode 100644 index 0000000..6b06c58 Binary files /dev/null and b/assets/head/wan.jpg differ diff --git a/assets/head/zao.jpg b/assets/head/zao.jpg new file mode 100644 index 0000000..f17ea98 Binary files /dev/null and b/assets/head/zao.jpg differ diff --git a/assets/logo-640.jpg b/assets/logo-640.jpg new file mode 100644 index 0000000..d6fbe48 Binary files /dev/null and b/assets/logo-640.jpg differ diff --git a/assets/logo-768.jpg b/assets/logo-768.jpg new file mode 100644 index 0000000..b06c47a Binary files /dev/null and b/assets/logo-768.jpg differ diff --git a/assets/logo.jpg b/assets/logo.jpg new file mode 100644 index 0000000..2838903 Binary files /dev/null and b/assets/logo.jpg differ diff --git a/assets/open/open.png b/assets/open/open.png new file mode 100644 index 0000000..e05d4b8 Binary files /dev/null and b/assets/open/open.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index dc9ada4..e02acd5 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png index 28c6bf0..0d6660c 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index 2ccbfd9..a6f6e33 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index f091b6b..40e909a 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png index 4cde121..0f3c8a6 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png index d0ef06e..dc36086 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png index dcdc230..6fe0424 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index 2ccbfd9..a6f6e33 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index c8f9ed8..fb06b1b 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index a6d6b86..5ae8f24 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png new file mode 100644 index 0000000..5777ce8 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png new file mode 100644 index 0000000..6adb015 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png new file mode 100644 index 0000000..09759c2 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png new file mode 100644 index 0000000..053e979 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index a6d6b86..5ae8f24 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index 75b2d16..82a01a6 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png new file mode 100644 index 0000000..c983146 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png new file mode 100644 index 0000000..8341b9b Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index c4df70d..ec8aeba 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png index 6a84f41..0ae85bc 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png index d0e1f58..e5c257a 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json new file mode 100644 index 0000000..8bb185b --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "filename" : "background.png", + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "darkbackground.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png new file mode 100644 index 0000000..3107d37 Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png new file mode 100644 index 0000000..71e9c81 Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png differ diff --git a/lib/common/Global.dart b/lib/common/Global.dart index 7d0c958..45a804e 100644 --- a/lib/common/Global.dart +++ b/lib/common/Global.dart @@ -74,13 +74,14 @@ class Global { static late SharedPreferences _prefs; static Profile profile = Profile(); - static Map get members => membersJson.map((key, value) => MapEntry(key, Member.fromJson(value))); + static Map get members => + membersJson.map((key, value) => MapEntry(key, Member.fromJson(value))); + + static String theme = 'zao'; //网络缓存对象 static NetCache netCache = NetCache(); - static String currentTheme = 'zao'; - //可选主题列表 static List get themes => _themes.map((e) => EoeTheme.fromJson(e)).toList(); @@ -103,8 +104,17 @@ class Global { ..enable = true ..maxAge = 3600 ..maxCount = 100; + + var t = _prefs.getString("theme"); + print('theme'); + print(theme); + if (t != null && t != '') { + theme = t; + } } static saveProfile() => _prefs.setString("profile", jsonEncode(profile.toJson())); + + static saveTheme(String id) => _prefs.setString("theme", id); } diff --git a/lib/main.dart b/lib/main.dart index e784d18..84033b0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,9 @@ import 'dart:io'; import 'package:eoe_fans/routes/mainPage.dart'; +import 'package:eoe_fans/routes/setting/settingPage.dart'; +import 'package:eoe_fans/routes/setting/settingTheme.dart'; +import 'package:eoe_fans/routes/splashPage.dart'; import 'package:flutter/material.dart'; import 'package:eoe_fans/states/ProfileChangeNotifier.dart'; import 'package:flutter/services.dart'; @@ -28,15 +31,18 @@ class MyApp extends StatelessWidget { ], child: Consumer( builder: (BuildContext context, themeModel, Widget? child) { - return MaterialApp( - initialRoute: '/', - theme: ThemeData( - primarySwatch: Colors.blue, - ), - routes: { - '/': (BuildContext context) => MainPage(), - }, - ); + return MaterialApp( + initialRoute: '/splash', + theme: ThemeData( + primarySwatch: Colors.blue, + ), + routes: { + '/': (BuildContext context) => MainPage(), + '/splash': (BuildContext context) => SplashScreen(), + '/setting': (BuildContext context) => const SettingPage(), + '/theme': (BuildContext context) => const SettingTheme(), + }, + ); })); } } diff --git a/lib/routes/mainPage.dart b/lib/routes/mainPage.dart index 0e37add..8ad42e6 100644 --- a/lib/routes/mainPage.dart +++ b/lib/routes/mainPage.dart @@ -36,38 +36,40 @@ class _MainPageState extends State { children: _bodyList, ), Align( - alignment: Alignment.bottomCenter, - child: Theme( - data: Theme.of(context) - .copyWith(canvasColor: Colors.transparent), - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage( - 'assets/${Provider.of(context).assets}/tail_bg.png'), - fit: BoxFit.fill), - color: Colors.transparent), - child: BottomNavigationBar( - elevation: 0, - backgroundColor: Colors.transparent, - type: BottomNavigationBarType.fixed, - items: const [ - BottomNavigationBarItem( - icon: Icon(Icons.video_library_outlined), - label: '视频', - ), - BottomNavigationBarItem( - icon: Icon(Icons.image), - label: '图片', - ), - BottomNavigationBarItem( - icon: Icon(Icons.library_music), - label: '音乐', - ), - ], - currentIndex: _selectedIndex, - onTap: _onItemTapped, - )))) + alignment: Alignment.bottomCenter, + child: Theme( + data: Theme.of(context).copyWith(canvasColor: Colors.transparent), + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage( + 'assets/${Provider.of(context).assets}/tail_bg.png'), + fit: BoxFit.fill), + color: Colors.transparent), + child: BottomNavigationBar( + elevation: 0, + backgroundColor: Colors.transparent, + type: BottomNavigationBarType.fixed, + items: const [ + BottomNavigationBarItem( + icon: Icon(Icons.video_library_outlined), + label: '视频', + ), + BottomNavigationBarItem( + icon: Icon(Icons.image), + label: '图片', + ), + BottomNavigationBarItem( + icon: Icon(Icons.library_music), + label: '音乐', + ), + ], + currentIndex: _selectedIndex, + onTap: _onItemTapped, + ), + ), + ), + ), ], ), ); diff --git a/lib/routes/setting/settingPage.dart b/lib/routes/setting/settingPage.dart new file mode 100644 index 0000000..3dcceec --- /dev/null +++ b/lib/routes/setting/settingPage.dart @@ -0,0 +1,70 @@ +import 'package:eoe_fans/common/Global.dart'; +import 'package:eoe_fans/models/member.dart'; +import 'package:eoe_fans/common/Global.dart'; +import 'package:eoe_fans/states/ProfileChangeNotifier.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:settings_ui/settings_ui.dart'; + +class SettingPage extends StatefulWidget { + const SettingPage({Key? key}) : super(key: key); + + @override + State createState() => _SettingPageState(); +} + +class _SettingPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + leading: IconButton( + icon: const Icon( + Icons.arrow_back, + color: Colors.white, + ), + onPressed: () => Navigator.pop(context), + ), + title: const Text( + '设置', + style: TextStyle(color: Colors.white), + ), + flexibleSpace: Container( + height: double.maxFinite, + child: Image( + image: AssetImage( + 'assets/${Provider.of(context).assets}/head_bg.jpg'), + fit: BoxFit.cover, + ), + ), + ), + body: SettingsList( + sections: [ + SettingsSection( + title: Text('常规'), + tiles: [ + SettingsTile.navigation( + leading: Icon(Icons.color_lens_outlined), + title: Text('主题'), + value: Text(Global + .members[Provider.of(context).themeMember] + ?.firstName ?? + ''), + trailing: Icon(Icons.keyboard_arrow_right), + onPressed: (BuildContext context) { + Navigator.pushNamed(context, '/theme'); + }, + ), + // SettingsTile.switchTile( + // onToggle: (value) {}, + // initialValue: true, + // leading: Icon(Icons.format_paint), + // title: Text('Enable custom theme'), + // ), + ], + ), + ], + ), + ); + } +} diff --git a/lib/routes/setting/settingTheme.dart b/lib/routes/setting/settingTheme.dart new file mode 100644 index 0000000..86d5ca6 --- /dev/null +++ b/lib/routes/setting/settingTheme.dart @@ -0,0 +1,78 @@ +import 'package:eoe_fans/models/member.dart'; +import 'package:eoe_fans/states/ProfileChangeNotifier.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_swiper_null_safety/flutter_swiper_null_safety.dart'; +import 'package:eoe_fans/common/Global.dart'; +import 'package:provider/provider.dart'; + +class SettingTheme extends StatefulWidget { + const SettingTheme({Key? key}) : super(key: key); + + @override + State createState() => _SettingThemeState(); +} + +class _SettingThemeState extends State { + MemberEnum _memberSelect = MemberEnum.zao; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + leading: IconButton( + icon: const Icon( + Icons.arrow_back, + color: Colors.white, + ), + onPressed: () => Navigator.pop(context), + ), + title: const Text("主题"), + flexibleSpace: Container( + height: double.maxFinite, + child: Image( + image: AssetImage('assets/${_memberSelect.name}/head_bg.jpg'), + fit: BoxFit.cover, + ), + ), + ), + body: Stack( + children: [ + Swiper( + itemBuilder: (BuildContext context, int index) { + return Container( + child: Image( + image: AssetImage( + 'assets/head/${MemberEnum.values[index].name}.jpg'), + fit: BoxFit.cover, + ), + ); + }, + itemCount: MemberEnum.values.length, + onIndexChanged: (int index) { + setState(() { + _memberSelect = MemberEnum.values[index]; + Provider.of(context, listen: false).theme = _memberSelect.name; + }); + }, + pagination: const SwiperPagination( + alignment: Alignment.bottomRight, + builder: DotSwiperPaginationBuilder( + color: Colors.black12, // 其他点的颜色 + activeColor: Colors.white, + space: 2, // 点与点之间的距离 + activeSize: 15 // 当前点的大小 + ), + ), + ), + // Positioned( + // child: IconButton( + // icon: Icon( + // Icons.check_box + // ), + // ) + // ) + ], + ), + ); + } +} diff --git a/lib/routes/splashPage.dart b/lib/routes/splashPage.dart new file mode 100644 index 0000000..b67bd22 --- /dev/null +++ b/lib/routes/splashPage.dart @@ -0,0 +1,40 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; + +class SplashScreen extends StatefulWidget { + const SplashScreen({Key? key}) : super(key: key); + + @override + State createState() => _SplashScreenState(); +} + +class _SplashScreenState extends State { + late Timer _timer; + + @override + void initState() { + startTime(); + super.initState(); + } + + startTime() { + _timer = Timer(Duration(milliseconds: 2000), () { + _timer.cancel(); + Navigator.of(context).pushReplacementNamed('/'); + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: ConstrainedBox( + constraints: BoxConstraints.expand(), + child: Image( + image: AssetImage('assets/open/open.png'), + fit: BoxFit.cover, + ), + ), + ); + } +} diff --git a/lib/routes/video/videoList.dart b/lib/routes/video/videoList.dart index 4152e4c..00ee18a 100644 --- a/lib/routes/video/videoList.dart +++ b/lib/routes/video/videoList.dart @@ -7,6 +7,7 @@ import 'package:eoe_fans/models/videosRequest.dart'; import 'package:eoe_fans/routes/video/videoListItem.dart'; import 'package:eoe_fans/routes/video/videoMemberFilter.dart'; import 'package:eoe_fans/common/Global.dart'; +import 'package:eoe_fans/routes/video/videoSwiper.dart'; import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:flutter/material.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; @@ -27,6 +28,7 @@ class _VideoListState extends State { int _page = -1; MemberEnum? _memberFilter; + VideosRequestOrder _order = VideosRequestOrder.view; bool _loading = false; List