mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
fix: channel message retry not updating ack state
This commit is contained in:
parent
e9c8de9837
commit
a16c6be659
3 changed files with 13 additions and 2 deletions
|
|
@ -64,7 +64,7 @@ struct ChannelMessageList: View {
|
|||
}
|
||||
|
||||
if currentUser && message.canRetry {
|
||||
RetryButton(message: message)
|
||||
RetryButton(message: message, destination: .channel(channel))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ struct RetryButton: View {
|
|||
@EnvironmentObject var bleManager: BLEManager
|
||||
|
||||
let message: MessageEntity
|
||||
let destination: MessageDestination
|
||||
@State var isShowingConfirmation = false
|
||||
|
||||
var body: some View {
|
||||
|
|
@ -46,6 +47,16 @@ struct RetryButton: View {
|
|||
) {
|
||||
// Best effort, unlikely since we already checked BLE state
|
||||
print("Failed to resend message \(messageID)")
|
||||
} else {
|
||||
switch destination {
|
||||
case .user:
|
||||
break
|
||||
case let .channel(channel):
|
||||
// We must refresh the channel to trigger a view update since its relationship
|
||||
// to messages is via a weak fetched property which is not updated by
|
||||
// `bleManager.sendMessage` unlike the user entity.
|
||||
context.refresh(channel, mergeChanges: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
Button("Cancel", role: .cancel) {}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ struct UserMessageList: View {
|
|||
}
|
||||
|
||||
if currentUser && message.canRetry || (message.receivedACK && !message.realACK) {
|
||||
RetryButton(message: message)
|
||||
RetryButton(message: message, destination: .user(user))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue