#1152 Resolves issue where patch groups were not being properly formatted when uploading to broadcastify calls api. (#1153)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>
This commit is contained in:
Denny Sheirer
2022-03-05 05:56:16 -05:00
committed by GitHub
parent e826314d06
commit b2eb245feb
6 changed files with 178 additions and 64 deletions

View File

@@ -1,6 +1,6 @@
/*
* *****************************************************************************
* Copyright (C) 2014-2020 Dennis Sheirer
* Copyright (C) 2014-2022 Dennis Sheirer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -417,38 +417,48 @@ public class BroadcastifyCallBroadcaster extends AbstractAudioBroadcaster<Broadc
{
List<Identifier> toIdentifiers = audioRecording.getIdentifierCollection().getIdentifiers(Role.TO);
if(toIdentifiers.size() >= 1)
//Format a patch group first, if there are multiples
for(Identifier identifier: toIdentifiers)
{
Identifier to = toIdentifiers.get(0);
if(to instanceof TalkgroupIdentifier)
if(identifier instanceof PatchGroupIdentifier patchGroupIdentifier)
{
return format(patchGroupIdentifier);
}
}
for(Identifier identifier: toIdentifiers)
{
if(identifier instanceof TalkgroupIdentifier talkgroupIdentifier)
{
TalkgroupIdentifier talkgroupIdentifier = (TalkgroupIdentifier)to;
return String.valueOf(RadioReferenceDecoder.convertToRadioReferenceTalkgroup(talkgroupIdentifier.getValue(),
talkgroupIdentifier.getProtocol()));
talkgroupIdentifier.getProtocol()));
}
else if(to instanceof PatchGroupIdentifier)
else if(identifier instanceof RadioIdentifier radioIdentifier)
{
PatchGroup patchGroup = ((PatchGroupIdentifier)to).getValue();
StringBuilder sb = new StringBuilder();
sb.append(patchGroup.getPatchGroup().getValue().toString());
for(TalkgroupIdentifier patched: patchGroup.getPatchedGroupIdentifiers())
{
sb.append(",").append(patched.getValue());
}
return sb.toString();
}
else if(to instanceof RadioIdentifier)
{
return ((RadioIdentifier)to).getValue().toString();
return radioIdentifier.getValue().toString();
}
}
return "0";
}
/**
* Formats a patch group
*/
public static String format(PatchGroupIdentifier patchGroupIdentifier)
{
PatchGroup patchGroup = patchGroupIdentifier.getValue();
StringBuilder sb = new StringBuilder();
sb.append(patchGroup.getPatchGroup().getValue().toString());
for(TalkgroupIdentifier patched: patchGroup.getPatchedGroupIdentifiers())
{
sb.append(",").append(patched.getValue());
}
return sb.toString();
}
/**
* Tests both the connection and configuration against the Broadcastify Call API service
* @param configuration containing API key and system id