Merge pull request #963 from pangeachat/hidden-words-testing

showToolbar on click non-toolbar message, don't re-launch on toolbar …
pull/1490/head
ggurdin 1 year ago committed by GitHub
commit d227202d58
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -308,14 +308,16 @@ class MessageContent extends StatelessWidget {
if (pangeaMessageEvent?.messageDisplayRepresentation?.tokens != if (pangeaMessageEvent?.messageDisplayRepresentation?.tokens !=
null) { null) {
return MessageTokenTextStateful( return MessageTokenText(
messageAnalyticsEntry: messageAnalyticsEntry:
controller.pangeaController.getAnalytics.perMessage.get( controller.pangeaController.getAnalytics.perMessage.get(
pangeaMessageEvent!, pangeaMessageEvent!,
false, false,
)!, )!,
style: messageTextStyle, style: messageTextStyle,
onClick: (token) => controller.showToolbar(pangeaMessageEvent!), onClick: overlayController?.onClickOverlayMessageToken ??
(_) => controller.showToolbar(pangeaMessageEvent!),
isSelected: overlayController?.isTokenSelected,
); );
} }

@ -9,22 +9,23 @@ import 'package:flutter/material.dart';
/// Question - does this need to be stateful or does this work? /// Question - does this need to be stateful or does this work?
/// Need to test. /// Need to test.
class MessageTokenTextStateful extends StatelessWidget { class MessageTokenText extends StatelessWidget {
final PangeaController pangeaController = MatrixState.pangeaController; final PangeaController pangeaController = MatrixState.pangeaController;
final MessageAnalyticsEntry messageAnalyticsEntry; final MessageAnalyticsEntry messageAnalyticsEntry;
final TextStyle style; final TextStyle style;
final bool Function(PangeaToken)? isSelected;
final void Function(PangeaToken)? onClick; final void Function(PangeaToken)? onClick;
bool get ownMessage => messageAnalyticsEntry.pmEvent.ownMessage; bool get ownMessage => messageAnalyticsEntry.pmEvent.ownMessage;
MessageTokenTextStateful({ MessageTokenText({
super.key, super.key,
required this.messageAnalyticsEntry, required this.messageAnalyticsEntry,
required this.style, required this.style,
required this.onClick, required this.onClick,
this.isSelected,
}); });
PangeaMessageEvent get pangeaMessageEvent => messageAnalyticsEntry.pmEvent; PangeaMessageEvent get pangeaMessageEvent => messageAnalyticsEntry.pmEvent;
@ -47,13 +48,16 @@ class MessageTokenTextStateful extends StatelessWidget {
final int startIndex = messageCharacters.take(start).length; final int startIndex = messageCharacters.take(start).length;
final int endIndex = messageCharacters.take(end).length; final int endIndex = messageCharacters.take(end).length;
final hideContent =
token.targetTypes.contains(ActivityTypeEnum.hiddenWordListening);
if (globalIndex < startIndex) { if (globalIndex < startIndex) {
tokenPositions.add( tokenPositions.add(
TokenPosition( TokenPosition(
start: globalIndex, start: globalIndex,
end: startIndex, end: startIndex,
hideContent: false, hideContent: false,
highlight: false, highlight: isSelected?.call(token.token) ?? false,
), ),
); );
} }
@ -63,9 +67,8 @@ class MessageTokenTextStateful extends StatelessWidget {
start: startIndex, start: startIndex,
end: endIndex, end: endIndex,
token: token.token, token: token.token,
hideContent: hideContent: hideContent,
token.targetTypes.contains(ActivityTypeEnum.hiddenWordListening), highlight: (isSelected?.call(token.token) ?? false) && !hideContent,
highlight: false,
), ),
); );
globalIndex = endIndex; globalIndex = endIndex;

Loading…
Cancel
Save