opt: func

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-05-07 14:41:25 +08:00
parent 286193f08f
commit dd6ff101d1
63 changed files with 181 additions and 180 deletions

View File

@@ -43,12 +43,12 @@ class _AboutPageState extends State<AboutPage> {
getCurrentApp();
}
Future getCacheSize() async {
Future<void> getCacheSize() async {
cacheSize.value =
CacheManage.formatSize(await CacheManage().loadApplicationCache());
}
Future getCurrentApp() async {
Future<void> getCurrentApp() async {
var currentInfo = await PackageInfo.fromPlatform();
String buildNumber = currentInfo.buildNumber;
currentVersion.value = "${currentInfo.version}+$buildNumber";

View File

@@ -149,7 +149,7 @@ class ArticleController extends ReplyController<MainListReply> {
}
// 请求动态内容
Future _queryContent() async {
Future<void> _queryContent() async {
if (type != 'read') {
isLoaded.value = await queryOpus(id);
} else {
@@ -182,7 +182,7 @@ class ArticleController extends ReplyController<MainListReply> {
);
}
Future onFav() async {
Future<void> onFav() async {
bool isFav = stats.value?.favorite?.status == true;
final res = type == 'read'
? isFav
@@ -204,7 +204,7 @@ class ArticleController extends ReplyController<MainListReply> {
}
}
Future onLike() async {
Future<void> onLike() async {
bool isLike = stats.value?.like?.status == true;
final res = await DynamicsHttp.thumbDynamic(
dynamicId: opusData?.idStr ?? articleData?.dynIdStr,

View File

@@ -36,7 +36,7 @@ class BangumiController extends CommonListController<
}
@override
Future onRefresh() {
Future<void> onRefresh() {
if (isLogin.value) {
followPage = 1;
followEnd = false;
@@ -61,13 +61,13 @@ class BangumiController extends CommonListController<
late Rx<LoadingState<List<Result>?>> timelineState =
LoadingState<List<Result>?>.loading().obs;
Future queryPgcTimeline() async {
Future<void> queryPgcTimeline() async {
final res = await BangumiHttp.pgcTimeline(types: 1, before: 6, after: 6);
timelineState.value = res;
}
// 我的订阅
Future queryBangumiFollow([bool isRefresh = true]) async {
Future<void> queryBangumiFollow([bool isRefresh = true]) async {
if (isLogin.value.not || followLoading || (isRefresh.not && followEnd)) {
return;
}

View File

@@ -54,7 +54,7 @@ abstract class CommonController<R, T> extends GetxController
void checkIsEnd(int length) {}
Future queryData([bool isRefresh = true]) async {
Future<void> queryData([bool isRefresh = true]) async {
if (isLoading || (isRefresh.not && isEnd)) return;
isLoading = true;
LoadingState<R> response = await customGetData();

View File

@@ -159,7 +159,7 @@ abstract class CommonPublishPageState<T extends CommonPublishPage>
return false;
}
Future onPublish() async {
Future<void> onPublish() async {
feedBack();
List<Map<String, dynamic>>? pictures;
if (pathList.isNotEmpty) {
@@ -194,7 +194,7 @@ abstract class CommonPublishPageState<T extends CommonPublishPage>
onCustomPublish(message: editController.text, pictures: pictures);
}
Future onCustomPublish({required String message, List? pictures});
Future<void> onCustomPublish({required String message, List? pictures});
void onChooseEmote(emote) {
enablePublish.value = true;

View File

@@ -15,7 +15,7 @@ abstract class CommonSearchController<R, T> extends CommonListController<R, T> {
}
@override
Future onRefresh() {
Future<void> onRefresh() {
if (editController.value.text.isEmpty) {
return Future.value();
}

View File

@@ -91,7 +91,7 @@ abstract class ReplyController<R> extends CommonListController<R, ReplyInfo> {
}
@override
Future onRefresh() {
Future<void> onRefresh() {
cursorNext = null;
paginationReply = null;
return super.onRefresh();

View File

@@ -73,7 +73,7 @@ class DynamicsController extends GetxController
initialValue.value = value;
}
Future queryFollowing2() async {
Future<void> queryFollowing2() async {
if (upData.value.upList != null &&
upData.value.upList!.length >= allFollowedUpsTotal) {
return;
@@ -108,7 +108,7 @@ class DynamicsController extends GetxController
}
late bool isQuerying = false;
Future queryFollowUp({type = 'init'}) async {
Future<void> queryFollowUp({type = 'init'}) async {
if (isQuerying) return;
isQuerying = true;
if (!isLogin.value) {

View File

@@ -31,7 +31,7 @@ class _ActionPanelState extends State<ActionPanel> {
}
// 动态点赞
Future onLikeDynamic() async {
Future<void> onLikeDynamic() async {
feedBack();
final item = widget.item;
String dynamicId = item.idStr!;

View File

@@ -459,7 +459,8 @@ class _CreateDynPanelState extends CommonPublishPageState<CreateDynPanel> {
Widget? get customPanel => EmotePanel(onChoose: onChooseEmote);
@override
Future onCustomPublish({required String message, List? pictures}) async {
Future<void> onCustomPublish(
{required String message, List? pictures}) async {
SmartDialog.showLoading(msg: '正在发布');
dynamic result = await MsgHttp.createDynamic(
mid: Accounts.main.mid,

View File

@@ -342,7 +342,8 @@ class _RepostPanelState extends CommonPublishPageState<RepostPanel> {
Widget? get customPanel => EmotePanel(onChoose: onChooseEmote);
@override
Future onCustomPublish({required String message, List? pictures}) async {
Future<void> onCustomPublish(
{required String message, List? pictures}) async {
dynamic result = await MsgHttp.createDynamic(
mid: Accounts.main.mid,
dynIdStr: widget.item?.idStr ?? widget.dynIdStr,

View File

@@ -25,7 +25,7 @@ class DynamicsTabController
}
@override
Future onRefresh() {
Future<void> onRefresh() {
if (dynamicsType == 'all') {
mainController.setCount();
}
@@ -54,7 +54,7 @@ class DynamicsTabController
mid: dynamicsType == "up" ? mid : -1,
);
Future onRemove(dynamic dynamicId) async {
Future<void> onRemove(dynamic dynamicId) async {
var res = await MsgHttp.removeDynamic(dynIdStr: dynamicId);
if (res['status']) {
loadingState.value.data!.removeWhere((item) => item.idStr == dynamicId);
@@ -65,7 +65,7 @@ class DynamicsTabController
}
}
Future onSetTop(bool isTop, dynamic dynamicId) async {
Future<void> onSetTop(bool isTop, dynamic dynamicId) async {
var res = await DynamicsHttp.setTop(dynamicId: dynamicId);
if (res['status']) {
SmartDialog.showToast('${isTop ? '取消' : ''}置顶成功');
@@ -75,7 +75,7 @@ class DynamicsTabController
}
@override
Future onReload() {
Future<void> onReload() {
scrollController.jumpToTop();
return super.onReload();
}

View File

@@ -31,7 +31,7 @@ class FansController
orderType: 'attention',
);
Future onRemoveFan(int index, int mid) async {
Future<void> onRemoveFan(int index, int mid) async {
final res = await VideoHttp.relationMod(
mid: mid,
act: 7,

View File

@@ -54,7 +54,7 @@ class FavPgcController
}
// 取消追番
Future bangumiDel(index, seasonId) async {
Future<void> bangumiDel(index, seasonId) async {
var result = await VideoHttp.bangumiDel(seasonId: seasonId);
if (result['status']) {
loadingState.value.data!.removeAt(index);
@@ -63,7 +63,7 @@ class FavPgcController
SmartDialog.showToast(result['msg']);
}
Future onUpdateList(followStatus) async {
Future<void> onUpdateList(followStatus) async {
List<BangumiListItemModel> dataList =
(loadingState.value as Success).response as List<BangumiListItemModel>;
Set<BangumiListItemModel> updateList =
@@ -92,7 +92,7 @@ class FavPgcController
SmartDialog.showToast(res['msg']);
}
Future onUpdate(index, followStatus, seasonId) async {
Future<void> onUpdate(index, followStatus, seasonId) async {
var result = await VideoHttp.bangumiUpdate(
seasonId: [seasonId],
status: followStatus,

View File

@@ -15,7 +15,7 @@ class FavController
}
@override
Future queryData([bool isRefresh = true]) {
Future<void> queryData([bool isRefresh = true]) {
if (mid == 0) {
loadingState.value = LoadingState.error('账号未登录');
return Future.value();

View File

@@ -173,7 +173,7 @@ class FavDetailController
}
@override
Future onReload() {
Future<void> onReload() {
scrollController.jumpToTop();
return super.onReload();
}

View File

@@ -30,7 +30,7 @@ class FollowController extends GetxController with GetTickerProviderStateMixin {
}
}
Future queryFollowUpTags() async {
Future<void> queryFollowUpTags() async {
var res = await MemberHttp.followUpTags();
if (res['status']) {
tabs
@@ -59,7 +59,7 @@ class FollowController extends GetxController with GetTickerProviderStateMixin {
super.onClose();
}
Future onCreateTag(String tagName) async {
Future<void> onCreateTag(String tagName) async {
final res = await MemberHttp.createFollowTag(tagName);
if (res['status']) {
followState.value = LoadingState.loading();
@@ -70,7 +70,7 @@ class FollowController extends GetxController with GetTickerProviderStateMixin {
}
}
Future onUpdateTag(int index, tagid, String tagName) async {
Future<void> onUpdateTag(int index, tagid, String tagName) async {
final res = await MemberHttp.updateFollowTag(tagid, tagName);
if (res['status']) {
tabs[index].name = tagName;
@@ -81,7 +81,7 @@ class FollowController extends GetxController with GetTickerProviderStateMixin {
}
}
Future onDelTag(tagid) async {
Future<void> onDelTag(tagid) async {
final res = await MemberHttp.delFollowTag(tagid);
if (res['status']) {
followState.value = LoadingState.loading();

View File

@@ -30,7 +30,7 @@ class HistoryController extends MultiSelectController<HistoryData, HisListItem>
}
@override
Future onRefresh() {
Future<void> onRefresh() {
max = null;
viewAt = null;
return super.onRefresh();
@@ -91,7 +91,7 @@ class HistoryController extends MultiSelectController<HistoryData, HisListItem>
}
// 观看历史暂停状态
Future historyStatus() async {
Future<void> historyStatus() async {
var res = await UserHttp.historyStatus();
if (res['status']) {
baseCtr.pauseStatus.value = res['data'];
@@ -194,7 +194,7 @@ class HistoryController extends MultiSelectController<HistoryData, HisListItem>
}
@override
Future onReload() {
Future<void> onReload() {
scrollController.jumpToTop();
return super.onReload();
}

View File

@@ -17,7 +17,7 @@ class HistorySearchController
return response.list;
}
Future onDelHistory(index, kid, business) async {
Future<void> onDelHistory(index, kid, business) async {
String resKid = 'archive_$kid';
if (business == 'live') {
resKid = 'live_$kid';

View File

@@ -233,7 +233,7 @@ class LaterController extends MultiSelectController<Map, HotVideoItemModel> {
}
@override
Future onReload() {
Future<void> onReload() {
scrollController.jumpToTop();
return super.onReload();
}

View File

@@ -22,7 +22,7 @@ class LaterSearchController
return response['list'];
}
Future toViewDel(BuildContext context, int index, aid) async {
Future<void> toViewDel(BuildContext context, int index, aid) async {
var res = await UserHttp.toViewDel(aids: [aid]);
if (res['status']) {
loadingState.value.data!.removeAt(index);

View File

@@ -77,7 +77,7 @@ class LiveRoomController extends GetxController {
final RxBool isPortrait = false.obs;
Future queryLiveInfo() async {
Future<void> queryLiveInfo() async {
if (currentQn == null) {
await Connectivity().checkConnectivity().then((res) {
currentQn = res.contains(ConnectivityResult.wifi)
@@ -122,7 +122,7 @@ class LiveRoomController extends GetxController {
}
}
Future queryLiveInfoH5() async {
Future<void> queryLiveInfoH5() async {
var res = await LiveHttp.liveRoomInfoH5(roomId: roomId);
if (res['status']) {
roomInfoH5.value = res['data'];

View File

@@ -188,7 +188,7 @@ class _ReplyPageState extends CommonPublishPageState<LiveSendDmPanel> {
}
@override
Future onCustomPublish({
Future<void> onCustomPublish({
required String message,
List? pictures,
int? dmType,

View File

@@ -656,7 +656,7 @@ class LoginPageController extends GetxController
}
}
static Future switchAccountDialog(BuildContext context) {
static Future<void> switchAccountDialog(BuildContext context) {
if (Accounts.account.isEmpty) {
return SmartDialog.showToast('请先登录');
}

View File

@@ -78,7 +78,7 @@ class MainController extends GetxController {
}
}
Future queryUnreadMsg() async {
Future<void> queryUnreadMsg() async {
if (isLogin.value.not || homeIndex == -1 || msgUnReadTypes.isEmpty) {
msgUnReadCount.value = '';
return;

View File

@@ -225,7 +225,7 @@ class MemberController extends CommonDataController<SpaceData, SpaceData?>
super.onClose();
}
Future onRemoveFan() async {
Future<void> onRemoveFan() async {
final res = await VideoHttp.relationMod(
mid: mid,
act: 7,

View File

@@ -20,13 +20,13 @@ class MemberDynamicsController
}
@override
Future onRefresh() {
Future<void> onRefresh() {
offset = '';
return super.onRefresh();
}
@override
Future queryData([bool isRefresh = true]) {
Future<void> queryData([bool isRefresh = true]) {
if (isRefresh.not && (isEnd || offset == '-1')) {
return Future.value();
}
@@ -56,7 +56,7 @@ class MemberDynamicsController
mid: mid,
);
Future onRemove(dynamicId) async {
Future<void> onRemove(dynamicId) async {
var res = await MsgHttp.removeDynamic(dynIdStr: dynamicId);
if (res['status']) {
loadingState.value.data!.removeWhere((item) => item.idStr == dynamicId);
@@ -67,7 +67,7 @@ class MemberDynamicsController
}
}
Future onSetTop(bool isTop, dynamic dynamicId) async {
Future<void> onSetTop(bool isTop, dynamic dynamicId) async {
var res = await DynamicsHttp.setTop(dynamicId: dynamicId);
if (res['status']) {
List<DynamicItemModel> list = (loadingState.value as Success).response;

View File

@@ -32,7 +32,7 @@ class MemberFavoriteCtr extends CommonDataController {
}
@override
Future onRefresh() {
Future<void> onRefresh() {
page = 2;
page1 = 2;
return super.onRefresh();
@@ -56,7 +56,7 @@ class MemberFavoriteCtr extends CommonDataController {
return true;
}
Future userfavFolder() async {
Future<void> userfavFolder() async {
var res = await Request().get(Api.userFavFolder, queryParameters: {
'pn': page,
'ps': 20,
@@ -80,7 +80,7 @@ class MemberFavoriteCtr extends CommonDataController {
}
}
Future userSubFolder() async {
Future<void> userSubFolder() async {
var res = await Request().get(Api.userSubFolder, queryParameters: {
'up_mid': mid,
'ps': 20,

View File

@@ -44,7 +44,7 @@ class MemberVideoCtr
bool? hasPrev;
@override
Future onRefresh() async {
Future<void> onRefresh() async {
if (isLocating == true) {
if (hasPrev == true) {
isLoadPrevious = true;
@@ -220,7 +220,7 @@ class MemberVideoCtr
}
@override
Future onReload() {
Future<void> onReload() {
isLocating = null;
return super.onReload();
}

View File

@@ -50,9 +50,9 @@ class MineController extends GetxController {
}
}
Future queryUserInfo() async {
Future<void> queryUserInfo() async {
if (!isLogin.value) {
return {'status': false};
return;
}
var res = await UserHttp.userInfo();
if (res['status']) {
@@ -74,7 +74,7 @@ class MineController extends GetxController {
queryUserStatOwner();
}
Future queryUserStatOwner() async {
Future<void> queryUserStatOwner() async {
var res = await UserHttp.userStatOwner();
if (res['status']) {
userStat.value = res['data'];

View File

@@ -31,7 +31,7 @@ class AtMeController extends CommonListController<MsgFeedAtMe, AtMeItems> {
}
@override
Future onRefresh() {
Future<void> onRefresh() {
cursor = -1;
cursorTime = -1;
return super.onRefresh();
@@ -41,7 +41,7 @@ class AtMeController extends CommonListController<MsgFeedAtMe, AtMeItems> {
Future<LoadingState<MsgFeedAtMe>> customGetData() =>
MsgHttp.msgFeedAtMe(cursor: cursor, cursorTime: cursorTime);
Future onRemove(dynamic id, int index) async {
Future<void> onRemove(dynamic id, int index) async {
try {
var res = await MsgHttp.delMsgfeed(2, id);
if (res['status']) {

View File

@@ -39,7 +39,7 @@ class LikeMeController extends CommonDataController<MsgFeedLikeMe, dynamic> {
}
@override
Future onRefresh() {
Future<void> onRefresh() {
cursor = -1;
cursorTime = -1;
return super.onRefresh();
@@ -49,7 +49,7 @@ class LikeMeController extends CommonDataController<MsgFeedLikeMe, dynamic> {
Future<LoadingState<MsgFeedLikeMe>> customGetData() =>
MsgHttp.msgFeedLikeMe(cursor: cursor, cursorTime: cursorTime);
Future onRemove(dynamic id, int index, bool isLatest) async {
Future<void> onRemove(dynamic id, int index, bool isLatest) async {
try {
var res = await MsgHttp.delMsgfeed(0, id);
if (res['status']) {

View File

@@ -32,7 +32,7 @@ class ReplyMeController
}
@override
Future onRefresh() {
Future<void> onRefresh() {
cursor = -1;
cursorTime = -1;
return super.onRefresh();
@@ -42,7 +42,7 @@ class ReplyMeController
Future<LoadingState<MsgFeedReplyMe>> customGetData() =>
MsgHttp.msgFeedReplyMe(cursor: cursor, cursorTime: cursorTime);
Future onRemove(dynamic id, int index) async {
Future<void> onRemove(dynamic id, int index) async {
try {
var res = await MsgHttp.delMsgfeed(1, id);
if (res['status']) {

View File

@@ -34,12 +34,12 @@ class SysMsgController
}
@override
Future onRefresh() {
Future<void> onRefresh() {
cursor = -1;
return super.onRefresh();
}
Future onRemove(dynamic id, int index) async {
Future<void> onRemove(dynamic id, int index) async {
try {
var res = await MsgHttp.delSysMsg(id);
if (res['status']) {

View File

@@ -19,7 +19,7 @@ class PgcIndexController extends CommonListController {
getPgcIndexCondition();
}
Future getPgcIndexCondition() async {
Future<void> getPgcIndexCondition() async {
dynamic res = await BangumiHttp.pgcIndexCondition(
seasonType: indexType == null ? 1 : null,
type: 0,

View File

@@ -44,7 +44,7 @@ class RcmdController extends CommonListController {
}
@override
Future onRefresh() {
Future<void> onRefresh() {
currentPage = 0;
isEnd = false;
return queryData();

View File

@@ -129,11 +129,11 @@ class SSearchController extends GetxController {
}
// 获取热搜关键词
Future queryHotSearchList() async {
Future<void> queryHotSearchList() async {
loadingState.value = await SearchHttp.searchTrending(limit: 10);
}
Future queryRecommendList() async {
Future<void> queryRecommendList() async {
recommendData.value = await SearchHttp.searchRecommend();
}
@@ -145,7 +145,7 @@ class SSearchController extends GetxController {
submit();
}
Future querySearchSuggest(String value) async {
Future<void> querySearchSuggest(String value) async {
var result = await SearchHttp.searchSuggest(term: value);
if (result['status']) {
if (result['data'] is SearchSuggestModel) {

View File

@@ -72,7 +72,7 @@ class SearchPanelController<R extends SearchNumData<T>, T>
);
@override
Future onReload() {
Future<void> onReload() {
scrollController.jumpToTop();
return super.onReload();
}

View File

@@ -19,7 +19,7 @@ class SubController
}
@override
Future queryData([bool isRefresh = true]) {
Future<void> queryData([bool isRefresh = true]) {
if (mid == 0) {
loadingState.value = LoadingState.error('账号未登录');
return Future.value();

View File

@@ -664,7 +664,7 @@ class VideoDetailController extends GetxController
);
}
Future _querySponsorBlock() async {
Future<void> _querySponsorBlock() async {
positionSubscription?.cancel();
videoLabel.value = '';
segmentList.clear();
@@ -1053,7 +1053,7 @@ class VideoDetailController extends GetxController
playerInit();
}
Future playerInit({
Future<void> playerInit({
video,
audio,
seekToTime,
@@ -1115,7 +1115,7 @@ class VideoDetailController extends GetxController
bool isQuerying = false;
// 视频链接
Future queryVideoUrl([Duration? defaultST]) async {
Future<void> queryVideoUrl([Duration? defaultST]) async {
if (isQuerying) {
return;
}
@@ -1427,7 +1427,7 @@ class VideoDetailController extends GetxController
late bool continuePlayingPart = GStorage.continuePlayingPart;
Future _querySubtitles() async {
Future<void> _querySubtitles() async {
var res = await VideoHttp.subtitlesJson(bvid: bvid, cid: cid.value);
if (res['status']) {
// interactive video

View File

@@ -95,12 +95,12 @@ class BangumiIntroController
}
@override
Future queryData([bool isRefresh = true]) async {
Future<void> queryData([bool isRefresh = true]) async {
await queryVideoTags();
return super.queryData(isRefresh);
}
Future queryVideoTags() async {
Future<void> queryVideoTags() async {
var result = await UserHttp.videoTags(bvid: bvid);
if (result['status']) {
videoTags = result['data'];
@@ -120,7 +120,7 @@ class BangumiIntroController
SearchHttp.bangumiInfoNew(seasonId: seasonId, epId: epId);
// 获取点赞/投币/收藏状态
Future queryBangumiLikeCoinFav() async {
Future<void> queryBangumiLikeCoinFav() async {
var result = await VideoHttp.bangumiLikeCoinFav(epId: epId);
if (result['status']) {
hasLike.value = result["data"]['like'] == 1;
@@ -132,7 +132,7 @@ class BangumiIntroController
}
// (取消)点赞
Future actionLikeVideo() async {
Future<void> actionLikeVideo() async {
var result = await VideoHttp.likeVideo(bvid: bvid, type: !hasLike.value);
if (result['status']) {
SmartDialog.showToast(!hasLike.value ? result['data']['toast'] : '取消赞');
@@ -167,7 +167,7 @@ class BangumiIntroController
}
// 投币
Future actionCoinVideo() async {
Future<void> actionCoinVideo() async {
if (userInfo == null) {
SmartDialog.showToast('账号未登录');
return;
@@ -190,7 +190,7 @@ class BangumiIntroController
}
// (取消)收藏 bangumi
Future actionFavVideo({type = 'choose'}) async {
Future<void> actionFavVideo({type = 'choose'}) async {
// 收藏至默认文件夹
if (type == 'default') {
SmartDialog.showLoading(msg: '请求中');
@@ -438,7 +438,7 @@ class BangumiIntroController
}
// 追番
Future bangumiAdd() async {
Future<void> bangumiAdd() async {
var result = await VideoHttp.bangumiAdd(
seasonId: (loadingState.value as Success).response.seasonId);
if (result['status']) {
@@ -449,7 +449,7 @@ class BangumiIntroController
}
// 取消追番
Future bangumiDel() async {
Future<void> bangumiDel() async {
var result = await VideoHttp.bangumiDel(
seasonId: (loadingState.value as Success).response.seasonId);
if (result['status']) {
@@ -458,7 +458,7 @@ class BangumiIntroController
SmartDialog.showToast(result['msg']);
}
Future bangumiUpdate(status) async {
Future<void> bangumiUpdate(status) async {
var result = await VideoHttp.bangumiUpdate(
seasonId: [(loadingState.value as Success).response.seasonId],
status: status,
@@ -562,7 +562,7 @@ class BangumiIntroController
}
// 一键三连
Future actionOneThree() async {
Future<void> actionOneThree() async {
feedBack();
if (userInfo == null) {
SmartDialog.showToast('账号未登录');
@@ -590,7 +590,7 @@ class BangumiIntroController
RxBool isFollowed = false.obs;
RxInt followStatus = (-1).obs;
Future queryIsFollowed() async {
Future<void> queryIsFollowed() async {
try {
dynamic result = await Request().get(
'https://www.bilibili.com/bangumi/play/ss$seasonId',

View File

@@ -8,7 +8,6 @@ import 'package:PiliPlus/http/member.dart';
import 'package:PiliPlus/http/search.dart';
import 'package:PiliPlus/http/user.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/model_hot_video_item.dart';
import 'package:PiliPlus/models/user/fav_folder.dart';
import 'package:PiliPlus/models/video/ai.dart';
import 'package:PiliPlus/models/video_detail_res.dart';
@@ -136,7 +135,7 @@ class VideoIntroController extends GetxController {
}
// 获取视频简介&分p
Future queryVideoIntro() async {
Future<void> queryVideoIntro() async {
queryVideoTags();
var result = await VideoHttp.videoIntro(bvid: bvid);
if (result['status']) {
@@ -187,7 +186,7 @@ class VideoIntroController extends GetxController {
}
}
Future queryVideoTags() async {
Future<void> queryVideoTags() async {
var result = await UserHttp.videoTags(bvid: bvid);
if (result['status']) {
videoTags = result['data'];
@@ -195,7 +194,7 @@ class VideoIntroController extends GetxController {
}
// 获取up主粉丝数
Future queryUserStat() async {
Future<void> queryUserStat() async {
if (videoItem['staff']?.isNotEmpty == true) {
Request().get(
Api.relations,
@@ -236,7 +235,7 @@ class VideoIntroController extends GetxController {
}
// 一键三连
Future actionOneThree() async {
Future<void> actionOneThree() async {
feedBack();
if (userInfo == null) {
SmartDialog.showToast('账号未登录');
@@ -262,7 +261,7 @@ class VideoIntroController extends GetxController {
}
// (取消)点赞
Future actionLikeVideo() async {
Future<void> actionLikeVideo() async {
if (userInfo == null) {
SmartDialog.showToast('账号未登录');
return;
@@ -287,7 +286,7 @@ class VideoIntroController extends GetxController {
}
}
Future actionDislikeVideo() async {
Future<void> actionDislikeVideo() async {
if (userInfo == null) {
SmartDialog.showToast('账号未登录');
return;
@@ -308,7 +307,7 @@ class VideoIntroController extends GetxController {
}
}
Future viewLater() async {
Future<void> viewLater() async {
var res = await (hasLater.value
? UserHttp.toViewDel(aids: [IdUtils.bv2av(bvid)])
: await UserHttp.toViewLater(bvid: bvid));
@@ -316,7 +315,7 @@ class VideoIntroController extends GetxController {
SmartDialog.showToast(res['msg']);
}
Future coinVideo(int coin, [bool selectLike = false]) async {
Future<void> coinVideo(int coin, [bool selectLike = false]) async {
if (videoDetail.value.stat?.coin == null) {
// not init
return;
@@ -341,7 +340,7 @@ class VideoIntroController extends GetxController {
}
// 投币
Future actionCoinVideo() async {
Future<void> actionCoinVideo() async {
if (userInfo == null) {
SmartDialog.showToast('账号未登录');
return;
@@ -367,7 +366,7 @@ class VideoIntroController extends GetxController {
}
// (取消)收藏
Future actionFavVideo({type = 'choose'}) async {
Future<void> actionFavVideo({type = 'choose'}) async {
// 收藏至默认文件夹
if (type == 'default') {
SmartDialog.showLoading(msg: '请求中');
@@ -559,7 +558,7 @@ class VideoIntroController extends GetxController {
}
// 查询关注状态
Future queryFollowStatus() async {
Future<void> queryFollowStatus() async {
if (videoDetail.value.owner == null) {
return;
}
@@ -572,7 +571,7 @@ class VideoIntroController extends GetxController {
}
// 关注/取关up
Future actionRelationMod(BuildContext context) async {
Future<void> actionRelationMod(BuildContext context) async {
if (userInfo == null) {
SmartDialog.showToast('账号未登录');
return;
@@ -682,7 +681,7 @@ class VideoIntroController extends GetxController {
}
// 查看同时在看人数
Future queryOnlineTotal() async {
Future<void> queryOnlineTotal() async {
if (isShowOnlineTotal.not) {
return;
}
@@ -843,46 +842,44 @@ class VideoIntroController extends GetxController {
}
bool playRelated() {
late RelatedController relatedCtr;
try {
RelatedController relatedCtr;
if (Get.isRegistered<RelatedController>(tag: heroTag)) {
relatedCtr = Get.find<RelatedController>(tag: heroTag);
if (relatedCtr.loadingState.value is! Success) {
return false;
}
if ((relatedCtr.loadingState.value as Success).response.isEmpty == true) {
SmartDialog.showToast('暂无相关视频,停止连播');
return false;
}
} catch (_) {
relatedCtr = Get.put(RelatedController(), tag: heroTag);
relatedCtr.queryData().then((value) {
if (value['status']) {
} else {
relatedCtr = Get.put(RelatedController(false), tag: heroTag)
..queryData().then((_) {
playRelated();
}
});
});
return false;
}
final HotVideoItemModel videoItem =
(relatedCtr.loadingState.value as Success).response[0];
if (relatedCtr.loadingState.value is! Success) {
return false;
}
if (relatedCtr.loadingState.value.data.isNullOrEmpty) {
SmartDialog.showToast('暂无相关视频,停止连播');
return false;
}
final firstItem = relatedCtr.loadingState.value.data!.first;
try {
if (videoItem.cid != null) {
if (firstItem.cid != null) {
changeSeasonOrbangu(
null,
videoItem.bvid,
videoItem.cid,
videoItem.aid,
videoItem.pic,
firstItem.bvid,
firstItem.cid,
firstItem.aid,
firstItem.pic,
);
} else {
SearchHttp.ab2c(aid: videoItem.aid, bvid: videoItem.bvid).then(
(cid) => PageUtils.toVideoPage(
'bvid=${videoItem.bvid}&cid=${videoItem.cid}',
arguments: {
'videoItem': videoItem,
'heroTag': heroTag,
},
off: true,
SearchHttp.ab2c(aid: firstItem.aid, bvid: firstItem.bvid).then(
(cid) => changeSeasonOrbangu(
null,
firstItem.bvid,
cid,
firstItem.aid,
firstItem.pic,
),
);
}

View File

@@ -24,7 +24,7 @@ class HorizontalMemberPageController extends CommonDataController {
queryData();
}
Future getUserInfo() async {
Future<void> getUserInfo() async {
dynamic res = await MemberHttp.memberInfo(mid: mid);
if (res['status']) {
userState.value = LoadingState.success(res['data']);
@@ -34,7 +34,7 @@ class HorizontalMemberPageController extends CommonDataController {
}
}
Future getMemberStat() async {
Future<void> getMemberStat() async {
var res = await MemberHttp.memberStat(mid: mid);
if (res['status']) {
userStat.value = res['data'];
@@ -42,7 +42,7 @@ class HorizontalMemberPageController extends CommonDataController {
}
}
Future getMemberView() async {
Future<void> getMemberView() async {
var res = await MemberHttp.memberView(mid: mid);
if (res['status']) {
userStat.addAll(res['data']);
@@ -97,7 +97,7 @@ class HorizontalMemberPageController extends CommonDataController {
);
@override
Future onRefresh() {
Future<void> onRefresh() {
currentPage = 0;
hasPrev = true;
hasNext = true;

View File

@@ -6,13 +6,17 @@ import 'package:get/get.dart';
class RelatedController
extends CommonListController<List<HotVideoItemModel>?, HotVideoItemModel> {
RelatedController([this.autoQuery]);
// 视频aid
String bvid = Get.parameters['bvid'] ?? "";
final bool? autoQuery;
@override
void onInit() {
super.onInit();
queryData();
if (autoQuery != false) {
queryData();
}
}
@override

View File

@@ -24,7 +24,7 @@ class ZanButtonGrpc extends StatefulWidget {
}
class _ZanButtonGrpcState extends State<ZanButtonGrpc> {
Future onHateReply() async {
Future<void> onHateReply() async {
feedBack();
final int oid = widget.replyItem.oid.toInt();
final int rpid = widget.replyItem.id.toInt();
@@ -57,7 +57,7 @@ class _ZanButtonGrpcState extends State<ZanButtonGrpc> {
}
// 评论点赞
Future onLikeReply() async {
Future<void> onLikeReply() async {
feedBack();
final int oid = widget.replyItem.oid.toInt();
final int rpid = widget.replyItem.id.toInt();

View File

@@ -240,7 +240,8 @@ class _ReplyPageState extends CommonPublishPageState<ReplyPage> {
}
@override
Future onCustomPublish({required String message, List? pictures}) async {
Future<void> onCustomPublish(
{required String message, List? pictures}) async {
var result = await VideoHttp.replyAdd(
type: widget.replyType ?? ReplyType.video,
oid: widget.oid!,

View File

@@ -51,7 +51,7 @@ class VideoReplyReplyController extends ReplyController
}
@override
Future onRefresh() {
Future<void> onRefresh() {
paginationReply = null;
return super.onRefresh();
}

View File

@@ -471,7 +471,8 @@ class _SendDanmakuPanelState extends CommonPublishPageState<SendDanmakuPanel> {
}
@override
Future onCustomPublish({required String message, List? pictures}) async {
Future<void> onCustomPublish(
{required String message, List? pictures}) async {
SmartDialog.showLoading(msg: '发送中...');
bool isColorful = _color.value == Colors.transparent;
final res = await DanmakuHttp.shootDanmaku(

View File

@@ -54,7 +54,7 @@ class WebDav {
: 'piliplus_settings_phone.json';
}
Future backup() async {
Future<void> backup() async {
if (_client == null) {
final res = await init();
if (res.first == false) {
@@ -76,7 +76,7 @@ class WebDav {
}
}
Future restore() async {
Future<void> restore() async {
if (_client == null) {
final res = await init();
if (res.first == false) {

View File

@@ -55,7 +55,7 @@ class WhisperController
queryData();
}
Future queryMsgFeedUnread() async {
Future<void> queryMsgFeedUnread() async {
var res = await MsgHttp.msgFeedUnread();
if (res['status']) {
final data = MsgFeedUnread.fromJson(res['data']);
@@ -83,7 +83,7 @@ class WhisperController
return super.onRefresh();
}
Future onRemove(int index, int? talkerId) async {
Future<void> onRemove(int index, int? talkerId) async {
var res = await MsgHttp.removeMsg(talkerId);
if (res['status']) {
loadingState.value.data!.removeAt(index);
@@ -94,7 +94,7 @@ class WhisperController
}
}
Future onSetTop(int index, bool isTop, int? talkerId) async {
Future<void> onSetTop(int index, bool isTop, int? talkerId) async {
var res = await MsgHttp.setTop(
talkerId: talkerId,
opType: isTop ? 1 : 0,

View File

@@ -61,7 +61,7 @@ class WhisperDetailController
}
// 消息标记已读
Future ackSessionMsg(int? msgSeqno) async {
Future<void> ackSessionMsg(int? msgSeqno) async {
var res = await MsgHttp.ackSessionMsg(
talkerId: talkerId,
ackSeqno: msgSeqno,
@@ -71,7 +71,7 @@ class WhisperDetailController
}
}
Future sendMsg({
Future<void> sendMsg({
required String message,
Map? picMsg,
required VoidCallback onClearText,

View File

@@ -321,7 +321,7 @@ class _WhisperDetailPageState
Widget? get customPanel => EmotePanel(onChoose: onChooseEmote);
@override
Future onCustomPublish({required String message, List? pictures}) {
Future<void> onCustomPublish({required String message, List? pictures}) {
throw UnimplementedError();
}
}