chore: don't show read assistance tooltip if buttons aren't shown (#2251)
This commit is contained in:
parent
5dc64c64c7
commit
ffc9d2f08a
4 changed files with 28 additions and 50 deletions
|
|
@ -1,7 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:matrix/matrix_api_lite/model/message_types.dart';
|
||||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pages/chat/chat.dart';
|
||||
|
|
@ -12,19 +10,15 @@ import 'package:fluffychat/pangea/toolbar/widgets/toolbar_button_column.dart';
|
|||
class OverlayFooter extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
final MessageOverlayController overlayController;
|
||||
final bool showToolbarButtons;
|
||||
|
||||
const OverlayFooter({
|
||||
required this.controller,
|
||||
required this.overlayController,
|
||||
required this.showToolbarButtons,
|
||||
super.key,
|
||||
});
|
||||
|
||||
bool get showToolbarButtons =>
|
||||
overlayController.pangeaMessageEvent != null &&
|
||||
overlayController.pangeaMessageEvent!.shouldShowToolbar &&
|
||||
overlayController.pangeaMessageEvent!.event.messageType ==
|
||||
MessageTypes.Text;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
//@ggurdin can we change this mobile padding to 0? seems a some extrea space on mobile
|
||||
|
|
@ -42,10 +36,8 @@ class OverlayFooter extends StatelessWidget {
|
|||
alignment: Alignment.center,
|
||||
child: Column(
|
||||
children: [
|
||||
ToolbarButtonRow(
|
||||
overlayController: overlayController,
|
||||
shouldShowToolbarButtons: showToolbarButtons,
|
||||
),
|
||||
if (showToolbarButtons)
|
||||
ToolbarButtonRow(overlayController: overlayController),
|
||||
Material(
|
||||
clipBehavior: Clip.hardEdge,
|
||||
color: Theme.of(context).colorScheme.surfaceContainerHighest,
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ class MessageSelectionPositionerState extends State<MessageSelectionPositioner>
|
|||
|
||||
Future.wait([
|
||||
_centeredMessageCompleter.future,
|
||||
_tooltipCompleter.future,
|
||||
if (showToolbarButtons) _tooltipCompleter.future,
|
||||
]).then((_) => _startAnimation());
|
||||
}
|
||||
|
||||
|
|
@ -386,7 +386,8 @@ class MessageSelectionPositionerState extends State<MessageSelectionPositioner>
|
|||
bool get showToolbarButtons =>
|
||||
widget.pangeaMessageEvent != null &&
|
||||
widget.pangeaMessageEvent!.shouldShowToolbar &&
|
||||
widget.pangeaMessageEvent!.event.messageType == MessageTypes.Text;
|
||||
widget.pangeaMessageEvent!.event.messageType == MessageTypes.Text &&
|
||||
widget.pangeaMessageEvent!.messageDisplayLangIsL2;
|
||||
|
||||
bool get _hasReactions {
|
||||
final reactionsEvents = widget.event.aggregatedEvents(
|
||||
|
|
@ -444,7 +445,6 @@ class MessageSelectionPositionerState extends State<MessageSelectionPositioner>
|
|||
pangeaMessageEvent: widget.pangeaMessageEvent,
|
||||
nextEvent: widget.nextEvent,
|
||||
prevEvent: widget.prevEvent,
|
||||
showToolbarButtons: showToolbarButtons,
|
||||
hasReactions: _hasReactions,
|
||||
onChangeMessageSize: _setCenteredMessageSize,
|
||||
isTransitionAnimation: false,
|
||||
|
|
@ -471,6 +471,7 @@ class MessageSelectionPositionerState extends State<MessageSelectionPositioner>
|
|||
child: OverlayFooter(
|
||||
controller: widget.chatController,
|
||||
overlayController: widget.overlayController,
|
||||
showToolbarButtons: showToolbarButtons,
|
||||
),
|
||||
),
|
||||
SizedBox(height: _mediaQuery?.padding.bottom ?? 0),
|
||||
|
|
@ -510,7 +511,6 @@ class MessageSelectionPositionerState extends State<MessageSelectionPositioner>
|
|||
pangeaMessageEvent: widget.pangeaMessageEvent,
|
||||
nextEvent: widget.nextEvent,
|
||||
prevEvent: widget.prevEvent,
|
||||
showToolbarButtons: showToolbarButtons,
|
||||
hasReactions: _hasReactions,
|
||||
sizeAnimation: _messageSizeAnimation,
|
||||
isTransitionAnimation: true,
|
||||
|
|
@ -523,30 +523,31 @@ class MessageSelectionPositionerState extends State<MessageSelectionPositioner>
|
|||
);
|
||||
},
|
||||
),
|
||||
Positioned(
|
||||
top: 0,
|
||||
child: IgnorePointer(
|
||||
child: MeasureRenderBox(
|
||||
onChange: _setTooltipSize,
|
||||
child: Opacity(
|
||||
opacity: 0.0,
|
||||
child: Container(
|
||||
constraints: const BoxConstraints(
|
||||
minWidth: 200.0,
|
||||
maxWidth: 400.0,
|
||||
),
|
||||
child: InstructionsInlineTooltip(
|
||||
instructionsEnum: widget
|
||||
.overlayController.toolbarMode.instructionsEnum ??
|
||||
InstructionsEnum.readingAssistanceOverview,
|
||||
bold: true,
|
||||
if (showToolbarButtons)
|
||||
Positioned(
|
||||
top: 0,
|
||||
child: IgnorePointer(
|
||||
child: MeasureRenderBox(
|
||||
onChange: _setTooltipSize,
|
||||
child: Opacity(
|
||||
opacity: 0.0,
|
||||
child: Container(
|
||||
constraints: BoxConstraints(
|
||||
minWidth: 200.0,
|
||||
maxWidth: _toolbarMaxWidth,
|
||||
),
|
||||
child: InstructionsInlineTooltip(
|
||||
instructionsEnum: widget.overlayController.toolbarMode
|
||||
.instructionsEnum ??
|
||||
InstructionsEnum.readingAssistanceOverview,
|
||||
bold: true,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
if (_centeredMessageTopOffset != null && _finishedAnimation)
|
||||
if (_centeredMessageTopOffset != null && _tooltipSize != null)
|
||||
Positioned(
|
||||
top: max(
|
||||
((_headerHeight + _centeredMessageTopOffset!) / 2) -
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ class OverlayCenterContent extends StatelessWidget {
|
|||
final double maxWidth;
|
||||
final double maxHeight;
|
||||
|
||||
final bool showToolbarButtons;
|
||||
final bool hasReactions;
|
||||
|
||||
final bool isTransitionAnimation;
|
||||
|
|
@ -43,7 +42,6 @@ class OverlayCenterContent extends StatelessWidget {
|
|||
required this.pangeaMessageEvent,
|
||||
required this.nextEvent,
|
||||
required this.prevEvent,
|
||||
required this.showToolbarButtons,
|
||||
required this.hasReactions,
|
||||
this.onChangeMessageSize,
|
||||
this.sizeAnimation,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
|
|
@ -9,11 +7,9 @@ import 'package:fluffychat/pangea/toolbar/widgets/toolbar_button.dart';
|
|||
|
||||
class ToolbarButtonRow extends StatelessWidget {
|
||||
final MessageOverlayController overlayController;
|
||||
final bool shouldShowToolbarButtons;
|
||||
|
||||
const ToolbarButtonRow({
|
||||
required this.overlayController,
|
||||
required this.shouldShowToolbarButtons,
|
||||
super.key,
|
||||
});
|
||||
|
||||
|
|
@ -24,15 +20,6 @@ class ToolbarButtonRow extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (overlayController.event.messageType == MessageTypes.Audio ||
|
||||
!shouldShowToolbarButtons ||
|
||||
!(overlayController.pangeaMessageEvent?.messageDisplayLangIsL2 ??
|
||||
false)) {
|
||||
return const SizedBox(
|
||||
height: AppConfig.toolbarButtonsHeight,
|
||||
);
|
||||
}
|
||||
|
||||
return SizedBox(
|
||||
height: AppConfig.toolbarButtonsHeight,
|
||||
child: Row(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue