This commit is contained in:
niuhuan 2022-08-20 23:16:13 +08:00
parent e290080ba8
commit 0289e964ee
6 changed files with 137 additions and 35 deletions

View File

@ -1 +1 @@
v1.5.8
v1.5.9

View File

@ -1,3 +1,6 @@
v1.5.9
- [x] 下载漫画中显示评论区(设置中寻找)
v1.5.8
- [x] 解决历史记录图片不刷新的问题
- [x] 增加退出是增加提示的选项(设置中寻找)
- [x] 增加退出是增加提示的选项(设置中寻找)

View File

@ -0,0 +1,41 @@
import 'package:flutter/material.dart';
import '../Common.dart';
import '../Method.dart';
const _propertyName = "showCommentAtDownload";
late bool _showCommentAtDownload;
Future initShowCommentAtDownload() async {
_showCommentAtDownload = (await method.loadProperty(_propertyName, "false")) == "true";
}
bool showCommentAtDownload() {
return _showCommentAtDownload;
}
Future<void> _chooseShowCommentAtDownload(BuildContext context) async {
String? result =
await chooseListDialog<String>(context, "在下载显示评论区", ["", ""]);
if (result != null) {
var target = result == "";
await method.saveProperty(_propertyName, "$target");
_showCommentAtDownload = target;
}
}
Widget showCommentAtDownloadSetting() {
return StatefulBuilder(
builder: (BuildContext context, void Function(void Function()) setState) {
return ListTile(
title: const Text("在下载显示评论区"),
subtitle: Text(_showCommentAtDownload ? "" : ""),
onTap: () async {
await _chooseShowCommentAtDownload(context);
setState(() {});
},
);
},
);
}

View File

@ -4,15 +4,19 @@ import 'package:flutter/material.dart';
import 'package:pikapika/basic/Entities.dart';
import 'package:pikapika/basic/Navigator.dart';
import 'package:pikapika/basic/Method.dart';
import '../basic/config/ShowCommentAtDownload.dart';
import 'ComicInfoScreen.dart';
import 'DownloadExportToFileScreen.dart';
import 'DownloadReaderScreen.dart';
import 'components/ComicDescriptionCard.dart';
import 'components/ComicTagsCard.dart';
import 'components/CommentList.dart';
import 'components/CommentMainType.dart';
import 'components/ContentError.dart';
import 'components/ContentLoading.dart';
import 'components/ContinueReadButton.dart';
import 'components/DownloadInfoCard.dart';
import 'components/Recommendation.dart';
//
class DownloadInfoScreen extends StatefulWidget {
@ -117,51 +121,101 @@ class _DownloadInfoScreenState extends State<DownloadInfoScreen>
}
List<dynamic> tagsDynamic = json.decode(_task.tags);
List<String> tags = tagsDynamic.map((e) => "$e").toList();
return ListView(
var list = ListView(
children: [
DownloadInfoCard(task: _task, linkItem: true),
ComicTagsCard(tags),
ComicDescriptionCard(description: _task.description),
Container(height: 5),
Wrap(
spacing: 10,
runSpacing: 10,
alignment: WrapAlignment.spaceAround,
children: [
ContinueReadButton(
viewFuture: _viewFuture,
onChoose: (int? epOrder, int? pictureRank) {
if (epOrder != null && pictureRank != null) {
for (var i in _epList) {
if (i.epOrder == epOrder) {
_push(_task, _epList, epOrder, pictureRank);
return;
}
}
} else {
_push(_task, _epList, _epList.first.epOrder, null);
}
},
),
..._epList.map((e) {
return MaterialButton(
onPressed: () {
_push(_task, _epList, e.epOrder, null);
},
color: Colors.white,
child: Text(e.title,
style: const TextStyle(color: Colors.black)),
);
}),
],
),
_bottom(),
],
);
// todo only pika task
if (showCommentAtDownload()) {
return DefaultTabController(
length: 3,
child: list,
);
}
return list;
},
),
);
}
var _tabIndex = 0;
Widget _bottom() {
// todo only pika task
if (showCommentAtDownload()) {
final theme = Theme.of(context);
var _tabs = <Widget>[
Tab(text: '章节 (${_epList.length})'),
const Tab(text: '评论'),
const Tab(text: '推荐'),
];
var _views = <Widget>[
_chapters(),
CommentList(CommentMainType.COMIC, widget.comicId),
Recommendation(comicId: widget.comicId),
];
return Column(children: [
Container(
height: 40,
color: theme.colorScheme.secondary.withOpacity(.025),
child: TabBar(
tabs: _tabs,
indicatorColor: theme.colorScheme.secondary,
labelColor: theme.colorScheme.secondary,
onTap: (val) async {
setState(() {
_tabIndex = val;
});
},
),
),
Container(height: 15),
_views[_tabIndex],
Container(height: 5),
]);
}
return _chapters();
}
Widget _chapters() {
return Wrap(
spacing: 10,
runSpacing: 10,
alignment: WrapAlignment.spaceAround,
children: [
ContinueReadButton(
viewFuture: _viewFuture,
onChoose: (int? epOrder, int? pictureRank) {
if (epOrder != null && pictureRank != null) {
for (var i in _epList) {
if (i.epOrder == epOrder) {
_push(_task, _epList, epOrder, pictureRank);
return;
}
}
} else {
_push(_task, _epList, _epList.first.epOrder, null);
}
},
),
..._epList.map((e) {
return MaterialButton(
onPressed: () {
_push(_task, _epList, e.epOrder, null);
},
color: Colors.white,
child: Text(e.title, style: const TextStyle(color: Colors.black)),
);
}),
],
);
}
void _push(
DownloadComic task,
List<DownloadEp> epList,

View File

@ -25,6 +25,7 @@ import 'package:pikapika/basic/config/ReaderDirection.dart';
import 'package:pikapika/basic/config/ReaderSliderPosition.dart';
import 'package:pikapika/basic/config/ReaderType.dart';
import 'package:pikapika/basic/config/ShadowCategories.dart';
import 'package:pikapika/basic/config/ShowCommentAtDownload.dart';
import 'package:pikapika/basic/config/Themes.dart';
import 'package:pikapika/basic/Method.dart';
import 'package:pikapika/basic/config/ListLayout.dart';
@ -99,6 +100,7 @@ class _InitScreenState extends State<InitScreen> {
await reloadIsPro();
autoCheckNewVersion();
await initWillPopNotice();
await initShowCommentAtDownload();
String? initUrl;
if (Platform.isAndroid || Platform.isIOS) {

View File

@ -22,6 +22,7 @@ import 'package:pikapika/basic/config/ReaderDirection.dart';
import 'package:pikapika/basic/config/ReaderSliderPosition.dart';
import 'package:pikapika/basic/config/ReaderType.dart';
import 'package:pikapika/basic/config/ShadowCategories.dart';
import 'package:pikapika/basic/config/ShowCommentAtDownload.dart';
import 'package:pikapika/basic/config/Themes.dart';
import 'package:pikapika/basic/config/TimeOffsetHour.dart';
import 'package:pikapika/basic/config/Version.dart';
@ -110,6 +111,7 @@ class SettingsScreen extends StatelessWidget {
chooserRootSetting(),
downloadThreadCountSetting(),
downloadAndExportPathSetting(),
showCommentAtDownloadSetting(),
exportRenameSetting(),
fontSetting(),
usingRightClickPopSetting(),