mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: quick fav bangumi
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -62,6 +62,9 @@ class BangumiIntroController extends CommonController {
|
|||||||
List delMediaIdsNew = [];
|
List delMediaIdsNew = [];
|
||||||
dynamic userInfo;
|
dynamic userInfo;
|
||||||
|
|
||||||
|
late final enableQuickFav =
|
||||||
|
GStorage.setting.get(SettingBoxKey.enableQuickFav, defaultValue: false);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
@@ -281,7 +284,29 @@ class BangumiIntroController extends CommonController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// (取消)收藏 bangumi
|
// (取消)收藏 bangumi
|
||||||
Future actionFavVideo() async {
|
Future actionFavVideo({type = 'choose'}) async {
|
||||||
|
// 收藏至默认文件夹
|
||||||
|
if (type == 'default') {
|
||||||
|
SmartDialog.showLoading(msg: '请求中');
|
||||||
|
await queryVideoInFolder();
|
||||||
|
int defaultFolderId = favFolderData.value.list!.first.id!;
|
||||||
|
int favStatus = favFolderData.value.list!.first.favState!;
|
||||||
|
var result = await VideoHttp.favVideo(
|
||||||
|
aid: epId,
|
||||||
|
type: 24,
|
||||||
|
addIds: favStatus == 0 ? '$defaultFolderId' : '',
|
||||||
|
delIds: favStatus == 1 ? '$defaultFolderId' : '',
|
||||||
|
);
|
||||||
|
SmartDialog.dismiss();
|
||||||
|
if (result['status']) {
|
||||||
|
// 重新获取收藏状态
|
||||||
|
await queryBangumiLikeCoinFav();
|
||||||
|
SmartDialog.showToast('✅ 快速收藏/取消收藏成功');
|
||||||
|
} else {
|
||||||
|
SmartDialog.showToast(result['msg']);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
for (var i in favFolderData.value.list!.toList()) {
|
for (var i in favFolderData.value.list!.toList()) {
|
||||||
if (i.favState == 1) {
|
if (i.favState == 1) {
|
||||||
|
|||||||
@@ -173,11 +173,26 @@ class _BangumiInfoState extends State<BangumiInfo>
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 收藏
|
// 收藏
|
||||||
showFavBottomSheet() {
|
showFavBottomSheet({type = 'tap'}) {
|
||||||
if (bangumiIntroController.userInfo == null) {
|
if (bangumiIntroController.userInfo == null) {
|
||||||
SmartDialog.showToast('账号未登录');
|
SmartDialog.showToast('账号未登录');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 快速收藏 &
|
||||||
|
// 点按 收藏至默认文件夹
|
||||||
|
// 长按选择文件夹
|
||||||
|
if (bangumiIntroController.enableQuickFav) {
|
||||||
|
if (type == 'tap') {
|
||||||
|
bangumiIntroController.actionFavVideo(type: 'default');
|
||||||
|
} else {
|
||||||
|
_showFavBottomSheet();
|
||||||
|
}
|
||||||
|
} else if (type != 'longPress') {
|
||||||
|
_showFavBottomSheet();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_showFavBottomSheet() {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
context: context,
|
context: context,
|
||||||
useSafeArea: true,
|
useSafeArea: true,
|
||||||
@@ -522,6 +537,7 @@ class _BangumiInfoState extends State<BangumiInfo>
|
|||||||
icon: const Icon(FontAwesomeIcons.star),
|
icon: const Icon(FontAwesomeIcons.star),
|
||||||
selectIcon: const Icon(FontAwesomeIcons.solidStar),
|
selectIcon: const Icon(FontAwesomeIcons.solidStar),
|
||||||
onTap: () => showFavBottomSheet(),
|
onTap: () => showFavBottomSheet(),
|
||||||
|
onLongPress: () => showFavBottomSheet(type: 'longPress'),
|
||||||
selectStatus: bangumiIntroController.hasFav.value,
|
selectStatus: bangumiIntroController.hasFav.value,
|
||||||
loadingStatus: false,
|
loadingStatus: false,
|
||||||
semanticsLabel: '收藏',
|
semanticsLabel: '收藏',
|
||||||
@@ -592,6 +608,7 @@ class _BangumiInfoState extends State<BangumiInfo>
|
|||||||
() => ActionRowItem(
|
() => ActionRowItem(
|
||||||
icon: const Icon(FontAwesomeIcons.heart),
|
icon: const Icon(FontAwesomeIcons.heart),
|
||||||
onTap: () => showFavBottomSheet(),
|
onTap: () => showFavBottomSheet(),
|
||||||
|
onLongPress: () => showFavBottomSheet(type: 'longPress'),
|
||||||
selectStatus: videoIntroController.hasFav.value,
|
selectStatus: videoIntroController.hasFav.value,
|
||||||
loadingStatus: widget.isLoading,
|
loadingStatus: widget.isLoading,
|
||||||
text: !widget.isLoading
|
text: !widget.isLoading
|
||||||
|
|||||||
@@ -83,6 +83,8 @@ class VideoIntroController extends GetxController
|
|||||||
late final showArgueMsg = GStorage.showArgueMsg;
|
late final showArgueMsg = GStorage.showArgueMsg;
|
||||||
late final enableAi =
|
late final enableAi =
|
||||||
GStorage.setting.get(SettingBoxKey.enableAi, defaultValue: false);
|
GStorage.setting.get(SettingBoxKey.enableAi, defaultValue: false);
|
||||||
|
late final enableQuickFav =
|
||||||
|
GStorage.setting.get(SettingBoxKey.enableQuickFav, defaultValue: false);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
|
|||||||
@@ -277,12 +277,10 @@ class _VideoInfoState extends State<VideoInfo> with TickerProviderStateMixin {
|
|||||||
SmartDialog.showToast('账号未登录');
|
SmartDialog.showToast('账号未登录');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final bool enableDragQuickFav =
|
|
||||||
GStorage.setting.get(SettingBoxKey.enableQuickFav, defaultValue: false);
|
|
||||||
// 快速收藏 &
|
// 快速收藏 &
|
||||||
// 点按 收藏至默认文件夹
|
// 点按 收藏至默认文件夹
|
||||||
// 长按选择文件夹
|
// 长按选择文件夹
|
||||||
if (enableDragQuickFav) {
|
if (videoIntroController.enableQuickFav) {
|
||||||
if (type == 'tap') {
|
if (type == 'tap') {
|
||||||
videoIntroController.actionFavVideo(type: 'default');
|
videoIntroController.actionFavVideo(type: 'default');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user