This commit is contained in:
niuhuan 2022-09-05 11:36:25 +08:00
parent 8ea16f4573
commit 76b05da228
7 changed files with 101 additions and 16 deletions

View File

@ -61,7 +61,7 @@ jobs:
flutter_version: '2.10.3' flutter_version: '2.10.3'
- target: ios - target: ios
host: macos-latest host: macos-latest
flutter_version: '3.0.5' flutter_version: '3.3.0'
- target: android-arm32 - target: android-arm32
host: ubuntu-latest host: ubuntu-latest
flutter_version: '2.10.5' flutter_version: '2.10.5'
@ -73,13 +73,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.0.5' flutter_version: '3.3.0'
- target: android-arm64 - target: android-arm64
host: ubuntu-latest host: ubuntu-latest
flutter_version: '3.0.5' flutter_version: '3.3.0'
- target: android-x86_64 - target: android-x86_64
host: ubuntu-latest host: ubuntu-latest
flutter_version: '3.0.5' flutter_version: '3.3.0'
runs-on: ${{ matrix.config.host }} runs-on: ${{ matrix.config.host }}
@ -158,6 +158,24 @@ jobs:
path: /opt/hostedtoolcache/flutter path: /opt/hostedtoolcache/flutter
key: ${{ runner.os }}-flutter key: ${{ runner.os }}-flutter
- name: Cache Flutter dependencies (Mac host)
if: steps.check_asset.outputs.skip_build != 'true' && ( matrix.config.target == 'ios' || matrix.config.target == 'macos' )
uses: actions/cache@v3
with:
path: /Users/runner/hostedtoolcache/flutter
key: ${{ runner.os }}-flutter
- name: Cache Gradle dependencies (Android)
if: steps.check_asset.outputs.skip_build != 'true' && ( matrix.config.target == 'android-arm32' || matrix.config.target == 'android-arm64' || matrix.config.target == 'android-x86_64' )
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Setup java (Android) - name: Setup java (Android)
if: steps.check_asset.outputs.skip_build != 'true' && ( matrix.config.target == 'android-arm32' || matrix.config.target == 'android-arm64' || matrix.config.target == 'android-x86_64' ) if: steps.check_asset.outputs.skip_build != 'true' && ( matrix.config.target == 'android-arm32' || matrix.config.target == 'android-arm64' || matrix.config.target == 'android-x86_64' )
uses: actions/setup-java@v3 uses: actions/setup-java@v3

View File

@ -1 +1 @@
v1.5.9 v1.5.10

View File

@ -1,6 +1,6 @@
v1.5.9 v1.5.10
- [x] 下载漫画中显示评论区(设置中寻找)
v1.5.8 - [x] 升级flutter到3.3.0
- [x] 解决历史记录图片不刷新的问题 - [x] 可以设置分类列数
- [x] 增加退出是增加提示的选项(设置中寻找) - [x] 升级提示
- [x] 静态加载动画

View File

@ -0,0 +1,47 @@
/// 线
import 'package:event/event.dart';
import 'package:flutter/material.dart';
import 'package:pikapika/basic/Common.dart';
import 'package:pikapika/basic/Method.dart';
String _propertyName = "categoriesColumnCount";
late int categoriesColumnCount;
Event categoriesColumnCountEvent = Event();
Future initCategoriesColumnCount() async {
categoriesColumnCount =
int.parse(await method.loadProperty(_propertyName, "0"));
}
Widget categoriesColumnCountSetting() {
return StatefulBuilder(
builder: (BuildContext context, void Function(void Function()) setState) {
return ListTile(
title: const Text(
"首页分类列数",
),
subtitle: Text("$categoriesColumnCount"),
onTap: () async {
int? value = await chooseMapDialog(
context,
{
"自动": 0,
"2": 2,
"3": 3,
"4": 4,
"5": 5,
},
"选择首页分类列数");
if (value != null) {
await method.saveProperty(_propertyName, "$categoriesColumnCount");
categoriesColumnCount = value;
setState(() {});
categoriesColumnCountEvent.broadcast();
}
},
);
},
);
}

View File

@ -11,6 +11,7 @@ import 'package:pikapika/screens/RankingsScreen.dart';
import 'package:pikapika/screens/SearchScreen.dart'; import 'package:pikapika/screens/SearchScreen.dart';
import 'package:pikapika/screens/components/ContentError.dart'; import 'package:pikapika/screens/components/ContentError.dart';
import 'package:pikapika/basic/Method.dart'; import 'package:pikapika/basic/Method.dart';
import '../basic/config/CategoriesColumnCount.dart';
import 'ComicsScreen.dart'; import 'ComicsScreen.dart';
import 'GamesScreen.dart'; import 'GamesScreen.dart';
import 'RandomComicsScreen.dart'; import 'RandomComicsScreen.dart';
@ -73,12 +74,14 @@ class _CategoriesScreenState extends State<CategoriesScreen> {
@override @override
void initState() { void initState() {
shadowCategoriesEvent.subscribe(_onShadowChange); shadowCategoriesEvent.subscribe(_onShadowChange);
categoriesColumnCountEvent.subscribe(_setState);
super.initState(); super.initState();
} }
@override @override
void dispose() { void dispose() {
shadowCategoriesEvent.unsubscribe(_onShadowChange); shadowCategoriesEvent.unsubscribe(_onShadowChange);
categoriesColumnCountEvent.unsubscribe(_setState);
super.dispose(); super.dispose();
} }
@ -86,6 +89,10 @@ class _CategoriesScreenState extends State<CategoriesScreen> {
_reloadCategories(); _reloadCategories();
} }
_setState(_) {
setState(() {});
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var theme = Theme.of(context); var theme = Theme.of(context);
@ -140,11 +147,22 @@ class _CategoriesScreenState extends State<CategoriesScreen> {
} }
List<Widget> _buildCategories(List<Category> cList) { List<Widget> _buildCategories(List<Category> cList) {
var size = MediaQuery.of(context).size; late double blockSize;
var min = size.width < size.height ? size.width : size.height; late double imageSize;
var blockSize = min / 3; late double imageRs;
var imageSize = blockSize - 15;
var imageRs = imageSize / 10; if (categoriesColumnCount == 0) {
var size = MediaQuery.of(context).size;
var min = size.width < size.height ? size.width : size.height;
blockSize = min / 3;
} else {
var size = MediaQuery.of(context).size;
var min = size.width;
blockSize = min / categoriesColumnCount;
}
imageSize = blockSize - 15;
imageRs = imageSize / 10;
List<Widget> list = []; List<Widget> list = [];

View File

@ -33,6 +33,7 @@ import 'package:pikapika/screens/components/NetworkSetting.dart';
import 'package:pikapika/screens/components/RightClickPop.dart'; 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/UsingRightClickPop.dart'; import '../basic/config/UsingRightClickPop.dart';
import '../basic/config/WillPopNotice.dart'; import '../basic/config/WillPopNotice.dart';
import 'CleanScreen.dart'; import 'CleanScreen.dart';
@ -90,6 +91,7 @@ class SettingsScreen extends StatelessWidget {
keyboardControllerSetting(), keyboardControllerSetting(),
noAnimationSetting(), noAnimationSetting(),
iconLoadingSetting(), iconLoadingSetting(),
categoriesColumnCountSetting(),
const Divider(), const Divider(),
fullScreenUISetting(), fullScreenUISetting(),
willPopNoticeSetting(), willPopNoticeSetting(),

View File

@ -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.8+4 version: 1.5.10+5
environment: environment:
sdk: ">=2.12.0 <3.0.0" sdk: ">=2.12.0 <3.0.0"