mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-01 16:48:16 +08:00
@@ -359,6 +359,8 @@ class RenderSliverChatList extends RenderSliverMultiBoxAdaptor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const double kChatListPadding = 14.0;
|
||||||
|
|
||||||
/// from https://github.com/fluttercandies/extended_list
|
/// from https://github.com/fluttercandies/extended_list
|
||||||
mixin ExtendedRenderObjectMixin on RenderSliverMultiBoxAdaptor {
|
mixin ExtendedRenderObjectMixin on RenderSliverMultiBoxAdaptor {
|
||||||
void handleCloseToTrailingBegin() {
|
void handleCloseToTrailingBegin() {
|
||||||
@@ -366,11 +368,10 @@ mixin ExtendedRenderObjectMixin on RenderSliverMultiBoxAdaptor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
double handleCloseToTrailingEnd(double endScrollOffset) {
|
double handleCloseToTrailingEnd(double endScrollOffset) {
|
||||||
if (endScrollOffset < constraints.remainingPaintExtent) {
|
final extent = constraints.remainingPaintExtent - kChatListPadding;
|
||||||
final double distance =
|
if (endScrollOffset < extent) {
|
||||||
constraints.remainingPaintExtent - endScrollOffset;
|
_closeToTrailingDistance = extent - endScrollOffset;
|
||||||
_closeToTrailingDistance = distance;
|
return extent;
|
||||||
return constraints.remainingPaintExtent;
|
|
||||||
}
|
}
|
||||||
return endScrollOffset;
|
return endScrollOffset;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -311,15 +311,15 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
|||||||
}
|
}
|
||||||
plPlayerController = videoDetailController.plPlayerController;
|
plPlayerController = videoDetailController.plPlayerController;
|
||||||
videoDetailController.autoPlay = true;
|
videoDetailController.autoPlay = true;
|
||||||
|
plPlayerController!
|
||||||
|
..addStatusLister(playerListener)
|
||||||
|
..addPositionListener(positionListener);
|
||||||
if (videoDetailController.plPlayerController.preInitPlayer) {
|
if (videoDetailController.plPlayerController.preInitPlayer) {
|
||||||
await plPlayerController!.play();
|
await plPlayerController!.play();
|
||||||
} else {
|
} else {
|
||||||
await videoDetailController.playerInit(autoplay: true);
|
await videoDetailController.playerInit(autoplay: true);
|
||||||
}
|
}
|
||||||
if (!mounted || !isShowing) return;
|
if (!mounted || !isShowing) return;
|
||||||
plPlayerController!
|
|
||||||
..addStatusLister(playerListener)
|
|
||||||
..addPositionListener(positionListener);
|
|
||||||
await plPlayerController!.autoEnterFullscreen();
|
await plPlayerController!.autoEnterFullscreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ class WhisperDetailController extends CommonListController<RspSessionMsg, Msg> {
|
|||||||
} else {
|
} else {
|
||||||
ackSessionMsg(msgs.last.msgSeqno.toInt());
|
ackSessionMsg(msgs.last.msgSeqno.toInt());
|
||||||
}
|
}
|
||||||
|
msgs.removeWhere((e) => e.msgType == MsgType.EN_MSG_TYPE_DRAW_BACK.value);
|
||||||
eInfos ??= <EmotionInfo>[];
|
eInfos ??= <EmotionInfo>[];
|
||||||
eInfos!.addAll(response.response.eInfos);
|
eInfos!.addAll(response.response.eInfos);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ class _WhisperDetailPageState
|
|||||||
response != null && response.isNotEmpty
|
response != null && response.isNotEmpty
|
||||||
? ChatListView.separated(
|
? ChatListView.separated(
|
||||||
itemCount: response.length,
|
itemCount: response.length,
|
||||||
padding: const EdgeInsets.all(14),
|
padding: const .all(kChatListPadding),
|
||||||
physics: const AlwaysScrollableScrollPhysics(
|
physics: const AlwaysScrollableScrollPhysics(
|
||||||
parent: ClampingScrollPhysics(),
|
parent: ClampingScrollPhysics(),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -55,10 +55,10 @@ class ChatItem extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final msgType = item.msgType;
|
final msgType = item.msgType;
|
||||||
final isRevoke = msgType == MsgType.EN_MSG_TYPE_DRAW_BACK.value; // 撤回消息
|
// final isRevoke = msgType == MsgType.EN_MSG_TYPE_DRAW_BACK.value; // 撤回消息
|
||||||
if (isRevoke) {
|
// if (isRevoke) {
|
||||||
return const SizedBox.shrink();
|
// return const SizedBox.shrink();
|
||||||
}
|
// }
|
||||||
|
|
||||||
late final ThemeData theme = Theme.of(context);
|
late final ThemeData theme = Theme.of(context);
|
||||||
late final Color textColor = isOwner
|
late final Color textColor = isOwner
|
||||||
|
|||||||
Reference in New Issue
Block a user