fix(#555): gate channel Send Again on repeatCount==0, not sent status

The #256 channel Send Again gated on status != sent, which hid it at the
radio-ack checkmark (status=sent) -- exactly the "transmitted but no repeat-back"
case it was for. It only surfaced on the waiting clock (pending). Gate on
repeatCount == 0 instead, so it shows until a repeater repeats the message back
(repeatCount > 0), then closes off. Matches the original design intent. Follow-up
to #256; DM gate (failed-only) unchanged.
task/501-deviceui-logging
Strycher 2 months ago
parent f9064735e9
commit d04bfa82a4

@ -1741,11 +1741,12 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
_showMessagePathInfo(message);
},
),
// Offer resend on an outgoing channel message until its
// ack/repeat-back arrives (status becomes sent). Channel sends are
// not auto-retried, so this is the only recovery path. (#256)
if (message.isOutgoing &&
message.status != ChannelMessageStatus.sent)
// Offer resend on an outgoing channel message until a repeater
// repeats it back (repeatCount > 0). The radio-ack checkmark
// (status == sent) does NOT mean a repeat was heard, so gate on the
// repeat-back, not status. Channel sends aren't auto-retried, so
// this is the only recovery path. (#256, #555)
if (message.isOutgoing && message.repeatCount == 0)
ListTile(
leading: const Icon(Icons.refresh),
title: Text(context.l10n.message_sendAgain),

Loading…
Cancel
Save

Powered by TurnKey Linux.