Skip to content

Commit

Permalink
Fix channel delete bug
Browse files Browse the repository at this point in the history
  • Loading branch information
garthvh committed Jul 2, 2024
1 parent 19f3e7d commit 0b7dfc2
Showing 1 changed file with 4 additions and 11 deletions.
15 changes: 4 additions & 11 deletions Meshtastic/Views/Settings/Channels.swift
Original file line number Diff line number Diff line change
Expand Up @@ -154,14 +154,12 @@ struct Channels: View {
var channel = Channel()
channel.index = channelIndex
channel.role = ChannelRoles(rawValue: channelRole)?.protoEnumValue() ?? .secondary
if channel.role != Channel.Role.disabled {
channel.index = channelIndex
channel.settings.name = channelName
channel.settings.psk = Data(base64Encoded: channelKey) ?? Data()
channel.settings.uplinkEnabled = uplink
channel.settings.downlinkEnabled = downlink
channel.settings.moduleSettings.positionPrecision = UInt32(positionPrecision)

selectedChannel!.role = Int32(channelRole)
selectedChannel!.index = channelIndex
selectedChannel!.name = channelName
Expand All @@ -180,6 +178,7 @@ struct Channels: View {
}
node?.myInfo?.channels = mutableChannels.copy() as? NSOrderedSet
context.refresh(selectedChannel!, mergeChanges: true)
if channel.role != Channel.Role.disabled {
do {
try context.save()
Logger.data.info("💾 Saved Channel: \(channel.settings.name)")
Expand All @@ -189,19 +188,14 @@ struct Channels: View {
Logger.data.error("Unresolved Core Data error in the channel editor. Error: \(nsError)")
}
} else {
guard let channelEntities = node?.myInfo?.channels as? [ChannelEntity],
let channelEntity = channelEntities.first(where: { $0.index == channelIndex }) else {
return
}

let objects = channelEntity.allPrivateMessages
let objects = selectedChannel?.allPrivateMessages ?? []
for object in objects {
context.delete(object)
}
for node in nodes where node.channel == channelEntity.index {
for node in nodes where node.channel == channel.index {
context.delete(node)
}
context.delete(channelEntity)
context.delete(selectedChannel!)
do {
try context.save()
Logger.data.info("💾 Deleted Channel: \(channel.settings.name)")
Expand All @@ -211,7 +205,6 @@ struct Channels: View {
Logger.data.error("Unresolved Core Data error in the channel editor. Error: \(nsError)")
}
}

let adminMessageId = bleManager.saveChannel(channel: channel, fromUser: node!.user!, toUser: node!.user!)

if adminMessageId > 0 {
Expand Down

0 comments on commit 0b7dfc2

Please sign in to comment.