diff --git a/android/app/src/main/kotlin/niuhuan/pikapika/MainActivity.kt b/android/app/src/main/kotlin/niuhuan/pikapika/MainActivity.kt index f9fe707..6ff55d1 100644 --- a/android/app/src/main/kotlin/niuhuan/pikapika/MainActivity.kt +++ b/android/app/src/main/kotlin/niuhuan/pikapika/MainActivity.kt @@ -3,10 +3,7 @@ package niuhuan.pikapika import android.content.ContentValues import android.graphics.Bitmap import android.graphics.BitmapFactory -import android.os.Build -import android.os.Environment -import android.os.Handler -import android.os.Looper +import android.os.* import android.provider.MediaStore import android.util.DisplayMetrics import android.util.Log @@ -33,6 +30,10 @@ import java.util.concurrent.Executors class MainActivity : FlutterActivity() { + override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { + super.onCreate(savedInstanceState, persistentState) + } + // 为什么换成换成线程池而不继续使用携程 : 下载图片速度慢会占满携程造成拥堵, 接口无法请求 private val pool = Executors.newCachedThreadPool { runnable -> Thread(runnable).also { it.isDaemon = true } diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml index 449a9f9..f042a93 100644 --- a/android/app/src/main/res/values-night/styles.xml +++ b/android/app/src/main/res/values-night/styles.xml @@ -1,5 +1,5 @@ - + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index d74aa35..eb4c8d3 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -1,5 +1,5 @@ - + diff --git a/lib/basic/config/FullScreenAction.dart b/lib/basic/config/FullScreenAction.dart index a661b05..5236f33 100644 --- a/lib/basic/config/FullScreenAction.dart +++ b/lib/basic/config/FullScreenAction.dart @@ -12,11 +12,12 @@ enum FullScreenAction { } Map _fullScreenActionMap = { - "使用控制器全屏": FullScreenAction.CONTROLLER, "点击屏幕一次全屏": FullScreenAction.TOUCH_ONCE, + "使用控制器全屏": FullScreenAction.CONTROLLER, "将屏幕划分成三个区域 (上一页, 下一页, 全屏)": FullScreenAction.THREE_AREA, }; +const _defaultController = FullScreenAction.TOUCH_ONCE; const _propertyName = "fullScreenAction"; late FullScreenAction _fullScreenAction; @@ -37,7 +38,7 @@ FullScreenAction _fullScreenActionFromString(String string) { return value; } } - return FullScreenAction.CONTROLLER; + return _defaultController; } String currentFullScreenActionName() { diff --git a/lib/basic/config/Quality.dart b/lib/basic/config/Quality.dart index 1767a10..91a6b20 100644 --- a/lib/basic/config/Quality.dart +++ b/lib/basic/config/Quality.dart @@ -6,7 +6,7 @@ import '../Method.dart'; const _ImageQualityOriginal = "original"; const _ImageQualityLow = "low"; const _ImageQualityMedium = "medium"; -const ImageQualityHigh = "high"; +const _ImageQualityHigh = "high"; const _LabelOriginal = "原图"; const _LabelLow = "低"; @@ -17,7 +17,7 @@ var _qualities = { _LabelOriginal: _ImageQualityOriginal, _LabelLow: _ImageQualityLow, _LabelMedium: _ImageQualityMedium, - _LabelHigh: ImageQualityHigh, + _LabelHigh: _ImageQualityHigh, }; const _propertyName = "quality"; diff --git a/lib/basic/config/Themes.dart b/lib/basic/config/Themes.dart index 7a44582..253930e 100644 --- a/lib/basic/config/Themes.dart +++ b/lib/basic/config/Themes.dart @@ -163,11 +163,48 @@ class _DarkTheme extends _ThemePackage { ); } +// +class _DustyBlueTheme extends _ThemePackage { + @override + String code() => "dustyBlue"; + + @override + String name() => "灰蓝"; + + @override + ThemeData themeData(ThemeData rawData) => + rawData.copyWith( + scaffoldBackgroundColor: Color.alphaBlend(Color(0x11999999), Color(0xff20253b)), + cardColor: Color.alphaBlend(Color(0x11AAAAAA), Color(0xff20253b)), + brightness: Brightness.light, + colorScheme: ColorScheme.light( + secondary: Colors.blue.shade200, + ), + appBarTheme: AppBarTheme( + brightness: Brightness.dark, + color: Color(0xff20253b), + iconTheme: IconThemeData( + color: Colors.white, + ), + ), + bottomNavigationBarTheme: BottomNavigationBarThemeData( + backgroundColor: Color(0xff191b26), + selectedItemColor: Colors.blue.shade200, + unselectedItemColor: Colors.grey.shade500, + ), + dividerColor: Colors.grey.shade800, + ); +} + +var _darkTheme = _DarkTheme(); +var _dustyBlueTheme = _DustyBlueTheme(); + final _themePackages = <_ThemePackage>[ _OriginTheme(), _PinkTheme(), _BlackTheme(), - _DarkTheme(), + _darkTheme, + _dustyBlueTheme, ]; // 主题更换事件 @@ -210,11 +247,12 @@ void _changeThemeByCode(String? themeCode) { } if (_themePackage != null) { _themeData = _themePackage.themeData( - _fontThemeData(_themePackage == _themePackages[3]), + _fontThemeData( + _themePackage == _darkTheme || _themePackage == _dustyBlueTheme), ); } _currentDarkTheme = _androidNightMode - ? _themePackages[3].themeData(_fontThemeData(true)) + ? _darkTheme.themeData(_fontThemeData(true)) : _themeData; themeEvent.broadcast(); } diff --git a/lib/basic/const.dart b/lib/basic/const.dart deleted file mode 100644 index cea4a12..0000000 --- a/lib/basic/const.dart +++ /dev/null @@ -1,5 +0,0 @@ - -import 'package:flutter/material.dart'; - -var readerAppbarColor = Color(0xff1e202c); -var readerAppbarColor2 = readerAppbarColor.withAlpha(225); diff --git a/lib/main.dart b/lib/main.dart index 9266095..7128218 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -36,6 +36,7 @@ class _PikapikaAppState extends State { @override Widget build(BuildContext context) { return MaterialApp( + debugShowCheckedModeBanner: false, theme: currentThemeData(), darkTheme: currentDarkTheme(), navigatorObservers: [navigatorObserver, routeObserver], diff --git a/lib/screens/ComicReaderScreen.dart b/lib/screens/ComicReaderScreen.dart index 8369c89..69e98d9 100644 --- a/lib/screens/ComicReaderScreen.dart +++ b/lib/screens/ComicReaderScreen.dart @@ -8,9 +8,6 @@ import 'package:pikapika/basic/Method.dart'; import 'package:pikapika/basic/config/AutoFullScreen.dart'; import 'package:pikapika/basic/config/FullScreenUI.dart'; import 'package:pikapika/basic/config/Quality.dart'; -import 'package:pikapika/basic/config/ReaderDirection.dart'; -import 'package:pikapika/basic/config/ReaderType.dart'; -import 'package:pikapika/basic/const.dart'; import 'package:pikapika/screens/components/ContentError.dart'; import 'package:pikapika/screens/components/ContentLoading.dart'; import 'components/ImageReader.dart'; @@ -146,7 +143,6 @@ class _ComicReaderScreenState extends State { appBar: _fullScreen ? null : AppBar( - backgroundColor: readerAppbarColor, title: Text("${_ep.title} - ${widget.comicInfo.title}"), ), body: ContentError( @@ -165,7 +161,6 @@ class _ComicReaderScreenState extends State { appBar: _fullScreen ? null : AppBar( - backgroundColor: readerAppbarColor, title: Text("${_ep.title} - ${widget.comicInfo.title}"), ), body: ContentLoading(label: '加载中'), diff --git a/lib/screens/DownloadReaderScreen.dart b/lib/screens/DownloadReaderScreen.dart index 78dedeb..ce80aa1 100644 --- a/lib/screens/DownloadReaderScreen.dart +++ b/lib/screens/DownloadReaderScreen.dart @@ -2,13 +2,11 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:pikapika/basic/Common.dart'; import 'package:pikapika/basic/Entities.dart'; import 'package:pikapika/basic/config/AutoFullScreen.dart'; import 'package:pikapika/basic/config/FullScreenUI.dart'; import 'package:pikapika/basic/config/ReaderDirection.dart'; import 'package:pikapika/basic/config/ReaderType.dart'; -import 'package:pikapika/screens/components/ContentBuilder.dart'; import 'package:pikapika/basic/Method.dart'; import 'components/ContentError.dart'; import 'components/ContentLoading.dart'; diff --git a/lib/screens/components/ComicInfoCard.dart b/lib/screens/components/ComicInfoCard.dart index 89a2322..f45ef99 100644 --- a/lib/screens/components/ComicInfoCard.dart +++ b/lib/screens/components/ComicInfoCard.dart @@ -151,7 +151,8 @@ class _ComicInfoCard extends State { Text.rich(TextSpan(children: [ WidgetSpan(child: iconPage), WidgetSpan(child: iconSpacing), - WidgetSpan(child: Text( + WidgetSpan( + child: Text( "${info.epsCount}E / ${info.pagesCount}P", style: countLabelStyle, strutStyle: iconLabelStrutStyle, @@ -178,49 +179,54 @@ class _ComicInfoCard extends State { ...(like == null ? [] : [ - _likeLoading - ? IconButton( - color: Colors.pink[400], - onPressed: () {}, - icon: Icon( - Icons.sync, - size: 26, - ), - ) - : IconButton( - color: Colors.pink[400], - onPressed: _changeLike, - icon: Icon( - like - ? Icons.favorite - : Icons.favorite_border, - size: 26, - ), - ), + Container(height: 10), + Container( + height: 26, + child: _likeLoading + ? IconButton( + color: Colors.pink[400], + onPressed: () {}, + icon: Icon( + Icons.sync, + ), + ) + : IconButton( + color: Colors.pink[400], + onPressed: _changeLike, + icon: Icon( + like + ? Icons.favorite + : Icons.favorite_border, + ), + ), + ), ]), ...(favourite == null ? [] : [ - _favouriteLoading - ? IconButton( - color: Colors.pink[400], - onPressed: () {}, - icon: Icon( - Icons.sync, - size: 26, - ), - ) - : IconButton( - color: Colors.pink[400], - onPressed: _changeFavourite, - icon: Icon( - favourite - ? Icons.bookmark - : Icons.bookmark_border, - size: 26, - ), - ), + Container(height: 10), + Container( + height: 26, + child: _favouriteLoading + ? IconButton( + color: Colors.pink[400], + onPressed: () {}, + icon: Icon( + Icons.sync, + ), + ) + : IconButton( + color: Colors.pink[400], + onPressed: _changeFavourite, + icon: Icon( + favourite + ? Icons.bookmark + : Icons.bookmark_border, + ), + ), + ), ]), + Container(height: 10), ], ), ), diff --git a/lib/screens/components/ImageReader.dart b/lib/screens/components/ImageReader.dart index 634b615..fdbf3a5 100644 --- a/lib/screens/components/ImageReader.dart +++ b/lib/screens/components/ImageReader.dart @@ -19,7 +19,6 @@ import 'package:pikapika/basic/config/Quality.dart'; import 'package:pikapika/basic/config/ReaderDirection.dart'; import 'package:pikapika/basic/config/ReaderType.dart'; import 'package:pikapika/basic/config/VolumeController.dart'; -import 'package:pikapika/basic/const.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; import '../FilePhotoViewScreen.dart'; import 'gesture_zoom_box.dart';