opt handle data

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-05-29 21:11:57 +08:00
parent c9450992d9
commit 9a63e23478
24 changed files with 147 additions and 116 deletions

View File

@@ -938,6 +938,10 @@ class VideoDetailController extends GetxController
/// 发送弹幕
Future<void> showShootDanmakuSheet() async {
if (plPlayerController.dmState.contains(cid.value)) {
SmartDialog.showToast('UP主已关闭弹幕');
return;
}
bool isPlaying =
plPlayerController.playerStatus.status.value == PlayerStatus.playing;
if (isPlaying) {

View File

@@ -352,12 +352,10 @@ class BangumiIntroController extends GetxController {
// 选择文件夹
void onChoose(bool checkValue, int index) {
feedBack();
List<FavFolderItemData> datalist = favFolderData.value.list!;
datalist[index].favState = checkValue ? 1 : 0;
datalist[index].mediaCount = checkValue
? datalist[index].mediaCount! + 1
: datalist[index].mediaCount! - 1;
favFolderData.value.list = datalist;
FavFolderItemData item = favFolderData.value.list![index];
item
..favState = checkValue ? 1 : 0
..mediaCount = checkValue ? item.mediaCount! + 1 : item.mediaCount! - 1;
favFolderData.refresh();
}

View File

@@ -558,12 +558,10 @@ class VideoIntroController extends GetxController {
// 选择文件夹
void onChoose(bool checkValue, int index) {
feedBack();
List<FavFolderItemData> datalist = favFolderData.value.list!;
datalist[index].favState = checkValue ? 1 : 0;
datalist[index].mediaCount = checkValue
? datalist[index].mediaCount! + 1
: datalist[index].mediaCount! - 1;
favFolderData.value.list = datalist;
FavFolderItemData item = favFolderData.value.list![index];
item
..favState = checkValue ? 1 : 0
..mediaCount = checkValue ? item.mediaCount! + 1 : item.mediaCount! - 1;
favFolderData.refresh();
}

View File

@@ -332,9 +332,9 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
mid: widget.mid,
isFollow: memberInfoModel.isFollowed ?? false,
callback: (attribute) {
_controller.userState.value.data.isFollowed =
attribute != 0;
_controller.userState.refresh();
_controller
..userState.value.data.isFollowed = attribute != 0
..userState.refresh();
},
);
}

View File

@@ -354,10 +354,10 @@ class _VideoReplyReplyPanelState
if (res != null) {
_savedReplies.remove(key);
ReplyInfo replyInfo = RequestUtils.replyCast(res);
_videoReplyReplyController.loadingState.value.dataOrNull
?.insert(index + 1, replyInfo);
_videoReplyReplyController.count.value += 1;
_videoReplyReplyController.loadingState.refresh();
_videoReplyReplyController
..count.value += 1
..loadingState.value.dataOrNull?.insert(index + 1, replyInfo)
..loadingState.refresh();
if (_videoReplyReplyController.enableCommAntifraud && mounted) {
_videoReplyReplyController.onCheckReply(context, replyInfo);
}

View File

@@ -2179,25 +2179,17 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
if (isSeason) {
// reverse season
videoIntroController.videoDetail.value.ugcSeason!
.sections![videoDetailController.seasonIndex.value].isReversed =
!videoIntroController.videoDetail.value.ugcSeason!
.sections![videoDetailController.seasonIndex.value].isReversed;
videoIntroController.videoDetail.value.ugcSeason!
.sections![videoDetailController.seasonIndex.value].episodes =
videoIntroController
.videoDetail
.value
.ugcSeason!
.sections![videoDetailController.seasonIndex.value]
.episodes!
.reversed
.toList();
final item = videoIntroController.videoDetail.value.ugcSeason!
.sections![videoDetailController.seasonIndex.value];
item
..isReversed = !item.isReversed
..episodes = item.episodes!.reversed.toList();
if (videoDetailController.plPlayerController.reverseFromFirst.not) {
// keep current episode
videoDetailController.seasonIndex.refresh();
videoDetailController.cid.refresh();
videoDetailController
..seasonIndex.refresh()
..cid.refresh();
} else {
// switch to first episode
dynamic episode = videoIntroController.videoDetail.value.ugcSeason!
@@ -2206,16 +2198,17 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
changeEpisode(episode);
videoDetailController.seasonCid = episode.cid;
} else {
videoDetailController.seasonIndex.refresh();
videoDetailController.cid.refresh();
videoDetailController
..seasonIndex.refresh()
..cid.refresh();
}
}
} else {
// reverse part
videoIntroController.videoDetail.value.isPageReversed =
!videoIntroController.videoDetail.value.isPageReversed;
videoIntroController.videoDetail.value.pages =
videoIntroController.videoDetail.value.pages!.reversed.toList();
final item = videoIntroController.videoDetail.value;
item
..isPageReversed = !item.isPageReversed
..pages = item.pages!.reversed.toList();
if (videoDetailController.plPlayerController.reverseFromFirst.not) {
// keep current episode
videoDetailController.cid.refresh();

View File

@@ -1911,13 +1911,22 @@ class HeaderControlState extends State<HeaderControl> {
builder: (context, constraints) {
return Obx(
() {
String title = videoIntroController
.videoDetail.value.pages
?.firstWhereOrNull((e) =>
e.cid == videoDetailCtr.cid.value)
?.pagePart ??
videoIntroController
.videoDetail.value.title!;
String title;
if (videoIntroController
.videoDetail.value.videos ==
1) {
title = videoIntroController
.videoDetail.value.title!;
} else {
title = videoIntroController
.videoDetail.value.pages
?.firstWhereOrNull((e) =>
e.cid == videoDetailCtr.cid.value)
?.pagePart ??
videoIntroController
.videoDetail.value.title!;
}
final textPainter = TextPainter(
text: TextSpan(
text: title,