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) {
bool isTop = upPanelPosition == UpPanelPosition.top;
bool needBg = isTop || upPanelPosition.index > 1;
bool needBg = upPanelPosition.index > 1;
return Material(
color: needBg ? theme.colorScheme.surface : null,
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_rcmd_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/utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
@@ -228,7 +229,8 @@ Widget module(
width: 45,
height: 45,
fit: BoxFit.cover,
imageUrl: item.modules.moduleDynamic!.major!.common!.cover!,
imageUrl: item.modules.moduleDynamic!.major!.common!.cover!
.http2https,
),
Expanded(
child: Column(

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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