mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-04-20 22:13:48 +00:00
handling smaz for sending the same way, to fix displaying compressed text in channel history.
This commit is contained in:
parent
612afc2fe8
commit
91072bb9c6
2 changed files with 16 additions and 15 deletions
|
|
@ -1886,13 +1886,7 @@ class MeshCoreConnector extends ChangeNotifier {
|
|||
_pendingChannelSentQueue.add(message.messageId);
|
||||
notifyListeners();
|
||||
|
||||
final trimmed = text.trim();
|
||||
final isStructuredPayload =
|
||||
trimmed.startsWith('g:') || trimmed.startsWith('m:');
|
||||
final outboundText =
|
||||
(isChannelSmazEnabled(channel.index) && !isStructuredPayload)
|
||||
? Smaz.encodeIfSmaller(text)
|
||||
: text;
|
||||
final outboundText = prepareChannelOutboundText(channel.index, text);
|
||||
await sendFrame(
|
||||
buildSendChannelTextMsgFrame(channel.index, outboundText),
|
||||
channelSendQueueId: message.messageId,
|
||||
|
|
@ -3152,6 +3146,16 @@ class MeshCoreConnector extends ChangeNotifier {
|
|||
return text;
|
||||
}
|
||||
|
||||
String prepareChannelOutboundText(int channelIndex, String text) {
|
||||
final trimmed = text.trim();
|
||||
final isStructuredPayload =
|
||||
trimmed.startsWith('g:') || trimmed.startsWith('m:');
|
||||
if (!isStructuredPayload && isChannelSmazEnabled(channelIndex)) {
|
||||
return Smaz.encodeIfSmaller(text);
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
String _channelDisplayName(int channelIndex) {
|
||||
for (final channel in _channels) {
|
||||
if (channel.index != channelIndex) continue;
|
||||
|
|
|
|||
|
|
@ -1243,13 +1243,10 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
|
|||
}
|
||||
|
||||
final maxBytes = maxChannelMessageBytes(connector.selfName);
|
||||
final smazEnabled = connector.isChannelSmazEnabled(widget.channel.index);
|
||||
final trimmed = messageText.trim();
|
||||
final isStructuredPayload =
|
||||
trimmed.startsWith('g:') || trimmed.startsWith('m:');
|
||||
final outboundText = (smazEnabled && !isStructuredPayload)
|
||||
? Smaz.encodeIfSmaller(messageText)
|
||||
: messageText;
|
||||
final outboundText = connector.prepareChannelOutboundText(
|
||||
widget.channel.index,
|
||||
messageText,
|
||||
);
|
||||
if (utf8.encode(outboundText).length > maxBytes) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text(context.l10n.chat_messageTooLong(maxBytes))),
|
||||
|
|
@ -1257,7 +1254,7 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
|
|||
return;
|
||||
}
|
||||
|
||||
connector.sendChannelMessage(widget.channel, outboundText);
|
||||
connector.sendChannelMessage(widget.channel, messageText);
|
||||
_textController.clear();
|
||||
_cancelReply();
|
||||
_textFieldFocusNode.requestFocus();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue