From 3d816c3570ad912d9829193091ecf44141d52312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrzej=20Pa=C5=84kowski?= <41550889+apankowski@users.noreply.github.com> Date: Thu, 21 May 2020 11:22:12 +0200 Subject: [PATCH] MPT1327: Fix decoding of calls to past talkgroups (#824) * MPT1327: Fix decoding of calls to past talkgroups * Fixed updating event in case of teardown. Other improvements. --- .../mpt1327/MPT1327TrafficChannelManager.java | 38 ++++++++----------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/src/main/java/io/github/dsheirer/module/decode/mpt1327/MPT1327TrafficChannelManager.java b/src/main/java/io/github/dsheirer/module/decode/mpt1327/MPT1327TrafficChannelManager.java index 661ada65..347e6c69 100644 --- a/src/main/java/io/github/dsheirer/module/decode/mpt1327/MPT1327TrafficChannelManager.java +++ b/src/main/java/io/github/dsheirer/module/decode/mpt1327/MPT1327TrafficChannelManager.java @@ -325,23 +325,14 @@ public class MPT1327TrafficChannelManager extends Module implements IDecodeEvent switch(channelEvent.getEvent()) { case NOTIFICATION_PROCESSING_STOP: - MPT1327Channel toRemove = null; - - for(Map.Entry entry : mAllocatedTrafficChannelMap.entrySet()) - { - if(entry.getValue() == channel) - { - toRemove = entry.getKey(); - continue; - } - } + final var toRemove = mptChannelForChannel(channel); if(toRemove != null) { mAllocatedTrafficChannelMap.remove(toRemove); mAvailableTrafficChannelQueue.add(channel); - MPT1327ChannelGrantEvent event = mChannelGrantEventMap.get(toRemove); + final var event = mChannelGrantEventMap.remove(toRemove); if(event != null) { @@ -351,23 +342,14 @@ public class MPT1327TrafficChannelManager extends Module implements IDecodeEvent } break; case NOTIFICATION_PROCESSING_START_REJECTED: - MPT1327Channel rejected = null; - - for(Map.Entry entry : mAllocatedTrafficChannelMap.entrySet()) - { - if(entry.getValue() == channel) - { - rejected = entry.getKey(); - continue; - } - } + final var rejected = mptChannelForChannel(channel); if(rejected != null) { mAllocatedTrafficChannelMap.remove(rejected); mAvailableTrafficChannelQueue.add(channel); - MPT1327ChannelGrantEvent event = mChannelGrantEventMap.get(rejected); + final var event = mChannelGrantEventMap.remove(rejected); if(event != null) { @@ -386,5 +368,17 @@ public class MPT1327TrafficChannelManager extends Module implements IDecodeEvent } } } + + private MPT1327Channel mptChannelForChannel(final Channel channel) + { + for (final var entry : mAllocatedTrafficChannelMap.entrySet()) + { + if (entry.getValue() == channel) + { + return entry.getKey(); + } + } + return null; + } } }