Compare commits

...

4 Commits

Author SHA1 Message Date
dom
bbcceb72a7 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-26 10:27:21 +08:00
dom
be4fa6ad2c build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-25 20:25:54 +08:00
dom
50e1f77e10 log player error instead of toast
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-25 20:22:07 +08:00
dom
ba56b45038 clamp archive page
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-25 15:01:35 +08:00
7 changed files with 76 additions and 68 deletions

View File

@@ -18,8 +18,10 @@ android {
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
defaultConfig {

View File

@@ -6,7 +6,6 @@ import 'package:PiliPlus/models_new/member/search_archive/vlist.dart';
import 'package:PiliPlus/pages/member_video_web/archive/controller.dart';
import 'package:PiliPlus/pages/member_video_web/base/view.dart';
import 'package:PiliPlus/pages/search/widgets/search_text.dart';
import 'package:PiliPlus/utils/grid.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -37,8 +36,7 @@ class _MemberVideoWebState
SearchArchiveData,
VListItemModel,
ArchiveOrderTypeWeb
>
with GridMixin {
> {
@override
late final MemberVideoWebCtr controller;

View File

@@ -188,7 +188,9 @@ abstract class BaseVideoWebState<
void onSubmit([_]) {
try {
controller.jumpToPage(int.parse(pageStr));
controller.jumpToPage(
int.parse(pageStr).clamp(1, controller.totalPage!),
);
} catch (e) {
SmartDialog.showToast(e.toString());
}

View File

@@ -4,7 +4,6 @@ import 'package:PiliPlus/models_new/member/season_web/archive.dart';
import 'package:PiliPlus/models_new/member/season_web/data.dart';
import 'package:PiliPlus/pages/member_video_web/base/view.dart';
import 'package:PiliPlus/pages/member_video_web/season_series/controller.dart';
import 'package:PiliPlus/utils/grid.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -39,8 +38,7 @@ class _MemberSSWebState
SeasonWebData,
SeasonArchive,
ArchiveSortTypeApp
>
with GridMixin {
> {
@override
late final MemberSSWebCtr controller;

View File

@@ -4,6 +4,7 @@ import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
import 'package:PiliPlus/common/widgets/sliver/sliver_pinned_header.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/common/image_preview_type.dart';
import 'package:PiliPlus/models/common/image_type.dart';
@@ -85,7 +86,6 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
Success(:final response) => Column(
children: [
_buildUserInfo(theme, response),
_buildHeader(theme),
Expanded(
child: refreshIndicator(
onRefresh: _controller.onRefresh,
@@ -122,15 +122,17 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
}
Widget _buildHeader(ThemeData theme) {
return Container(
height: 40,
padding: const EdgeInsets.fromLTRB(12, 0, 6, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
?_buildCount(),
_buildSortBtn(theme),
],
return SliverPinnedHeader(
backgroundColor: theme.colorScheme.surface,
child: Padding(
padding: const EdgeInsets.fromLTRB(12, 4, 6, 4),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
?_buildCount(),
_buildSortBtn(theme),
],
),
),
);
}
@@ -179,32 +181,37 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
),
Success(:final response) =>
response != null && response.isNotEmpty
? SliverFixedExtentList.builder(
itemBuilder: (context, index) {
if (index == response.length - 1 && _controller.hasNext) {
_controller.onLoadMore();
}
final SpaceArchiveItem videoItem = response[index];
return Padding(
padding: const EdgeInsets.only(bottom: 2),
child: VideoCardHMemberVideo(
videoItem: videoItem,
bvid: _bvid,
onTap: () {
Get.back();
widget.ugcIntroController.onChangeEpisode(
BaseEpisodeItem(
bvid: videoItem.bvid,
cid: videoItem.cid,
cover: videoItem.cover,
),
);
},
),
);
},
itemCount: response.length,
itemExtent: 100,
? SliverMainAxisGroup(
slivers: [
_buildHeader(theme),
SliverFixedExtentList.builder(
itemBuilder: (context, index) {
if (index == response.length - 1 && _controller.hasNext) {
_controller.onLoadMore();
}
final videoItem = response[index];
return Padding(
padding: const EdgeInsets.only(bottom: 2),
child: VideoCardHMemberVideo(
videoItem: videoItem,
bvid: _bvid,
onTap: () {
Get.back();
widget.ugcIntroController.onChangeEpisode(
BaseEpisodeItem(
bvid: videoItem.bvid,
cid: videoItem.cid,
cover: videoItem.cover,
),
);
},
),
);
},
itemCount: response.length,
itemExtent: 100,
),
],
)
: HttpError(onReload: _controller.onReload),
Error(:final errMsg) => HttpError(

View File

@@ -1004,7 +1004,8 @@ class PlPlayerController with BlockConfigMixin {
event.startsWith("Can not open")) {
return;
}
SmartDialog.showToast('视频加载错误, $event');
Utils.reportError(event);
// SmartDialog.showToast('视频加载错误, $event');
}
}),
// controllerStream.volume.listen((event) {

View File

@@ -85,10 +85,10 @@ packages:
dependency: transitive
description:
name: async
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37
url: "https://pub.dev"
source: hosted
version: "2.13.0"
version: "2.13.1"
audio_service:
dependency: "direct main"
description:
@@ -206,10 +206,10 @@ packages:
dependency: transitive
description:
name: built_value
sha256: "6ae8a6435a8c6520c7077b107e77f1fb4ba7009633259a4d49a8afd8e7efc5e9"
sha256: "0730c18c770d05636a8f945c32a4d7d81cb6e0f0148c8db4ad12e7748f7e49af"
url: "https://pub.dev"
source: hosted
version: "8.12.4"
version: "8.12.5"
cached_network_image:
dependency: "direct main"
description:
@@ -376,10 +376,10 @@ packages:
dependency: "direct main"
description:
name: cupertino_icons
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd"
url: "https://pub.dev"
source: hosted
version: "1.0.8"
version: "1.0.9"
dart_style:
dependency: transitive
description:
@@ -733,10 +733,10 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
sha256: ee8068e0e1cd16c4a82714119918efdeed33b3ba7772c54b5d094ab53f9b7fd1
sha256: "38d1c268de9097ff59cf0e844ac38759fc78f76836d37edad06fa21e182055a0"
url: "https://pub.dev"
source: hosted
version: "2.0.33"
version: "2.0.34"
flutter_smart_dialog:
dependency: "direct main"
description:
@@ -906,10 +906,10 @@ packages:
dependency: "direct main"
description:
name: image_cropper
sha256: "86d38f067cb945d158b0c18629d38b3a9d383c7754b7b6f6c28f27d65d173ee3"
sha256: "2cd06f097b5bd18ff77d3f80fadef83e270ea23c82906bbf17febc3db8d68ec6"
url: "https://pub.dev"
source: hosted
version: "12.0.0"
version: "12.1.0"
image_cropper_for_web:
dependency: transitive
description:
@@ -938,10 +938,10 @@ packages:
dependency: transitive
description:
name: image_picker_android
sha256: eda9b91b7e266d9041084a42d605a74937d996b87083395c5e47835916a86156
sha256: "9eae0cbd672549dacc18df855c2a23782afe4854ada5190b7d63b30ee0b0d3fd"
url: "https://pub.dev"
source: hosted
version: "0.8.13+14"
version: "0.8.13+15"
image_picker_for_web:
dependency: transitive
description:
@@ -1321,10 +1321,10 @@ packages:
dependency: transitive
description:
name: path_provider_android
sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e
sha256: "149441ca6e4f38193b2e004c0ca6376a3d11f51fa5a77552d8bd4d2b0c0912ba"
url: "https://pub.dev"
source: hosted
version: "2.2.22"
version: "2.2.23"
path_provider_foundation:
dependency: transitive
description:
@@ -1593,18 +1593,18 @@ packages:
dependency: transitive
description:
name: shared_preferences
sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64"
sha256: c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf
url: "https://pub.dev"
source: hosted
version: "2.5.4"
version: "2.5.5"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: "8374d6200ab33ac99031a852eba4c8eb2170c4bf20778b3e2c9eccb45384fb41"
sha256: e8d4762b1e2e8578fc4d0fd548cebf24afd24f49719c08974df92834565e2c53
url: "https://pub.dev"
source: hosted
version: "2.4.21"
version: "2.4.23"
shared_preferences_foundation:
dependency: transitive
description:
@@ -1625,10 +1625,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
sha256: "649dc798a33931919ea356c4305c2d1f81619ea6e92244070b520187b5140ef9"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
version: "2.4.2"
shared_preferences_web:
dependency: transitive
description:
@@ -1839,10 +1839,10 @@ packages:
dependency: transitive
description:
name: url_launcher_android
sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611"
sha256: "3bb000251e55d4a209aa0e2e563309dc9bb2befea2295fd0cec1f51760aac572"
url: "https://pub.dev"
source: hosted
version: "6.3.28"
version: "6.3.29"
url_launcher_ios:
dependency: transitive
description: