Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-14 11:05:54 +08:00
parent f3b9749a85
commit 75c2cf70a0
10 changed files with 68 additions and 46 deletions

View File

@@ -79,7 +79,7 @@ class _DynamicsPageState extends State<DynamicsPage>
Widget upPanelPart(ThemeData theme) { Widget upPanelPart(ThemeData theme) {
bool isTop = upPanelPosition == UpPanelPosition.top; bool isTop = upPanelPosition == UpPanelPosition.top;
bool needBg = isTop || upPanelPosition.index > 1; bool needBg = upPanelPosition.index > 1;
return Material( return Material(
color: needBg ? theme.colorScheme.surface : null, color: needBg ? theme.colorScheme.surface : null,
type: needBg ? MaterialType.canvas : MaterialType.transparency, type: needBg ? MaterialType.canvas : MaterialType.transparency,

View File

@@ -11,6 +11,7 @@ import 'package:PiliPlus/pages/dynamics/widgets/live_panel.dart';
import 'package:PiliPlus/pages/dynamics/widgets/live_panel_sub.dart'; import 'package:PiliPlus/pages/dynamics/widgets/live_panel_sub.dart';
import 'package:PiliPlus/pages/dynamics/widgets/live_rcmd_panel.dart'; import 'package:PiliPlus/pages/dynamics/widgets/live_rcmd_panel.dart';
import 'package:PiliPlus/pages/dynamics/widgets/video_panel.dart'; import 'package:PiliPlus/pages/dynamics/widgets/video_panel.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/page_utils.dart'; import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/utils.dart'; import 'package:PiliPlus/utils/utils.dart';
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
@@ -228,7 +229,8 @@ Widget module(
width: 45, width: 45,
height: 45, height: 45,
fit: BoxFit.cover, fit: BoxFit.cover,
imageUrl: item.modules.moduleDynamic!.major!.common!.cover!, imageUrl: item.modules.moduleDynamic!.major!.common!.cover!
.http2https,
), ),
Expanded( Expanded(
child: Column( child: Column(

View File

@@ -204,7 +204,7 @@ class PercentageChip extends StatelessWidget {
labelPadding: EdgeInsets.zero, labelPadding: EdgeInsets.zero,
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
showCheckmark: false, showCheckmark: false,
clipBehavior: Clip.antiAlias, clipBehavior: Clip.hardEdge,
label: Stack( label: Stack(
clipBehavior: Clip.none, clipBehavior: Clip.none,
alignment: Alignment.center, alignment: Alignment.center,

View File

@@ -6,6 +6,7 @@ import 'package:PiliPlus/http/user.dart';
import 'package:PiliPlus/http/video.dart'; import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/common/member/tab_type.dart'; import 'package:PiliPlus/models/common/member/tab_type.dart';
import 'package:PiliPlus/models_new/space/space/data.dart'; import 'package:PiliPlus/models_new/space/space/data.dart';
import 'package:PiliPlus/models_new/space/space/live.dart';
import 'package:PiliPlus/models_new/space/space/setting.dart'; import 'package:PiliPlus/models_new/space/space/setting.dart';
import 'package:PiliPlus/models_new/space/space/tab2.dart'; import 'package:PiliPlus/models_new/space/space/tab2.dart';
import 'package:PiliPlus/pages/common/common_data_controller.dart'; import 'package:PiliPlus/pages/common/common_data_controller.dart';
@@ -29,7 +30,7 @@ class MemberController extends CommonDataController<SpaceData, SpaceData?>
AccountService accountService = Get.find<AccountService>(); AccountService accountService = Get.find<AccountService>();
dynamic live; Live? live;
int? silence; int? silence;
String? endTime; String? endTime;

View File

@@ -3,6 +3,7 @@ import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
import 'package:PiliPlus/models/common/image_preview_type.dart'; import 'package:PiliPlus/models/common/image_preview_type.dart';
import 'package:PiliPlus/models_new/space/space/card.dart'; import 'package:PiliPlus/models_new/space/space/card.dart';
import 'package:PiliPlus/models_new/space/space/images.dart'; import 'package:PiliPlus/models_new/space/space/images.dart';
import 'package:PiliPlus/models_new/space/space/live.dart';
import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/page_utils.dart'; import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/storage.dart' show Accounts; import 'package:PiliPlus/utils/storage.dart' show Accounts;
@@ -31,7 +32,7 @@ class UserInfoCard extends StatelessWidget {
final SpaceCard card; final SpaceCard card;
final SpaceImages images; final SpaceImages images;
final VoidCallback onFollow; final VoidCallback onFollow;
final dynamic live; final Live? live;
final int? silence; final int? silence;
final String? endTime; final String? endTime;
@@ -419,7 +420,7 @@ class UserInfoCard extends StatelessWidget {
officialType: card.officialVerify?.type, officialType: card.officialVerify?.type,
isVip: (card.vip?.status ?? -1) > 0, isVip: (card.vip?.status ?? -1) > 0,
garbPendantImage: card.pendant!.image!, garbPendantImage: card.pendant!.image!,
roomId: live is Map && live['liveStatus'] == 1 ? live['roomid'] : null, roomId: live?.liveStatus == 1 ? live!.roomid : null,
onTap: () => context onTap: () => context
.imageView(imgList: [SourceModel(url: card.face.http2https)]), .imageView(imgList: [SourceModel(url: card.face.http2https)]),
)); ));

View File

@@ -159,6 +159,13 @@ class _SearchPageState extends State<SearchPage> {
style: theme.textTheme.titleMedium! style: theme.textTheme.titleMedium!
.copyWith(height: 1, fontWeight: FontWeight.bold), .copyWith(height: 1, fontWeight: FontWeight.bold),
); );
final outline = theme.colorScheme.outline;
final secondary = theme.colorScheme.secondary;
final style = TextStyle(
height: 1,
fontSize: 13,
color: outline,
);
return Padding( return Padding(
padding: EdgeInsets.fromLTRB(10, isHot ? 25 : 4, 4, 25), padding: EdgeInsets.fromLTRB(10, isHot ? 25 : 4, 4, 25),
child: Column( child: Column(
@@ -177,43 +184,47 @@ class _SearchPageState extends State<SearchPage> {
const SizedBox(width: 14), const SizedBox(width: 14),
SizedBox( SizedBox(
height: 34, height: 34,
child: TextButton.icon( child: TextButton(
onPressed: () => Get.toNamed( onPressed: () => Get.toNamed(
'/searchTrending', '/searchTrending',
parameters: {'tag': _tag}, parameters: {'tag': _tag},
), ),
label: Text( child: Row(
children: [
Text(
'完整榜单', '完整榜单',
style: TextStyle( strutStyle:
fontSize: 13, const StrutStyle(leading: 0, height: 1),
color: theme.colorScheme.outline, style: style,
), ),
), Icon(
icon: Icon( size: 18,
size: 16,
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: theme.colorScheme.outline, color: outline,
),
],
), ),
iconAlignment: IconAlignment.end,
), ),
), ),
SizedBox( SizedBox(
height: 34, height: 34,
child: TextButton.icon( child: TextButton(
onPressed: () => Get.toNamed('/dynTopicRcmd'), onPressed: () => Get.toNamed('/dynTopicRcmd'),
label: Text( child: Row(
children: [
Text(
'话题', '话题',
style: TextStyle( strutStyle:
fontSize: 13, const StrutStyle(leading: 0, height: 1),
color: theme.colorScheme.outline, style: style,
), ),
), Icon(
icon: Icon( size: 18,
size: 16,
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: theme.colorScheme.outline, color: outline,
),
],
), ),
iconAlignment: IconAlignment.end,
), ),
), ),
], ],
@@ -232,12 +243,14 @@ class _SearchPageState extends State<SearchPage> {
icon: Icon( icon: Icon(
Icons.refresh_outlined, Icons.refresh_outlined,
size: 18, size: 18,
color: theme.colorScheme.secondary, color: secondary,
), ),
label: Text( label: Text(
'刷新', '刷新',
strutStyle: const StrutStyle(leading: 0, height: 1),
style: TextStyle( style: TextStyle(
color: theme.colorScheme.secondary, height: 1,
color: secondary,
), ),
), ),
), ),
@@ -257,6 +270,7 @@ class _SearchPageState extends State<SearchPage> {
} }
Widget _history(ThemeData theme) { Widget _history(ThemeData theme) {
final secondary = theme.colorScheme.secondary;
return Obx( return Obx(
() => Padding( () => Padding(
padding: EdgeInsets.fromLTRB( padding: EdgeInsets.fromLTRB(
@@ -324,11 +338,11 @@ class _SearchPageState extends State<SearchPage> {
icon: Icon( icon: Icon(
Icons.clear_all_outlined, Icons.clear_all_outlined,
size: 18, size: 18,
color: theme.colorScheme.secondary, color: secondary,
), ),
label: Text( label: Text(
'清空', '清空',
style: TextStyle(color: theme.colorScheme.secondary), style: TextStyle(color: secondary),
), ),
), ),
) )

View File

@@ -75,7 +75,7 @@ class _SearchTrendingPageState extends State<SearchTrendingPage> {
title: Opacity( title: Opacity(
opacity: _scrollRatio.value, opacity: _scrollRatio.value,
child: Text( child: Text(
'B站热搜', 'bilibili热搜',
style: TextStyle( style: TextStyle(
color: flag ? null : Colors.white, color: flag ? null : Colors.white,
), ),

View File

@@ -696,8 +696,7 @@ class VideoDetailController extends GetxController
void handleSBData(List<SegmentItemModel> list) { void handleSBData(List<SegmentItemModel> list) {
if (list.isNotEmpty) { if (list.isNotEmpty) {
try { try {
final duration = list.first.videoDuration ?? final duration = list.first.videoDuration ?? data.timeLength!;
plPlayerController.duration.value.inMilliseconds;
// segmentList // segmentList
segmentList.addAll(list segmentList.addAll(list
.where((item) => .where((item) =>

View File

@@ -210,9 +210,10 @@ class PageUtils {
], ],
const SizedBox(height: 10), const SizedBox(height: 10),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
const SizedBox(width: 18),
const Text('倒计时结束:', style: titleStyle), const Text('倒计时结束:', style: titleStyle),
const Spacer(),
ActionRowLineItem( ActionRowLineItem(
onTap: () { onTap: () {
shutdownTimerService.exitApp = false; shutdownTimerService.exitApp = false;
@@ -221,6 +222,7 @@ class PageUtils {
text: " 暂停视频 ", text: " 暂停视频 ",
selectStatus: !shutdownTimerService.exitApp, selectStatus: !shutdownTimerService.exitApp,
), ),
const Spacer(),
ActionRowLineItem( ActionRowLineItem(
onTap: () { onTap: () {
shutdownTimerService.exitApp = true; shutdownTimerService.exitApp = true;
@@ -228,7 +230,8 @@ class PageUtils {
}, },
text: " 退出APP ", text: " 退出APP ",
selectStatus: shutdownTimerService.exitApp, selectStatus: shutdownTimerService.exitApp,
) ),
const SizedBox(width: 25),
], ],
), ),
], ],

View File

@@ -110,12 +110,14 @@ class ThemeUtils {
), ),
), ),
); );
if (isDark && GStorage.isPureBlackTheme) { if (isDark) {
if (GStorage.isPureBlackTheme) {
themeData = darkenTheme(themeData); themeData = darkenTheme(themeData);
} }
if (isDark && GStorage.darkVideoPage) { if (GStorage.darkVideoPage) {
MyApp.darkThemeData = themeData; MyApp.darkThemeData = themeData;
} }
}
return themeData; return themeData;
} }