mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
@@ -6,6 +6,7 @@ import 'package:PiliPlus/http/user.dart';
|
|||||||
import 'package:PiliPlus/pages/common/common_controller.dart';
|
import 'package:PiliPlus/pages/common/common_controller.dart';
|
||||||
import 'package:PiliPlus/pages/video/detail/introduction/controller.dart';
|
import 'package:PiliPlus/pages/video/detail/introduction/controller.dart';
|
||||||
import 'package:PiliPlus/pages/video/detail/introduction/pay_coins_page.dart';
|
import 'package:PiliPlus/pages/video/detail/introduction/pay_coins_page.dart';
|
||||||
|
import 'package:PiliPlus/utils/extension.dart';
|
||||||
import 'package:PiliPlus/utils/utils.dart';
|
import 'package:PiliPlus/utils/utils.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||||
@@ -59,8 +60,7 @@ class BangumiIntroController extends CommonController {
|
|||||||
dynamic videoTags;
|
dynamic videoTags;
|
||||||
bool isLogin = false;
|
bool isLogin = false;
|
||||||
Rx<FavFolderData> favFolderData = FavFolderData().obs;
|
Rx<FavFolderData> favFolderData = FavFolderData().obs;
|
||||||
List addMediaIdsNew = [];
|
List? favIds;
|
||||||
List delMediaIdsNew = [];
|
|
||||||
dynamic userInfo;
|
dynamic userInfo;
|
||||||
|
|
||||||
late final enableQuickFav =
|
late final enableQuickFav =
|
||||||
@@ -314,14 +314,22 @@ class BangumiIntroController extends CommonController {
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List addMediaIdsNew = [];
|
||||||
|
List delMediaIdsNew = [];
|
||||||
try {
|
try {
|
||||||
for (var i in favFolderData.value.list!.toList()) {
|
for (var i in favFolderData.value.list!.toList()) {
|
||||||
|
bool isFaved = favIds?.contains(i.id) == true;
|
||||||
if (i.favState == 1) {
|
if (i.favState == 1) {
|
||||||
|
if (isFaved.not) {
|
||||||
addMediaIdsNew.add(i.id);
|
addMediaIdsNew.add(i.id);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (isFaved) {
|
||||||
delMediaIdsNew.add(i.id);
|
delMediaIdsNew.add(i.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (_) {}
|
} catch (_) {}
|
||||||
var result = await VideoHttp.favVideo(
|
var result = await VideoHttp.favVideo(
|
||||||
aid: epId,
|
aid: epId,
|
||||||
@@ -330,8 +338,6 @@ class BangumiIntroController extends CommonController {
|
|||||||
delIds: delMediaIdsNew.join(','),
|
delIds: delMediaIdsNew.join(','),
|
||||||
);
|
);
|
||||||
if (result['status']) {
|
if (result['status']) {
|
||||||
addMediaIdsNew = [];
|
|
||||||
delMediaIdsNew = [];
|
|
||||||
SmartDialog.showToast('操作成功');
|
SmartDialog.showToast('操作成功');
|
||||||
Get.back();
|
Get.back();
|
||||||
Future.delayed(const Duration(milliseconds: 255), () {
|
Future.delayed(const Duration(milliseconds: 255), () {
|
||||||
@@ -394,14 +400,10 @@ class BangumiIntroController extends CommonController {
|
|||||||
onChoose(bool checkValue, int index) {
|
onChoose(bool checkValue, int index) {
|
||||||
feedBack();
|
feedBack();
|
||||||
List<FavFolderItemData> datalist = favFolderData.value.list!;
|
List<FavFolderItemData> datalist = favFolderData.value.list!;
|
||||||
for (var i = 0; i < datalist.length; i++) {
|
datalist[index].favState = checkValue ? 1 : 0;
|
||||||
if (i == index) {
|
datalist[index].mediaCount = checkValue
|
||||||
datalist[i].favState = checkValue == true ? 1 : 0;
|
? datalist[index].mediaCount! + 1
|
||||||
datalist[i].mediaCount = checkValue == true
|
: datalist[index].mediaCount! - 1;
|
||||||
? datalist[i].mediaCount! + 1
|
|
||||||
: datalist[i].mediaCount! - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
favFolderData.value.list = datalist;
|
favFolderData.value.list = datalist;
|
||||||
favFolderData.refresh();
|
favFolderData.refresh();
|
||||||
}
|
}
|
||||||
@@ -487,6 +489,7 @@ class BangumiIntroController extends CommonController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future queryVideoInFolder() async {
|
Future queryVideoInFolder() async {
|
||||||
|
favIds = null;
|
||||||
var result = await VideoHttp.videoInFolder(
|
var result = await VideoHttp.videoInFolder(
|
||||||
mid: userInfo.mid,
|
mid: userInfo.mid,
|
||||||
rid: epId, // bangumi
|
rid: epId, // bangumi
|
||||||
@@ -494,6 +497,10 @@ class BangumiIntroController extends CommonController {
|
|||||||
);
|
);
|
||||||
if (result['status']) {
|
if (result['status']) {
|
||||||
favFolderData.value = result['data'];
|
favFolderData.value = result['data'];
|
||||||
|
favIds = favFolderData.value.list
|
||||||
|
?.where((item) => item.favState == 1)
|
||||||
|
.map((item) => item.id)
|
||||||
|
.toList();
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,8 +103,8 @@ Widget forWard(item, context, source, callback, {floor = 1}) {
|
|||||||
picsNodes(item.modules.moduleDynamic.major.opus.pics, callback),
|
picsNodes(item.modules.moduleDynamic.major.opus.pics, callback),
|
||||||
// semanticsLabel: '动态图片',
|
// semanticsLabel: '动态图片',
|
||||||
),
|
),
|
||||||
if (item.modules.moduleDynamic.additional != null)
|
// if (item.modules.moduleDynamic.additional != null)
|
||||||
const SizedBox(height: 4),
|
// const SizedBox(height: 4),
|
||||||
],
|
],
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -61,8 +61,7 @@ class VideoIntroController extends GetxController
|
|||||||
RxBool hasFav = false.obs;
|
RxBool hasFav = false.obs;
|
||||||
bool isLogin = false;
|
bool isLogin = false;
|
||||||
Rx<FavFolderData> favFolderData = FavFolderData().obs;
|
Rx<FavFolderData> favFolderData = FavFolderData().obs;
|
||||||
List addMediaIdsNew = [];
|
List? favIds;
|
||||||
List delMediaIdsNew = [];
|
|
||||||
// 关注状态 默认未关注
|
// 关注状态 默认未关注
|
||||||
RxMap followStatus = {}.obs;
|
RxMap followStatus = {}.obs;
|
||||||
|
|
||||||
@@ -414,14 +413,22 @@ class VideoIntroController extends GetxController
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List addMediaIdsNew = [];
|
||||||
|
List delMediaIdsNew = [];
|
||||||
try {
|
try {
|
||||||
for (var i in favFolderData.value.list!.toList()) {
|
for (var i in favFolderData.value.list!.toList()) {
|
||||||
|
bool isFaved = favIds?.contains(i.id) == true;
|
||||||
if (i.favState == 1) {
|
if (i.favState == 1) {
|
||||||
|
if (isFaved.not) {
|
||||||
addMediaIdsNew.add(i.id);
|
addMediaIdsNew.add(i.id);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (isFaved) {
|
||||||
delMediaIdsNew.add(i.id);
|
delMediaIdsNew.add(i.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint(e.toString());
|
debugPrint(e.toString());
|
||||||
}
|
}
|
||||||
@@ -433,8 +440,6 @@ class VideoIntroController extends GetxController
|
|||||||
);
|
);
|
||||||
SmartDialog.dismiss();
|
SmartDialog.dismiss();
|
||||||
if (result['status']) {
|
if (result['status']) {
|
||||||
addMediaIdsNew = [];
|
|
||||||
delMediaIdsNew = [];
|
|
||||||
Get.back();
|
Get.back();
|
||||||
// 重新获取收藏状态
|
// 重新获取收藏状态
|
||||||
await queryHasFavVideo();
|
await queryHasFavVideo();
|
||||||
@@ -495,10 +500,15 @@ class VideoIntroController extends GetxController
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future queryVideoInFolder() async {
|
Future queryVideoInFolder() async {
|
||||||
|
favIds = null;
|
||||||
var result = await VideoHttp.videoInFolder(
|
var result = await VideoHttp.videoInFolder(
|
||||||
mid: userInfo.mid, rid: IdUtils.bv2av(bvid));
|
mid: userInfo.mid, rid: IdUtils.bv2av(bvid));
|
||||||
if (result['status']) {
|
if (result['status']) {
|
||||||
favFolderData.value = result['data'];
|
favFolderData.value = result['data'];
|
||||||
|
favIds = favFolderData.value.list
|
||||||
|
?.where((item) => item.favState == 1)
|
||||||
|
.map((item) => item.id)
|
||||||
|
.toList();
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -507,14 +517,10 @@ class VideoIntroController extends GetxController
|
|||||||
onChoose(bool checkValue, int index) {
|
onChoose(bool checkValue, int index) {
|
||||||
feedBack();
|
feedBack();
|
||||||
List<FavFolderItemData> datalist = favFolderData.value.list!;
|
List<FavFolderItemData> datalist = favFolderData.value.list!;
|
||||||
for (var i = 0; i < datalist.length; i++) {
|
datalist[index].favState = checkValue ? 1 : 0;
|
||||||
if (i == index) {
|
datalist[index].mediaCount = checkValue
|
||||||
datalist[i].favState = checkValue == true ? 1 : 0;
|
? datalist[index].mediaCount! + 1
|
||||||
datalist[i].mediaCount = checkValue == true
|
: datalist[index].mediaCount! - 1;
|
||||||
? datalist[i].mediaCount! + 1
|
|
||||||
: datalist[i].mediaCount! - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
favFolderData.value.list = datalist;
|
favFolderData.value.list = datalist;
|
||||||
favFolderData.refresh();
|
favFolderData.refresh();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user