Additional RTTTL config

This commit is contained in:
Garth Vander Houwen 2023-03-25 22:14:39 -07:00
parent c496be722b
commit e6d6efe495
4 changed files with 11 additions and 10 deletions

View file

@ -1344,10 +1344,10 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
return 0
}
public func saveRtttlConfig(config: RTTTLConfig, fromUser: UserEntity, toUser: UserEntity, adminIndex: Int32) -> Int64 {
public func saveRtttlConfig(ringtone: String, fromUser: UserEntity, toUser: UserEntity, adminIndex: Int32) -> Int64 {
var adminPacket = AdminMessage()
adminPacket.setRingtoneMessage = config.ringtone
adminPacket.setRingtoneMessage = ringtone
var meshPacket: MeshPacket = MeshPacket()
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
@ -1364,7 +1364,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
let messageDescription = "Saved RTTTL Ringtone Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))"
if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) {
upsertRtttlConfigPacket(config: config, nodeNum: toUser.num, context: context!)
upsertRtttlConfigPacket(ringtone: ringtone, nodeNum: toUser.num, context: context!)
return Int64(meshPacket.id)
}

View file

@ -487,6 +487,9 @@ func adminAppPacket (packet: MeshPacket, context: NSManagedObjectContext) {
}
} else if adminMessage.payloadVariant == AdminMessage.OneOf_PayloadVariant.getRingtoneResponse(adminMessage.getRingtoneResponse) {
let ringtone = adminMessage.getRingtoneResponse
upsertRtttlConfigPacket(ringtone: ringtone, nodeNum: Int64(packet.from), context: context)
} else {
MeshLogger.log("🕸️ MESH PACKET received for Admin App \(try! packet.decoded.jsonString())")
}

View file

@ -699,7 +699,7 @@ func upsertExternalNotificationModuleConfigPacket(config: Meshtastic.ModuleConfi
}
}
func upsertRtttlConfigPacket(config: RTTTLConfig, nodeNum: Int64, context: NSManagedObjectContext) {
func upsertRtttlConfigPacket(ringtone: String, nodeNum: Int64, context: NSManagedObjectContext) {
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.rangetest.config %@", comment: "Range Test module config received: %@"), String(nodeNum))
MeshLogger.log("⛰️ \(logString)")
@ -716,10 +716,10 @@ func upsertRtttlConfigPacket(config: RTTTLConfig, nodeNum: Int64, context: NSMan
if !fetchedNode.isEmpty {
if fetchedNode[0].rtttlConfig == nil {
let newRtttlConfig = RTTTLConfigEntity(context: context)
newRtttlConfig.ringtone = config.ringtone
newRtttlConfig.ringtone = ringtone
fetchedNode[0].rtttlConfig = newRtttlConfig
} else {
fetchedNode[0].rtttlConfig?.ringtone = config.ringtone
fetchedNode[0].rtttlConfig?.ringtone = ringtone
}
do {
try context.save()

View file

@ -98,9 +98,7 @@ struct RtttlConfig: View {
let connectedNode = getNodeInfo(id: bleManager.connectedPeripheral.num, context: context)
if connectedNode != nil {
var rtttl = RTTTLConfig()
rtttl.ringtone = ringtone
let adminMessageId = bleManager.saveRtttlConfig(config: rtttl, fromUser: connectedNode!.user!, toUser: node!.user!, adminIndex: connectedNode?.myInfo?.adminIndex ?? 0)
let adminMessageId = bleManager.saveRtttlConfig(ringtone: ringtone, fromUser: connectedNode!.user!, toUser: node!.user!, adminIndex: connectedNode?.myInfo?.adminIndex ?? 0)
if adminMessageId > 0 {
// Should show a saved successfully alert once I know that to be true
// for now just disable the button after a successful save
@ -123,7 +121,7 @@ struct RtttlConfig: View {
setRtttLConfigValue()
// Need to request a Rtttl Config from the remote node before allowing changes
if bleManager.connectedPeripheral != nil && node?.rangeTestConfig == nil {
if bleManager.connectedPeripheral != nil && node?.rtttlConfig == nil {
let connectedNode = getNodeInfo(id: bleManager.connectedPeripheral.num, context: context)
if node != nil && connectedNode != nil {
_ = bleManager.requestRtttlConfig(fromUser: connectedNode!.user!, toUser: node!.user!, adminIndex: connectedNode?.myInfo?.adminIndex ?? 0)