parent
8ac33b43db
commit
6a4828c5a6
|
@ -59,9 +59,12 @@ jobs:
|
||||||
- target: macos
|
- target: macos
|
||||||
host: macos-latest
|
host: macos-latest
|
||||||
flutter_version: '2.10.3'
|
flutter_version: '2.10.3'
|
||||||
|
- target: linux
|
||||||
|
host: ubuntu-latest
|
||||||
|
flutter_version: '2.10.3'
|
||||||
- target: ios
|
- target: ios
|
||||||
host: macos-latest
|
host: macos-latest
|
||||||
flutter_version: '3.3.4'
|
flutter_version: '3.3.10'
|
||||||
- target: android-arm32
|
- target: android-arm32
|
||||||
host: ubuntu-latest
|
host: ubuntu-latest
|
||||||
flutter_version: '2.10.5'
|
flutter_version: '2.10.5'
|
||||||
|
@ -73,13 +76,13 @@ jobs:
|
||||||
flutter_version: '2.10.5'
|
flutter_version: '2.10.5'
|
||||||
- target: android-arm32
|
- target: android-arm32
|
||||||
host: ubuntu-latest
|
host: ubuntu-latest
|
||||||
flutter_version: '3.3.4'
|
flutter_version: '3.3.10'
|
||||||
- target: android-arm64
|
- target: android-arm64
|
||||||
host: ubuntu-latest
|
host: ubuntu-latest
|
||||||
flutter_version: '3.3.4'
|
flutter_version: '3.3.10'
|
||||||
- target: android-x86_64
|
- target: android-x86_64
|
||||||
host: ubuntu-latest
|
host: ubuntu-latest
|
||||||
flutter_version: '3.3.4'
|
flutter_version: '3.3.10'
|
||||||
|
|
||||||
runs-on: ${{ matrix.config.host }}
|
runs-on: ${{ matrix.config.host }}
|
||||||
|
|
||||||
|
@ -210,7 +213,7 @@ jobs:
|
||||||
mv appimagetool-x86_64.AppImage ${GITHUB_WORKSPACE}/bin/appimagetool
|
mv appimagetool-x86_64.AppImage ${GITHUB_WORKSPACE}/bin/appimagetool
|
||||||
echo ::add-path::${GITHUB_WORKSPACE}/bin
|
echo ::add-path::${GITHUB_WORKSPACE}/bin
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libgl1-mesa-dev xorg-dev
|
sudo apt-get install -y libgl1-mesa-dev xorg-dev libfuse2
|
||||||
|
|
||||||
- name: Install hover (desktop)
|
- name: Install hover (desktop)
|
||||||
if: steps.check_asset.outputs.skip_build != 'true' && ( matrix.config.target == 'linux' || matrix.config.target == 'windows' || matrix.config.target == 'macos')
|
if: steps.check_asset.outputs.skip_build != 'true' && ( matrix.config.target == 'linux' || matrix.config.target == 'windows' || matrix.config.target == 'macos')
|
||||||
|
@ -235,6 +238,7 @@ jobs:
|
||||||
sed -i "s/flutter_styled_toast: ^2.0.0/flutter_styled_toast: 2.0.0/g" pubspec.yaml
|
sed -i "s/flutter_styled_toast: ^2.0.0/flutter_styled_toast: 2.0.0/g" pubspec.yaml
|
||||||
sed -i "s/filesystem_picker: ^3.0.0-beta.1/filesystem_picker: 2.0.0/g" pubspec.yaml
|
sed -i "s/filesystem_picker: ^3.0.0-beta.1/filesystem_picker: 2.0.0/g" pubspec.yaml
|
||||||
sed -i "s/file_picker: ^5.2.1/file_picker: 4.6.1/g" pubspec.yaml
|
sed -i "s/file_picker: ^5.2.1/file_picker: 4.6.1/g" pubspec.yaml
|
||||||
|
sed -i "s/multi_select_flutter: ^4.0.0/multi_select_flutter: 4.1.2/g" pubspec.yaml
|
||||||
flutter pub get
|
flutter pub get
|
||||||
|
|
||||||
- name: Upgrade deps version (flutter2 mac)
|
- name: Upgrade deps version (flutter2 mac)
|
||||||
|
@ -245,6 +249,7 @@ jobs:
|
||||||
gsed -i "s/flutter_styled_toast: ^2.0.0/flutter_styled_toast: 2.0.0/g" pubspec.yaml
|
gsed -i "s/flutter_styled_toast: ^2.0.0/flutter_styled_toast: 2.0.0/g" pubspec.yaml
|
||||||
gsed -i "s/filesystem_picker: ^3.0.0-beta.1/filesystem_picker: 2.0.0/g" pubspec.yaml
|
gsed -i "s/filesystem_picker: ^3.0.0-beta.1/filesystem_picker: 2.0.0/g" pubspec.yaml
|
||||||
gsed -i "s/file_picker: ^5.2.1/file_picker: 4.6.1/g" pubspec.yaml
|
gsed -i "s/file_picker: ^5.2.1/file_picker: 4.6.1/g" pubspec.yaml
|
||||||
|
gsed -i "s/multi_select_flutter: ^4.0.0/multi_select_flutter: 4.1.2/g" pubspec.yaml
|
||||||
flutter pub get
|
flutter pub get
|
||||||
|
|
||||||
- name: Build (windows)
|
- name: Build (windows)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
v1.5.13
|
v1.6.1
|
|
@ -1,16 +1,5 @@
|
||||||
## !! WARNING !!
|
v1.6.2
|
||||||
|
|
||||||
IOS 用户请注意, 由于导出权限的问题, 本次升级后, 数据将会被移出数据库 并现显示到文件管理器, 您登录windows端后, 将文件复制到windows端的data目录并覆盖, 即可恢复数据继续阅读。 随后系统将会重新创建数据库, 您可将下载传输回手机。
|
|
||||||
|
|
||||||
其他平台用户不受影响。
|
|
||||||
|
|
||||||
##
|
|
||||||
|
|
||||||
v1.5.13
|
|
||||||
|
|
||||||
|
- [x] ♻️使用分流1和CDN-3分流进行直连
|
||||||
- [x] ♻️升级flutter
|
- [x] ♻️升级flutter
|
||||||
- [x] 🚀IOS支持导出到文件
|
- [x] 🚀下载支持搜索
|
||||||
- [x] ♻️消除WebToon横向阅读时的抖动
|
|
||||||
- [x] 🐛修复一些布局问题
|
|
||||||
- [x] ♻️反转下载章节的列表
|
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ EXTERNAL SOURCES:
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
|
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
|
||||||
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
|
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
|
||||||
file_picker: 817ab1d8cd2da9d2da412a417162deee3500fc95
|
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
|
||||||
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
||||||
image_cropper: 60c2789d1f1a78c873235d4319ca0c34a69f2d98
|
image_cropper: 60c2789d1f1a78c873235d4319ca0c34a69f2d98
|
||||||
image_picker_ios: b786a5dcf033a8336a657191401bfdf12017dabb
|
image_picker_ios: b786a5dcf033a8336a657191401bfdf12017dabb
|
||||||
|
@ -102,7 +102,7 @@ SPEC CHECKSUMS:
|
||||||
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
||||||
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
|
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
|
||||||
uri_to_file: c4726881848febf4806f0a5707bd12903e02b0f0
|
uri_to_file: c4726881848febf4806f0a5707bd12903e02b0f0
|
||||||
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
|
url_launcher_ios: ae1517e5e344f5544fb090b079e11f399dfbe4d2
|
||||||
|
|
||||||
PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3
|
PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3
|
||||||
|
|
||||||
|
|
|
@ -249,7 +249,7 @@
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n";
|
||||||
};
|
};
|
||||||
A66AE356A44E049B8DF0FD4F /* [CP] Embed Pods Frameworks */ = {
|
A66AE356A44E049B8DF0FD4F /* [CP] Embed Pods Frameworks */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
|
|
@ -504,8 +504,10 @@ class Method {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 所有下载
|
/// 所有下载
|
||||||
Future<List<DownloadComic>> allDownloads() async {
|
Future<List<DownloadComic>> allDownloads(String search) async {
|
||||||
var data = await _flatInvoke("allDownloads", "");
|
var data = await _flatInvoke("allDownloads", {
|
||||||
|
"search": search,
|
||||||
|
});
|
||||||
data = jsonDecode(data);
|
data = jsonDecode(data);
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
return [];
|
return [];
|
||||||
|
@ -723,6 +725,16 @@ class Method {
|
||||||
return _flatInvoke("saveDownloadAndExportPath", folder);
|
return _flatInvoke("saveDownloadAndExportPath", folder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 使用下载缓存-配置获取
|
||||||
|
Future loadDownloadCachePath() {
|
||||||
|
return _flatInvoke("loadDownloadCachePath", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 使用下载缓存-设置
|
||||||
|
Future saveDownloadCachePath(String folder) {
|
||||||
|
return _flatInvoke("saveDownloadCachePath", folder);
|
||||||
|
}
|
||||||
|
|
||||||
/// 切换安全策略 (安卓禁止截图, 录屏, 不显示在任务视图)
|
/// 切换安全策略 (安卓禁止截图, 录屏, 不显示在任务视图)
|
||||||
Future androidSecureFlag(bool flag) {
|
Future androidSecureFlag(bool flag) {
|
||||||
return _channel.invokeMethod("androidSecureFlag", {
|
return _channel.invokeMethod("androidSecureFlag", {
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
/// 下载的同时导出到文件系统
|
||||||
|
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:pikapika/basic/Common.dart';
|
||||||
|
import 'package:pikapika/basic/Cross.dart';
|
||||||
|
|
||||||
|
import '../Method.dart';
|
||||||
|
|
||||||
|
late String _downloadCachePath;
|
||||||
|
|
||||||
|
Future initDownloadCachePath() async {
|
||||||
|
if (Platform.isWindows ||
|
||||||
|
Platform.isMacOS ||
|
||||||
|
Platform.isAndroid ||
|
||||||
|
Platform.isLinux) {
|
||||||
|
_downloadCachePath = await method.loadDownloadCachePath();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget downloadCachePathSetting() {
|
||||||
|
if (Platform.isWindows ||
|
||||||
|
Platform.isMacOS ||
|
||||||
|
Platform.isAndroid ||
|
||||||
|
Platform.isLinux) {
|
||||||
|
return StatefulBuilder(
|
||||||
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: const Text("使用下载缓存"),
|
||||||
|
subtitle: Text(_downloadCachePath),
|
||||||
|
onTap: () async {
|
||||||
|
if (_downloadCachePath == "") {
|
||||||
|
bool b = await confirmDialog(
|
||||||
|
context,
|
||||||
|
"使用其他软件的下载内容加速",
|
||||||
|
"您即将选择一个目录, 作为下载加速使用, 这个目录名字通常叫files",
|
||||||
|
);
|
||||||
|
if (b) {
|
||||||
|
late String? folder;
|
||||||
|
try {
|
||||||
|
folder = await chooseFolder(context);
|
||||||
|
} catch (e) {
|
||||||
|
defaultToast(context, "$e");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (folder != null) {
|
||||||
|
await method.saveDownloadCachePath(folder);
|
||||||
|
_downloadCachePath = folder;
|
||||||
|
setState(() {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
bool b = await confirmDialog(
|
||||||
|
context,
|
||||||
|
"使用其他软件的下载内容加速",
|
||||||
|
"您确定取消使用其他软件的下载内容加速的功能吗? 取消之后您可以再次点击设置",
|
||||||
|
);
|
||||||
|
if (b) {
|
||||||
|
var folder = "";
|
||||||
|
await method.saveDownloadCachePath(folder);
|
||||||
|
_downloadCachePath = folder;
|
||||||
|
setState(() {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return Container();
|
||||||
|
}
|
|
@ -3,11 +3,12 @@ import 'package:flutter/material.dart';
|
||||||
import '../Method.dart';
|
import '../Method.dart';
|
||||||
|
|
||||||
var _imageAddresses = {
|
var _imageAddresses = {
|
||||||
"-1": "跟随api分流",
|
"-3": "CDN-3",
|
||||||
|
"-2": "CDN-2",
|
||||||
|
"-1": "CDN-1",
|
||||||
"0": "不分流",
|
"0": "不分流",
|
||||||
"1": "分流1 (推荐)",
|
"1": "分流1",
|
||||||
"2": "分流2",
|
"2": "分流2",
|
||||||
"3": "分流3",
|
|
||||||
};
|
};
|
||||||
|
|
||||||
late String _currentImageAddress;
|
late String _currentImageAddress;
|
||||||
|
|
|
@ -15,7 +15,7 @@ class DownloadExportGroupScreen extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _DownloadExportGroupScreenState extends State<DownloadExportGroupScreen> {
|
class _DownloadExportGroupScreenState extends State<DownloadExportGroupScreen> {
|
||||||
late Future<List<DownloadComic>> _f = method.allDownloads();
|
late Future<List<DownloadComic>> _f = method.allDownloads("");
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -68,7 +68,7 @@ class _DownloadExportGroupScreenState extends State<DownloadExportGroupScreen> {
|
||||||
onRefresh: () async {
|
onRefresh: () async {
|
||||||
setState(() {
|
setState(() {
|
||||||
selected.clear();
|
selected.clear();
|
||||||
_f = method.allDownloads();
|
_f = method.allDownloads("");
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
child: ListView(
|
child: ListView(
|
||||||
|
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_search_bar/flutter_search_bar.dart';
|
||||||
import 'package:pikapika/basic/Channels.dart';
|
import 'package:pikapika/basic/Channels.dart';
|
||||||
import 'package:pikapika/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapika/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
|
@ -22,9 +23,35 @@ class DownloadListScreen extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _DownloadListScreenState extends State<DownloadListScreen> {
|
class _DownloadListScreenState extends State<DownloadListScreen> {
|
||||||
|
String _search = "";
|
||||||
|
late final SearchBar _searchBar = SearchBar(
|
||||||
|
hintText: '搜索下载',
|
||||||
|
inBar: false,
|
||||||
|
setState: setState,
|
||||||
|
onSubmitted: (value) {
|
||||||
|
if (value.isNotEmpty) {
|
||||||
|
_search = value;
|
||||||
|
_f = method.allDownloads(_search);
|
||||||
|
_searchBar.controller.text = value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
buildDefaultAppBar: (BuildContext context) {
|
||||||
|
return AppBar(
|
||||||
|
title: Text(_search == "" ? "下载列表" : ('搜索下载 - $_search')),
|
||||||
|
actions: [
|
||||||
|
_searchBar.getSearchAction(context),
|
||||||
|
exportButton(),
|
||||||
|
importButton(),
|
||||||
|
resetFailedButton(),
|
||||||
|
pauseButton(),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
DownloadComic? _downloading;
|
DownloadComic? _downloading;
|
||||||
late bool _downloadRunning = false;
|
late bool _downloadRunning = false;
|
||||||
late Future<List<DownloadComic>> _f = method.allDownloads();
|
late Future<List<DownloadComic>> _f = method.allDownloads(_search);
|
||||||
|
|
||||||
void _onMessageChange(String event) {
|
void _onMessageChange(String event) {
|
||||||
print("EVENT");
|
print("EVENT");
|
||||||
|
@ -57,15 +84,7 @@ class _DownloadListScreenState extends State<DownloadListScreen> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final screen = Scaffold(
|
final screen = Scaffold(
|
||||||
appBar: AppBar(
|
appBar: _searchBar.build(context),
|
||||||
title: const Text('下载列表'),
|
|
||||||
actions: [
|
|
||||||
exportButton(),
|
|
||||||
importButton(),
|
|
||||||
resetFailedButton(),
|
|
||||||
pauseButton(),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
body: FutureBuilder(
|
body: FutureBuilder(
|
||||||
future: _f,
|
future: _f,
|
||||||
builder: (BuildContext context,
|
builder: (BuildContext context,
|
||||||
|
@ -97,7 +116,7 @@ class _DownloadListScreenState extends State<DownloadListScreen> {
|
||||||
return RefreshIndicator(
|
return RefreshIndicator(
|
||||||
onRefresh: () async {
|
onRefresh: () async {
|
||||||
setState(() {
|
setState(() {
|
||||||
_f = method.allDownloads();
|
_f = method.allDownloads(_search);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
child: ListView(
|
child: ListView(
|
||||||
|
@ -183,7 +202,7 @@ class _DownloadListScreenState extends State<DownloadListScreen> {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
setState(() {
|
setState(() {
|
||||||
_f = method.allDownloads();
|
_f = method.allDownloads(_search);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
icon: Column(
|
icon: Column(
|
||||||
|
@ -262,7 +281,7 @@ class _DownloadListScreenState extends State<DownloadListScreen> {
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await method.resetFailed();
|
await method.resetFailed();
|
||||||
setState(() {
|
setState(() {
|
||||||
_f = method.allDownloads();
|
_f = method.allDownloads(_search);
|
||||||
});
|
});
|
||||||
defaultToast(context, "所有失败的下载已经恢复");
|
defaultToast(context, "所有失败的下载已经恢复");
|
||||||
},
|
},
|
||||||
|
|
|
@ -40,6 +40,7 @@ import 'package:pikapika/screens/ComicInfoScreen.dart';
|
||||||
import 'package:pikapika/screens/PkzArchiveScreen.dart';
|
import 'package:pikapika/screens/PkzArchiveScreen.dart';
|
||||||
import 'package:uni_links/uni_links.dart';
|
import 'package:uni_links/uni_links.dart';
|
||||||
import 'package:uri_to_file/uri_to_file.dart';
|
import 'package:uri_to_file/uri_to_file.dart';
|
||||||
|
import '../basic/config/DownloadCachePath.dart';
|
||||||
import '../basic/config/ExportRename.dart';
|
import '../basic/config/ExportRename.dart';
|
||||||
import '../basic/config/IconLoading.dart';
|
import '../basic/config/IconLoading.dart';
|
||||||
import '../basic/config/IsPro.dart';
|
import '../basic/config/IsPro.dart';
|
||||||
|
@ -105,6 +106,7 @@ class _InitScreenState extends State<InitScreen> {
|
||||||
autoCheckNewVersion();
|
autoCheckNewVersion();
|
||||||
await initWillPopNotice();
|
await initWillPopNotice();
|
||||||
await initShowCommentAtDownload();
|
await initShowCommentAtDownload();
|
||||||
|
await initDownloadCachePath();
|
||||||
|
|
||||||
String? initUrl;
|
String? initUrl;
|
||||||
if (Platform.isAndroid || Platform.isIOS) {
|
if (Platform.isAndroid || Platform.isIOS) {
|
||||||
|
|
|
@ -34,6 +34,7 @@ import 'package:pikapika/screens/components/RightClickPop.dart';
|
||||||
|
|
||||||
import '../basic/config/Authentication.dart';
|
import '../basic/config/Authentication.dart';
|
||||||
import '../basic/config/CategoriesColumnCount.dart';
|
import '../basic/config/CategoriesColumnCount.dart';
|
||||||
|
import '../basic/config/DownloadCachePath.dart';
|
||||||
import '../basic/config/UsingRightClickPop.dart';
|
import '../basic/config/UsingRightClickPop.dart';
|
||||||
import '../basic/config/WillPopNotice.dart';
|
import '../basic/config/WillPopNotice.dart';
|
||||||
import 'CleanScreen.dart';
|
import 'CleanScreen.dart';
|
||||||
|
@ -116,6 +117,7 @@ class SettingsScreen extends StatelessWidget {
|
||||||
downloadThreadCountSetting(),
|
downloadThreadCountSetting(),
|
||||||
downloadAndExportPathSetting(),
|
downloadAndExportPathSetting(),
|
||||||
showCommentAtDownloadSetting(),
|
showCommentAtDownloadSetting(),
|
||||||
|
downloadCachePathSetting(),
|
||||||
exportRenameSetting(),
|
exportRenameSetting(),
|
||||||
fontSetting(),
|
fontSetting(),
|
||||||
usingRightClickPopSetting(),
|
usingRightClickPopSetting(),
|
||||||
|
|
|
@ -182,8 +182,8 @@ class _ControllerComicPagerState extends State<ControllerComicPager> {
|
||||||
if (num == 0 || num > comicsPage.pages) {
|
if (num == 0 || num > comicsPage.pages) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (num > 50 && !isPro) {
|
if (num > 10 && !isPro) {
|
||||||
defaultToast(context, "发电以后才能看50页以后的内容");
|
defaultToast(context, "发电以后才能看10页以后的内容");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_currentPage = num;
|
_currentPage = num;
|
||||||
|
@ -218,8 +218,8 @@ class _ControllerComicPagerState extends State<ControllerComicPager> {
|
||||||
minWidth: 0,
|
minWidth: 0,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
if (comicsPage.page < comicsPage.pages) {
|
if (comicsPage.page < comicsPage.pages) {
|
||||||
if (_currentPage >= 50 && !isPro) {
|
if (_currentPage >= 10 && !isPro) {
|
||||||
defaultToast(context, "发电以后才能看50页以后的内容");
|
defaultToast(context, "发电以后才能看10页以后的内容");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_currentPage = comicsPage.page + 1;
|
_currentPage = comicsPage.page + 1;
|
||||||
|
@ -240,8 +240,8 @@ class _ControllerComicPagerState extends State<ControllerComicPager> {
|
||||||
if (comicsPage.page < comicsPage.pages) {
|
if (comicsPage.page < comicsPage.pages) {
|
||||||
return FitButton(
|
return FitButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
if (_currentPage >= 50 && !isPro) {
|
if (_currentPage >= 10 && !isPro) {
|
||||||
defaultToast(context, "发电以后才能看50页以后的内容");
|
defaultToast(context, "发电以后才能看10页以后的内容");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_currentPage = comicsPage.page + 1;
|
_currentPage = comicsPage.page + 1;
|
||||||
|
@ -317,7 +317,7 @@ class _StreamComicPagerState extends State<StreamComicPager> {
|
||||||
_maxPage = page.pages;
|
_maxPage = page.pages;
|
||||||
_list.addAll(page.docs);
|
_list.addAll(page.docs);
|
||||||
_over = page.page >= page.pages;
|
_over = page.page >= page.pages;
|
||||||
_noPro = _currentPage > 50 && !isPro;
|
_noPro = _currentPage > 10 && !isPro;
|
||||||
});
|
});
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
_error = true;
|
_error = true;
|
||||||
|
@ -430,8 +430,8 @@ class _StreamComicPagerState extends State<StreamComicPager> {
|
||||||
if (num == 0 || num > _maxPage) {
|
if (num == 0 || num > _maxPage) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (_currentPage >= 50 && !isPro) {
|
if (_currentPage >= 10 && !isPro) {
|
||||||
defaultToast(context, "发电以后才能看50页以后的内容");
|
defaultToast(context, "发电以后才能看10页以后的内容");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_currentPage = num;
|
_currentPage = num;
|
||||||
|
|
58
pubspec.lock
58
pubspec.lock
|
@ -14,7 +14,7 @@ packages:
|
||||||
name: archive
|
name: archive
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.3.1"
|
version: "3.3.5"
|
||||||
async:
|
async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -57,6 +57,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.16.0"
|
version: "1.16.0"
|
||||||
|
convert:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: convert
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.1"
|
||||||
crop_image:
|
crop_image:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -112,7 +119,7 @@ packages:
|
||||||
name: file_picker
|
name: file_picker
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.2.1"
|
version: "5.2.5"
|
||||||
filesystem_picker:
|
filesystem_picker:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -171,7 +178,7 @@ packages:
|
||||||
name: flutter_svg
|
name: flutter_svg
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.5"
|
version: "1.1.6"
|
||||||
flutter_test:
|
flutter_test:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description: flutter
|
description: flutter
|
||||||
|
@ -202,7 +209,7 @@ packages:
|
||||||
name: image
|
name: image
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.2.2"
|
version: "3.3.0"
|
||||||
image_cropper:
|
image_cropper:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -216,14 +223,14 @@ packages:
|
||||||
name: image_picker
|
name: image_picker
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.6"
|
version: "0.8.6+1"
|
||||||
image_picker_android:
|
image_picker_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_picker_android
|
name: image_picker_android
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.5+3"
|
version: "0.8.5+5"
|
||||||
image_picker_for_web:
|
image_picker_for_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -237,7 +244,7 @@ packages:
|
||||||
name: image_picker_ios
|
name: image_picker_ios
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.6+1"
|
version: "0.8.6+6"
|
||||||
image_picker_platform_interface:
|
image_picker_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -307,7 +314,7 @@ packages:
|
||||||
name: multi_select_flutter
|
name: multi_select_flutter
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.1.2"
|
version: "4.1.3"
|
||||||
path:
|
path:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -335,21 +342,21 @@ packages:
|
||||||
name: permission_handler
|
name: permission_handler
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.1.0"
|
version: "10.2.0"
|
||||||
permission_handler_android:
|
permission_handler_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: permission_handler_android
|
name: permission_handler_android
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.1.0"
|
version: "10.2.0"
|
||||||
permission_handler_apple:
|
permission_handler_apple:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: permission_handler_apple
|
name: permission_handler_apple
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.0.6"
|
version: "9.0.7"
|
||||||
permission_handler_platform_interface:
|
permission_handler_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -363,14 +370,14 @@ packages:
|
||||||
name: permission_handler_windows
|
name: permission_handler_windows
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.1"
|
version: "0.1.2"
|
||||||
petitparser:
|
petitparser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: petitparser
|
name: petitparser
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.0.0"
|
version: "5.1.0"
|
||||||
photo_view:
|
photo_view:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -385,6 +392,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.3"
|
version: "2.1.3"
|
||||||
|
pointycastle:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: pointycastle
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "3.6.2"
|
||||||
scrollable_positioned_list:
|
scrollable_positioned_list:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -480,35 +494,35 @@ packages:
|
||||||
name: url_launcher
|
name: url_launcher
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.6"
|
version: "6.1.8"
|
||||||
url_launcher_android:
|
url_launcher_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_android
|
name: url_launcher_android
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.0.19"
|
version: "6.0.23"
|
||||||
url_launcher_ios:
|
url_launcher_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_ios
|
name: url_launcher_ios
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.0.17"
|
version: "6.0.18"
|
||||||
url_launcher_linux:
|
url_launcher_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_linux
|
name: url_launcher_linux
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
url_launcher_macos:
|
url_launcher_macos:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_macos
|
name: url_launcher_macos
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
url_launcher_platform_interface:
|
url_launcher_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -522,14 +536,14 @@ packages:
|
||||||
name: url_launcher_web
|
name: url_launcher_web
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.13"
|
version: "2.0.14"
|
||||||
url_launcher_windows:
|
url_launcher_windows:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_windows
|
name: url_launcher_windows
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
vector_math:
|
vector_math:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -543,7 +557,7 @@ packages:
|
||||||
name: win32
|
name: win32
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.1.3"
|
||||||
xml:
|
xml:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -552,5 +566,5 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.0"
|
version: "6.1.0"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.17.0 <3.0.0"
|
dart: ">=2.18.0 <3.0.0"
|
||||||
flutter: ">=3.0.0"
|
flutter: ">=3.0.0"
|
||||||
|
|
|
@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
||||||
# Read more about iOS versioning at
|
# Read more about iOS versioning at
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
version: 1.5.13+7
|
version: 1.6.1+9
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.12.0 <3.0.0"
|
sdk: ">=2.12.0 <3.0.0"
|
||||||
|
|
Loading…
Reference in New Issue