diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml index d80afae..44119b5 100644 --- a/.github/workflows/Release.yml +++ b/.github/workflows/Release.yml @@ -188,14 +188,11 @@ jobs: - name: Sign APK (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: r0adkll/sign-android-release@v1 - id: sign_app - with: - releaseDirectory: build/app/outputs/flutter-apk - signingKeyBase64: ${{ secrets.SIGN_FILE_BASE64 }} - alias: ${{ secrets.KEY_ALIAS }} - keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }} - keyPassword: ${{ secrets.KEY_PASSWORD }} + env: + KEY_FILE_BASE64: ${{ secrets.KEY_FILE_BASE64 }} + KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} + run: | + sh scripts/sign-apk-github-actions.sh - name: Upload Asset (All) if: steps.check_asset.outputs.skip_build != 'true' diff --git a/ci/version.code.txt b/ci/version.code.txt index 44c3405..75e9e45 100644 --- a/ci/version.code.txt +++ b/ci/version.code.txt @@ -1 +1 @@ -v1.4.4 \ No newline at end of file +v1.4.5 \ No newline at end of file diff --git a/ci/version.info.txt b/ci/version.info.txt index c9eba11..84a5dd8 100644 --- a/ci/version.info.txt +++ b/ci/version.info.txt @@ -1,2 +1,2 @@ -- [x] 大部分页面已经支持鼠标右键退回上一页的功能, 但是需要从设置中开启 (并不是所有人都需要) -- [x] 列表中标记出看过的漫画 +- [x] 修复签名不兼容的问题 +- [x] 修复下一章不显示的问题 diff --git a/go/.gitignore b/go/.gitignore index 596bcc6..460ee0c 100644 --- a/go/.gitignore +++ b/go/.gitignore @@ -2,3 +2,4 @@ build .last_goflutter_check .last_go-flutter_check .last_go-flutter_check +.last_go-flutter_check diff --git a/go/go.mod b/go/go.mod index a7a7fdc..518bbce 100644 --- a/go/go.mod +++ b/go/go.mod @@ -12,8 +12,7 @@ require ( github.com/niuhuan/pica-go v0.0.0-20220224154849-76bf750f8c4d github.com/pkg/errors v0.9.1 golang.org/x/image v0.0.0-20190802002840-cff245a6509b - golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect - golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f // indirect + golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7 // indirect golang.org/x/text v0.3.7 // indirect gorm.io/driver/sqlite v1.1.4 diff --git a/go/go.sum b/go/go.sum index 47239a1..8076d9b 100644 --- a/go/go.sum +++ b/go/go.sum @@ -1,4 +1,3 @@ -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9FPnz4= github.com/PuerkitoBio/goquery v1.7.1/go.mod h1:XY0pP4kfraEmmV1O7Uf6XyjoslwsneBbgeDjLYuN8xY= github.com/Xuanwo/go-locale v1.0.0 h1:oqC32Kyiu2XZq+fxtwEg0mWiv9WyDhyHu+sT5cDkgME= @@ -59,40 +58,18 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20220224134551-8a0a1e50732f h1:G/wQ/Mbs60nXhRM80J4DOzy7FEIZjNprzOneArSgOl0= -golang.org/x/mobile v0.0.0-20220224134551-8a0a1e50732f/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= -golang.org/x/mobile v0.0.0-20220307220422-55113b94f09c h1:9J0m/JcA5YXYbamDhF5I3T7cJnR7V75OCLnMCPb5gl4= -golang.org/x/mobile v0.0.0-20220307220422-55113b94f09c/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= -golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= -golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f h1:OfiFi4JbukWwe3lzw+xunroH1mnC1e2Gy5cxNJApiSY= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200802091954-4b90ce9b60b3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7 h1:BXxu8t6QN0G1uff4bzZzSkpsax8+ALqTGUtz08QrV00= golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -103,15 +80,7 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098 h1:YuekqPskqwCCPM79F1X5Dhv4ezTCj+Ki1oNwiafxkA0= -golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= diff --git a/lib/basic/config/FullScreenAction.dart b/lib/basic/config/FullScreenAction.dart index 6e58363..ed9fba6 100644 --- a/lib/basic/config/FullScreenAction.dart +++ b/lib/basic/config/FullScreenAction.dart @@ -18,7 +18,7 @@ Map _fullScreenActionMap = { "使用控制器全屏": FullScreenAction.CONTROLLER, "双击屏幕全屏": FullScreenAction.TOUCH_DOUBLE, "双击屏幕全屏 + 单击屏幕下一页": FullScreenAction.TOUCH_DOUBLE_ONCE_NEXT, - "将屏幕划分成三个区域 (上一页, 下一页, 全屏)": FullScreenAction.THREE_AREA, + "将屏幕划分成三个区域 (上一页, 下一页, 全屏) (不能使用快捷下一页按钮)": FullScreenAction.THREE_AREA, }; const _defaultController = FullScreenAction.TOUCH_ONCE; diff --git a/lib/screens/components/ImageReader.dart b/lib/screens/components/ImageReader.dart index 0d5cf4a..4726c76 100644 --- a/lib/screens/components/ImageReader.dart +++ b/lib/screens/components/ImageReader.dart @@ -289,21 +289,53 @@ abstract class _ImageReaderContentState extends State<_ImageReaderContent> { @override Widget build(BuildContext context) { - return Stack( - children: [ - _buildViewer(), - _buildBar(), - ], - ); + switch (currentFullScreenAction()) { + // 按钮 + case FullScreenAction.CONTROLLER: + return Stack( + children: [ + _buildViewer(), + _buildBar(_buildFullScreenControllerStackItem()), + ], + ); + case FullScreenAction.TOUCH_ONCE: + return Stack( + children: [ + _buildTouchOnceControllerAction(_buildViewer()), + _buildBar(Container()), + ], + ); + case FullScreenAction.TOUCH_DOUBLE: + return Stack( + children: [ + _buildTouchDoubleControllerAction(_buildViewer()), + _buildBar(Container()), + ], + ); + case FullScreenAction.TOUCH_DOUBLE_ONCE_NEXT: + return Stack( + children: [ + _buildTouchDoubleOnceNextControllerAction(_buildViewer()), + _buildBar(Container()), + ], + ); + case FullScreenAction.THREE_AREA: + return Stack( + children: [ + _buildViewer(), + _buildBar(_buildThreeAreaControllerAction()), + ], + ); + } } - Widget _buildBar() { + Widget _buildBar(Widget child) { switch (widget.readerSliderPosition) { case ReaderSliderPosition.BOTTOM: return Column( children: [ _buildAppBar(), - Expanded(child: _buildController()), + Expanded(child: child), widget.struct.fullScreen ? Container() : Container( @@ -347,7 +379,7 @@ abstract class _ImageReaderContentState extends State<_ImageReaderContent> { Expanded( child: Stack( children: [ - _buildController(), + child, _buildSliderRight(), ], ), @@ -361,7 +393,7 @@ abstract class _ImageReaderContentState extends State<_ImageReaderContent> { Expanded( child: Stack( children: [ - _buildController(), + child, _buildSliderLeft(), ], ), @@ -501,24 +533,7 @@ abstract class _ImageReaderContentState extends State<_ImageReaderContent> { ); } - Widget _buildController() { - switch (currentFullScreenAction()) { - case FullScreenAction.CONTROLLER: - return _buildFullScreenController(); - case FullScreenAction.TOUCH_ONCE: - return _buildTouchOnceController(); - case FullScreenAction.TOUCH_DOUBLE: - return _buildTouchDoubleController(); - case FullScreenAction.TOUCH_DOUBLE_ONCE_NEXT: - return _buildTouchDoubleOnceNextController(); - case FullScreenAction.THREE_AREA: - return _buildThreeAreaController(); - default: - return Container(); - } - } - - Widget _buildFullScreenController() { + Widget _buildFullScreenControllerStackItem() { if (widget.readerSliderPosition == ReaderSliderPosition.BOTTOM && !widget.struct.fullScreen) { return Container(); @@ -555,27 +570,27 @@ abstract class _ImageReaderContentState extends State<_ImageReaderContent> { ); } - Widget _buildTouchOnceController() { + Widget _buildTouchOnceControllerAction(Widget child) { return GestureDetector( behavior: HitTestBehavior.translucent, onTap: () { widget.struct.onFullScreenChange(!widget.struct.fullScreen); }, - child: Container(), + child: child, ); } - Widget _buildTouchDoubleController() { + Widget _buildTouchDoubleControllerAction(Widget child) { return GestureDetector( behavior: HitTestBehavior.translucent, onDoubleTap: () { widget.struct.onFullScreenChange(!widget.struct.fullScreen); }, - child: Container(), + child: child, ); } - Widget _buildTouchDoubleOnceNextController() { + Widget _buildTouchDoubleOnceNextControllerAction(Widget child) { return GestureDetector( behavior: HitTestBehavior.translucent, onTap: () { @@ -584,11 +599,11 @@ abstract class _ImageReaderContentState extends State<_ImageReaderContent> { onDoubleTap: () { widget.struct.onFullScreenChange(!widget.struct.fullScreen); }, - child: Container(), + child: child, ); } - Widget _buildThreeAreaController() { + Widget _buildThreeAreaControllerAction() { return LayoutBuilder( builder: (BuildContext context, BoxConstraints constraints) { var up = Expanded( @@ -703,11 +718,11 @@ abstract class _ImageReaderContentState extends State<_ImageReaderContent> { case FullScreenAction.CONTROLLER: return false; case FullScreenAction.TOUCH_ONCE: - return true; + return false; case FullScreenAction.TOUCH_DOUBLE: - return true; + return false; case FullScreenAction.TOUCH_DOUBLE_ONCE_NEXT: - return true; + return false; case FullScreenAction.THREE_AREA: return true; } @@ -953,7 +968,7 @@ class _WebToonReaderState extends _ImageReaderContentState { } _controllerTime = DateTime.now().millisecondsSinceEpoch + 400; _itemScrollController.scrollTo( - index: index, // 减1 当前position 再减少1 前一个 + index: index, duration: const Duration(milliseconds: 400), ); } diff --git a/pubspec.lock b/pubspec.lock index 0e9233f..0b1b4b9 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -14,7 +14,7 @@ packages: name: archive url: "https://pub.dartlang.org" source: hosted - version: "3.2.2" + version: "3.3.0" async: dependency: transitive description: @@ -494,7 +494,7 @@ packages: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "2.4.4" + version: "2.5.1" xml: dependency: transitive description: diff --git a/scripts/sign-apk-github-actions.sh b/scripts/sign-apk-github-actions.sh new file mode 100644 index 0000000..603485c --- /dev/null +++ b/scripts/sign-apk-github-actions.sh @@ -0,0 +1,6 @@ + +cd "$( cd "$( dirname "$0" )" && pwd )/.." + +echo $KEY_FILE_BASE64 > key.jks.base64 +base64 -d key.jks.base64 > key.jks +echo $KEY_PASSWORD | apksigner sign --ks key.jks build/app/outputs/flutter-apk/app-release.apk