Files
PiliPlus/lib/pages/video/detail/reply/controller.dart
bggRGjQaUbCoE cdb2718aeb chore: deprecate prev reply, videopage
Closes #579

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-04-01 12:48:59 +08:00

54 lines
1.4 KiB
Dart

import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/pages/common/reply_controller.dart';
import 'package:PiliPlus/http/reply.dart';
import 'package:PiliPlus/utils/id_utils.dart';
import 'package:fixnum/fixnum.dart' as $fixnum;
import 'package:flutter/material.dart';
import 'package:get/get_state_manager/src/rx_flutter/rx_ticket_provider_mixin.dart';
class VideoReplyController extends ReplyController
with GetTickerProviderStateMixin {
VideoReplyController({required this.aid});
// 视频aid 请求时使用的oid
int aid;
@override
dynamic get sourceId => IdUtils.av2bv(aid);
bool _isFabVisible = true;
late final AnimationController fabAnimationCtr = AnimationController(
vsync: this, duration: const Duration(milliseconds: 100))
..forward();
void showFab() {
if (!_isFabVisible) {
_isFabVisible = true;
fabAnimationCtr.forward();
}
}
void hideFab() {
if (_isFabVisible) {
_isFabVisible = false;
fabAnimationCtr.reverse();
}
}
@override
Future<LoadingState> customGetData() => ReplyHttp.replyListGrpc(
oid: aid,
cursor: CursorReq(
next: cursor?.next ?? $fixnum.Int64(0),
mode: mode.value,
),
antiGoodsReply: antiGoodsReply,
);
@override
void onClose() {
fabAnimationCtr.dispose();
super.onClose();
}
}